function _array_like_to_array(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
    for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
    return arr2;
}
function _array_with_holes(arr) {
    if (Array.isArray(arr)) return arr;
}
function _array_without_holes(arr) {
    if (Array.isArray(arr)) return _array_like_to_array(arr);
}
function _assert_this_initialized(self1) {
    if (self1 === void 0) {
        throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }
    return self1;
}
function _class_call_check(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
        throw new TypeError("Cannot call a class as a function");
    }
}
function _construct(Parent, args, Class) {
    if (_is_native_reflect_construct()) {
        _construct = Reflect.construct;
    } else {
        _construct = function construct(Parent, args, Class) {
            var a = [
                null
            ];
            a.push.apply(a, args);
            var Constructor = Function.bind.apply(Parent, a);
            var instance = new Constructor();
            if (Class) _set_prototype_of(instance, Class.prototype);
            return instance;
        };
    }
    return _construct.apply(null, arguments);
}
function _defineProperties(target, props) {
    for(var i = 0; i < props.length; i++){
        var descriptor = props[i];
        descriptor.enumerable = descriptor.enumerable || false;
        descriptor.configurable = true;
        if ("value" in descriptor) descriptor.writable = true;
        Object.defineProperty(target, descriptor.key, descriptor);
    }
}
function _create_class(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
}
function _define_property(obj, key, value) {
    if (key in obj) {
        Object.defineProperty(obj, key, {
            value: value,
            enumerable: true,
            configurable: true,
            writable: true
        });
    } else {
        obj[key] = value;
    }
    return obj;
}
function _get_prototype_of(o) {
    _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
        return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _get_prototype_of(o);
}
function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
        throw new TypeError("Super expression must either be null or a function");
    }
    subClass.prototype = Object.create(superClass && superClass.prototype, {
        constructor: {
            value: subClass,
            writable: true,
            configurable: true
        }
    });
    if (superClass) _set_prototype_of(subClass, superClass);
}
function _is_native_function(fn) {
    return Function.toString.call(fn).indexOf("[native code]") !== -1;
}
function _iterable_to_array(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
function _iterable_to_array_limit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
    var _s, _e;
    try {
        for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
            _arr.push(_s.value);
            if (i && _arr.length === i) break;
        }
    } catch (err) {
        _d = true;
        _e = err;
    } finally{
        try {
            if (!_n && _i["return"] != null) _i["return"]();
        } finally{
            if (_d) throw _e;
        }
    }
    return _arr;
}
function _non_iterable_rest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _non_iterable_spread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _possible_constructor_return(self1, call) {
    if (call && (_type_of(call) === "object" || typeof call === "function")) {
        return call;
    }
    return _assert_this_initialized(self1);
}
function _set_prototype_of(o, p) {
    _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
        o.__proto__ = p;
        return o;
    };
    return _set_prototype_of(o, p);
}
function _sliced_to_array(arr, i) {
    return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
}
function _to_array(arr) {
    return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
}
function _to_consumable_array(arr) {
    return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
}
function _type_of(obj) {
    "@swc/helpers - typeof";
    return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
function _unsupported_iterable_to_array(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _array_like_to_array(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(n);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
}
function _wrap_native_super(Class) {
    var _cache = typeof Map === "function" ? new Map() : undefined;
    _wrap_native_super = function wrapNativeSuper(Class) {
        if (Class === null || !_is_native_function(Class)) return Class;
        if (typeof Class !== "function") {
            throw new TypeError("Super expression must either be null or a function");
        }
        if (typeof _cache !== "undefined") {
            if (_cache.has(Class)) return _cache.get(Class);
            _cache.set(Class, Wrapper);
        }
        function Wrapper() {
            return _construct(Class, arguments, _get_prototype_of(this).constructor);
        }
        Wrapper.prototype = Object.create(Class.prototype, {
            constructor: {
                value: Wrapper,
                enumerable: false,
                writable: true,
                configurable: true
            }
        });
        return _set_prototype_of(Wrapper, Class);
    };
    return _wrap_native_super(Class);
}
function _is_native_reflect_construct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;
    try {
        Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
        return true;
    } catch (e) {
        return false;
    }
}
function _create_super(Derived) {
    var hasNativeReflectConstruct = _is_native_reflect_construct();
    return function _createSuperInternal() {
        var Super = _get_prototype_of(Derived), result1;
        if (hasNativeReflectConstruct) {
            var NewTarget = _get_prototype_of(this).constructor;
            result1 = Reflect.construct(Super, arguments, NewTarget);
        } else {
            result1 = Super.apply(this, arguments);
        }
        return _possible_constructor_return(this, result1);
    };
}
function _ts_generator(thisArg, body) {
    var f, y, t, g, _ = {
        label: 0,
        sent: function() {
            if (t[0] & 1) throw t[1];
            return t[1];
        },
        trys: [],
        ops: []
    };
    return g = {
        next: verb(0),
        "throw": verb(1),
        "return": verb(2)
    }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
        return this;
    }), g;
    function verb(n) {
        return function(v) {
            return step([
                n,
                v
            ]);
        };
    }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while(_)try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [
                op[0] & 2,
                t.value
            ];
            switch(op[0]){
                case 0:
                case 1:
                    t = op;
                    break;
                case 4:
                    _.label++;
                    return {
                        value: op[1],
                        done: false
                    };
                case 5:
                    _.label++;
                    y = op[1];
                    op = [
                        0
                    ];
                    continue;
                case 7:
                    op = _.ops.pop();
                    _.trys.pop();
                    continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                        _ = 0;
                        continue;
                    }
                    if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                        _.label = op[1];
                        break;
                    }
                    if (op[0] === 6 && _.label < t[1]) {
                        _.label = t[1];
                        t = op;
                        break;
                    }
                    if (t && _.label < t[2]) {
                        _.label = t[2];
                        _.ops.push(op);
                        break;
                    }
                    if (t[2]) _.ops.pop();
                    _.trys.pop();
                    continue;
            }
            op = body.call(thisArg, _);
        } catch (e) {
            op = [
                6,
                e
            ];
            y = 0;
        } finally{
            f = t = 0;
        }
        if (op[0] & 5) throw op[1];
        return {
            value: op[0] ? op[1] : void 0,
            done: true
        };
    }
}
function _ts_values(o) {
    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
    if (m) return m.call(o);
    if (o && typeof o.length === "number") return {
        next: function() {
            if (o && i >= o.length) o = void 0;
            return {
                value: o && o[i++],
                done: !o
            };
        }
    };
    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
(function _target() {
    var _objectWithoutPropertiesLoose = // node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
    function _objectWithoutPropertiesLoose(r, e) {
        if (null == r) return {};
        var t = {};
        for(var n in r)if (({}).hasOwnProperty.call(r, n)) {
            if (-1 !== e.indexOf(n)) continue;
            t[n] = r[n];
        }
        return t;
    };
    var delayP = // node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.esm.js
    function delayP(ms, val) {
        if (val === void 0) {
            val = true;
        }
        var timeoutId;
        var promise3 = new Promise(function(resolve) {
            timeoutId = setTimeout(resolve, Math.min(MAX_SIGNED_INT, ms), val);
        });
        promise3[CANCEL] = function() {
            clearTimeout(timeoutId);
        };
        return promise3;
    };
    var remove = // node_modules/@redux-saga/core/dist/io-dec07f91.esm.js
    function remove(array4, item) {
        var index = array4.indexOf(item);
        if (index >= 0) {
            array4.splice(index, 1);
        }
    };
    var once = function once(fn) {
        var called = false;
        return function() {
            if (called) {
                return;
            }
            called = true;
            fn();
        };
    };
    var makeIterator = function makeIterator(next, thro, name) {
        if (thro === void 0) {
            thro = kThrow;
        }
        if (name === void 0) {
            name = "iterator";
        }
        var iterator3 = {
            meta: {
                name: name
            },
            next: next,
            "throw": thro,
            "return": kReturn,
            isSagaIterator: true
        };
        if (typeof Symbol !== "undefined") {
            iterator3[Symbol.iterator] = function() {
                return iterator3;
            };
        }
        return iterator3;
    };
    var logError = function logError(error, _ref2) {
        var sagaStack2 = _ref2.sagaStack;
        console.error(error);
        console.error(sagaStack2);
    };
    var createAllStyleChildCallbacks = function createAllStyleChildCallbacks(shape, parentCallback) {
        var keys = Object.keys(shape);
        var totalCount = keys.length;
        var completedCount = 0;
        var completed;
        var results = array(shape) ? createEmptyArray(totalCount) : {};
        var childCallbacks = {};
        function checkEnd() {
            if (completedCount === totalCount) {
                completed = true;
                parentCallback(results);
            }
        }
        keys.forEach(function(key) {
            var chCbAtKey = function chCbAtKey2(res, isErr) {
                if (completed) {
                    return;
                }
                if (isErr || shouldComplete(res)) {
                    parentCallback.cancel();
                    parentCallback(res, isErr);
                } else {
                    results[key] = res;
                    completedCount++;
                    checkEnd();
                }
            };
            chCbAtKey.cancel = noop;
            childCallbacks[key] = chCbAtKey;
        });
        parentCallback.cancel = function() {
            if (!completed) {
                completed = true;
                keys.forEach(function(key) {
                    return childCallbacks[key].cancel();
                });
            }
        };
        return childCallbacks;
    };
    var getMetaInfo = function getMetaInfo(fn) {
        return {
            name: fn.name || "anonymous",
            location: getLocation(fn)
        };
    };
    var getLocation = function getLocation(instrumented) {
        return instrumented[SAGA_LOCATION];
    };
    var compose = function compose() {
        for(var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++){
            funcs[_key] = arguments[_key];
        }
        if (funcs.length === 0) {
            return function(arg) {
                return arg;
            };
        }
        if (funcs.length === 1) {
            return funcs[0];
        }
        return funcs.reduce(function(a, b) {
            return function() {
                return a(b.apply(void 0, arguments));
            };
        });
    };
    var ringBuffer = function ringBuffer(limit, overflowAction) {
        if (limit === void 0) {
            limit = 10;
        }
        var arr = new Array(limit);
        var length = 0;
        var pushIndex = 0;
        var popIndex = 0;
        var push = function push2(it) {
            arr[pushIndex] = it;
            pushIndex = (pushIndex + 1) % limit;
            length++;
        };
        var take2 = function take3() {
            if (length != 0) {
                var it = arr[popIndex];
                arr[popIndex] = null;
                length--;
                popIndex = (popIndex + 1) % limit;
                return it;
            }
        };
        var flush3 = function flush4() {
            var items = [];
            while(length){
                items.push(take2());
            }
            return items;
        };
        return {
            isEmpty: function isEmpty() {
                return length == 0;
            },
            put: function put2(it) {
                if (length < limit) {
                    push(it);
                } else {
                    var doubledLimit;
                    switch(overflowAction){
                        case ON_OVERFLOW_THROW:
                            throw new Error(BUFFER_OVERFLOW);
                        case ON_OVERFLOW_SLIDE:
                            arr[pushIndex] = it;
                            pushIndex = (pushIndex + 1) % limit;
                            popIndex = pushIndex;
                            break;
                        case ON_OVERFLOW_EXPAND:
                            doubledLimit = 2 * limit;
                            arr = flush3();
                            length = arr.length;
                            pushIndex = arr.length;
                            popIndex = 0;
                            arr.length = doubledLimit;
                            limit = doubledLimit;
                            push(it);
                            break;
                    }
                }
            },
            take: take2,
            flush: flush3
        };
    };
    var take = function take(patternOrChannel, multicastPattern) {
        if (patternOrChannel === void 0) {
            patternOrChannel = "*";
        }
        if (_pattern(patternOrChannel)) {
            if (notUndef(multicastPattern)) {
                console.warn("take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types");
            }
            return makeEffect(TAKE, {
                pattern: patternOrChannel
            });
        }
        if (multicast(patternOrChannel) && notUndef(multicastPattern) && _pattern(multicastPattern)) {
            return makeEffect(TAKE, {
                channel: patternOrChannel,
                pattern: multicastPattern
            });
        }
        if (channel(patternOrChannel)) {
            if (notUndef(multicastPattern)) {
                console.warn("take(channel) takes one argument but two were provided. Second argument is ignored.");
            }
            return makeEffect(TAKE, {
                channel: patternOrChannel
            });
        }
    };
    var put = function put(channel4, action) {
        if (undef(action)) {
            action = channel4;
            channel4 = void 0;
        }
        return makeEffect(PUT, {
            channel: channel4,
            action: action
        });
    };
    var all = function all(effects) {
        var eff = makeEffect(ALL, effects);
        eff.combinator = true;
        return eff;
    };
    var race = function race(effects) {
        var eff = makeEffect(RACE, effects);
        eff.combinator = true;
        return eff;
    };
    var getFnCallDescriptor = function getFnCallDescriptor(fnDescriptor, args) {
        var context = null;
        var fn;
        if (func(fnDescriptor)) {
            fn = fnDescriptor;
        } else {
            if (array(fnDescriptor)) {
                context = fnDescriptor[0];
                fn = fnDescriptor[1];
            } else {
                context = fnDescriptor.context;
                fn = fnDescriptor.fn;
            }
            if (context && string(fn) && func(context[fn])) {
                fn = context[fn];
            }
        }
        return {
            context: context,
            fn: fn,
            args: args
        };
    };
    var call = function call(fnDescriptor) {
        for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
            args[_key - 1] = arguments[_key];
        }
        return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));
    };
    var apply = function apply(context, fn, args) {
        if (args === void 0) {
            args = [];
        }
        return makeEffect(CALL, getFnCallDescriptor([
            context,
            fn
        ], args));
    };
    var cps = function cps(fnDescriptor) {
        for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){
            args[_key2 - 1] = arguments[_key2];
        }
        return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));
    };
    var fork = function fork(fnDescriptor) {
        for(var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++){
            args[_key3 - 1] = arguments[_key3];
        }
        return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));
    };
    var spawn = function spawn(fnDescriptor) {
        for(var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++){
            args[_key4 - 1] = arguments[_key4];
        }
        return detach(fork.apply(void 0, [
            fnDescriptor
        ].concat(args)));
    };
    var join = function join(taskOrTasks) {
        return makeEffect(JOIN, taskOrTasks);
    };
    var cancel = function cancel(taskOrTasks) {
        if (taskOrTasks === void 0) {
            taskOrTasks = SELF_CANCELLATION;
        }
        return makeEffect(CANCEL2, taskOrTasks);
    };
    var select = function select(selector) {
        if (selector === void 0) {
            selector = identity;
        }
        for(var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++){
            args[_key5 - 1] = arguments[_key5];
        }
        return makeEffect(SELECT, {
            selector: selector,
            args: args
        });
    };
    var actionChannel = function actionChannel(pattern2, buffer) {
        return makeEffect(ACTION_CHANNEL, {
            pattern: pattern2,
            buffer: buffer
        });
    };
    var cancelled = function cancelled() {
        return makeEffect(CANCELLED, {});
    };
    var flush = function flush(channel4) {
        return makeEffect(FLUSH, channel4);
    };
    var getContext = function getContext(prop) {
        return makeEffect(GET_CONTEXT, prop);
    };
    var setContext = function setContext(props) {
        return makeEffect(SET_CONTEXT, props);
    };
    var deferred = // node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js
    function deferred() {
        var def = {};
        def.promise = new Promise(function(resolve, reject) {
            def.resolve = resolve;
            def.reject = reject;
        });
        return def;
    };
    var _arrayLikeToArray = // node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
    function _arrayLikeToArray(r, a) {
        (null == a || a > r.length) && (a = r.length);
        for(var e = 0, n = Array(a); e < a; e++)n[e] = r[e];
        return n;
    };
    var exec = function exec(task) {
        try {
            suspend();
            task();
        } finally{
            release();
        }
    };
    var asap = function asap(task) {
        queue.push(task);
        if (!semaphore) {
            suspend();
            flush2();
        }
    };
    var immediately = function immediately(task) {
        try {
            suspend();
            return task();
        } finally{
            flush2();
        }
    };
    var suspend = function suspend() {
        semaphore++;
    };
    var release = function release() {
        semaphore--;
    };
    var flush2 = function flush2() {
        release();
        var task;
        while(!semaphore && (task = queue.shift()) !== void 0){
            exec(task);
        }
    };
    var matcher = function matcher(pattern2) {
        var matcherCreator = pattern2 === "*" ? wildcard : string(pattern2) ? string3 : array(pattern2) ? array2 : stringableFunc(pattern2) ? string3 : func(pattern2) ? predicate : symbol(pattern2) ? symbol3 : null;
        if (matcherCreator === null) {
            throw new Error("invalid pattern: " + pattern2);
        }
        return matcherCreator(pattern2);
    };
    var channel3 = function channel3(buffer) {
        if (buffer === void 0) {
            buffer = expanding();
        }
        var closed = false;
        var takers = [];
        function put2(input) {
            if (closed) {
                return;
            }
            if (takers.length === 0) {
                return buffer.put(input);
            }
            var cb = takers.shift();
            cb(input);
        }
        function take2(cb) {
            if (closed && buffer.isEmpty()) {
                cb(END);
            } else if (!buffer.isEmpty()) {
                cb(buffer.take());
            } else {
                takers.push(cb);
                cb.cancel = function() {
                    remove(takers, cb);
                };
            }
        }
        function flush3(cb) {
            if (closed && buffer.isEmpty()) {
                cb(END);
                return;
            }
            cb(buffer.flush());
        }
        function close() {
            if (closed) {
                return;
            }
            closed = true;
            var arr = takers;
            takers = [];
            for(var i = 0, len = arr.length; i < len; i++){
                var taker = arr[i];
                taker(END);
            }
        }
        return {
            take: take2,
            put: put2,
            flush: flush3,
            close: close
        };
    };
    var eventChannel = function eventChannel(subscribe, buffer) {
        if (buffer === void 0) {
            buffer = none();
        }
        var closed = false;
        var unsubscribe;
        var chan = channel3(buffer);
        var close = function close2() {
            if (closed) {
                return;
            }
            closed = true;
            if (func(unsubscribe)) {
                unsubscribe();
            }
            chan.close();
        };
        unsubscribe = subscribe(function(input) {
            if (isEnd(input)) {
                close();
                return;
            }
            chan.put(input);
        });
        unsubscribe = once(unsubscribe);
        if (closed) {
            unsubscribe();
        }
        return {
            take: chan.take,
            flush: chan.flush,
            close: close
        };
    };
    var multicastChannel = function multicastChannel() {
        var _ref;
        var closed = false;
        var currentTakers = [];
        var nextTakers = currentTakers;
        var ensureCanMutateNextTakers = function ensureCanMutateNextTakers2() {
            if (nextTakers !== currentTakers) {
                return;
            }
            nextTakers = currentTakers.slice();
        };
        var close = function close2() {
            closed = true;
            var takers = currentTakers = nextTakers;
            nextTakers = [];
            takers.forEach(function(taker) {
                taker(END);
            });
        };
        return _ref = {}, _ref[MULTICAST] = true, _ref.put = function put2(input) {
            if (closed) {
                return;
            }
            if (isEnd(input)) {
                close();
                return;
            }
            var takers = currentTakers = nextTakers;
            for(var i = 0, len = takers.length; i < len; i++){
                var taker = takers[i];
                if (taker[MATCH](input)) {
                    taker.cancel();
                    taker(input);
                }
            }
        }, _ref.take = function take2(cb, matcher2) {
            if (matcher2 === void 0) {
                matcher2 = wildcard;
            }
            if (closed) {
                cb(END);
                return;
            }
            cb[MATCH] = matcher2;
            ensureCanMutateNextTakers();
            nextTakers.push(cb);
            cb.cancel = once(function() {
                ensureCanMutateNextTakers();
                remove(nextTakers, cb);
            });
        }, _ref.close = close, _ref;
    };
    var stdChannel = function stdChannel() {
        var chan = multicastChannel();
        var put2 = chan.put;
        chan.put = function(input) {
            if (input[SAGA_ACTION]) {
                put2(input);
                return;
            }
            asap(function() {
                put2(input);
            });
        };
        return chan;
    };
    var resolvePromise = function resolvePromise(promise3, cb) {
        var cancelPromise = promise3[CANCEL];
        if (func(cancelPromise)) {
            cb.cancel = cancelPromise;
        }
        promise3.then(cb, function(error) {
            cb(error, true);
        });
    };
    var getIteratorMetaInfo = function getIteratorMetaInfo(iterator3, fn) {
        if (iterator3.isSagaIterator) {
            return {
                name: iterator3.meta.name
            };
        }
        return getMetaInfo(fn);
    };
    var createTaskIterator = function createTaskIterator(_ref) {
        var context = _ref.context, fn = _ref.fn, args = _ref.args;
        try {
            var result17 = fn.apply(context, args);
            if (iterator(result17)) {
                return result17;
            }
            var resolved = false;
            var next = function next2(arg) {
                if (!resolved) {
                    resolved = true;
                    return {
                        value: result17,
                        done: !promise(result17)
                    };
                } else {
                    return {
                        value: arg,
                        done: true
                    };
                }
            };
            return makeIterator(next);
        } catch (err) {
            return makeIterator(function() {
                throw err;
            });
        }
    };
    var runPutEffect = function runPutEffect(env, _ref2, cb) {
        var channel4 = _ref2.channel, action = _ref2.action, resolve = _ref2.resolve;
        asap(function() {
            var result17;
            try {
                result17 = (channel4 ? channel4.put : env.dispatch)(action);
            } catch (error) {
                cb(error, true);
                return;
            }
            if (resolve && promise(result17)) {
                resolvePromise(result17, cb);
            } else {
                cb(result17);
            }
        });
    };
    var runTakeEffect = function runTakeEffect(env, _ref3, cb) {
        var _ref3$channel = _ref3.channel, channel4 = _ref3$channel === void 0 ? env.channel : _ref3$channel, pattern2 = _ref3.pattern, maybe = _ref3.maybe;
        var takeCb = function takeCb2(input) {
            if (input instanceof Error) {
                cb(input, true);
                return;
            }
            if (isEnd(input) && !maybe) {
                cb(TERMINATE);
                return;
            }
            cb(input);
        };
        try {
            channel4.take(takeCb, notUndef(pattern2) ? matcher(pattern2) : null);
        } catch (err) {
            cb(err, true);
            return;
        }
        cb.cancel = takeCb.cancel;
    };
    var runCallEffect = function runCallEffect(env, _ref4, cb, _ref5) {
        var context = _ref4.context, fn = _ref4.fn, args = _ref4.args;
        var task = _ref5.task;
        try {
            var result17 = fn.apply(context, args);
            if (promise(result17)) {
                resolvePromise(result17, cb);
                return;
            }
            if (iterator(result17)) {
                proc(env, result17, task.context, current, getMetaInfo(fn), /* isRoot */ false, cb);
                return;
            }
            cb(result17);
        } catch (error) {
            cb(error, true);
        }
    };
    var runCPSEffect = function runCPSEffect(env, _ref6, cb) {
        var context = _ref6.context, fn = _ref6.fn, args = _ref6.args;
        try {
            var cpsCb = function cpsCb2(err, res) {
                if (undef(err)) {
                    cb(res);
                } else {
                    cb(err, true);
                }
            };
            fn.apply(context, args.concat(cpsCb));
            if (cpsCb.cancel) {
                cb.cancel = cpsCb.cancel;
            }
        } catch (error) {
            cb(error, true);
        }
    };
    var runForkEffect = function runForkEffect(env, _ref7, cb, _ref8) {
        var context = _ref7.context, fn = _ref7.fn, args = _ref7.args, detached = _ref7.detached;
        var parent2 = _ref8.task;
        var taskIterator = createTaskIterator({
            context: context,
            fn: fn,
            args: args
        });
        var meta = getIteratorMetaInfo(taskIterator, fn);
        immediately(function() {
            var child = proc(env, taskIterator, parent2.context, current, meta, detached, void 0);
            if (detached) {
                cb(child);
            } else {
                if (child.isRunning()) {
                    parent2.queue.addTask(child);
                    cb(child);
                } else if (child.isAborted()) {
                    parent2.queue.abort(child.error());
                } else {
                    cb(child);
                }
            }
        });
    };
    var runJoinEffect = function runJoinEffect(env, taskOrTasks, cb, _ref9) {
        var task = _ref9.task;
        var joinSingleTask = function joinSingleTask2(taskToJoin, cb2) {
            if (taskToJoin.isRunning()) {
                var joiner = {
                    task: task,
                    cb: cb2
                };
                cb2.cancel = function() {
                    if (taskToJoin.isRunning()) remove(taskToJoin.joiners, joiner);
                };
                taskToJoin.joiners.push(joiner);
            } else {
                if (taskToJoin.isAborted()) {
                    cb2(taskToJoin.error(), true);
                } else {
                    cb2(taskToJoin.result());
                }
            }
        };
        if (array(taskOrTasks)) {
            if (taskOrTasks.length === 0) {
                cb([]);
                return;
            }
            var childCallbacks = createAllStyleChildCallbacks(taskOrTasks, cb);
            taskOrTasks.forEach(function(t, i) {
                joinSingleTask(t, childCallbacks[i]);
            });
        } else {
            joinSingleTask(taskOrTasks, cb);
        }
    };
    var cancelSingleTask = function cancelSingleTask(taskToCancel) {
        if (taskToCancel.isRunning()) {
            taskToCancel.cancel();
        }
    };
    var runCancelEffect = function runCancelEffect(env, taskOrTasks, cb, _ref0) {
        var task = _ref0.task;
        if (taskOrTasks === SELF_CANCELLATION) {
            cancelSingleTask(task);
        } else if (array(taskOrTasks)) {
            taskOrTasks.forEach(cancelSingleTask);
        } else {
            cancelSingleTask(taskOrTasks);
        }
        cb();
    };
    var runAllEffect = function runAllEffect(env, effects, cb, _ref1) {
        var digestEffect = _ref1.digestEffect;
        var effectId = current;
        var keys = Object.keys(effects);
        if (keys.length === 0) {
            cb(array(effects) ? [] : {});
            return;
        }
        var childCallbacks = createAllStyleChildCallbacks(effects, cb);
        keys.forEach(function(key) {
            digestEffect(effects[key], effectId, childCallbacks[key], key);
        });
    };
    var runRaceEffect = function runRaceEffect(env, effects, cb, _ref10) {
        var digestEffect = _ref10.digestEffect;
        var effectId = current;
        var keys = Object.keys(effects);
        var response = array(effects) ? createEmptyArray(keys.length) : {};
        var childCbs = {};
        var completed = false;
        keys.forEach(function(key) {
            var chCbAtKey = function chCbAtKey2(res, isErr) {
                if (completed) {
                    return;
                }
                if (isErr || shouldComplete(res)) {
                    cb.cancel();
                    cb(res, isErr);
                } else {
                    cb.cancel();
                    completed = true;
                    response[key] = res;
                    cb(response);
                }
            };
            chCbAtKey.cancel = noop;
            childCbs[key] = chCbAtKey;
        });
        cb.cancel = function() {
            if (!completed) {
                completed = true;
                keys.forEach(function(key) {
                    return childCbs[key].cancel();
                });
            }
        };
        keys.forEach(function(key) {
            if (completed) {
                return;
            }
            digestEffect(effects[key], effectId, childCbs[key], key);
        });
    };
    var runSelectEffect = function runSelectEffect(env, _ref11, cb) {
        var selector = _ref11.selector, args = _ref11.args;
        try {
            var state = selector.apply(void 0, [
                env.getState()
            ].concat(args));
            cb(state);
        } catch (error) {
            cb(error, true);
        }
    };
    var runChannelEffect = function runChannelEffect(env, _ref12, cb) {
        var pattern2 = _ref12.pattern, buffer = _ref12.buffer;
        var chan = channel3(buffer);
        var match = matcher(pattern2);
        var _taker = function taker(action) {
            if (!isEnd(action)) {
                env.channel.take(_taker, match);
            }
            chan.put(action);
        };
        var close = chan.close;
        chan.close = function() {
            _taker.cancel();
            close();
        };
        env.channel.take(_taker, match);
        cb(chan);
    };
    var runCancelledEffect = function runCancelledEffect(env, data, cb, _ref13) {
        var task = _ref13.task;
        cb(task.isCancelled());
    };
    var runFlushEffect = function runFlushEffect(env, channel4, cb) {
        channel4.flush(cb);
    };
    var runGetContextEffect = function runGetContextEffect(env, prop, cb, _ref14) {
        var task = _ref14.task;
        cb(task.context[prop]);
    };
    var runSetContextEffect = function runSetContextEffect(env, props, cb, _ref15) {
        var task = _ref15.task;
        assignWithSymbols(task.context, props);
        cb();
    };
    var forkQueue = function forkQueue(mainTask, onAbort, cont) {
        var tasks = [];
        var result17;
        var completed = false;
        addTask(mainTask);
        var getTasks = function getTasks2() {
            return tasks;
        };
        function abort(err) {
            onAbort();
            cancelAll();
            cont(err, true);
        }
        function addTask(task) {
            tasks.push(task);
            task.cont = function(res, isErr) {
                if (completed) {
                    return;
                }
                remove(tasks, task);
                task.cont = noop;
                if (isErr) {
                    abort(res);
                } else {
                    if (task === mainTask) {
                        result17 = res;
                    }
                    if (!tasks.length) {
                        completed = true;
                        cont(result17);
                    }
                }
            };
        }
        function cancelAll() {
            if (completed) {
                return;
            }
            completed = true;
            tasks.forEach(function(t) {
                t.cont = noop;
                t.cancel();
            });
            tasks = [];
        }
        return {
            addTask: addTask,
            cancelAll: cancelAll,
            abort: abort,
            getTasks: getTasks
        };
    };
    var formatLocation = function formatLocation(fileName, lineNumber) {
        return fileName + "?" + lineNumber;
    };
    var effectLocationAsString = function effectLocationAsString(effect) {
        var location2 = getLocation(effect);
        if (location2) {
            var code = location2.code, fileName = location2.fileName, lineNumber = location2.lineNumber;
            var source = code + "  " + formatLocation(fileName, lineNumber);
            return source;
        }
        return "";
    };
    var sagaLocationAsString = function sagaLocationAsString(sagaMeta) {
        var name = sagaMeta.name, location2 = sagaMeta.location;
        if (location2) {
            return name + "  " + formatLocation(location2.fileName, location2.lineNumber);
        }
        return name;
    };
    var cancelledTasksAsString = function cancelledTasksAsString(sagaStack2) {
        var cancelledTasks = flatMap(function(i) {
            return i.cancelledTasks;
        }, sagaStack2);
        if (!cancelledTasks.length) {
            return "";
        }
        return [
            "Tasks cancelled due to error:"
        ].concat(cancelledTasks).join("\n");
    };
    var newTask = function newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont) {
        var _task;
        if (cont === void 0) {
            cont = noop;
        }
        var status = RUNNING;
        var taskResult;
        var taskError;
        var deferredEnd = null;
        var cancelledDueToErrorTasks = [];
        var context = Object.create(parentContext);
        var queue2 = forkQueue(mainTask, function onAbort() {
            cancelledDueToErrorTasks.push.apply(cancelledDueToErrorTasks, queue2.getTasks().map(function(t) {
                return t.meta.name;
            }));
        }, end);
        function cancel2() {
            if (status === RUNNING) {
                status = CANCELLED2;
                queue2.cancelAll();
                end(TASK_CANCEL, false);
            }
        }
        function end(result17, isErr) {
            if (!isErr) {
                if (result17 === TASK_CANCEL) {
                    status = CANCELLED2;
                } else if (status !== CANCELLED2) {
                    status = DONE;
                }
                taskResult = result17;
                deferredEnd && deferredEnd.resolve(result17);
            } else {
                status = ABORTED;
                addSagaFrame({
                    meta: meta,
                    cancelledTasks: cancelledDueToErrorTasks
                });
                if (task.isRoot) {
                    var sagaStack2 = toString();
                    clear();
                    env.onError(result17, {
                        sagaStack: sagaStack2
                    });
                }
                taskError = result17;
                deferredEnd && deferredEnd.reject(result17);
            }
            task.cont(result17, isErr);
            task.joiners.forEach(function(joiner) {
                joiner.cb(result17, isErr);
            });
            task.joiners = null;
        }
        function setContext2(props) {
            assignWithSymbols(context, props);
        }
        function toPromise() {
            if (deferredEnd) {
                return deferredEnd.promise;
            }
            deferredEnd = deferred();
            if (status === ABORTED) {
                deferredEnd.reject(taskError);
            } else if (status !== RUNNING) {
                deferredEnd.resolve(taskResult);
            }
            return deferredEnd.promise;
        }
        var task = (_task = {}, _task[TASK] = true, _task.id = parentEffectId, _task.meta = meta, _task.isRoot = isRoot, _task.context = context, _task.joiners = [], _task.queue = queue2, _task.cancel = cancel2, _task.cont = cont, _task.end = end, _task.setContext = setContext2, _task.toPromise = toPromise, _task.isRunning = function isRunning() {
            return status === RUNNING;
        }, _task.isCancelled = function isCancelled() {
            return status === CANCELLED2 || status === RUNNING && mainTask.status === CANCELLED2;
        }, _task.isAborted = function isAborted() {
            return status === ABORTED;
        }, _task.result = function result17() {
            return taskResult;
        }, _task.error = function error() {
            return taskError;
        }, _task);
        return task;
    };
    var runSaga = function runSaga(_ref, saga) {
        var _ref$channel = _ref.channel, channel4 = _ref$channel === void 0 ? stdChannel() : _ref$channel, dispatch = _ref.dispatch, getState = _ref.getState, _ref$context = _ref.context, context = _ref$context === void 0 ? {} : _ref$context, sagaMonitor = _ref.sagaMonitor, effectMiddlewares = _ref.effectMiddlewares, _ref$onError = _ref.onError, onError = _ref$onError === void 0 ? logError : _ref$onError;
        for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            args[_key - 2] = arguments[_key];
        }
        var iterator3 = saga.apply(void 0, args);
        var effectId = nextSagaId();
        if (sagaMonitor) {
            sagaMonitor.rootSagaStarted = sagaMonitor.rootSagaStarted || noop;
            sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;
            sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop;
            sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop;
            sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;
            sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;
            sagaMonitor.rootSagaStarted({
                effectId: effectId,
                saga: saga,
                args: args
            });
        }
        var finalizeRunEffect;
        if (effectMiddlewares) {
            var middleware = compose.apply(void 0, effectMiddlewares);
            finalizeRunEffect = function finalizeRunEffect2(runEffect) {
                return function(effect, effectId2, currCb) {
                    var plainRunEffect = function plainRunEffect2(eff) {
                        return runEffect(eff, effectId2, currCb);
                    };
                    return middleware(plainRunEffect)(effect);
                };
            };
        } else {
            finalizeRunEffect = identity;
        }
        var env = {
            channel: channel4,
            dispatch: wrapSagaDispatch(dispatch),
            getState: getState,
            sagaMonitor: sagaMonitor,
            onError: onError,
            finalizeRunEffect: finalizeRunEffect
        };
        return immediately(function() {
            var task = proc(env, iterator3, context, effectId, getMetaInfo(saga), /* isRoot */ true, void 0);
            if (sagaMonitor) {
                sagaMonitor.effectResolved(effectId, task);
            }
            return task;
        });
    };
    var sagaMiddlewareFactory = function sagaMiddlewareFactory(_temp) {
        var _ref = _temp === void 0 ? {} : _temp, _ref$context = _ref.context, context = _ref$context === void 0 ? {} : _ref$context, _ref$channel = _ref.channel, channel4 = _ref$channel === void 0 ? stdChannel() : _ref$channel, sagaMonitor = _ref.sagaMonitor, options = _objectWithoutPropertiesLoose(_ref, _excluded);
        var boundRunSaga;
        function sagaMiddleware(_ref2) {
            var getState = _ref2.getState, dispatch = _ref2.dispatch;
            boundRunSaga = runSaga.bind(null, _extends({}, options, {
                context: context,
                channel: channel4,
                dispatch: dispatch,
                getState: getState,
                sagaMonitor: sagaMonitor
            }));
            return function(next) {
                return function(action) {
                    if (sagaMonitor && sagaMonitor.actionDispatched) {
                        sagaMonitor.actionDispatched(action);
                    }
                    var result17 = next(action);
                    channel4.put(action);
                    return result17;
                };
            };
        }
        sagaMiddleware.run = function() {
            return boundRunSaga.apply(void 0, arguments);
        };
        sagaMiddleware.setContext = function(props) {
            assignWithSymbols(context, props);
        };
        return sagaMiddleware;
    };
    var safeName = function safeName(patternOrChannel) {
        if (channel(patternOrChannel)) {
            return "channel";
        }
        if (stringableFunc(patternOrChannel)) {
            return String(patternOrChannel);
        }
        if (func(patternOrChannel)) {
            return patternOrChannel.name;
        }
        return String(patternOrChannel);
    };
    var fsmIterator = function fsmIterator(fsm, startState, name) {
        var stateUpdater, errorState, effect, nextState = startState;
        function next(arg, error) {
            if (nextState === qEnd) {
                return done(arg);
            }
            if (error && !errorState) {
                nextState = qEnd;
                throw error;
            } else {
                stateUpdater && stateUpdater(arg);
                var currentState = error ? fsm[errorState](error) : fsm[nextState]();
                nextState = currentState.nextState;
                effect = currentState.effect;
                stateUpdater = currentState.stateUpdater;
                errorState = currentState.errorState;
                return nextState === qEnd ? done(arg) : effect;
            }
        }
        return makeIterator(next, function(error) {
            return next(null, error);
        }, name);
    };
    var takeEvery$1 = function takeEvery$1(patternOrChannel, worker) {
        for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            args[_key - 2] = arguments[_key];
        }
        var yTake = {
            done: false,
            value: take(patternOrChannel)
        };
        var yFork = function yFork2(ac) {
            return {
                done: false,
                value: fork.apply(void 0, [
                    worker
                ].concat(args, [
                    ac
                ]))
            };
        };
        var action, setAction = function setAction2(ac) {
            return action = ac;
        };
        return fsmIterator({
            q1: function q1() {
                return {
                    nextState: "q2",
                    effect: yTake,
                    stateUpdater: setAction
                };
            },
            q2: function q2() {
                return {
                    nextState: "q1",
                    effect: yFork(action)
                };
            }
        }, "q1", "takeEvery(" + safeName(patternOrChannel) + ", " + worker.name + ")");
    };
    var takeLatest$1 = function takeLatest$1(patternOrChannel, worker) {
        for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            args[_key - 2] = arguments[_key];
        }
        var yTake = {
            done: false,
            value: take(patternOrChannel)
        };
        var yFork = function yFork2(ac) {
            return {
                done: false,
                value: fork.apply(void 0, [
                    worker
                ].concat(args, [
                    ac
                ]))
            };
        };
        var yCancel = function yCancel2(task2) {
            return {
                done: false,
                value: cancel(task2)
            };
        };
        var task, action;
        var setTask = function setTask2(t) {
            return task = t;
        };
        var setAction = function setAction2(ac) {
            return action = ac;
        };
        return fsmIterator({
            q1: function q1() {
                return {
                    nextState: "q2",
                    effect: yTake,
                    stateUpdater: setAction
                };
            },
            q2: function q2() {
                return task ? {
                    nextState: "q3",
                    effect: yCancel(task)
                } : {
                    nextState: "q1",
                    effect: yFork(action),
                    stateUpdater: setTask
                };
            },
            q3: function q3() {
                return {
                    nextState: "q1",
                    effect: yFork(action),
                    stateUpdater: setTask
                };
            }
        }, "q1", "takeLatest(" + safeName(patternOrChannel) + ", " + worker.name + ")");
    };
    var takeLeading$1 = function takeLeading$1(patternOrChannel, worker) {
        for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            args[_key - 2] = arguments[_key];
        }
        var yTake = {
            done: false,
            value: take(patternOrChannel)
        };
        var yCall = function yCall2(ac) {
            return {
                done: false,
                value: call.apply(void 0, [
                    worker
                ].concat(args, [
                    ac
                ]))
            };
        };
        var action;
        var setAction = function setAction2(ac) {
            return action = ac;
        };
        return fsmIterator({
            q1: function q1() {
                return {
                    nextState: "q2",
                    effect: yTake,
                    stateUpdater: setAction
                };
            },
            q2: function q2() {
                return {
                    nextState: "q1",
                    effect: yCall(action)
                };
            }
        }, "q1", "takeLeading(" + safeName(patternOrChannel) + ", " + worker.name + ")");
    };
    var throttle$1 = function throttle$1(delayLength, patternOrChannel, worker) {
        for(var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
            args[_key - 3] = arguments[_key];
        }
        var action, channel4;
        var yTake = function yTake2() {
            return {
                done: false,
                value: take(channel4)
            };
        };
        var yFork = function yFork2(ac) {
            return {
                done: false,
                value: fork.apply(void 0, [
                    worker
                ].concat(args, [
                    ac
                ]))
            };
        };
        var yDelay = {
            done: false,
            value: delay(delayLength)
        };
        var setAction = function setAction2(ac) {
            return action = ac;
        };
        var setChannel = function setChannel2(ch) {
            return channel4 = ch;
        };
        var needsChannel = !channel(patternOrChannel);
        if (!needsChannel) {
            setChannel(patternOrChannel);
        }
        return fsmIterator({
            q1: function q1() {
                var yActionChannel = {
                    done: false,
                    value: actionChannel(patternOrChannel, sliding(1))
                };
                return {
                    nextState: "q2",
                    effect: yActionChannel,
                    stateUpdater: setChannel
                };
            },
            q2: function q2() {
                return {
                    nextState: "q3",
                    effect: yTake(),
                    stateUpdater: setAction
                };
            },
            q3: function q3() {
                return {
                    nextState: "q4",
                    effect: yFork(action)
                };
            },
            q4: function q4() {
                return {
                    nextState: "q2",
                    effect: yDelay
                };
            }
        }, needsChannel ? "q1" : "q2", "throttle(" + safeName(patternOrChannel) + ", " + worker.name + ")");
    };
    var retry$1 = function retry$1(maxTries, delayLength, fn) {
        var counter = maxTries;
        for(var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
            args[_key - 3] = arguments[_key];
        }
        var yCall = {
            done: false,
            value: call.apply(void 0, [
                fn
            ].concat(args))
        };
        var yDelay = {
            done: false,
            value: delay(delayLength)
        };
        return fsmIterator({
            q1: function q1() {
                return {
                    nextState: "q2",
                    effect: yCall,
                    errorState: "q10"
                };
            },
            q2: function q2() {
                return {
                    nextState: qEnd
                };
            },
            q10: function q10(error) {
                counter -= 1;
                if (counter <= 0) {
                    throw error;
                }
                return {
                    nextState: "q1",
                    effect: yDelay
                };
            }
        }, "q1", "retry(" + fn.name + ")");
    };
    var debounceHelper = function debounceHelper(delayLength, patternOrChannel, worker) {
        for(var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
            args[_key - 3] = arguments[_key];
        }
        var action, raceOutput;
        var yTake = {
            done: false,
            value: take(patternOrChannel)
        };
        var yRace = {
            done: false,
            value: race({
                action: take(patternOrChannel),
                debounce: delay(delayLength)
            })
        };
        var yFork = function yFork2(ac) {
            return {
                done: false,
                value: fork.apply(void 0, [
                    worker
                ].concat(args, [
                    ac
                ]))
            };
        };
        var yNoop = function yNoop2(value) {
            return {
                done: false,
                value: value
            };
        };
        var setAction = function setAction2(ac) {
            return action = ac;
        };
        var setRaceOutput = function setRaceOutput2(ro) {
            return raceOutput = ro;
        };
        return fsmIterator({
            q1: function q1() {
                return {
                    nextState: "q2",
                    effect: yTake,
                    stateUpdater: setAction
                };
            },
            q2: function q2() {
                return {
                    nextState: "q3",
                    effect: yRace,
                    stateUpdater: setRaceOutput
                };
            },
            q3: function q3() {
                return raceOutput.debounce ? {
                    nextState: "q1",
                    effect: yFork(action)
                } : {
                    nextState: "q2",
                    effect: yNoop(raceOutput.action),
                    stateUpdater: setAction
                };
            }
        }, "q1", "debounce(" + safeName(patternOrChannel) + ", " + worker.name + ")");
    };
    var takeEvery = function takeEvery(patternOrChannel, worker) {
        for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            args[_key - 2] = arguments[_key];
        }
        return fork.apply(void 0, [
            takeEvery$1,
            patternOrChannel,
            worker
        ].concat(args));
    };
    var takeLatest = function takeLatest(patternOrChannel, worker) {
        for(var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++){
            args[_key2 - 2] = arguments[_key2];
        }
        return fork.apply(void 0, [
            takeLatest$1,
            patternOrChannel,
            worker
        ].concat(args));
    };
    var takeLeading = function takeLeading(patternOrChannel, worker) {
        for(var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++){
            args[_key3 - 2] = arguments[_key3];
        }
        return fork.apply(void 0, [
            takeLeading$1,
            patternOrChannel,
            worker
        ].concat(args));
    };
    var throttle = function throttle(ms, patternOrChannel, worker) {
        for(var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++){
            args[_key4 - 3] = arguments[_key4];
        }
        return fork.apply(void 0, [
            throttle$1,
            ms,
            patternOrChannel,
            worker
        ].concat(args));
    };
    var retry = function retry(maxTries, delayLength, worker) {
        for(var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++){
            args[_key5 - 3] = arguments[_key5];
        }
        return call.apply(void 0, [
            retry$1,
            maxTries,
            delayLength,
            worker
        ].concat(args));
    };
    var debounce = function debounce(delayLength, pattern2, worker) {
        for(var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++){
            args[_key6 - 3] = arguments[_key6];
        }
        return fork.apply(void 0, [
            debounceHelper,
            delayLength,
            pattern2,
            worker
        ].concat(args));
    };
    var loadVideo = // src/Video/videoHelper.ts
    function loadVideo(videoElement, uri) {
        return new Promise(function(resolve, reject) {
            videoElement.setAttribute("src", uri);
            var readyEvent = uri.startsWith("file://") ? "canplaythrough" : "canplay";
            var canPlayThroughListener;
            var emptiedListener;
            var loadstartListener;
            var errorListener;
            var stalledListener;
            var removeAllListeners = function() {
                videoElement.removeEventListener(readyEvent, canPlayThroughListener);
                videoElement.removeEventListener("emptied", emptiedListener);
                videoElement.removeEventListener("loadstart", loadstartListener);
                videoElement.removeEventListener("error", errorListener);
                videoElement.removeEventListener("stalled", stalledListener);
            };
            canPlayThroughListener = function() {
                removeAllListeners();
                resolve();
            };
            emptiedListener = function() {
                removeAllListeners();
                reject(new Error("Video status changed before it could finish prepare"));
            };
            loadstartListener = function() {
                videoElement.removeEventListener("loadstart", loadstartListener);
                videoElement.addEventListener(readyEvent, canPlayThroughListener);
                videoElement.addEventListener("emptied", emptiedListener);
                videoElement.addEventListener("error", errorListener);
                videoElement.addEventListener("stalled", stalledListener);
            };
            errorListener = function(event) {
                removeAllListeners();
                reject(new Error("Couldn't load video: ".concat(event.message)));
            };
            stalledListener = function() {
                removeAllListeners();
                reject(new Error("Couldn't load video because it's stalled"));
            };
            videoElement.addEventListener("loadstart", loadstartListener);
            videoElement.load();
        });
    };
    var createSafeEventEmitter = function createSafeEventEmitter() {
        var eventEmitter = new import_events.EventEmitter();
        eventEmitter.addListener("error", function() {});
        return eventEmitter;
    };
    var extractVideoDetails = // src/Video/videoDetails.ts
    function extractVideoDetails(video, localUri) {
        return __async(this, null, function() {
            var videoDurationMs, error;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!supportedExtensions.some(function(extension) {
                            return localUri.endsWith(extension);
                        })) return [
                            3,
                            5
                        ];
                        _state.label = 1;
                    case 1:
                        _state.trys.push([
                            1,
                            3,
                            ,
                            4
                        ]);
                        return [
                            4,
                            video.getDuration(localUri, 0, 0, 1, 1)
                        ];
                    case 2:
                        videoDurationMs = _state.sent();
                        return [
                            2,
                            {
                                videoDurationMs: videoDurationMs
                            }
                        ];
                    case 3:
                        error = _state.sent();
                        console.warn("Video duration cannot be extracted from video", localUri);
                        return [
                            3,
                            4
                        ];
                    case 4:
                        return [
                            3,
                            6
                        ];
                    case 5:
                        console.warn("File is not a supported video file, skipping", localUri);
                        _state.label = 6;
                    case 6:
                        return [
                            2
                        ];
                }
            });
        });
    };
    var applyScapOrDefaultFetch = // src/polyfills/fetch.ts
    function applyScapOrDefaultFetch() {
        var originalFetch = window.fetch;
        var storagePlugin = new window.Storage();
        function isLocalFile(url) {
            return url.startsWith("file://") || !url.includes("://") || url.startsWith(getBaseUrl());
        }
        window.fetch = function(input, init) {
            var url = typeof input === "string" ? input : input.url;
            var isGet = typeof input === "string" || input.method === "GET" || init && init.method === "GET";
            var baseUrl = getBaseUrl();
            var absoluteUrl = new URL(url, baseUrl + "/").href;
            if (isGet && isLocalFile(absoluteUrl)) {
                try {
                    return scapFetch(storagePlugin, absoluteUrl);
                } catch (error) {
                    console.warn("SCAP fetch failed, falling back to native fetch:", error);
                    return originalFetch(input, init);
                }
            } else {
                return originalFetch(input, init);
            }
        };
    };
    var scapFetch = function scapFetch(storagePlugin, path2) {
        return __async(this, null, function() {
            var scapFilePath;
            return _ts_generator(this, function(_state) {
                scapFilePath = convertPathToInternalFormat(path2);
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        storagePlugin.readFile(function(cbObject) {
                            resolve(scapFileToResponse(path2, cbObject));
                        }, function(cbObject) {
                            return reject(new Error(cbObject.errorText));
                        }, {
                            path: scapFilePath
                        });
                    })
                ];
            });
        });
    };
    var convertPathToInternalFormat = function convertPathToInternalFormat(path2) {
        var baseUrl = getBaseUrl();
        var relativePath = path2.substring(baseUrl.length + 1);
        if (relativePath.startsWith("external/")) {
            var relativePathWithoutExternal = relativePath.substring("external/".length);
            var _relativePathWithoutExternal_split = _sliced_to_array(relativePathWithoutExternal.split("/", 2), 2), externalStorage = _relativePathWithoutExternal_split[0], storageIndex = _relativePathWithoutExternal_split[1];
            var restOfPath = relativePathWithoutExternal.substring("".concat(externalStorage, "/").concat(storageIndex, "/").length);
            return "file://".concat(externalStorage, ":").concat(storageIndex, "/").concat(restOfPath);
        } else {
            return "file://internal/".concat(relativePath);
        }
    };
    var scapFileToResponse = function scapFileToResponse(path2, cbObject) {
        return {
            headers: {},
            ok: true,
            redirected: false,
            status: 200,
            statusText: "OK",
            trailer: Promise.resolve({}),
            type: "default",
            url: path2,
            text: function() {
                return cbObject.data;
            }
        };
    };
    var getBaseUrl = function getBaseUrl() {
        var currentUri = location.toString();
        var baseUrl = currentUri.substring(0, currentUri.lastIndexOf("/"));
        return baseUrl + "/content";
    };
    var getWebOSVersion = // src/Driver/SCAPHelper.ts
    function getWebOSVersion(window2) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        window2.webOS.service.request("luna://com.webos.service.tv.systemproperty", {
                            method: "getSystemInfo",
                            parameters: {
                                keys: [
                                    "UHD",
                                    "sdkVersion"
                                ]
                            },
                            onComplete: function onComplete(inResponse) {
                                var isSucceeded = inResponse.returnValue;
                                if (isSucceeded) {
                                    if (inResponse.sdkVersion.startsWith("4.0") && inResponse.UHD === "true") {
                                        resolve("4.1");
                                    } else {
                                        resolve(inResponse.sdkVersion);
                                    }
                                } else {
                                    reject(new Error("Can't read WebOS version"));
                                }
                            }
                        });
                    })
                ];
            });
        });
    };
    var runWatchDogTask = function runWatchDogTask(window2, configuration) {
        return __async(this, null, function() {
            var webOSHWVersion, unsupportedVersions, supportedVersions, e;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        webOSHWVersion = "";
                        _state.label = 1;
                    case 1:
                        _state.trys.push([
                            1,
                            5,
                            ,
                            6
                        ]);
                        return [
                            4,
                            getWebOSVersionOfHW(window2)
                        ];
                    case 2:
                        webOSHWVersion = _state.sent();
                        unsupportedVersions = /* @__PURE__ */ new Set([
                            "1.0",
                            "2.0",
                            "3.0"
                        ]);
                        supportedVersions = /* @__PURE__ */ new Set([
                            "3.2",
                            "4.0",
                            "4.1",
                            "6.0",
                            "8.0",
                            "9.0",
                            "9.0.0"
                        ]);
                        if (unsupportedVersions.has(webOSHWVersion)) {
                            console.log("Watchdog not available on this webOS version.", {
                                webOSVersion: webOSHWVersion,
                                enabled: configuration.enabled,
                                watchDogInterval: configuration.enabled ? configuration.healthcheckIntervalMs : 0
                            });
                            return [
                                2
                            ];
                        }
                        if (!supportedVersions.has(webOSHWVersion)) return [
                            3,
                            4
                        ];
                        return [
                            4,
                            callWatchdog(window2, webOSHWVersion, configuration)
                        ];
                    case 3:
                        _state.sent();
                        return [
                            2
                        ];
                    case 4:
                        console.log("Watchdog cannot start. Unknown webOS Version.");
                        return [
                            3,
                            6
                        ];
                    case 5:
                        e = _state.sent();
                        console.error("Watchdog cannot start. Unknown error, service is not supported on this webOS.", e);
                        return [
                            3,
                            6
                        ];
                    case 6:
                        return [
                            2
                        ];
                }
            });
        });
    };
    var callWatchdog = function callWatchdog(window2, webOSHWVersion, configuration) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        window2.webOS.service.request(SCAPv12FileSystem.SERVICE_REQUEST_URL, {
                            method: "runWatchDogTask",
                            parameters: {
                                webOSVersion: webOSHWVersion,
                                enabled: configuration.enabled,
                                healtcheckInterval: configuration.enabled ? configuration.healthcheckIntervalMs : 0
                            },
                            onSuccess: function onSuccess() {
                                return __async(this, null, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, import_wait2["default"])(10 * 1e3)
                                                ];
                                            case 1:
                                                _state.sent();
                                                resolve();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            },
                            onFailure: function onFailure(returnValue) {
                                console.error("Watchdog did not start correctly.", returnValue.errorText);
                                reject(new Error(returnValue.errorText));
                            },
                            subscribe: true
                        });
                    })
                ];
            });
        });
    };
    var getWebOSVersionOfHW = function getWebOSVersionOfHW(window2) {
        var custom = new window2.Custom();
        return new Promise(function(resolve, reject) {
            return custom.Signage.getwebOSVersion(function(cbObject) {
                return resolve(cbObject.webOSVersion);
            }, function(cbObject) {
                return reject(new Error("Error during getWebOSVersionOfHW native signage: " + cbObject.errorText));
            });
        });
    };
    var getPlatformInfo = function getPlatformInfo(deviceInfo) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Error dureing firmwareGetVersion: " + cbObject.errorText));
            };
            deviceInfo.getPlatformInfo(successCb, errorCb);
        });
    };
    var getProxyInfo = function getProxyInfo(deviceInfo) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Erro during getProxyInfo: " + cbObject.errorText));
            };
            deviceInfo.getProxyInfo(successCb, errorCb);
        });
    };
    var setProxyInfo = function setProxyInfo(deviceInfo, options) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Erro during setProxyInfo: " + cbObject.errorText));
            };
            deviceInfo.setProxyInfo(successCb, errorCb, options);
        });
    };
    var getSystemUsageInfo = function getSystemUsageInfo(deviceInfo, options) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Error during getSystemUsageInfo: " + cbObject.errorText));
            };
            deviceInfo.getSystemUsageInfo(successCb, errorCb, options);
        });
    };
    var getDeviceNetworkInfo = function getDeviceNetworkInfo(deviceInfo) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Error during getNetworkInfo: " + cbObject.errorText));
            };
            deviceInfo.getNetworkInfo(successCb, errorCb);
        });
    };
    var getWifiList = function getWifiList(deviceInfo) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject.networkInfo);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Error during getWifiList: " + cbObject.errorText));
            };
            deviceInfo.getWifiList(successCb, errorCb);
        });
    };
    var connectToWifi = function connectToWifi(deviceInfo, options) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Error during connectToWifi: " + cbObject.errorText));
            };
            deviceInfo.connectWifi(successCb, errorCb, options);
        });
    };
    var setNetworkInfo = function setNetworkInfo(deviceInfo, options) {
        return new Promise(function(resolve, reject) {
            var successCb = function(cbObject) {
                resolve(cbObject);
            };
            var errorCb = function(cbObject) {
                reject(new Error("Error during setNetworkInfo: " + cbObject.errorText));
            };
            deviceInfo.setNetworkInfo(successCb, errorCb, options);
        });
    };
    var isWebos = function isWebos(window2) {
        return typeof window2.webOS !== "undefined";
    };
    var isWebosVersion = function isWebosVersion(window2, version) {
        return __async(this, null, function() {
            var webOSVersion, webOSHWVersion, e;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        return [
                            4,
                            getWebOSVersion(window2)
                        ];
                    case 1:
                        webOSVersion = _state.sent();
                        if (!(version === 3 || version === 3.2)) return [
                            3,
                            6
                        ];
                        webOSHWVersion = "";
                        _state.label = 2;
                    case 2:
                        _state.trys.push([
                            2,
                            4,
                            ,
                            5
                        ]);
                        return [
                            4,
                            getWebOSVersionOfHW(window2)
                        ];
                    case 3:
                        webOSHWVersion = _state.sent();
                        return [
                            3,
                            5
                        ];
                    case 4:
                        e = _state.sent();
                        console.error("isWebosVersion", e);
                        return [
                            3,
                            5
                        ];
                    case 5:
                        return [
                            2,
                            parseFloat(webOSHWVersion) === version
                        ];
                    case 6:
                        if (version === 4) {
                            return [
                                2,
                                webOSVersion.startsWith("".concat(version.toString(), ".0"))
                            ];
                        }
                        return [
                            2,
                            webOSVersion.startsWith(version.toString())
                        ];
                }
            });
        });
    };
    var convertScapToIsoTimezone = function convertScapToIsoTimezone(scapTimezone) {
        return "".concat(scapTimezone.continent, "/").concat(scapTimezone.city);
    };
    var orientationToNativePortrait = // src/Driver/orientations.ts
    function orientationToNativePortrait(orientation) {
        switch(orientation){
            case import_Orientation2["default"].LANDSCAPE:
                return "off";
            case import_Orientation2["default"].PORTRAIT:
                return "90";
            case import_Orientation2["default"].LANDSCAPE_FLIPPED:
                return "180";
            case import_Orientation2["default"].PORTRAIT_FLIPPED:
                return "270";
            default:
                throw new Error("Invalid orientation: ".concat(orientation));
        }
    };
    var nativePortraitToOrientation = function nativePortraitToOrientation(nativePortrait) {
        switch(nativePortrait){
            case "off":
                return import_Orientation2["default"].LANDSCAPE;
            case "90":
                return import_Orientation2["default"].PORTRAIT;
            case "180":
                return import_Orientation2["default"].LANDSCAPE_FLIPPED;
            case "270":
                return import_Orientation2["default"].PORTRAIT_FLIPPED;
            default:
                throw new Error("Invalid nativePortrait: ".concat(nativePortrait));
        }
    };
    var flippedOrientation = function flippedOrientation(orientation) {
        switch(orientation){
            case import_Orientation2["default"].LANDSCAPE:
                return import_Orientation2["default"].LANDSCAPE_FLIPPED;
            case import_Orientation2["default"].PORTRAIT:
                return import_Orientation2["default"].PORTRAIT_FLIPPED;
            case import_Orientation2["default"].LANDSCAPE_FLIPPED:
                return import_Orientation2["default"].LANDSCAPE;
            case import_Orientation2["default"].PORTRAIT_FLIPPED:
                return import_Orientation2["default"].PORTRAIT;
            default:
                throw new Error("Invalid orientation");
        }
    };
    var validateOrientation = function validateOrientation(orientation) {
        if (orientation === import_Orientation2["default"].AUTO) {
            throw new Error("Unsupported orientation: ".concat(orientation));
        }
    };
    var loadImageBitmap = // src/ImageHash/aHashHelper.ts
    function loadImageBitmap(imagePath) {
        var rotation = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        var img = new Image();
                        img.onload = function() {
                            var canvas = document.createElement("canvas");
                            var totalRotation = rotation;
                            totalRotation = (totalRotation % 360 + 360) % 360;
                            var isOrthogonal = totalRotation === 90 || totalRotation === 270;
                            if (isOrthogonal) {
                                canvas.width = img.height;
                                canvas.height = img.width;
                            } else {
                                canvas.width = img.width;
                                canvas.height = img.height;
                            }
                            var ctx = canvas.getContext("2d");
                            if (!ctx) {
                                reject(new Error("Failed to get canvas context"));
                                return;
                            }
                            if (totalRotation !== 0) {
                                ctx.translate(canvas.width / 2, canvas.height / 2);
                                ctx.rotate(totalRotation * Math.PI / 180);
                                ctx.translate(-img.width / 2, -img.height / 2);
                            }
                            ctx.drawImage(img, 0, 0);
                            var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
                            resolve({
                                width: canvas.width,
                                height: canvas.height,
                                data: imageData.data,
                                imageData: imageData
                            });
                        };
                        img.onerror = function() {
                            reject(new Error("Failed to load image: ".concat(imagePath)));
                        };
                        img.src = imagePath;
                    })
                ];
            });
        });
    };
    var bicubicKernel = function bicubicKernel(x) {
        var absX = Math.abs(x);
        if (absX <= 1) {
            var x2 = absX * absX;
            var x3 = x2 * absX;
            return 1.5 * x3 - 2.5 * x2 + 1;
        } else if (absX < 2) {
            var x21 = absX * absX;
            var x31 = x21 * absX;
            return -0.5 * x31 + 2.5 * x21 - 4 * absX + 2;
        }
        return 0;
    };
    var getGrayscalePixelClamped = function getGrayscalePixelClamped(data, width, height, x, y) {
        x = Math.max(0, Math.min(width - 1, x));
        y = Math.max(0, Math.min(height - 1, y));
        var offset = (y * width + x) * 4;
        var r = data[offset];
        var g = data[offset + 1];
        var b = data[offset + 2];
        return 0.299 * r + 0.587 * g + 0.114 * b;
    };
    var bicubicInterpolateGrayscale = function bicubicInterpolateGrayscale(data, width, height, x, y) {
        var x0 = Math.floor(x);
        var y0 = Math.floor(y);
        var dx = x - x0;
        var dy = y - y0;
        var kernelX = [
            bicubicKernel(dx + 1),
            bicubicKernel(dx),
            bicubicKernel(dx - 1),
            bicubicKernel(dx - 2)
        ];
        var kernelY = [
            bicubicKernel(dy + 1),
            bicubicKernel(dy),
            bicubicKernel(dy - 1),
            bicubicKernel(dy - 2)
        ];
        var value = 0;
        for(var j = 0; j < 4; j++){
            for(var i = 0; i < 4; i++){
                var pixel = getGrayscalePixelClamped(data, width, height, x0 + i - 1, y0 + j - 1);
                value += pixel * kernelX[i] * kernelY[j];
            }
        }
        return value;
    };
    var scaleImageBicubicToGrayscale = function scaleImageBicubicToGrayscale(imageData, newWidth, newHeight) {
        var width = imageData.width, height = imageData.height, data = imageData.data;
        var pixelCount = newWidth * newHeight;
        var grayscale = new Float32Array(pixelCount);
        var scaleX = width / newWidth;
        var scaleY = height / newHeight;
        var index = 0;
        for(var y = 0; y < newHeight; y++){
            for(var x = 0; x < newWidth; x++){
                var srcX = (x + 0.5) * scaleX - 0.5;
                var srcY = (y + 0.5) * scaleY - 0.5;
                grayscale[index++] = bicubicInterpolateGrayscale(data, width, height, srcX, srcY);
            }
        }
        return grayscale;
    };
    var computeAHash = function computeAHash(imageData) {
        var hashWidth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 16, hashHeight = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 16;
        var grayscaleValues = scaleImageBicubicToGrayscale(imageData, hashWidth, hashHeight);
        var sum = 0;
        for(var i = 0; i < grayscaleValues.length; i++){
            sum += grayscaleValues[i];
        }
        var average = sum / grayscaleValues.length;
        var pixelCount = grayscaleValues.length;
        var expectedHexLength = Math.ceil(pixelCount / 4);
        var hexChars = new Array(expectedHexLength);
        for(var i1 = 0; i1 < expectedHexLength; i1++){
            var baseIdx = i1 * 4;
            var nibble = 0;
            if (baseIdx < pixelCount && grayscaleValues[baseIdx] >= average) {
                nibble |= 8;
            }
            if (baseIdx + 1 < pixelCount && grayscaleValues[baseIdx + 1] >= average) {
                nibble |= 4;
            }
            if (baseIdx + 2 < pixelCount && grayscaleValues[baseIdx + 2] >= average) {
                nibble |= 2;
            }
            if (baseIdx + 3 < pixelCount && grayscaleValues[baseIdx + 3] >= average) {
                nibble |= 1;
            }
            hexChars[i1] = nibble.toString(16);
        }
        var hash = hexChars.join("");
        if (hashWidth === 16 && hashHeight === 16) {
            return hash.padStart(AHASH_16X16_LENGTH, "0");
        }
        return hash;
    };
    var computeAHashFromPath = function computeAHashFromPath(screenshotDataUri) {
        var width = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 16, height = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 16, rotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
        return __async(this, null, function() {
            var bitmapData;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        return [
                            4,
                            loadImageBitmap(screenshotDataUri, rotation)
                        ];
                    case 1:
                        bitmapData = _state.sent();
                        return [
                            2,
                            computeAHash(bitmapData, width, height)
                        ];
                }
            });
        });
    };
    var extractMdcResponse = // src/NativeCommands/WebosNativeMdc.ts
    function extractMdcResponse(response) {
        var mdcResponse = response.mdcResponse;
        if (!mdcResponse || (typeof mdcResponse === "undefined" ? "undefined" : _type_of(mdcResponse)) !== "object") {
            return null;
        }
        var mdc = mdcResponse;
        return {
            type: mdc.type === "ACK" ? "ACK" : "NACK",
            commandType: typeof mdc.commandType === "number" ? mdc.commandType : 0,
            // Pass raw result value through without conversion — matches Tizen's `as any` behavior
            // Runtime value: number[] for ACK, number for NACK (from parseMDCResponse)
            result: mdc.result
        };
    };
    var concat = // node_modules/jose/dist/browser/lib/buffer_utils.js
    function concat() {
        for(var _len = arguments.length, buffers2 = new Array(_len), _key = 0; _key < _len; _key++){
            buffers2[_key] = arguments[_key];
        }
        var size = buffers2.reduce(function(acc, param) {
            var length = param.length;
            return acc + length;
        }, 0);
        var buf = new Uint8Array(size);
        var i = 0;
        var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
        try {
            for(var _iterator = buffers2[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                var buffer = _step.value;
                buf.set(buffer, i);
                i += buffer.length;
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally{
            try {
                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                    _iterator["return"]();
                }
            } finally{
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
        return buf;
    };
    var p2s = function p2s(alg, p2sInput) {
        return concat(encoder.encode(alg), new Uint8Array([
            0
        ]), p2sInput);
    };
    var writeUInt32BE = function writeUInt32BE(buf, value, offset) {
        if (value < 0 || value >= MAX_INT32) {
            throw new RangeError("value must be >= 0 and <= ".concat(MAX_INT32 - 1, ". Received ").concat(value));
        }
        buf.set([
            value >>> 24,
            value >>> 16,
            value >>> 8,
            value & 255
        ], offset);
    };
    var uint64be = function uint64be(value) {
        var high = Math.floor(value / MAX_INT32);
        var low = value % MAX_INT32;
        var buf = new Uint8Array(8);
        writeUInt32BE(buf, high, 0);
        writeUInt32BE(buf, low, 4);
        return buf;
    };
    var uint32be = function uint32be(value) {
        var buf = new Uint8Array(4);
        writeUInt32BE(buf, value);
        return buf;
    };
    var lengthAndInput = function lengthAndInput(input) {
        return concat(uint32be(input.length), input);
    };
    var concatKdf = function concatKdf(secret, bits, value) {
        return __async(this, null, function() {
            var iterations, res, iter, buf, _;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        iterations = Math.ceil((bits >> 3) / 32);
                        res = new Uint8Array(iterations * 32);
                        iter = 0;
                        _state.label = 1;
                    case 1:
                        if (!(iter < iterations)) return [
                            3,
                            4
                        ];
                        buf = new Uint8Array(4 + secret.length + value.length);
                        buf.set(uint32be(iter + 1));
                        buf.set(secret, 4);
                        buf.set(value, 4 + secret.length);
                        _ = res.set;
                        return [
                            4,
                            digest_default("sha256", buf)
                        ];
                    case 2:
                        _.apply(res, [
                            _state.sent(),
                            iter * 32
                        ]);
                        _state.label = 3;
                    case 3:
                        iter++;
                        return [
                            3,
                            1
                        ];
                    case 4:
                        return [
                            2,
                            res.slice(0, bits >> 3)
                        ];
                }
            });
        });
    };
    var bitLength = // node_modules/jose/dist/browser/lib/iv.js
    function bitLength(alg) {
        switch(alg){
            case "A128GCM":
            case "A128GCMKW":
            case "A192GCM":
            case "A192GCMKW":
            case "A256GCM":
            case "A256GCMKW":
                return 96;
            case "A128CBC-HS256":
            case "A192CBC-HS384":
            case "A256CBC-HS512":
                return 128;
            default:
                throw new JOSENotSupported("Unsupported JWE Algorithm: ".concat(alg));
        }
    };
    var unusable = // node_modules/jose/dist/browser/lib/crypto_key.js
    function unusable(name) {
        var prop = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "algorithm.name";
        return new TypeError("CryptoKey does not support this operation, its ".concat(prop, " must be ").concat(name));
    };
    var isAlgorithm = function isAlgorithm(algorithm, name) {
        return algorithm.name === name;
    };
    var getHashLength = function getHashLength(hash) {
        return parseInt(hash.name.slice(4), 10);
    };
    var getNamedCurve = function getNamedCurve(alg) {
        switch(alg){
            case "ES256":
                return "P-256";
            case "ES384":
                return "P-384";
            case "ES512":
                return "P-521";
            default:
                throw new Error("unreachable");
        }
    };
    var checkUsage = function checkUsage(key, usages) {
        if (usages.length && !usages.some(function(expected) {
            return key.usages.includes(expected);
        })) {
            var msg = "CryptoKey does not support this operation, its usages must include ";
            if (usages.length > 2) {
                var last = usages.pop();
                msg += "one of ".concat(usages.join(", "), ", or ").concat(last, ".");
            } else if (usages.length === 2) {
                msg += "one of ".concat(usages[0], " or ").concat(usages[1], ".");
            } else {
                msg += "".concat(usages[0], ".");
            }
            throw new TypeError(msg);
        }
    };
    var checkSigCryptoKey = function checkSigCryptoKey(key, alg) {
        for(var _len = arguments.length, usages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            usages[_key - 2] = arguments[_key];
        }
        switch(alg){
            case "HS256":
            case "HS384":
            case "HS512":
                {
                    if (!isAlgorithm(key.algorithm, "HMAC")) throw unusable("HMAC");
                    var expected = parseInt(alg.slice(2), 10);
                    var actual = getHashLength(key.algorithm.hash);
                    if (actual !== expected) throw unusable("SHA-".concat(expected), "algorithm.hash");
                    break;
                }
            case "RS256":
            case "RS384":
            case "RS512":
                {
                    if (!isAlgorithm(key.algorithm, "RSASSA-PKCS1-v1_5")) throw unusable("RSASSA-PKCS1-v1_5");
                    var expected1 = parseInt(alg.slice(2), 10);
                    var actual1 = getHashLength(key.algorithm.hash);
                    if (actual1 !== expected1) throw unusable("SHA-".concat(expected1), "algorithm.hash");
                    break;
                }
            case "PS256":
            case "PS384":
            case "PS512":
                {
                    if (!isAlgorithm(key.algorithm, "RSA-PSS")) throw unusable("RSA-PSS");
                    var expected2 = parseInt(alg.slice(2), 10);
                    var actual2 = getHashLength(key.algorithm.hash);
                    if (actual2 !== expected2) throw unusable("SHA-".concat(expected2), "algorithm.hash");
                    break;
                }
            case "EdDSA":
                {
                    if (key.algorithm.name !== "Ed25519" && key.algorithm.name !== "Ed448") {
                        throw unusable("Ed25519 or Ed448");
                    }
                    break;
                }
            case "ES256":
            case "ES384":
            case "ES512":
                {
                    if (!isAlgorithm(key.algorithm, "ECDSA")) throw unusable("ECDSA");
                    var expected3 = getNamedCurve(alg);
                    var actual3 = key.algorithm.namedCurve;
                    if (actual3 !== expected3) throw unusable(expected3, "algorithm.namedCurve");
                    break;
                }
            default:
                throw new TypeError("CryptoKey does not support this operation");
        }
        checkUsage(key, usages);
    };
    var checkEncCryptoKey = function checkEncCryptoKey(key, alg) {
        for(var _len = arguments.length, usages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            usages[_key - 2] = arguments[_key];
        }
        switch(alg){
            case "A128GCM":
            case "A192GCM":
            case "A256GCM":
                {
                    if (!isAlgorithm(key.algorithm, "AES-GCM")) throw unusable("AES-GCM");
                    var expected = parseInt(alg.slice(1, 4), 10);
                    var actual = key.algorithm.length;
                    if (actual !== expected) throw unusable(expected, "algorithm.length");
                    break;
                }
            case "A128KW":
            case "A192KW":
            case "A256KW":
                {
                    if (!isAlgorithm(key.algorithm, "AES-KW")) throw unusable("AES-KW");
                    var expected1 = parseInt(alg.slice(1, 4), 10);
                    var actual1 = key.algorithm.length;
                    if (actual1 !== expected1) throw unusable(expected1, "algorithm.length");
                    break;
                }
            case "ECDH":
                {
                    switch(key.algorithm.name){
                        case "ECDH":
                        case "X25519":
                        case "X448":
                            break;
                        default:
                            throw unusable("ECDH, X25519, or X448");
                    }
                    break;
                }
            case "PBES2-HS256+A128KW":
            case "PBES2-HS384+A192KW":
            case "PBES2-HS512+A256KW":
                if (!isAlgorithm(key.algorithm, "PBKDF2")) throw unusable("PBKDF2");
                break;
            case "RSA-OAEP":
            case "RSA-OAEP-256":
            case "RSA-OAEP-384":
            case "RSA-OAEP-512":
                {
                    if (!isAlgorithm(key.algorithm, "RSA-OAEP")) throw unusable("RSA-OAEP");
                    var expected2 = parseInt(alg.slice(9), 10) || 1;
                    var actual2 = getHashLength(key.algorithm.hash);
                    if (actual2 !== expected2) throw unusable("SHA-".concat(expected2), "algorithm.hash");
                    break;
                }
            default:
                throw new TypeError("CryptoKey does not support this operation");
        }
        checkUsage(key, usages);
    };
    var message = // node_modules/jose/dist/browser/lib/invalid_key_input.js
    function message(msg, actual) {
        for(var _len = arguments.length, types2 = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            types2[_key - 2] = arguments[_key];
        }
        var _a2;
        types2 = types2.filter(Boolean);
        if (types2.length > 2) {
            var last = types2.pop();
            msg += "one of type ".concat(types2.join(", "), ", or ").concat(last, ".");
        } else if (types2.length === 2) {
            msg += "one of type ".concat(types2[0], " or ").concat(types2[1], ".");
        } else {
            msg += "of type ".concat(types2[0], ".");
        }
        if (actual == null) {
            msg += " Received ".concat(actual);
        } else if (typeof actual === "function" && actual.name) {
            msg += " Received function ".concat(actual.name);
        } else if ((typeof actual === "undefined" ? "undefined" : _type_of(actual)) === "object" && actual != null) {
            if ((_a2 = actual.constructor) == null ? void 0 : _a2.name) {
                msg += " Received an instance of ".concat(actual.constructor.name);
            }
        }
        return msg;
    };
    var withAlg = function withAlg(alg, actual) {
        for(var _len = arguments.length, types2 = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
            types2[_key - 2] = arguments[_key];
        }
        return message.apply(void 0, [
            "Key for the ".concat(alg, " algorithm must be "),
            actual
        ].concat(_to_consumable_array(types2)));
    };
    var cbcDecrypt = // node_modules/jose/dist/browser/runtime/decrypt.js
    function cbcDecrypt(enc, cek, ciphertext, iv, tag2, aad) {
        return __async(this, null, function() {
            var keySize, encKey, macKey, macData, expectedTag, _, macCheckPassed, plaintext, _1, e;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!(cek instanceof Uint8Array)) {
                            throw new TypeError(invalid_key_input_default(cek, "Uint8Array"));
                        }
                        keySize = parseInt(enc.slice(1, 4), 10);
                        return [
                            4,
                            webcrypto_default.subtle.importKey("raw", cek.subarray(keySize >> 3), "AES-CBC", false, [
                                "decrypt"
                            ])
                        ];
                    case 1:
                        encKey = _state.sent();
                        return [
                            4,
                            webcrypto_default.subtle.importKey("raw", cek.subarray(0, keySize >> 3), {
                                hash: "SHA-".concat(keySize << 1),
                                name: "HMAC"
                            }, false, [
                                "sign"
                            ])
                        ];
                    case 2:
                        macKey = _state.sent();
                        macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));
                        _ = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.sign("HMAC", macKey, macData)
                        ];
                    case 3:
                        expectedTag = new (_.apply(Uint8Array, [
                            void 0,
                            _state.sent().slice(0, keySize >> 3)
                        ]));
                        try {
                            macCheckPassed = timing_safe_equal_default(tag2, expectedTag);
                        } catch (e) {}
                        if (!macCheckPassed) {
                            throw new JWEDecryptionFailed();
                        }
                        _state.label = 4;
                    case 4:
                        _state.trys.push([
                            4,
                            6,
                            ,
                            7
                        ]);
                        _1 = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.decrypt({
                                iv: iv,
                                name: "AES-CBC"
                            }, encKey, ciphertext)
                        ];
                    case 5:
                        plaintext = new (_1.apply(Uint8Array, [
                            void 0,
                            _state.sent()
                        ]));
                        return [
                            3,
                            7
                        ];
                    case 6:
                        e = _state.sent();
                        return [
                            3,
                            7
                        ];
                    case 7:
                        if (!plaintext) {
                            throw new JWEDecryptionFailed();
                        }
                        return [
                            2,
                            plaintext
                        ];
                }
            });
        });
    };
    var gcmDecrypt = function gcmDecrypt(enc, cek, ciphertext, iv, tag2, aad) {
        return __async(this, null, function() {
            var encKey, _, e;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!(cek instanceof Uint8Array)) return [
                            3,
                            2
                        ];
                        return [
                            4,
                            webcrypto_default.subtle.importKey("raw", cek, "AES-GCM", false, [
                                "decrypt"
                            ])
                        ];
                    case 1:
                        encKey = _state.sent();
                        return [
                            3,
                            3
                        ];
                    case 2:
                        checkEncCryptoKey(cek, enc, "decrypt");
                        encKey = cek;
                        _state.label = 3;
                    case 3:
                        _state.trys.push([
                            3,
                            5,
                            ,
                            6
                        ]);
                        _ = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.decrypt({
                                additionalData: aad,
                                iv: iv,
                                name: "AES-GCM",
                                tagLength: 128
                            }, encKey, concat(ciphertext, tag2))
                        ];
                    case 4:
                        return [
                            2,
                            new (_.apply(Uint8Array, [
                                void 0,
                                _state.sent()
                            ]))
                        ];
                    case 5:
                        e = _state.sent();
                        throw new JWEDecryptionFailed();
                    case 6:
                        return [
                            2
                        ];
                }
            });
        });
    };
    var isObjectLike = // node_modules/jose/dist/browser/lib/is_object.js
    function isObjectLike(value) {
        return (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && value !== null;
    };
    var isObject = function isObject(input) {
        if (!isObjectLike(input) || Object.prototype.toString.call(input) !== "[object Object]") {
            return false;
        }
        if (Object.getPrototypeOf(input) === null) {
            return true;
        }
        var proto = input;
        while(Object.getPrototypeOf(proto) !== null){
            proto = Object.getPrototypeOf(proto);
        }
        return Object.getPrototypeOf(input) === proto;
    };
    var checkKeySize = // node_modules/jose/dist/browser/runtime/aeskw.js
    function checkKeySize(key, alg) {
        if (key.algorithm.length !== parseInt(alg.slice(1, 4), 10)) {
            throw new TypeError("Invalid key size for alg: ".concat(alg));
        }
    };
    var getCryptoKey = function getCryptoKey(key, alg, usage) {
        if (isCryptoKey(key)) {
            checkEncCryptoKey(key, alg, usage);
            return key;
        }
        if (key instanceof Uint8Array) {
            return webcrypto_default.subtle.importKey("raw", key, "AES-KW", true, [
                usage
            ]);
        }
        throw new TypeError(invalid_key_input_default.apply(void 0, [
            key
        ].concat(_to_consumable_array(types), [
            "Uint8Array"
        ])));
    };
    var deriveKey = // node_modules/jose/dist/browser/runtime/ecdhes.js
    function deriveKey(_0, _1, _2, _3) {
        return __async(this, arguments, function(publicKey, privateKey, algorithm, keyLength) {
            var apu, apv, value, length, sharedSecret, _;
            var _arguments = arguments;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        apu = _arguments.length > 4 && _arguments[4] !== void 0 ? _arguments[4] : new Uint8Array(0), apv = _arguments.length > 5 && _arguments[5] !== void 0 ? _arguments[5] : new Uint8Array(0);
                        if (!isCryptoKey(publicKey)) {
                            throw new TypeError(invalid_key_input_default.apply(void 0, [
                                publicKey
                            ].concat(_to_consumable_array(types))));
                        }
                        checkEncCryptoKey(publicKey, "ECDH");
                        if (!isCryptoKey(privateKey)) {
                            throw new TypeError(invalid_key_input_default.apply(void 0, [
                                privateKey
                            ].concat(_to_consumable_array(types))));
                        }
                        checkEncCryptoKey(privateKey, "ECDH", "deriveBits");
                        value = concat(lengthAndInput(encoder.encode(algorithm)), lengthAndInput(apu), lengthAndInput(apv), uint32be(keyLength));
                        if (publicKey.algorithm.name === "X25519") {
                            length = 256;
                        } else if (publicKey.algorithm.name === "X448") {
                            length = 448;
                        } else {
                            length = Math.ceil(parseInt(publicKey.algorithm.namedCurve.substr(-3), 10) / 8) << 3;
                        }
                        _ = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.deriveBits({
                                name: publicKey.algorithm.name,
                                public: publicKey
                            }, privateKey, length)
                        ];
                    case 1:
                        sharedSecret = new (_.apply(Uint8Array, [
                            void 0,
                            _state.sent()
                        ]));
                        return [
                            2,
                            concatKdf(sharedSecret, keyLength, value)
                        ];
                }
            });
        });
    };
    var generateEpk = function generateEpk(key) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                if (!isCryptoKey(key)) {
                    throw new TypeError(invalid_key_input_default.apply(void 0, [
                        key
                    ].concat(_to_consumable_array(types))));
                }
                return [
                    2,
                    webcrypto_default.subtle.generateKey(key.algorithm, true, [
                        "deriveBits"
                    ])
                ];
            });
        });
    };
    var ecdhAllowed = function ecdhAllowed(key) {
        if (!isCryptoKey(key)) {
            throw new TypeError(invalid_key_input_default.apply(void 0, [
                key
            ].concat(_to_consumable_array(types))));
        }
        return [
            "P-256",
            "P-384",
            "P-521"
        ].includes(key.algorithm.namedCurve) || key.algorithm.name === "X25519" || key.algorithm.name === "X448";
    };
    var checkP2s = // node_modules/jose/dist/browser/lib/check_p2s.js
    function checkP2s(p2s2) {
        if (!(p2s2 instanceof Uint8Array) || p2s2.length < 8) {
            throw new JWEInvalid("PBES2 Salt Input must be 8 or more octets");
        }
    };
    var getCryptoKey2 = // node_modules/jose/dist/browser/runtime/pbes2kw.js
    function getCryptoKey2(key, alg) {
        if (key instanceof Uint8Array) {
            return webcrypto_default.subtle.importKey("raw", key, "PBKDF2", false, [
                "deriveBits"
            ]);
        }
        if (isCryptoKey(key)) {
            checkEncCryptoKey(key, alg, "deriveBits", "deriveKey");
            return key;
        }
        throw new TypeError(invalid_key_input_default.apply(void 0, [
            key
        ].concat(_to_consumable_array(types), [
            "Uint8Array"
        ])));
    };
    var deriveKey2 = function deriveKey2(p2s2, alg, p2c, key) {
        return __async(this, null, function() {
            var salt, keylen, subtleAlg, wrapAlg, cryptoKey, _;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        checkP2s(p2s2);
                        salt = p2s(alg, p2s2);
                        keylen = parseInt(alg.slice(13, 16), 10);
                        subtleAlg = {
                            hash: "SHA-".concat(alg.slice(8, 11)),
                            iterations: p2c,
                            name: "PBKDF2",
                            salt: salt
                        };
                        wrapAlg = {
                            length: keylen,
                            name: "AES-KW"
                        };
                        return [
                            4,
                            getCryptoKey2(key, alg)
                        ];
                    case 1:
                        cryptoKey = _state.sent();
                        if (!cryptoKey.usages.includes("deriveBits")) return [
                            3,
                            3
                        ];
                        _ = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.deriveBits(subtleAlg, cryptoKey, keylen)
                        ];
                    case 2:
                        return [
                            2,
                            new (_.apply(Uint8Array, [
                                void 0,
                                _state.sent()
                            ]))
                        ];
                    case 3:
                        if (cryptoKey.usages.includes("deriveKey")) {
                            return [
                                2,
                                webcrypto_default.subtle.deriveKey(subtleAlg, cryptoKey, wrapAlg, false, [
                                    "wrapKey",
                                    "unwrapKey"
                                ])
                            ];
                        }
                        throw new TypeError('PBKDF2 key "usages" must include "deriveBits" or "deriveKey"');
                }
            });
        });
    };
    var subtleRsaEs = // node_modules/jose/dist/browser/runtime/subtle_rsaes.js
    function subtleRsaEs(alg) {
        switch(alg){
            case "RSA-OAEP":
            case "RSA-OAEP-256":
            case "RSA-OAEP-384":
            case "RSA-OAEP-512":
                return "RSA-OAEP";
            default:
                throw new JOSENotSupported("alg ".concat(alg, " is not supported either by JOSE or your javascript runtime"));
        }
    };
    var isJWK = // node_modules/jose/dist/browser/lib/is_jwk.js
    function isJWK(key) {
        return isObject(key) && typeof key.kty === "string";
    };
    var isPrivateJWK = function isPrivateJWK(key) {
        return key.kty !== "oct" && typeof key.d === "string";
    };
    var isPublicJWK = function isPublicJWK(key) {
        return key.kty !== "oct" && typeof key.d === "undefined";
    };
    var isSecretJWK = function isSecretJWK(key) {
        return isJWK(key) && key.kty === "oct" && typeof key.k === "string";
    };
    var subtleMapping = // node_modules/jose/dist/browser/runtime/jwk_to_key.js
    function subtleMapping(jwk) {
        var algorithm;
        var keyUsages;
        switch(jwk.kty){
            case "RSA":
                {
                    switch(jwk.alg){
                        case "PS256":
                        case "PS384":
                        case "PS512":
                            algorithm = {
                                name: "RSA-PSS",
                                hash: "SHA-".concat(jwk.alg.slice(-3))
                            };
                            keyUsages = jwk.d ? [
                                "sign"
                            ] : [
                                "verify"
                            ];
                            break;
                        case "RS256":
                        case "RS384":
                        case "RS512":
                            algorithm = {
                                name: "RSASSA-PKCS1-v1_5",
                                hash: "SHA-".concat(jwk.alg.slice(-3))
                            };
                            keyUsages = jwk.d ? [
                                "sign"
                            ] : [
                                "verify"
                            ];
                            break;
                        case "RSA-OAEP":
                        case "RSA-OAEP-256":
                        case "RSA-OAEP-384":
                        case "RSA-OAEP-512":
                            algorithm = {
                                name: "RSA-OAEP",
                                hash: "SHA-".concat(parseInt(jwk.alg.slice(-3), 10) || 1)
                            };
                            keyUsages = jwk.d ? [
                                "decrypt",
                                "unwrapKey"
                            ] : [
                                "encrypt",
                                "wrapKey"
                            ];
                            break;
                        default:
                            throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
                    }
                    break;
                }
            case "EC":
                {
                    switch(jwk.alg){
                        case "ES256":
                            algorithm = {
                                name: "ECDSA",
                                namedCurve: "P-256"
                            };
                            keyUsages = jwk.d ? [
                                "sign"
                            ] : [
                                "verify"
                            ];
                            break;
                        case "ES384":
                            algorithm = {
                                name: "ECDSA",
                                namedCurve: "P-384"
                            };
                            keyUsages = jwk.d ? [
                                "sign"
                            ] : [
                                "verify"
                            ];
                            break;
                        case "ES512":
                            algorithm = {
                                name: "ECDSA",
                                namedCurve: "P-521"
                            };
                            keyUsages = jwk.d ? [
                                "sign"
                            ] : [
                                "verify"
                            ];
                            break;
                        case "ECDH-ES":
                        case "ECDH-ES+A128KW":
                        case "ECDH-ES+A192KW":
                        case "ECDH-ES+A256KW":
                            algorithm = {
                                name: "ECDH",
                                namedCurve: jwk.crv
                            };
                            keyUsages = jwk.d ? [
                                "deriveBits"
                            ] : [];
                            break;
                        default:
                            throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
                    }
                    break;
                }
            case "OKP":
                {
                    switch(jwk.alg){
                        case "EdDSA":
                            algorithm = {
                                name: jwk.crv
                            };
                            keyUsages = jwk.d ? [
                                "sign"
                            ] : [
                                "verify"
                            ];
                            break;
                        case "ECDH-ES":
                        case "ECDH-ES+A128KW":
                        case "ECDH-ES+A192KW":
                        case "ECDH-ES+A256KW":
                            algorithm = {
                                name: jwk.crv
                            };
                            keyUsages = jwk.d ? [
                                "deriveBits"
                            ] : [];
                            break;
                        default:
                            throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
                    }
                    break;
                }
            default:
                throw new JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
        }
        return {
            algorithm: algorithm,
            keyUsages: keyUsages
        };
    };
    var bitLength2 = // node_modules/jose/dist/browser/lib/cek.js
    function bitLength2(alg) {
        switch(alg){
            case "A128GCM":
                return 128;
            case "A192GCM":
                return 192;
            case "A256GCM":
            case "A128CBC-HS256":
                return 256;
            case "A192CBC-HS384":
                return 384;
            case "A256CBC-HS512":
                return 512;
            default:
                throw new JOSENotSupported("Unsupported JWE Algorithm: ".concat(alg));
        }
    };
    var getElement = // node_modules/jose/dist/browser/runtime/asn1.js
    function getElement(seq) {
        var result17 = [];
        var next = 0;
        while(next < seq.length){
            var nextPart = parseElement(seq.subarray(next));
            result17.push(nextPart);
            next += nextPart.byteLength;
        }
        return result17;
    };
    var parseElement = function parseElement(bytes) {
        var position = 0;
        var tag2 = bytes[0] & 31;
        position++;
        if (tag2 === 31) {
            tag2 = 0;
            while(bytes[position] >= 128){
                tag2 = tag2 * 128 + bytes[position] - 128;
                position++;
            }
            tag2 = tag2 * 128 + bytes[position] - 128;
            position++;
        }
        var length = 0;
        if (bytes[position] < 128) {
            length = bytes[position];
            position++;
        } else if (length === 128) {
            length = 0;
            while(bytes[position + length] !== 0 || bytes[position + length + 1] !== 0){
                if (length > bytes.byteLength) {
                    throw new TypeError("invalid indefinite form length");
                }
                length++;
            }
            var byteLength2 = position + length + 2;
            return {
                byteLength: byteLength2,
                contents: bytes.subarray(position, position + length),
                raw: bytes.subarray(0, byteLength2)
            };
        } else {
            var numberOfDigits = bytes[position] & 127;
            position++;
            length = 0;
            for(var i = 0; i < numberOfDigits; i++){
                length = length * 256 + bytes[position];
                position++;
            }
        }
        var byteLength = position + length;
        return {
            byteLength: byteLength,
            contents: bytes.subarray(position, byteLength),
            raw: bytes.subarray(0, byteLength)
        };
    };
    var spkiFromX509 = function spkiFromX509(buf) {
        var tbsCertificate = getElement(getElement(parseElement(buf).contents)[0].contents);
        return encodeBase64(tbsCertificate[tbsCertificate[0].raw[0] === 160 ? 6 : 5].raw);
    };
    var getSPKI = function getSPKI(x509) {
        var pem = x509.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g, "");
        var raw = decodeBase64(pem);
        return format_pem_default(spkiFromX509(raw), "PUBLIC KEY");
    };
    var importSPKI = // node_modules/jose/dist/browser/key/import.js
    function importSPKI(spki, alg, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                if (typeof spki !== "string" || spki.indexOf("-----BEGIN PUBLIC KEY-----") !== 0) {
                    throw new TypeError('"spki" must be SPKI formatted string');
                }
                return [
                    2,
                    fromSPKI(spki, alg, options)
                ];
            });
        });
    };
    var importX509 = function importX509(x509, alg, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                if (typeof x509 !== "string" || x509.indexOf("-----BEGIN CERTIFICATE-----") !== 0) {
                    throw new TypeError('"x509" must be X.509 formatted string');
                }
                return [
                    2,
                    fromX509(x509, alg, options)
                ];
            });
        });
    };
    var importPKCS8 = function importPKCS8(pkcs8, alg, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                if (typeof pkcs8 !== "string" || pkcs8.indexOf("-----BEGIN PRIVATE KEY-----") !== 0) {
                    throw new TypeError('"pkcs8" must be PKCS#8 formatted string');
                }
                return [
                    2,
                    fromPKCS8(pkcs8, alg, options)
                ];
            });
        });
    };
    var importJWK = function importJWK(jwk, alg) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                if (!isObject(jwk)) {
                    throw new TypeError("JWK must be an object");
                }
                alg || (alg = jwk.alg);
                switch(jwk.kty){
                    case "oct":
                        if (typeof jwk.k !== "string" || !jwk.k) {
                            throw new TypeError('missing "k" (Key Value) Parameter value');
                        }
                        return [
                            2,
                            decode(jwk.k)
                        ];
                    case "RSA":
                        if (jwk.oth !== void 0) {
                            throw new JOSENotSupported('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');
                        }
                    case "EC":
                    case "OKP":
                        return [
                            2,
                            jwk_to_key_default(__spreadProps(__spreadValues({}, jwk), {
                                alg: alg
                            }))
                        ];
                    default:
                        throw new JOSENotSupported('Unsupported "kty" (Key Type) Parameter value');
                }
                return [
                    2
                ];
            });
        });
    };
    var checkKeyType = // node_modules/jose/dist/browser/lib/check_key_type.js
    function checkKeyType(allowJwk, alg, key, usage) {
        var symmetric = alg.startsWith("HS") || alg === "dir" || alg.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(alg);
        if (symmetric) {
            symmetricTypeCheck(alg, key, usage, allowJwk);
        } else {
            asymmetricTypeCheck(alg, key, usage, allowJwk);
        }
    };
    var cbcEncrypt = // node_modules/jose/dist/browser/runtime/encrypt.js
    function cbcEncrypt(enc, plaintext, cek, iv, aad) {
        return __async(this, null, function() {
            var keySize, encKey, macKey, ciphertext, _, macData, tag2, _1;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!(cek instanceof Uint8Array)) {
                            throw new TypeError(invalid_key_input_default(cek, "Uint8Array"));
                        }
                        keySize = parseInt(enc.slice(1, 4), 10);
                        return [
                            4,
                            webcrypto_default.subtle.importKey("raw", cek.subarray(keySize >> 3), "AES-CBC", false, [
                                "encrypt"
                            ])
                        ];
                    case 1:
                        encKey = _state.sent();
                        return [
                            4,
                            webcrypto_default.subtle.importKey("raw", cek.subarray(0, keySize >> 3), {
                                hash: "SHA-".concat(keySize << 1),
                                name: "HMAC"
                            }, false, [
                                "sign"
                            ])
                        ];
                    case 2:
                        macKey = _state.sent();
                        _ = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.encrypt({
                                iv: iv,
                                name: "AES-CBC"
                            }, encKey, plaintext)
                        ];
                    case 3:
                        ciphertext = new (_.apply(Uint8Array, [
                            void 0,
                            _state.sent()
                        ]));
                        macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));
                        _1 = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.sign("HMAC", macKey, macData)
                        ];
                    case 4:
                        tag2 = new (_1.apply(Uint8Array, [
                            void 0,
                            _state.sent().slice(0, keySize >> 3)
                        ]));
                        return [
                            2,
                            {
                                ciphertext: ciphertext,
                                tag: tag2,
                                iv: iv
                            }
                        ];
                }
            });
        });
    };
    var gcmEncrypt = function gcmEncrypt(enc, plaintext, cek, iv, aad) {
        return __async(this, null, function() {
            var encKey, encrypted, _, tag2, ciphertext;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!(cek instanceof Uint8Array)) return [
                            3,
                            2
                        ];
                        return [
                            4,
                            webcrypto_default.subtle.importKey("raw", cek, "AES-GCM", false, [
                                "encrypt"
                            ])
                        ];
                    case 1:
                        encKey = _state.sent();
                        return [
                            3,
                            3
                        ];
                    case 2:
                        checkEncCryptoKey(cek, enc, "encrypt");
                        encKey = cek;
                        _state.label = 3;
                    case 3:
                        _ = Uint8Array.bind;
                        return [
                            4,
                            webcrypto_default.subtle.encrypt({
                                additionalData: aad,
                                iv: iv,
                                name: "AES-GCM",
                                tagLength: 128
                            }, encKey, plaintext)
                        ];
                    case 4:
                        encrypted = new (_.apply(Uint8Array, [
                            void 0,
                            _state.sent()
                        ]));
                        tag2 = encrypted.slice(-16);
                        ciphertext = encrypted.slice(0, -16);
                        return [
                            2,
                            {
                                ciphertext: ciphertext,
                                tag: tag2,
                                iv: iv
                            }
                        ];
                }
            });
        });
    };
    var wrap2 = // node_modules/jose/dist/browser/lib/aesgcmkw.js
    function wrap2(alg, key, cek, iv) {
        return __async(this, null, function() {
            var jweAlgorithm, wrapped;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        jweAlgorithm = alg.slice(0, 7);
                        return [
                            4,
                            encrypt_default(jweAlgorithm, cek, key, iv, new Uint8Array(0))
                        ];
                    case 1:
                        wrapped = _state.sent();
                        return [
                            2,
                            {
                                encryptedKey: wrapped.ciphertext,
                                iv: encode(wrapped.iv),
                                tag: encode(wrapped.tag)
                            }
                        ];
                }
            });
        });
    };
    var unwrap2 = function unwrap2(alg, key, encryptedKey, iv, tag2) {
        return __async(this, null, function() {
            var jweAlgorithm;
            return _ts_generator(this, function(_state) {
                jweAlgorithm = alg.slice(0, 7);
                return [
                    2,
                    decrypt_default(jweAlgorithm, key, encryptedKey, iv, tag2, new Uint8Array(0))
                ];
            });
        });
    };
    var decryptKeyManagement = // node_modules/jose/dist/browser/lib/decrypt_key_management.js
    function decryptKeyManagement(alg, key, encryptedKey, joseHeader, options) {
        return __async(this, null, function() {
            var _a2, _b2, epk, partyUInfo, partyVInfo, sharedSecret, p2cLimit, p2s2, iv, tag2;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        check_key_type_default(alg, key, "decrypt");
                        return [
                            4,
                            (_b2 = (_a2 = normalize_key_default).normalizePrivateKey) == null ? void 0 : _b2.call(_a2, key, alg)
                        ];
                    case 1:
                        key = _state.sent() || key;
                        switch(alg){
                            case "dir":
                                return [
                                    3,
                                    2
                                ];
                            case "ECDH-ES":
                                return [
                                    3,
                                    3
                                ];
                            case "ECDH-ES+A128KW":
                                return [
                                    3,
                                    4
                                ];
                            case "ECDH-ES+A192KW":
                                return [
                                    3,
                                    4
                                ];
                            case "ECDH-ES+A256KW":
                                return [
                                    3,
                                    4
                                ];
                            case "RSA1_5":
                                return [
                                    3,
                                    7
                                ];
                            case "RSA-OAEP":
                                return [
                                    3,
                                    7
                                ];
                            case "RSA-OAEP-256":
                                return [
                                    3,
                                    7
                                ];
                            case "RSA-OAEP-384":
                                return [
                                    3,
                                    7
                                ];
                            case "RSA-OAEP-512":
                                return [
                                    3,
                                    7
                                ];
                            case "PBES2-HS256+A128KW":
                                return [
                                    3,
                                    8
                                ];
                            case "PBES2-HS384+A192KW":
                                return [
                                    3,
                                    8
                                ];
                            case "PBES2-HS512+A256KW":
                                return [
                                    3,
                                    8
                                ];
                            case "A128KW":
                                return [
                                    3,
                                    9
                                ];
                            case "A192KW":
                                return [
                                    3,
                                    9
                                ];
                            case "A256KW":
                                return [
                                    3,
                                    9
                                ];
                            case "A128GCMKW":
                                return [
                                    3,
                                    10
                                ];
                            case "A192GCMKW":
                                return [
                                    3,
                                    10
                                ];
                            case "A256GCMKW":
                                return [
                                    3,
                                    10
                                ];
                        }
                        return [
                            3,
                            11
                        ];
                    case 2:
                        {
                            if (encryptedKey !== void 0) throw new JWEInvalid("Encountered unexpected JWE Encrypted Key");
                            return [
                                2,
                                key
                            ];
                        }
                        _state.label = 3;
                    case 3:
                        if (encryptedKey !== void 0) throw new JWEInvalid("Encountered unexpected JWE Encrypted Key");
                        _state.label = 4;
                    case 4:
                        if (!isObject(joseHeader.epk)) throw new JWEInvalid('JOSE Header "epk" (Ephemeral Public Key) missing or invalid');
                        if (!ecdhAllowed(key)) throw new JOSENotSupported("ECDH with the provided key is not allowed or not supported by your javascript runtime");
                        return [
                            4,
                            importJWK(joseHeader.epk, alg)
                        ];
                    case 5:
                        epk = _state.sent();
                        if (joseHeader.apu !== void 0) {
                            if (typeof joseHeader.apu !== "string") throw new JWEInvalid('JOSE Header "apu" (Agreement PartyUInfo) invalid');
                            try {
                                partyUInfo = decode(joseHeader.apu);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the apu");
                            }
                        }
                        if (joseHeader.apv !== void 0) {
                            if (typeof joseHeader.apv !== "string") throw new JWEInvalid('JOSE Header "apv" (Agreement PartyVInfo) invalid');
                            try {
                                partyVInfo = decode(joseHeader.apv);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the apv");
                            }
                        }
                        return [
                            4,
                            deriveKey(epk, key, alg === "ECDH-ES" ? joseHeader.enc : alg, alg === "ECDH-ES" ? bitLength2(joseHeader.enc) : parseInt(alg.slice(-5, -2), 10), partyUInfo, partyVInfo)
                        ];
                    case 6:
                        sharedSecret = _state.sent();
                        if (alg === "ECDH-ES") return [
                            2,
                            sharedSecret
                        ];
                        if (encryptedKey === void 0) throw new JWEInvalid("JWE Encrypted Key missing");
                        return [
                            2,
                            unwrap(alg.slice(-6), sharedSecret, encryptedKey)
                        ];
                    case 7:
                        {
                            if (encryptedKey === void 0) throw new JWEInvalid("JWE Encrypted Key missing");
                            return [
                                2,
                                decrypt3(alg, key, encryptedKey)
                            ];
                        }
                        _state.label = 8;
                    case 8:
                        {
                            if (encryptedKey === void 0) throw new JWEInvalid("JWE Encrypted Key missing");
                            if (typeof joseHeader.p2c !== "number") throw new JWEInvalid('JOSE Header "p2c" (PBES2 Count) missing or invalid');
                            p2cLimit = (options == null ? void 0 : options.maxPBES2Count) || 1e4;
                            if (joseHeader.p2c > p2cLimit) throw new JWEInvalid('JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds');
                            if (typeof joseHeader.p2s !== "string") throw new JWEInvalid('JOSE Header "p2s" (PBES2 Salt) missing or invalid');
                            ;
                            try {
                                p2s2 = decode(joseHeader.p2s);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the p2s");
                            }
                            return [
                                2,
                                decrypt2(alg, key, encryptedKey, joseHeader.p2c, p2s2)
                            ];
                        }
                        _state.label = 9;
                    case 9:
                        {
                            if (encryptedKey === void 0) throw new JWEInvalid("JWE Encrypted Key missing");
                            return [
                                2,
                                unwrap(alg, key, encryptedKey)
                            ];
                        }
                        _state.label = 10;
                    case 10:
                        {
                            if (encryptedKey === void 0) throw new JWEInvalid("JWE Encrypted Key missing");
                            if (typeof joseHeader.iv !== "string") throw new JWEInvalid('JOSE Header "iv" (Initialization Vector) missing or invalid');
                            if (typeof joseHeader.tag !== "string") throw new JWEInvalid('JOSE Header "tag" (Authentication Tag) missing or invalid');
                            ;
                            try {
                                iv = decode(joseHeader.iv);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the iv");
                            }
                            ;
                            try {
                                tag2 = decode(joseHeader.tag);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the tag");
                            }
                            return [
                                2,
                                unwrap2(alg, key, encryptedKey, iv, tag2)
                            ];
                        }
                        _state.label = 11;
                    case 11:
                        {
                            throw new JOSENotSupported('Invalid or unsupported "alg" (JWE Algorithm) header value');
                        }
                        _state.label = 12;
                    case 12:
                        return [
                            2
                        ];
                }
            });
        });
    };
    var validateCrit = // node_modules/jose/dist/browser/lib/validate_crit.js
    function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {
        if (joseHeader.crit !== void 0 && (protectedHeader == null ? void 0 : protectedHeader.crit) === void 0) {
            throw new Err('"crit" (Critical) Header Parameter MUST be integrity protected');
        }
        if (!protectedHeader || protectedHeader.crit === void 0) {
            return /* @__PURE__ */ new Set();
        }
        if (!Array.isArray(protectedHeader.crit) || protectedHeader.crit.length === 0 || protectedHeader.crit.some(function(input) {
            return typeof input !== "string" || input.length === 0;
        })) {
            throw new Err('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
        }
        var recognized;
        if (recognizedOption !== void 0) {
            recognized = new Map(_to_consumable_array(Object.entries(recognizedOption)).concat(_to_consumable_array(recognizedDefault.entries())));
        } else {
            recognized = recognizedDefault;
        }
        var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
        try {
            for(var _iterator = protectedHeader.crit[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                var parameter = _step.value;
                if (!recognized.has(parameter)) {
                    throw new JOSENotSupported('Extension Header Parameter "'.concat(parameter, '" is not recognized'));
                }
                if (joseHeader[parameter] === void 0) {
                    throw new Err('Extension Header Parameter "'.concat(parameter, '" is missing'));
                }
                if (recognized.get(parameter) && protectedHeader[parameter] === void 0) {
                    throw new Err('Extension Header Parameter "'.concat(parameter, '" MUST be integrity protected'));
                }
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally{
            try {
                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                    _iterator["return"]();
                }
            } finally{
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
        return new Set(protectedHeader.crit);
    };
    var flattenedDecrypt = // node_modules/jose/dist/browser/jwe/flattened/decrypt.js
    function flattenedDecrypt(jwe, key, options) {
        return __async(this, null, function() {
            var _a2, parsedProt, protectedHeader2, joseHeader, alg, enc, keyManagementAlgorithms, contentEncryptionAlgorithms, encryptedKey, resolvedKey, cek, err, iv, tag2, protectedHeader, additionalData, ciphertext, plaintext, result17;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!isObject(jwe)) {
                            throw new JWEInvalid("Flattened JWE must be an object");
                        }
                        if (jwe["protected"] === void 0 && jwe.header === void 0 && jwe.unprotected === void 0) {
                            throw new JWEInvalid("JOSE Header missing");
                        }
                        if (jwe.iv !== void 0 && typeof jwe.iv !== "string") {
                            throw new JWEInvalid("JWE Initialization Vector incorrect type");
                        }
                        if (typeof jwe.ciphertext !== "string") {
                            throw new JWEInvalid("JWE Ciphertext missing or incorrect type");
                        }
                        if (jwe.tag !== void 0 && typeof jwe.tag !== "string") {
                            throw new JWEInvalid("JWE Authentication Tag incorrect type");
                        }
                        if (jwe["protected"] !== void 0 && typeof jwe["protected"] !== "string") {
                            throw new JWEInvalid("JWE Protected Header incorrect type");
                        }
                        if (jwe.encrypted_key !== void 0 && typeof jwe.encrypted_key !== "string") {
                            throw new JWEInvalid("JWE Encrypted Key incorrect type");
                        }
                        if (jwe.aad !== void 0 && typeof jwe.aad !== "string") {
                            throw new JWEInvalid("JWE AAD incorrect type");
                        }
                        if (jwe.header !== void 0 && !isObject(jwe.header)) {
                            throw new JWEInvalid("JWE Shared Unprotected Header incorrect type");
                        }
                        if (jwe.unprotected !== void 0 && !isObject(jwe.unprotected)) {
                            throw new JWEInvalid("JWE Per-Recipient Unprotected Header incorrect type");
                        }
                        if (jwe["protected"]) {
                            try {
                                protectedHeader2 = decode(jwe["protected"]);
                                parsedProt = JSON.parse(decoder.decode(protectedHeader2));
                            } catch (e) {
                                throw new JWEInvalid("JWE Protected Header is invalid");
                            }
                        }
                        if (!is_disjoint_default(parsedProt, jwe.header, jwe.unprotected)) {
                            throw new JWEInvalid("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");
                        }
                        joseHeader = __spreadValues(__spreadValues(__spreadValues({}, parsedProt), jwe.header), jwe.unprotected);
                        validate_crit_default(JWEInvalid, /* @__PURE__ */ new Map(), options == null ? void 0 : options.crit, parsedProt, joseHeader);
                        if (joseHeader.zip !== void 0) {
                            throw new JOSENotSupported('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');
                        }
                        alg = joseHeader.alg, enc = joseHeader.enc;
                        if (typeof alg !== "string" || !alg) {
                            throw new JWEInvalid("missing JWE Algorithm (alg) in JWE Header");
                        }
                        if (typeof enc !== "string" || !enc) {
                            throw new JWEInvalid("missing JWE Encryption Algorithm (enc) in JWE Header");
                        }
                        keyManagementAlgorithms = options && validate_algorithms_default("keyManagementAlgorithms", options.keyManagementAlgorithms);
                        contentEncryptionAlgorithms = options && validate_algorithms_default("contentEncryptionAlgorithms", options.contentEncryptionAlgorithms);
                        if (keyManagementAlgorithms && !keyManagementAlgorithms.has(alg) || !keyManagementAlgorithms && alg.startsWith("PBES2")) {
                            throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
                        }
                        if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc)) {
                            throw new JOSEAlgNotAllowed('"enc" (Encryption Algorithm) Header Parameter value not allowed');
                        }
                        if (jwe.encrypted_key !== void 0) {
                            try {
                                encryptedKey = decode(jwe.encrypted_key);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the encrypted_key");
                            }
                        }
                        resolvedKey = false;
                        if (!(typeof key === "function")) return [
                            3,
                            2
                        ];
                        return [
                            4,
                            key(parsedProt, jwe)
                        ];
                    case 1:
                        key = _state.sent();
                        resolvedKey = true;
                        _state.label = 2;
                    case 2:
                        _state.trys.push([
                            2,
                            4,
                            ,
                            5
                        ]);
                        return [
                            4,
                            decrypt_key_management_default(alg, key, encryptedKey, joseHeader, options)
                        ];
                    case 3:
                        cek = _state.sent();
                        return [
                            3,
                            5
                        ];
                    case 4:
                        err = _state.sent();
                        if (err instanceof TypeError || err instanceof JWEInvalid || err instanceof JOSENotSupported) {
                            throw err;
                        }
                        cek = cek_default(enc);
                        return [
                            3,
                            5
                        ];
                    case 5:
                        if (jwe.iv !== void 0) {
                            try {
                                iv = decode(jwe.iv);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the iv");
                            }
                        }
                        if (jwe.tag !== void 0) {
                            try {
                                tag2 = decode(jwe.tag);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the tag");
                            }
                        }
                        protectedHeader = encoder.encode((_a2 = jwe["protected"]) != null ? _a2 : "");
                        if (jwe.aad !== void 0) {
                            additionalData = concat(protectedHeader, encoder.encode("."), encoder.encode(jwe.aad));
                        } else {
                            additionalData = protectedHeader;
                        }
                        try {
                            ciphertext = decode(jwe.ciphertext);
                        } catch (e) {
                            throw new JWEInvalid("Failed to base64url decode the ciphertext");
                        }
                        return [
                            4,
                            decrypt_default(enc, cek, ciphertext, iv, tag2, additionalData)
                        ];
                    case 6:
                        plaintext = _state.sent();
                        result17 = {
                            plaintext: plaintext
                        };
                        if (jwe["protected"] !== void 0) {
                            result17.protectedHeader = parsedProt;
                        }
                        if (jwe.aad !== void 0) {
                            try {
                                result17.additionalAuthenticatedData = decode(jwe.aad);
                            } catch (e) {
                                throw new JWEInvalid("Failed to base64url decode the aad");
                            }
                        }
                        if (jwe.unprotected !== void 0) {
                            result17.sharedUnprotectedHeader = jwe.unprotected;
                        }
                        if (jwe.header !== void 0) {
                            result17.unprotectedHeader = jwe.header;
                        }
                        if (resolvedKey) {
                            return [
                                2,
                                __spreadProps(__spreadValues({}, result17), {
                                    key: key
                                })
                            ];
                        }
                        return [
                            2,
                            result17
                        ];
                }
            });
        });
    };
    var compactDecrypt = // node_modules/jose/dist/browser/jwe/compact/decrypt.js
    function compactDecrypt(jwe, key, options) {
        return __async(this, null, function() {
            var _jwe_split, protectedHeader, encryptedKey, iv, ciphertext, tag2, length, decrypted, result17;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (jwe instanceof Uint8Array) {
                            jwe = decoder.decode(jwe);
                        }
                        if (typeof jwe !== "string") {
                            throw new JWEInvalid("Compact JWE must be a string or Uint8Array");
                        }
                        _jwe_split = jwe.split("."), protectedHeader = _jwe_split[0], encryptedKey = _jwe_split[1], iv = _jwe_split[2], ciphertext = _jwe_split[3], tag2 = _jwe_split[4], length = _jwe_split.length;
                        if (length !== 5) {
                            throw new JWEInvalid("Invalid Compact JWE");
                        }
                        return [
                            4,
                            flattenedDecrypt({
                                ciphertext: ciphertext,
                                iv: iv || void 0,
                                protected: protectedHeader,
                                tag: tag2 || void 0,
                                encrypted_key: encryptedKey || void 0
                            }, key, options)
                        ];
                    case 1:
                        decrypted = _state.sent();
                        result17 = {
                            plaintext: decrypted.plaintext,
                            protectedHeader: decrypted.protectedHeader
                        };
                        if (typeof key === "function") {
                            return [
                                2,
                                __spreadProps(__spreadValues({}, result17), {
                                    key: decrypted.key
                                })
                            ];
                        }
                        return [
                            2,
                            result17
                        ];
                }
            });
        });
    };
    var generalDecrypt = // node_modules/jose/dist/browser/jwe/general/decrypt.js
    function generalDecrypt(jwe, key, options) {
        return __async(this, null, function() {
            var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, recipient, e, err;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!isObject(jwe)) {
                            throw new JWEInvalid("General JWE must be an object");
                        }
                        if (!Array.isArray(jwe.recipients) || !jwe.recipients.every(isObject)) {
                            throw new JWEInvalid("JWE Recipients missing or incorrect type");
                        }
                        if (!jwe.recipients.length) {
                            throw new JWEInvalid("JWE Recipients has no members");
                        }
                        _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                        _state.label = 1;
                    case 1:
                        _state.trys.push([
                            1,
                            8,
                            9,
                            10
                        ]);
                        _iterator = jwe.recipients[Symbol.iterator]();
                        _state.label = 2;
                    case 2:
                        if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                            3,
                            7
                        ];
                        recipient = _step.value;
                        _state.label = 3;
                    case 3:
                        _state.trys.push([
                            3,
                            5,
                            ,
                            6
                        ]);
                        return [
                            4,
                            flattenedDecrypt({
                                aad: jwe.aad,
                                ciphertext: jwe.ciphertext,
                                encrypted_key: recipient.encrypted_key,
                                header: recipient.header,
                                iv: jwe.iv,
                                protected: jwe["protected"],
                                tag: jwe.tag,
                                unprotected: jwe.unprotected
                            }, key, options)
                        ];
                    case 4:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 5:
                        e = _state.sent();
                        return [
                            3,
                            6
                        ];
                    case 6:
                        _iteratorNormalCompletion = true;
                        return [
                            3,
                            2
                        ];
                    case 7:
                        return [
                            3,
                            10
                        ];
                    case 8:
                        err = _state.sent();
                        _didIteratorError = true;
                        _iteratorError = err;
                        return [
                            3,
                            10
                        ];
                    case 9:
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                        return [
                            7
                        ];
                    case 10:
                        throw new JWEDecryptionFailed();
                }
            });
        });
    };
    var exportSPKI = // node_modules/jose/dist/browser/key/export.js
    function exportSPKI(key) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    toSPKI(key)
                ];
            });
        });
    };
    var exportPKCS8 = function exportPKCS8(key) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    toPKCS8(key)
                ];
            });
        });
    };
    var exportJWK = function exportJWK(key) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    key_to_jwk_default(key)
                ];
            });
        });
    };
    var encryptKeyManagement = // node_modules/jose/dist/browser/lib/encrypt_key_management.js
    function encryptKeyManagement(_0, _1, _2, _3) {
        return __async(this, arguments, function(alg, enc, key, providedCek) {
            var providedParameters, _a2, _b2, _c, _d, encryptedKey, parameters2, cek, apu, apv, ephemeralKey, _tmp, _ref, x, y, crv, kty, sharedSecret, kwAlg, p2c, p2s2, iv;
            var _arguments = arguments;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        providedParameters = _arguments.length > 4 && _arguments[4] !== void 0 ? _arguments[4] : {};
                        check_key_type_default(alg, key, "encrypt");
                        return [
                            4,
                            (_b2 = (_a2 = normalize_key_default).normalizePublicKey) == null ? void 0 : _b2.call(_a2, key, alg)
                        ];
                    case 1:
                        key = _state.sent() || key;
                        switch(alg){
                            case "dir":
                                return [
                                    3,
                                    2
                                ];
                            case "ECDH-ES":
                                return [
                                    3,
                                    3
                                ];
                            case "ECDH-ES+A128KW":
                                return [
                                    3,
                                    3
                                ];
                            case "ECDH-ES+A192KW":
                                return [
                                    3,
                                    3
                                ];
                            case "ECDH-ES+A256KW":
                                return [
                                    3,
                                    3
                                ];
                            case "RSA1_5":
                                return [
                                    3,
                                    9
                                ];
                            case "RSA-OAEP":
                                return [
                                    3,
                                    9
                                ];
                            case "RSA-OAEP-256":
                                return [
                                    3,
                                    9
                                ];
                            case "RSA-OAEP-384":
                                return [
                                    3,
                                    9
                                ];
                            case "RSA-OAEP-512":
                                return [
                                    3,
                                    9
                                ];
                            case "PBES2-HS256+A128KW":
                                return [
                                    3,
                                    11
                                ];
                            case "PBES2-HS384+A192KW":
                                return [
                                    3,
                                    11
                                ];
                            case "PBES2-HS512+A256KW":
                                return [
                                    3,
                                    11
                                ];
                            case "A128KW":
                                return [
                                    3,
                                    13
                                ];
                            case "A192KW":
                                return [
                                    3,
                                    13
                                ];
                            case "A256KW":
                                return [
                                    3,
                                    13
                                ];
                            case "A128GCMKW":
                                return [
                                    3,
                                    15
                                ];
                            case "A192GCMKW":
                                return [
                                    3,
                                    15
                                ];
                            case "A256GCMKW":
                                return [
                                    3,
                                    15
                                ];
                        }
                        return [
                            3,
                            17
                        ];
                    case 2:
                        {
                            cek = key;
                            return [
                                3,
                                18
                            ];
                        }
                        _state.label = 3;
                    case 3:
                        if (!ecdhAllowed(key)) {
                            throw new JOSENotSupported("ECDH with the provided key is not allowed or not supported by your javascript runtime");
                        }
                        apu = providedParameters.apu, apv = providedParameters.apv;
                        ephemeralKey = providedParameters.epk;
                        _tmp = ephemeralKey;
                        if (_tmp) return [
                            3,
                            5
                        ];
                        return [
                            4,
                            generateEpk(key)
                        ];
                    case 4:
                        _tmp = ephemeralKey = _state.sent().privateKey;
                        _state.label = 5;
                    case 5:
                        _tmp;
                        return [
                            4,
                            exportJWK(ephemeralKey)
                        ];
                    case 6:
                        _ref = _state.sent(), x = _ref.x, y = _ref.y, crv = _ref.crv, kty = _ref.kty;
                        return [
                            4,
                            deriveKey(key, ephemeralKey, alg === "ECDH-ES" ? enc : alg, alg === "ECDH-ES" ? bitLength2(enc) : parseInt(alg.slice(-5, -2), 10), apu, apv)
                        ];
                    case 7:
                        sharedSecret = _state.sent();
                        parameters2 = {
                            epk: {
                                x: x,
                                crv: crv,
                                kty: kty
                            }
                        };
                        if (kty === "EC") parameters2.epk.y = y;
                        if (apu) parameters2.apu = encode(apu);
                        if (apv) parameters2.apv = encode(apv);
                        if (alg === "ECDH-ES") {
                            cek = sharedSecret;
                            return [
                                3,
                                18
                            ];
                        }
                        cek = providedCek || cek_default(enc);
                        kwAlg = alg.slice(-6);
                        return [
                            4,
                            wrap(kwAlg, sharedSecret, cek)
                        ];
                    case 8:
                        encryptedKey = _state.sent();
                        return [
                            3,
                            18
                        ];
                    case 9:
                        cek = providedCek || cek_default(enc);
                        return [
                            4,
                            encrypt2(alg, key, cek)
                        ];
                    case 10:
                        encryptedKey = _state.sent();
                        return [
                            3,
                            18
                        ];
                    case 11:
                        cek = providedCek || cek_default(enc);
                        p2c = providedParameters.p2c, p2s2 = providedParameters.p2s;
                        return [
                            4,
                            encrypt(alg, key, cek, p2c, p2s2)
                        ];
                    case 12:
                        _c = _state.sent(), encryptedKey = _c.encryptedKey, parameters2 = __objRest(_c, [
                            "encryptedKey"
                        ]);
                        return [
                            3,
                            18
                        ];
                    case 13:
                        cek = providedCek || cek_default(enc);
                        return [
                            4,
                            wrap(alg, key, cek)
                        ];
                    case 14:
                        encryptedKey = _state.sent();
                        return [
                            3,
                            18
                        ];
                    case 15:
                        cek = providedCek || cek_default(enc);
                        iv = providedParameters.iv;
                        return [
                            4,
                            wrap2(alg, key, cek, iv)
                        ];
                    case 16:
                        _d = _state.sent(), encryptedKey = _d.encryptedKey, parameters2 = __objRest(_d, [
                            "encryptedKey"
                        ]);
                        return [
                            3,
                            18
                        ];
                    case 17:
                        {
                            throw new JOSENotSupported('Invalid or unsupported "alg" (JWE Algorithm) header value');
                        }
                        _state.label = 18;
                    case 18:
                        return [
                            2,
                            {
                                cek: cek,
                                encryptedKey: encryptedKey,
                                parameters: parameters2
                            }
                        ];
                }
            });
        });
    };
    var subtleDsa = // node_modules/jose/dist/browser/runtime/subtle_dsa.js
    function subtleDsa(alg, algorithm) {
        var hash = "SHA-".concat(alg.slice(-3));
        switch(alg){
            case "HS256":
            case "HS384":
            case "HS512":
                return {
                    hash: hash,
                    name: "HMAC"
                };
            case "PS256":
            case "PS384":
            case "PS512":
                return {
                    hash: hash,
                    name: "RSA-PSS",
                    saltLength: alg.slice(-3) >> 3
                };
            case "RS256":
            case "RS384":
            case "RS512":
                return {
                    hash: hash,
                    name: "RSASSA-PKCS1-v1_5"
                };
            case "ES256":
            case "ES384":
            case "ES512":
                return {
                    hash: hash,
                    name: "ECDSA",
                    namedCurve: algorithm.namedCurve
                };
            case "EdDSA":
                return {
                    name: algorithm.name
                };
            default:
                throw new JOSENotSupported("alg ".concat(alg, " is not supported either by JOSE or your javascript runtime"));
        }
    };
    var getCryptoKey3 = // node_modules/jose/dist/browser/runtime/get_sign_verify_key.js
    function getCryptoKey3(alg, key, usage) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!(usage === "sign")) return [
                            3,
                            2
                        ];
                        return [
                            4,
                            normalize_key_default.normalizePrivateKey(key, alg)
                        ];
                    case 1:
                        key = _state.sent();
                        _state.label = 2;
                    case 2:
                        if (!(usage === "verify")) return [
                            3,
                            4
                        ];
                        return [
                            4,
                            normalize_key_default.normalizePublicKey(key, alg)
                        ];
                    case 3:
                        key = _state.sent();
                        _state.label = 4;
                    case 4:
                        if (isCryptoKey(key)) {
                            checkSigCryptoKey(key, alg, usage);
                            return [
                                2,
                                key
                            ];
                        }
                        if (key instanceof Uint8Array) {
                            if (!alg.startsWith("HS")) {
                                throw new TypeError(invalid_key_input_default.apply(void 0, [
                                    key
                                ].concat(_to_consumable_array(types))));
                            }
                            return [
                                2,
                                webcrypto_default.subtle.importKey("raw", key, {
                                    hash: "SHA-".concat(alg.slice(-3)),
                                    name: "HMAC"
                                }, false, [
                                    usage
                                ])
                            ];
                        }
                        throw new TypeError(invalid_key_input_default.apply(void 0, [
                            key
                        ].concat(_to_consumable_array(types), [
                            "Uint8Array",
                            "JSON Web Key"
                        ])));
                }
            });
        });
    };
    var flattenedVerify = // node_modules/jose/dist/browser/jws/flattened/verify.js
    function flattenedVerify(jws, key, options) {
        return __async(this, null, function() {
            var _a2, parsedProt, protectedHeader, joseHeader, extensions, b64, alg, algorithms, resolvedKey, data, signature, verified, payload, result17;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!isObject(jws)) {
                            throw new JWSInvalid("Flattened JWS must be an object");
                        }
                        if (jws["protected"] === void 0 && jws.header === void 0) {
                            throw new JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
                        }
                        if (jws["protected"] !== void 0 && typeof jws["protected"] !== "string") {
                            throw new JWSInvalid("JWS Protected Header incorrect type");
                        }
                        if (jws.payload === void 0) {
                            throw new JWSInvalid("JWS Payload missing");
                        }
                        if (typeof jws.signature !== "string") {
                            throw new JWSInvalid("JWS Signature missing or incorrect type");
                        }
                        if (jws.header !== void 0 && !isObject(jws.header)) {
                            throw new JWSInvalid("JWS Unprotected Header incorrect type");
                        }
                        parsedProt = {};
                        if (jws["protected"]) {
                            try {
                                protectedHeader = decode(jws["protected"]);
                                parsedProt = JSON.parse(decoder.decode(protectedHeader));
                            } catch (e) {
                                throw new JWSInvalid("JWS Protected Header is invalid");
                            }
                        }
                        if (!is_disjoint_default(parsedProt, jws.header)) {
                            throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
                        }
                        joseHeader = __spreadValues(__spreadValues({}, parsedProt), jws.header);
                        extensions = validate_crit_default(JWSInvalid, /* @__PURE__ */ new Map([
                            [
                                "b64",
                                true
                            ]
                        ]), options == null ? void 0 : options.crit, parsedProt, joseHeader);
                        b64 = true;
                        if (extensions.has("b64")) {
                            b64 = parsedProt.b64;
                            if (typeof b64 !== "boolean") {
                                throw new JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
                            }
                        }
                        alg = joseHeader.alg;
                        if (typeof alg !== "string" || !alg) {
                            throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
                        }
                        algorithms = options && validate_algorithms_default("algorithms", options.algorithms);
                        if (algorithms && !algorithms.has(alg)) {
                            throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
                        }
                        if (b64) {
                            if (typeof jws.payload !== "string") {
                                throw new JWSInvalid("JWS Payload must be a string");
                            }
                        } else if (typeof jws.payload !== "string" && !(jws.payload instanceof Uint8Array)) {
                            throw new JWSInvalid("JWS Payload must be a string or an Uint8Array instance");
                        }
                        resolvedKey = false;
                        if (!(typeof key === "function")) return [
                            3,
                            4
                        ];
                        return [
                            4,
                            key(parsedProt, jws)
                        ];
                    case 1:
                        key = _state.sent();
                        resolvedKey = true;
                        checkKeyTypeWithJwk(alg, key, "verify");
                        if (!isJWK(key)) return [
                            3,
                            3
                        ];
                        return [
                            4,
                            importJWK(key, alg)
                        ];
                    case 2:
                        key = _state.sent();
                        _state.label = 3;
                    case 3:
                        return [
                            3,
                            5
                        ];
                    case 4:
                        checkKeyTypeWithJwk(alg, key, "verify");
                        _state.label = 5;
                    case 5:
                        data = concat(encoder.encode((_a2 = jws["protected"]) != null ? _a2 : ""), encoder.encode("."), typeof jws.payload === "string" ? encoder.encode(jws.payload) : jws.payload);
                        try {
                            signature = decode(jws.signature);
                        } catch (e) {
                            throw new JWSInvalid("Failed to base64url decode the signature");
                        }
                        return [
                            4,
                            verify_default(alg, key, signature, data)
                        ];
                    case 6:
                        verified = _state.sent();
                        if (!verified) {
                            throw new JWSSignatureVerificationFailed();
                        }
                        if (b64) {
                            try {
                                payload = decode(jws.payload);
                            } catch (e) {
                                throw new JWSInvalid("Failed to base64url decode the payload");
                            }
                        } else if (typeof jws.payload === "string") {
                            payload = encoder.encode(jws.payload);
                        } else {
                            payload = jws.payload;
                        }
                        result17 = {
                            payload: payload
                        };
                        if (jws["protected"] !== void 0) {
                            result17.protectedHeader = parsedProt;
                        }
                        if (jws.header !== void 0) {
                            result17.unprotectedHeader = jws.header;
                        }
                        if (resolvedKey) {
                            return [
                                2,
                                __spreadProps(__spreadValues({}, result17), {
                                    key: key
                                })
                            ];
                        }
                        return [
                            2,
                            result17
                        ];
                }
            });
        });
    };
    var compactVerify = // node_modules/jose/dist/browser/jws/compact/verify.js
    function compactVerify(jws, key, options) {
        return __async(this, null, function() {
            var _jws_split, protectedHeader, payload, signature, length, verified, result17;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (jws instanceof Uint8Array) {
                            jws = decoder.decode(jws);
                        }
                        if (typeof jws !== "string") {
                            throw new JWSInvalid("Compact JWS must be a string or Uint8Array");
                        }
                        _jws_split = jws.split("."), protectedHeader = _jws_split[0], payload = _jws_split[1], signature = _jws_split[2], length = _jws_split.length;
                        if (length !== 3) {
                            throw new JWSInvalid("Invalid Compact JWS");
                        }
                        return [
                            4,
                            flattenedVerify({
                                payload: payload,
                                protected: protectedHeader,
                                signature: signature
                            }, key, options)
                        ];
                    case 1:
                        verified = _state.sent();
                        result17 = {
                            payload: verified.payload,
                            protectedHeader: verified.protectedHeader
                        };
                        if (typeof key === "function") {
                            return [
                                2,
                                __spreadProps(__spreadValues({}, result17), {
                                    key: verified.key
                                })
                            ];
                        }
                        return [
                            2,
                            result17
                        ];
                }
            });
        });
    };
    var generalVerify = // node_modules/jose/dist/browser/jws/general/verify.js
    function generalVerify(jws, key, options) {
        return __async(this, null, function() {
            var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, signature, e, err;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!isObject(jws)) {
                            throw new JWSInvalid("General JWS must be an object");
                        }
                        if (!Array.isArray(jws.signatures) || !jws.signatures.every(isObject)) {
                            throw new JWSInvalid("JWS Signatures missing or incorrect type");
                        }
                        _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                        _state.label = 1;
                    case 1:
                        _state.trys.push([
                            1,
                            8,
                            9,
                            10
                        ]);
                        _iterator = jws.signatures[Symbol.iterator]();
                        _state.label = 2;
                    case 2:
                        if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                            3,
                            7
                        ];
                        signature = _step.value;
                        _state.label = 3;
                    case 3:
                        _state.trys.push([
                            3,
                            5,
                            ,
                            6
                        ]);
                        return [
                            4,
                            flattenedVerify({
                                header: signature.header,
                                payload: jws.payload,
                                protected: signature["protected"],
                                signature: signature.signature
                            }, key, options)
                        ];
                    case 4:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 5:
                        e = _state.sent();
                        return [
                            3,
                            6
                        ];
                    case 6:
                        _iteratorNormalCompletion = true;
                        return [
                            3,
                            2
                        ];
                    case 7:
                        return [
                            3,
                            10
                        ];
                    case 8:
                        err = _state.sent();
                        _didIteratorError = true;
                        _iteratorError = err;
                        return [
                            3,
                            10
                        ];
                    case 9:
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                        return [
                            7
                        ];
                    case 10:
                        throw new JWSSignatureVerificationFailed();
                }
            });
        });
    };
    var jwtVerify = // node_modules/jose/dist/browser/jwt/verify.js
    function jwtVerify(jwt, key, options) {
        return __async(this, null, function() {
            var _a2, verified, payload, result17;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        return [
                            4,
                            compactVerify(jwt, key, options)
                        ];
                    case 1:
                        verified = _state.sent();
                        if (((_a2 = verified.protectedHeader.crit) == null ? void 0 : _a2.includes("b64")) && verified.protectedHeader.b64 === false) {
                            throw new JWTInvalid("JWTs MUST NOT use unencoded payload");
                        }
                        payload = jwt_claims_set_default(verified.protectedHeader, verified.payload, options);
                        result17 = {
                            payload: payload,
                            protectedHeader: verified.protectedHeader
                        };
                        if (typeof key === "function") {
                            return [
                                2,
                                __spreadProps(__spreadValues({}, result17), {
                                    key: verified.key
                                })
                            ];
                        }
                        return [
                            2,
                            result17
                        ];
                }
            });
        });
    };
    var jwtDecrypt = // node_modules/jose/dist/browser/jwt/decrypt.js
    function jwtDecrypt(jwt, key, options) {
        return __async(this, null, function() {
            var decrypted, payload, protectedHeader, result17;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        return [
                            4,
                            compactDecrypt(jwt, key, options)
                        ];
                    case 1:
                        decrypted = _state.sent();
                        payload = jwt_claims_set_default(decrypted.protectedHeader, decrypted.plaintext, options);
                        protectedHeader = decrypted.protectedHeader;
                        if (protectedHeader.iss !== void 0 && protectedHeader.iss !== payload.iss) {
                            throw new JWTClaimValidationFailed('replicated "iss" claim header parameter mismatch', payload, "iss", "mismatch");
                        }
                        if (protectedHeader.sub !== void 0 && protectedHeader.sub !== payload.sub) {
                            throw new JWTClaimValidationFailed('replicated "sub" claim header parameter mismatch', payload, "sub", "mismatch");
                        }
                        if (protectedHeader.aud !== void 0 && JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud)) {
                            throw new JWTClaimValidationFailed('replicated "aud" claim header parameter mismatch', payload, "aud", "mismatch");
                        }
                        result17 = {
                            payload: payload,
                            protectedHeader: protectedHeader
                        };
                        if (typeof key === "function") {
                            return [
                                2,
                                __spreadProps(__spreadValues({}, result17), {
                                    key: decrypted.key
                                })
                            ];
                        }
                        return [
                            2,
                            result17
                        ];
                }
            });
        });
    };
    var validateInput = // node_modules/jose/dist/browser/jwt/produce.js
    function validateInput(label, input) {
        if (!Number.isFinite(input)) {
            throw new TypeError("Invalid ".concat(label, " input"));
        }
        return input;
    };
    var calculateJwkThumbprint = // node_modules/jose/dist/browser/jwk/thumbprint.js
    function calculateJwkThumbprint(jwk, digestAlgorithm) {
        return __async(this, null, function() {
            var components, data;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (!isObject(jwk)) {
                            throw new TypeError("JWK must be an object");
                        }
                        digestAlgorithm != null ? digestAlgorithm : digestAlgorithm = "sha256";
                        if (digestAlgorithm !== "sha256" && digestAlgorithm !== "sha384" && digestAlgorithm !== "sha512") {
                            throw new TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');
                        }
                        switch(jwk.kty){
                            case "EC":
                                check(jwk.crv, '"crv" (Curve) Parameter');
                                check(jwk.x, '"x" (X Coordinate) Parameter');
                                check(jwk.y, '"y" (Y Coordinate) Parameter');
                                components = {
                                    crv: jwk.crv,
                                    kty: jwk.kty,
                                    x: jwk.x,
                                    y: jwk.y
                                };
                                break;
                            case "OKP":
                                check(jwk.crv, '"crv" (Subtype of Key Pair) Parameter');
                                check(jwk.x, '"x" (Public Key) Parameter');
                                components = {
                                    crv: jwk.crv,
                                    kty: jwk.kty,
                                    x: jwk.x
                                };
                                break;
                            case "RSA":
                                check(jwk.e, '"e" (Exponent) Parameter');
                                check(jwk.n, '"n" (Modulus) Parameter');
                                components = {
                                    e: jwk.e,
                                    kty: jwk.kty,
                                    n: jwk.n
                                };
                                break;
                            case "oct":
                                check(jwk.k, '"k" (Key Value) Parameter');
                                components = {
                                    k: jwk.k,
                                    kty: jwk.kty
                                };
                                break;
                            default:
                                throw new JOSENotSupported('"kty" (Key Type) Parameter missing or unsupported');
                        }
                        data = encoder.encode(JSON.stringify(components));
                        return [
                            4,
                            digest_default(digestAlgorithm, data)
                        ];
                    case 1:
                        return [
                            2,
                            encode.apply(void 0, [
                                _state.sent()
                            ])
                        ];
                }
            });
        });
    };
    var calculateJwkThumbprintUri = function calculateJwkThumbprintUri(jwk, digestAlgorithm) {
        return __async(this, null, function() {
            var thumbprint;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        digestAlgorithm != null ? digestAlgorithm : digestAlgorithm = "sha256";
                        return [
                            4,
                            calculateJwkThumbprint(jwk, digestAlgorithm)
                        ];
                    case 1:
                        thumbprint = _state.sent();
                        return [
                            2,
                            "urn:ietf:params:oauth:jwk-thumbprint:sha-".concat(digestAlgorithm.slice(-3), ":").concat(thumbprint)
                        ];
                }
            });
        });
    };
    var EmbeddedJWK = // node_modules/jose/dist/browser/jwk/embedded.js
    function EmbeddedJWK(protectedHeader, token) {
        return __async(this, null, function() {
            var joseHeader, key;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        joseHeader = __spreadValues(__spreadValues({}, protectedHeader), token == null ? void 0 : token.header);
                        if (!isObject(joseHeader.jwk)) {
                            throw new JWSInvalid('"jwk" (JSON Web Key) Header Parameter must be a JSON object');
                        }
                        return [
                            4,
                            importJWK(__spreadProps(__spreadValues({}, joseHeader.jwk), {
                                ext: true
                            }), joseHeader.alg)
                        ];
                    case 1:
                        key = _state.sent();
                        if (key instanceof Uint8Array || key.type !== "public") {
                            throw new JWSInvalid('"jwk" (JSON Web Key) Header Parameter must be a public key');
                        }
                        return [
                            2,
                            key
                        ];
                }
            });
        });
    };
    var getKtyFromAlg = // node_modules/jose/dist/browser/jwks/local.js
    function getKtyFromAlg(alg) {
        switch(typeof alg === "string" && alg.slice(0, 2)){
            case "RS":
            case "PS":
                return "RSA";
            case "ES":
                return "EC";
            case "Ed":
                return "OKP";
            default:
                throw new JOSENotSupported('Unsupported "alg" value for a JSON Web Key Set');
        }
    };
    var isJWKSLike = function isJWKSLike(jwks) {
        return jwks && (typeof jwks === "undefined" ? "undefined" : _type_of(jwks)) === "object" && Array.isArray(jwks.keys) && jwks.keys.every(isJWKLike);
    };
    var isJWKLike = function isJWKLike(key) {
        return isObject(key);
    };
    var clone = function clone(obj) {
        if (typeof structuredClone === "function") {
            return structuredClone(obj);
        }
        return JSON.parse(JSON.stringify(obj));
    };
    var importWithAlgCache = function importWithAlgCache(cache, jwk, alg) {
        return __async(this, null, function() {
            var cached, key;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        cached = cache.get(jwk) || cache.set(jwk, {}).get(jwk);
                        if (!(cached[alg] === void 0)) return [
                            3,
                            2
                        ];
                        return [
                            4,
                            importJWK(__spreadProps(__spreadValues({}, jwk), {
                                ext: true
                            }), alg)
                        ];
                    case 1:
                        key = _state.sent();
                        if (key instanceof Uint8Array || key.type !== "public") {
                            throw new JWKSInvalid("JSON Web Key Set members must be public keys");
                        }
                        cached[alg] = key;
                        _state.label = 2;
                    case 2:
                        return [
                            2,
                            cached[alg]
                        ];
                }
            });
        });
    };
    var createLocalJWKSet = function createLocalJWKSet(jwks) {
        var _this = this;
        var set = new LocalJWKSet(jwks);
        var localJWKSet = function(protectedHeader, token) {
            return __async(_this, null, function() {
                return _ts_generator(this, function(_state) {
                    return [
                        2,
                        set.getKey(protectedHeader, token)
                    ];
                });
            });
        };
        Object.defineProperties(localJWKSet, {
            jwks: {
                value: function() {
                    return clone(set._jwks);
                },
                enumerable: true,
                configurable: false,
                writable: false
            }
        });
        return localJWKSet;
    };
    var isCloudflareWorkers = // node_modules/jose/dist/browser/jwks/remote.js
    function isCloudflareWorkers() {
        return typeof WebSocketPair !== "undefined" || typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers" || typeof EdgeRuntime !== "undefined" && EdgeRuntime === "vercel";
    };
    var isFreshJwksCache = function isFreshJwksCache(input, cacheMaxAge) {
        if ((typeof input === "undefined" ? "undefined" : _type_of(input)) !== "object" || input === null) {
            return false;
        }
        if (!("uat" in input) || typeof input.uat !== "number" || Date.now() - input.uat >= cacheMaxAge) {
            return false;
        }
        if (!("jwks" in input) || !isObject(input.jwks) || !Array.isArray(input.jwks.keys) || !Array.prototype.every.call(input.jwks.keys, isObject)) {
            return false;
        }
        return true;
    };
    var createRemoteJWKSet = function createRemoteJWKSet(url, options) {
        var _this = this;
        var set = new RemoteJWKSet(url, options);
        var remoteJWKSet = function(protectedHeader, token) {
            return __async(_this, null, function() {
                return _ts_generator(this, function(_state) {
                    return [
                        2,
                        set.getKey(protectedHeader, token)
                    ];
                });
            });
        };
        Object.defineProperties(remoteJWKSet, {
            coolingDown: {
                get: function() {
                    return set.coolingDown();
                },
                enumerable: true,
                configurable: false
            },
            fresh: {
                get: function() {
                    return set.fresh();
                },
                enumerable: true,
                configurable: false
            },
            reload: {
                value: function() {
                    return set.reload();
                },
                enumerable: true,
                configurable: false,
                writable: false
            },
            reloading: {
                get: function() {
                    return !!set._pendingFetch;
                },
                enumerable: true,
                configurable: false
            },
            jwks: {
                value: function() {
                    var _a2;
                    return (_a2 = set._local) == null ? void 0 : _a2.jwks();
                },
                enumerable: true,
                configurable: false,
                writable: false
            }
        });
        return remoteJWKSet;
    };
    var decodeProtectedHeader = // node_modules/jose/dist/browser/util/decode_protected_header.js
    function decodeProtectedHeader(token) {
        var protectedB64u;
        if (typeof token === "string") {
            var parts = token.split(".");
            if (parts.length === 3 || parts.length === 5) {
                ;
                var ref;
                ref = _sliced_to_array(parts, 1), protectedB64u = ref[0], ref;
            }
        } else if ((typeof token === "undefined" ? "undefined" : _type_of(token)) === "object" && token) {
            if ("protected" in token) {
                protectedB64u = token["protected"];
            } else {
                throw new TypeError("Token does not contain a Protected Header");
            }
        }
        try {
            if (typeof protectedB64u !== "string" || !protectedB64u) {
                throw new Error();
            }
            var result17 = JSON.parse(decoder.decode(decode2(protectedB64u)));
            if (!isObject(result17)) {
                throw new Error();
            }
            return result17;
        } catch (e) {
            throw new TypeError("Invalid Token or Protected Header formatting");
        }
    };
    var decodeJwt = // node_modules/jose/dist/browser/util/decode_jwt.js
    function decodeJwt(jwt) {
        if (typeof jwt !== "string") throw new JWTInvalid("JWTs must use Compact JWS serialization, JWT must be a string");
        var _jwt_split = jwt.split("."), payload = _jwt_split[1], length = _jwt_split.length;
        if (length === 5) throw new JWTInvalid("Only JWTs using Compact JWS serialization can be decoded");
        if (length !== 3) throw new JWTInvalid("Invalid JWT");
        if (!payload) throw new JWTInvalid("JWTs must contain a payload");
        var decoded;
        try {
            decoded = decode2(payload);
        } catch (e) {
            throw new JWTInvalid("Failed to base64url decode the payload");
        }
        var result17;
        try {
            result17 = JSON.parse(decoder.decode(decoded));
        } catch (e) {
            throw new JWTInvalid("Failed to parse the decoded payload as JSON");
        }
        if (!isObject(result17)) throw new JWTInvalid("Invalid JWT Claims Set");
        return result17;
    };
    var generateSecret = // node_modules/jose/dist/browser/runtime/generate.js
    function generateSecret(alg, options) {
        return __async(this, null, function() {
            var _a2, length, algorithm, keyUsages;
            return _ts_generator(this, function(_state) {
                switch(alg){
                    case "HS256":
                    case "HS384":
                    case "HS512":
                        length = parseInt(alg.slice(-3), 10);
                        algorithm = {
                            name: "HMAC",
                            hash: "SHA-".concat(length),
                            length: length
                        };
                        keyUsages = [
                            "sign",
                            "verify"
                        ];
                        break;
                    case "A128CBC-HS256":
                    case "A192CBC-HS384":
                    case "A256CBC-HS512":
                        length = parseInt(alg.slice(-3), 10);
                        return [
                            2,
                            random_default(new Uint8Array(length >> 3))
                        ];
                    case "A128KW":
                    case "A192KW":
                    case "A256KW":
                        length = parseInt(alg.slice(1, 4), 10);
                        algorithm = {
                            name: "AES-KW",
                            length: length
                        };
                        keyUsages = [
                            "wrapKey",
                            "unwrapKey"
                        ];
                        break;
                    case "A128GCMKW":
                    case "A192GCMKW":
                    case "A256GCMKW":
                    case "A128GCM":
                    case "A192GCM":
                    case "A256GCM":
                        length = parseInt(alg.slice(1, 4), 10);
                        algorithm = {
                            name: "AES-GCM",
                            length: length
                        };
                        keyUsages = [
                            "encrypt",
                            "decrypt"
                        ];
                        break;
                    default:
                        throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
                }
                return [
                    2,
                    webcrypto_default.subtle.generateKey(algorithm, (_a2 = options == null ? void 0 : options.extractable) != null ? _a2 : false, keyUsages)
                ];
            });
        });
    };
    var getModulusLengthOption = function getModulusLengthOption(options) {
        var _a2;
        var modulusLength = (_a2 = options == null ? void 0 : options.modulusLength) != null ? _a2 : 2048;
        if (typeof modulusLength !== "number" || modulusLength < 2048) {
            throw new JOSENotSupported("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");
        }
        return modulusLength;
    };
    var generateKeyPair = function generateKeyPair(alg, options) {
        return __async(this, null, function() {
            var _a2, _b2, _c, algorithm, keyUsages, crv, crv1;
            return _ts_generator(this, function(_state) {
                switch(alg){
                    case "PS256":
                    case "PS384":
                    case "PS512":
                        algorithm = {
                            name: "RSA-PSS",
                            hash: "SHA-".concat(alg.slice(-3)),
                            publicExponent: new Uint8Array([
                                1,
                                0,
                                1
                            ]),
                            modulusLength: getModulusLengthOption(options)
                        };
                        keyUsages = [
                            "sign",
                            "verify"
                        ];
                        break;
                    case "RS256":
                    case "RS384":
                    case "RS512":
                        algorithm = {
                            name: "RSASSA-PKCS1-v1_5",
                            hash: "SHA-".concat(alg.slice(-3)),
                            publicExponent: new Uint8Array([
                                1,
                                0,
                                1
                            ]),
                            modulusLength: getModulusLengthOption(options)
                        };
                        keyUsages = [
                            "sign",
                            "verify"
                        ];
                        break;
                    case "RSA-OAEP":
                    case "RSA-OAEP-256":
                    case "RSA-OAEP-384":
                    case "RSA-OAEP-512":
                        algorithm = {
                            name: "RSA-OAEP",
                            hash: "SHA-".concat(parseInt(alg.slice(-3), 10) || 1),
                            publicExponent: new Uint8Array([
                                1,
                                0,
                                1
                            ]),
                            modulusLength: getModulusLengthOption(options)
                        };
                        keyUsages = [
                            "decrypt",
                            "unwrapKey",
                            "encrypt",
                            "wrapKey"
                        ];
                        break;
                    case "ES256":
                        algorithm = {
                            name: "ECDSA",
                            namedCurve: "P-256"
                        };
                        keyUsages = [
                            "sign",
                            "verify"
                        ];
                        break;
                    case "ES384":
                        algorithm = {
                            name: "ECDSA",
                            namedCurve: "P-384"
                        };
                        keyUsages = [
                            "sign",
                            "verify"
                        ];
                        break;
                    case "ES512":
                        algorithm = {
                            name: "ECDSA",
                            namedCurve: "P-521"
                        };
                        keyUsages = [
                            "sign",
                            "verify"
                        ];
                        break;
                    case "EdDSA":
                        {
                            keyUsages = [
                                "sign",
                                "verify"
                            ];
                            crv = (_a2 = options == null ? void 0 : options.crv) != null ? _a2 : "Ed25519";
                            switch(crv){
                                case "Ed25519":
                                case "Ed448":
                                    algorithm = {
                                        name: crv
                                    };
                                    break;
                                default:
                                    throw new JOSENotSupported("Invalid or unsupported crv option provided");
                            }
                            break;
                        }
                    case "ECDH-ES":
                    case "ECDH-ES+A128KW":
                    case "ECDH-ES+A192KW":
                    case "ECDH-ES+A256KW":
                        {
                            keyUsages = [
                                "deriveKey",
                                "deriveBits"
                            ];
                            crv1 = (_b2 = options == null ? void 0 : options.crv) != null ? _b2 : "P-256";
                            switch(crv1){
                                case "P-256":
                                case "P-384":
                                case "P-521":
                                    {
                                        algorithm = {
                                            name: "ECDH",
                                            namedCurve: crv1
                                        };
                                        break;
                                    }
                                case "X25519":
                                case "X448":
                                    algorithm = {
                                        name: crv1
                                    };
                                    break;
                                default:
                                    throw new JOSENotSupported("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448");
                            }
                            break;
                        }
                    default:
                        throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
                }
                return [
                    2,
                    webcrypto_default.subtle.generateKey(algorithm, (_c = options == null ? void 0 : options.extractable) != null ? _c : false, keyUsages)
                ];
            });
        });
    };
    var generateKeyPair2 = // node_modules/jose/dist/browser/key/generate_key_pair.js
    function generateKeyPair2(alg, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    generateKeyPair(alg, options)
                ];
            });
        });
    };
    var generateSecret2 = // node_modules/jose/dist/browser/key/generate_secret.js
    function generateSecret2(alg, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    generateSecret(alg, options)
                ];
            });
        });
    };
    var createSCAPv12RotationManager = // src/Driver/screenRotationManagerFactory.ts
    function createSCAPv12RotationManager(window2, foregroundVideoWrapper, backgroundVideoWrapper, settingsManager) {
        var _this = this;
        var bodyElement = getBodyElement();
        var screenRotationPropsProvider = new import_ScreenRotationPixelPropsProvider["default"](false, window2);
        return new import_ScreenRotationManager["default"](window2, screenRotationPropsProvider, [
            bodyElement,
            foregroundVideoWrapper,
            backgroundVideoWrapper
        ], function() {
            return __async(_this, null, function() {
                return _ts_generator(this, function(_state) {
                    return [
                        2,
                        settingsManager.getOrientation()
                    ];
                });
            });
        });
    };
    var createSCAPv13RotationManager = function createSCAPv13RotationManager(window2, scap, foregroundVideoWrapper, backgroundVideoWrapper, settingsManager) {
        var _this = this;
        var bodyElement = getBodyElement();
        var screenRotationPropsProvider = new import_ScreenRotationPixelPropsProvider["default"](false, window2);
        var screenRotationManager = new import_ScreenRotationManager["default"](window2, screenRotationPropsProvider, [
            bodyElement,
            foregroundVideoWrapper,
            backgroundVideoWrapper
        ], function() {
            return __async(_this, null, function() {
                return _ts_generator(this, function(_state) {
                    return [
                        2,
                        settingsManager.getOrientation()
                    ];
                });
            });
        });
        var scapScreenRotationManager = new SCAPv13ScreenRotationManager(scap, settingsManager, screenRotationManager);
        return scapScreenRotationManager;
    };
    var createSCAPv15RotationManager = function createSCAPv15RotationManager(window2, video, stream, settingsManager) {
        var _this = this;
        var bodyElement = getBodyElement();
        var screenRotationPropsProvider = new import_ScreenRotationViewportPropsProvider["default"](false);
        var screenRotationManager = new import_ScreenRotationManager["default"](window2, screenRotationPropsProvider, [
            bodyElement
        ], function() {
            return __async(_this, null, function() {
                return _ts_generator(this, function(_state) {
                    return [
                        2,
                        settingsManager.getOrientation()
                    ];
                });
            });
        });
        if (isFakePortrait(settingsManager)) {
            video = screenRotationManager.adaptVideoPlayer(video);
            stream = screenRotationManager.adaptStreamPlayer(stream);
        }
        return {
            screenRotationManager: screenRotationManager,
            video: video,
            stream: stream
        };
    };
    var getBodyElement = function getBodyElement() {
        return window.document.getElementById("body");
    };
    var isFakePortrait = function isFakePortrait(settingsManager) {
        var videoOrientation = settingsManager.getVideoOrientation();
        return videoOrientation !== null;
    };
    var createBrowser = // src/Driver/driverFactory.ts
    function createBrowser(window2, screenRotationManager) {
        var browser = new import_IframeBrowser["default"](window2);
        return screenRotationManager.adaptHTMLElementProducer(browser);
    };
    var createForegroundVideoWrapperElement = function createForegroundVideoWrapperElement(window2) {
        var HTML_ELEMENT_ID = "videos-wrapper-foreground";
        var videosWrapper = window2.document.createElement("div");
        videosWrapper.setAttribute("class", "video-wrapper");
        videosWrapper.id = HTML_ELEMENT_ID;
        window2.document.body.appendChild(videosWrapper);
        return videosWrapper;
    };
    var createBackgroundVideoWrapperElement = function createBackgroundVideoWrapperElement(window2) {
        var HTML_ELEMENT_ID = "videos-wrapper-background";
        var videosWrapper = window2.document.createElement("div");
        videosWrapper.setAttribute("class", "video-wrapper");
        videosWrapper.id = HTML_ELEMENT_ID;
        window2.document.body.appendChild(videosWrapper);
        return videosWrapper;
    };
    var createVideos = function createVideos(count, window2, foregroundWrapperElement, backgroundWrapperElement, createInternalPortVideo) {
        var videos = [];
        for(var i = 0; i < count; i++){
            var videoId = "video" + (i + 1);
            var video = new WebosVideo(videoId, window2, foregroundWrapperElement, backgroundWrapperElement, createInternalPortVideo);
            videos.push(video);
        }
        return videos;
    };
    var getSCAPv12InternalPortVideoFactory = function getSCAPv12InternalPortVideoFactory(scap) {
        return function(window2, videoElement, wrapperElement, id) {
            return new WebosSCAPv12InternalPortVideo(scap, window2, videoElement, wrapperElement, id);
        };
    };
    var getSCAPv16InternalPortVideoFactory = function getSCAPv16InternalPortVideoFactory(scap) {
        return function(window2, videoElement, wrapperElement, id) {
            return new WebosSCAPv16InternalPortVideo(scap, window2, videoElement, wrapperElement, id);
        };
    };
    var initializeSetup = // src/InitSetup/initializeSetup.ts
    function initializeSetup(window2) {
        return __async(this, null, function() {
            var scap, error;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        if (window2.localStorage.getItem(INIT_SETUP_DONE_KEY)) {
                            console.log("Initial setup already done, skipping.");
                            return [
                                2
                            ];
                        }
                        _state.label = 1;
                    case 1:
                        _state.trys.push([
                            1,
                            12,
                            13,
                            14
                        ]);
                        scap = new SCAPv16Plugins(window2);
                        if (!(initialConfig.pmMode !== void 0)) return [
                            3,
                            3
                        ];
                        return [
                            4,
                            setupPMMode(scap, {
                                mode: initialConfig.pmMode
                            })
                        ];
                    case 2:
                        _state.sent();
                        _state.label = 3;
                    case 3:
                        if (!(initialConfig.enableWakeOnLan !== void 0)) return [
                            3,
                            5
                        ];
                        return [
                            4,
                            setupWakeOnLan(scap, {
                                wakeOnLan: initialConfig.enableWakeOnLan
                            })
                        ];
                    case 4:
                        _state.sent();
                        _state.label = 5;
                    case 5:
                        if (!(initialConfig.automaticStandbyMode !== void 0)) return [
                            3,
                            7
                        ];
                        return [
                            4,
                            setupPowerSaveMode(scap, {
                                powerSaveMode: {
                                    automaticStandby: initialConfig.automaticStandbyMode
                                }
                            })
                        ];
                    case 6:
                        _state.sent();
                        _state.label = 7;
                    case 7:
                        if (!(initialConfig.tileInfo !== void 0)) return [
                            3,
                            9
                        ];
                        return [
                            4,
                            setupTileInfo(scap, {
                                tileInfo: {
                                    enabled: initialConfig.tileInfo
                                }
                            })
                        ];
                    case 8:
                        _state.sent();
                        _state.label = 9;
                    case 9:
                        if (!(initialConfig.powerOnStatus !== void 0)) return [
                            3,
                            11
                        ];
                        console.log("Setting up power on status:", initialConfig.powerOnStatus);
                        return [
                            4,
                            setupPowerOnStatus(window2, {
                                mode: initialConfig.powerOnStatus
                            })
                        ];
                    case 10:
                        _state.sent();
                        _state.label = 11;
                    case 11:
                        return [
                            3,
                            14
                        ];
                    case 12:
                        error = _state.sent();
                        console.error("Initialization startup parameters was not successful", error);
                        return [
                            3,
                            14
                        ];
                    case 13:
                        window2.localStorage.setItem(INIT_SETUP_DONE_KEY, "true");
                        return [
                            7
                        ];
                    case 14:
                        return [
                            2
                        ];
                }
            });
        });
    };
    var setupPMMode = function setupPMMode(scap, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        try {
                            scap.power.setPMMode(function() {
                                return resolve();
                            }, function(cbObject) {
                                return reject(new Error("Error during setPMMode: " + cbObject.errorText));
                            }, options);
                        } catch (error) {
                            reject(error);
                        }
                    })
                ];
            });
        });
    };
    var setupPowerSaveMode = function setupPowerSaveMode(scap, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        scap.signage.setPowerSaveMode(function() {
                            return resolve();
                        }, function(cbObject) {
                            return reject(new Error("Error during setPowerSaveMode: " + cbObject.errorText));
                        }, options);
                    })
                ];
            });
        });
    };
    var setupWakeOnLan = function setupWakeOnLan(scap, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        scap.power.enableWakeOnLan(function() {
                            return resolve();
                        }, function(cbObject) {
                            return reject(new Error("Error during enableWakeOnLan: " + cbObject.errorText));
                        }, options);
                    })
                ];
            });
        });
    };
    var setupTileInfo = function setupTileInfo(scap, options) {
        return __async(this, null, function() {
            return _ts_generator(this, function(_state) {
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        scap.signage.setTileInfo(function() {
                            return resolve();
                        }, function(cbObject) {
                            return reject(new Error("Error during setTileInfo: " + cbObject.errorText));
                        }, options);
                    })
                ];
            });
        });
    };
    var setupPowerOnStatus = function setupPowerOnStatus(window2, options) {
        return __async(this, null, function() {
            var custom;
            return _ts_generator(this, function(_state) {
                custom = new window2.Custom();
                return [
                    2,
                    new Promise(function(resolve, reject) {
                        custom.Configuration.setPowerOnStatus(function() {
                            return resolve();
                        }, function(cbObject) {
                            return reject(new Error("Error during setPowerOnStatus: " + cbObject.errorText));
                        }, options);
                    })
                ];
            });
        });
    };
    var rejectFromServiceError = // src/Synchronizer/SynchroServiceHelper.ts
    function rejectFromServiceError(reject, returnValue, operation) {
        var parts = [
            returnValue.errorCode,
            returnValue.errorText
        ].filter(function(part) {
            return part !== void 0 && part !== "";
        });
        var message2 = parts.length > 0 ? parts.join(" - ") : "".concat(operation, " failed (luna service returned empty error)");
        reject(new Error(message2));
    };
    var createSynchronizer = // src/Synchronizer/SynchronizerFactory.ts
    function createSynchronizer(socketSynchronizerServerUrl, getNativeDriver) {
        var webOsSynchronizer = new Synchronizer(getNativeDriver);
        return (0, import_polymorphicSynchronizerFactory.createSocketAndP2PSynchronizer)(socketSynchronizerServerUrl, getNativeDriver, webOsSynchronizer);
    };
    var loadIdcapLibs = // src/scapLibs.ts
    function loadIdcapLibs(window2) {
        return __async(this, null, function() {
            var path2;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        path2 = "libs/idcap/idcap.js";
                        return [
                            4,
                            appendScript(window2, path2)
                        ];
                    case 1:
                        _state.sent();
                        return [
                            2
                        ];
                }
            });
        });
    };
    var loadScapLibs = function loadScapLibs(window2) {
        return __async(this, null, function() {
            var v;
            return _ts_generator(this, function(_state) {
                switch(_state.label){
                    case 0:
                        return [
                            4,
                            getSCAPVersion()
                        ];
                    case 1:
                        v = _state.sent();
                        switch(v){
                            case 12:
                                return [
                                    3,
                                    2
                                ];
                            case 13:
                                return [
                                    3,
                                    4
                                ];
                            case 15:
                                return [
                                    3,
                                    6
                                ];
                            case 16:
                                return [
                                    3,
                                    8
                                ];
                            case 17:
                                return [
                                    3,
                                    10
                                ];
                            case 18:
                                return [
                                    3,
                                    12
                                ];
                        }
                        return [
                            3,
                            15
                        ];
                    case 2:
                        return [
                            4,
                            appendScapJs(window2, scap12LibNames, "1.2")
                        ];
                    case 3:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 4:
                        return [
                            4,
                            appendScapJs(window2, scap13LibNames, "1.3")
                        ];
                    case 5:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 6:
                        return [
                            4,
                            appendScapJs(window2, scap15LibNames, "1.5")
                        ];
                    case 7:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 8:
                        return [
                            4,
                            appendScapJs(window2, scap16LibNames, "1.6")
                        ];
                    case 9:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 10:
                        return [
                            4,
                            appendScapJs(window2, scap17LibNames, "1.7")
                        ];
                    case 11:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 12:
                        return [
                            4,
                            appendScapJs(window2, scap18LibNames, "1.8")
                        ];
                    case 13:
                        _state.sent();
                        return [
                            4,
                            loadIdcapLibs(window2)
                        ];
                    case 14:
                        return [
                            2,
                            _state.sent()
                        ];
                    case 15:
                        v;
                        throw new Error("loadScapLibs platform not recognized");
                    case 16:
                        return [
                            2
                        ];
                }
            });
        });
    };
    var appendScapJs = function appendScapJs(window2, libNames, version) {
        var _this = this;
        var scriptPathTemplate = "libs/cordova-cd/:version/:libName.js";
        var loadingLibs = libNames.map(function(libName) {
            return __async(_this, null, function() {
                var filePath;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            filePath = scriptPathTemplate.replace(":version", version).replace(":libName", libName);
                            return [
                                4,
                                appendScript(window2, filePath)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            });
        });
        return Promise.all(loadingLibs);
    };
    var appendScript = function appendScript(window2, filePath) {
        var scriptTag = window2.document.createElement("script");
        scriptTag.setAttribute("type", "text/javascript");
        scriptTag.setAttribute("src", filePath);
        return new Promise(function(resolve, reject) {
            scriptTag.onerror = function() {
                reject(new Error('File "'.concat(filePath, '" cannot be loaded')));
            };
            scriptTag.onload = function() {
                return resolve();
            };
            window2.document.body.appendChild(scriptTag);
        });
    };
    var __create = Object.create;
    var __defProp = Object.defineProperty;
    var __defProps = Object.defineProperties;
    var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
    var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
    var __getOwnPropNames = Object.getOwnPropertyNames;
    var __getOwnPropSymbols = Object.getOwnPropertySymbols;
    var __getProtoOf = Object.getPrototypeOf;
    var __hasOwnProp = Object.prototype.hasOwnProperty;
    var __propIsEnum = Object.prototype.propertyIsEnumerable;
    var __reflectGet = Reflect.get;
    var __knownSymbol = function(name, symbol5) {
        return (symbol5 = Symbol[name]) ? symbol5 : Symbol["for"]("Symbol." + name);
    };
    var __typeError = function(msg) {
        throw TypeError(msg);
    };
    var __pow = Math.pow;
    var __defNormalProp = function(obj, key, value) {
        return key in obj ? __defProp(obj, key, {
            enumerable: true,
            configurable: true,
            writable: true,
            value: value
        }) : obj[key] = value;
    };
    var __spreadValues = function(a, b) {
        for(var prop in b || (b = {}))if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
        var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
        if (__getOwnPropSymbols) try {
            for(var _iterator = __getOwnPropSymbols(b)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                var prop = _step.value;
                if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally{
            try {
                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                    _iterator["return"]();
                }
            } finally{
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
        return a;
    };
    var __spreadProps = function(a, b) {
        return __defProps(a, __getOwnPropDescs(b));
    };
    var __require = /* @__PURE__ */ function(x) {
        return typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
            get: function(a, b) {
                return (typeof require !== "undefined" ? require : a)[b];
            }
        }) : x;
    }(function(x) {
        if (typeof require !== "undefined") return require.apply(this, arguments);
        throw Error('Dynamic require of "' + x + '" is not supported');
    });
    var __objRest = function(source, exclude) {
        var target = {};
        for(var prop in source)if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];
        var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
        if (source != null && __getOwnPropSymbols) try {
            for(var _iterator = __getOwnPropSymbols(source)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                var prop = _step.value;
                if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop];
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally{
            try {
                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                    _iterator["return"]();
                }
            } finally{
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
        return target;
    };
    var __esm = function(fn, res) {
        return function __init() {
            return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
        };
    };
    var __commonJS = function(cb, mod) {
        return function __require2() {
            return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {
                exports: {}
            }).exports, mod), mod.exports;
        };
    };
    var __export = function(target, all2) {
        for(var name in all2)__defProp(target, name, {
            get: all2[name],
            enumerable: true
        });
    };
    var __copyProps = function(to, from, except, desc) {
        if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
            try {
                var _loop = function() {
                    var key = _step.value;
                    if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
                        get: function() {
                            return from[key];
                        },
                        enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
                    });
                };
                for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
            } catch (err) {
                _didIteratorError = true;
                _iteratorError = err;
            } finally{
                try {
                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                        _iterator["return"]();
                    }
                } finally{
                    if (_didIteratorError) {
                        throw _iteratorError;
                    }
                }
            }
        }
        return to;
    };
    var __toESM = function(mod, isNodeMode, target) {
        return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
        // file that has been converted to a CommonJS file using a Babel-
        // compatible transform (i.e. "__esModule" has not been set), then set
        // "default" to the CommonJS "module.exports" for node compatibility.
        isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
            value: mod,
            enumerable: true
        }) : target, mod);
    };
    var __toCommonJS = function(mod) {
        return __copyProps(__defProp({}, "__esModule", {
            value: true
        }), mod);
    };
    var __decorateClass = function(decorators, target, key, kind) {
        var result17 = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
        for(var i = decorators.length - 1, decorator; i >= 0; i--)if (decorator = decorators[i]) result17 = (kind ? decorator(target, key, result17) : decorator(result17)) || result17;
        if (kind && result17) __defProp(target, key, result17);
        return result17;
    };
    var __publicField = function(obj, key, value) {
        return __defNormalProp(obj, (typeof key === "undefined" ? "undefined" : _type_of(key)) !== "symbol" ? key + "" : key, value);
    };
    var __superGet = function(cls, obj, key) {
        return __reflectGet(__getProtoOf(cls), key, obj);
    };
    var __async = function(__this, __arguments, generator) {
        return new Promise(function(resolve, reject) {
            var fulfilled = function(value) {
                try {
                    step(generator.next(value));
                } catch (e) {
                    reject(e);
                }
            };
            var rejected = function(value) {
                try {
                    step(generator["throw"](value));
                } catch (e) {
                    reject(e);
                }
            };
            var step = function(x) {
                return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
            };
            step((generator = generator.apply(__this, __arguments)).next());
        });
    };
    var __await = function __await(promise3, isYieldStar) {
        this[0] = promise3;
        this[1] = isYieldStar;
    };
    var __asyncGenerator = function(__this, __arguments, generator) {
        var resume = function(k, v, yes, no) {
            try {
                var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done3 = x.done;
                Promise.resolve(isAwait ? v[0] : v).then(function(y) {
                    return isAwait ? resume(k === "return" ? k : "next", v[1] ? {
                        done: y.done,
                        value: y.value
                    } : y, yes, no) : yes({
                        value: y,
                        done: done3
                    });
                })["catch"](function(e) {
                    return resume("throw", e, yes, no);
                });
            } catch (e) {
                no(e);
            }
        }, method = function(k) {
            return it[k] = function(x) {
                return new Promise(function(yes, no) {
                    return resume(k, x, yes, no);
                });
            };
        }, it = {};
        return generator = generator.apply(__this, __arguments), it[__knownSymbol("asyncIterator")] = function() {
            return it;
        }, method("next"), method("throw"), method("return"), it;
    };
    var __yieldStar = function(value) {
        var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {};
        if (obj == null) {
            obj = value[__knownSymbol("iterator")]();
            method = function(k) {
                return it[k] = function(x) {
                    return obj[k](x);
                };
            };
        } else {
            obj = obj.call(value);
            method = function(k) {
                return it[k] = function(v) {
                    if (isAwait) {
                        isAwait = false;
                        if (k === "throw") throw v;
                        return v;
                    }
                    isAwait = true;
                    return {
                        done: false,
                        value: new __await(new Promise(function(resolve) {
                            var x = obj[k](v);
                            if (!(x instanceof Object)) __typeError("Object expected");
                            resolve(x);
                        }), 1)
                    };
                };
            };
        }
        return it[__knownSymbol("iterator")] = function() {
            return it;
        }, method("next"), "throw" in obj ? method("throw") : it["throw"] = function(x) {
            throw x;
        }, "return" in obj && method("return"), it;
    };
    // <define:__SOS_BUILDTIME_PARAMETERS__>
    var define_SOS_BUILDTIME_PARAMETERS_default;
    var init_define_SOS_BUILDTIME_PARAMETERS = __esm({
        "<define:__SOS_BUILDTIME_PARAMETERS__>": function() {
            define_SOS_BUILDTIME_PARAMETERS_default = {
                environment: "production",
                NODE_ENV: "production",
                app: {
                    name: "@signageos/display-webos",
                    version: "2.11.1-us1",
                    checkIntervalMs: 6e4
                },
                frontDisplay: {
                    sessionIdKey: "sessionId",
                    version: "14.40.0-us1"
                },
                frontApplet: {
                    prefix: "hug"
                },
                raven: {
                    dsn: "https://974c184f29284d2ca7bb93e664e63b63:3a1ef58b75ca45aa8248baf4d0bd13be@sentry.io/150270",
                    config: {
                        allowSecretKey: true,
                        release: "2.11.1-us1",
                        environment: "production",
                        tags: {
                            application: "front-display",
                            frontDisplayVersion: "14.40.0-us1"
                        }
                    }
                },
                url: {
                    configUrls: [
                        "https://config.signageos.io",
                        "https://platform.signageos.io"
                    ],
                    socketUri: "https://platform.signageos.io",
                    staticBaseUrl: "https://2.signageos.io",
                    uploadBaseUrl: "https://upload.signageos.io",
                    weinreServerUrl: "https://weinre.signageos.io",
                    synchronizerServerUrl: "https://applet-synchronizer.signageos.io"
                },
                subscriptionType: "platform",
                httpAuthPublicKey: "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzDtIKaR8+ecjt4oe/mog\nSbm31QZPMf+/euSt0iVwThlUCeTtBG3FHA/dJoNvkH2MPnWtUrvQrm2cYJl190ce\n2JipP2lf0L/bHyXmOJE8gcxUyHz5iRBhW5yfro4WluDXEXIa/PunhieaNqSoOZat\n5HfCZfPkYAlAX1CmTlJ+l+OkmbTloOdmWNj4m9oGmrQh+zivyC3ClynyjKGm+Yg2\npIKx/18wE3zG9wd7Xcg8mf1Y4OLD/nLyRZCJVDMb0KoCUqqIZOjcQ9OqzXhJqlTe\nVC1EROqi8q1LnMXChbqR6cVLm2qh2W2JSuOvF2yhfmkEQ0/pErpKNq+nYXa9yNPA\nfQIDAQAB\n-----END PUBLIC KEY-----",
                bundledApplet: null,
                autoVerification: null
            };
        }
    });
    // node_modules/base64-js/index.js
    var require_base64_js = __commonJS({
        "node_modules/base64-js/index.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.byteLength = byteLength;
            exports.toByteArray = toByteArray;
            exports.fromByteArray = fromByteArray;
            var lookup = [];
            var revLookup = [];
            var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
            var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
            for(i = 0, len = code.length; i < len; ++i){
                lookup[i] = code[i];
                revLookup[code.charCodeAt(i)] = i;
            }
            var i;
            var len;
            revLookup["-".charCodeAt(0)] = 62;
            revLookup["_".charCodeAt(0)] = 63;
            function getLens(b64) {
                var len2 = b64.length;
                if (len2 % 4 > 0) {
                    throw new Error("Invalid string. Length must be a multiple of 4");
                }
                var validLen = b64.indexOf("=");
                if (validLen === -1) validLen = len2;
                var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;
                return [
                    validLen,
                    placeHoldersLen
                ];
            }
            function byteLength(b64) {
                var lens = getLens(b64);
                var validLen = lens[0];
                var placeHoldersLen = lens[1];
                return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
            }
            function _byteLength(b64, validLen, placeHoldersLen) {
                return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
            }
            function toByteArray(b64) {
                var tmp;
                var lens = getLens(b64);
                var validLen = lens[0];
                var placeHoldersLen = lens[1];
                var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
                var curByte = 0;
                var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;
                var i2;
                for(i2 = 0; i2 < len2; i2 += 4){
                    tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];
                    arr[curByte++] = tmp >> 16 & 255;
                    arr[curByte++] = tmp >> 8 & 255;
                    arr[curByte++] = tmp & 255;
                }
                if (placeHoldersLen === 2) {
                    tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;
                    arr[curByte++] = tmp & 255;
                }
                if (placeHoldersLen === 1) {
                    tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;
                    arr[curByte++] = tmp >> 8 & 255;
                    arr[curByte++] = tmp & 255;
                }
                return arr;
            }
            function tripletToBase64(num) {
                return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
            }
            function encodeChunk(uint8, start, end) {
                var tmp;
                var output = [];
                for(var i2 = start; i2 < end; i2 += 3){
                    tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);
                    output.push(tripletToBase64(tmp));
                }
                return output.join("");
            }
            function fromByteArray(uint8) {
                var tmp;
                var len2 = uint8.length;
                var extraBytes = len2 % 3;
                var parts = [];
                var maxChunkLength = 16383;
                for(var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength){
                    parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));
                }
                if (extraBytes === 1) {
                    tmp = uint8[len2 - 1];
                    parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");
                } else if (extraBytes === 2) {
                    tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];
                    parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");
                }
                return parts.join("");
            }
        }
    });
    // node_modules/ieee754/index.js
    var require_ieee754 = __commonJS({
        "node_modules/ieee754/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.read = function(buffer, offset, isLE, mLen, nBytes) {
                var e, m;
                var eLen = nBytes * 8 - mLen - 1;
                var eMax = (1 << eLen) - 1;
                var eBias = eMax >> 1;
                var nBits = -7;
                var i = isLE ? nBytes - 1 : 0;
                var d = isLE ? -1 : 1;
                var s = buffer[offset + i];
                i += d;
                e = s & (1 << -nBits) - 1;
                s >>= -nBits;
                nBits += eLen;
                for(; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8){}
                m = e & (1 << -nBits) - 1;
                e >>= -nBits;
                nBits += mLen;
                for(; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8){}
                if (e === 0) {
                    e = 1 - eBias;
                } else if (e === eMax) {
                    return m ? NaN : (s ? -1 : 1) * Infinity;
                } else {
                    m = m + Math.pow(2, mLen);
                    e = e - eBias;
                }
                return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
            };
            exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {
                var e, m, c;
                var eLen = nBytes * 8 - mLen - 1;
                var eMax = (1 << eLen) - 1;
                var eBias = eMax >> 1;
                var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
                var i = isLE ? 0 : nBytes - 1;
                var d = isLE ? 1 : -1;
                var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
                value = Math.abs(value);
                if (isNaN(value) || value === Infinity) {
                    m = isNaN(value) ? 1 : 0;
                    e = eMax;
                } else {
                    e = Math.floor(Math.log(value) / Math.LN2);
                    if (value * (c = Math.pow(2, -e)) < 1) {
                        e--;
                        c *= 2;
                    }
                    if (e + eBias >= 1) {
                        value += rt / c;
                    } else {
                        value += rt * Math.pow(2, 1 - eBias);
                    }
                    if (value * c >= 2) {
                        e++;
                        c /= 2;
                    }
                    if (e + eBias >= eMax) {
                        m = 0;
                        e = eMax;
                    } else if (e + eBias >= 1) {
                        m = (value * c - 1) * Math.pow(2, mLen);
                        e = e + eBias;
                    } else {
                        m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
                        e = 0;
                    }
                }
                for(; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8){}
                e = e << mLen | m;
                eLen += mLen;
                for(; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8){}
                buffer[offset + i - d] |= s * 128;
            };
        }
    });
    // node_modules/buffer/index.js
    var require_buffer = __commonJS({
        "node_modules/buffer/index.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var base64 = require_base64_js();
            var ieee754 = require_ieee754();
            var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;
            exports.Buffer = Buffer3;
            exports.SlowBuffer = SlowBuffer;
            exports.INSPECT_MAX_BYTES = 50;
            var K_MAX_LENGTH = 2147483647;
            exports.kMaxLength = K_MAX_LENGTH;
            Buffer3.TYPED_ARRAY_SUPPORT = typedArraySupport();
            if (!Buffer3.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {
                console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");
            }
            function typedArraySupport() {
                try {
                    var arr = new Uint8Array(1);
                    var proto = {
                        foo: function foo() {
                            return 42;
                        }
                    };
                    Object.setPrototypeOf(proto, Uint8Array.prototype);
                    Object.setPrototypeOf(arr, proto);
                    return arr.foo() === 42;
                } catch (e) {
                    return false;
                }
            }
            Object.defineProperty(Buffer3.prototype, "parent", {
                enumerable: true,
                get: function get() {
                    if (!Buffer3.isBuffer(this)) return void 0;
                    return this.buffer;
                }
            });
            Object.defineProperty(Buffer3.prototype, "offset", {
                enumerable: true,
                get: function get() {
                    if (!Buffer3.isBuffer(this)) return void 0;
                    return this.byteOffset;
                }
            });
            function createBuffer(length) {
                if (length > K_MAX_LENGTH) {
                    throw new RangeError('The value "' + length + '" is invalid for option "size"');
                }
                var buf = new Uint8Array(length);
                Object.setPrototypeOf(buf, Buffer3.prototype);
                return buf;
            }
            function Buffer3(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    if (typeof encodingOrOffset === "string") {
                        throw new TypeError('The "string" argument must be of type string. Received type number');
                    }
                    return allocUnsafe(arg);
                }
                return from(arg, encodingOrOffset, length);
            }
            Buffer3.poolSize = 8192;
            function from(value, encodingOrOffset, length) {
                if (typeof value === "string") {
                    return fromString(value, encodingOrOffset);
                }
                if (ArrayBuffer.isView(value)) {
                    return fromArrayView(value);
                }
                if (value == null) {
                    throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + (typeof value === "undefined" ? "undefined" : _type_of(value)));
                }
                if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {
                    return fromArrayBuffer(value, encodingOrOffset, length);
                }
                if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {
                    return fromArrayBuffer(value, encodingOrOffset, length);
                }
                if (typeof value === "number") {
                    throw new TypeError('The "value" argument must not be of type number. Received type number');
                }
                var valueOf = value.valueOf && value.valueOf();
                if (valueOf != null && valueOf !== value) {
                    return Buffer3.from(valueOf, encodingOrOffset, length);
                }
                var b = fromObject(value);
                if (b) return b;
                if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {
                    return Buffer3.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);
                }
                throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + (typeof value === "undefined" ? "undefined" : _type_of(value)));
            }
            Buffer3.from = function(value, encodingOrOffset, length) {
                return from(value, encodingOrOffset, length);
            };
            Object.setPrototypeOf(Buffer3.prototype, Uint8Array.prototype);
            Object.setPrototypeOf(Buffer3, Uint8Array);
            function assertSize(size) {
                if (typeof size !== "number") {
                    throw new TypeError('"size" argument must be of type number');
                } else if (size < 0) {
                    throw new RangeError('The value "' + size + '" is invalid for option "size"');
                }
            }
            function alloc(size, fill, encoding) {
                assertSize(size);
                if (size <= 0) {
                    return createBuffer(size);
                }
                if (fill !== void 0) {
                    return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);
                }
                return createBuffer(size);
            }
            Buffer3.alloc = function(size, fill, encoding) {
                return alloc(size, fill, encoding);
            };
            function allocUnsafe(size) {
                assertSize(size);
                return createBuffer(size < 0 ? 0 : checked(size) | 0);
            }
            Buffer3.allocUnsafe = function(size) {
                return allocUnsafe(size);
            };
            Buffer3.allocUnsafeSlow = function(size) {
                return allocUnsafe(size);
            };
            function fromString(string5, encoding) {
                if (typeof encoding !== "string" || encoding === "") {
                    encoding = "utf8";
                }
                if (!Buffer3.isEncoding(encoding)) {
                    throw new TypeError("Unknown encoding: " + encoding);
                }
                var length = byteLength(string5, encoding) | 0;
                var buf = createBuffer(length);
                var actual = buf.write(string5, encoding);
                if (actual !== length) {
                    buf = buf.slice(0, actual);
                }
                return buf;
            }
            function fromArrayLike(array4) {
                var length = array4.length < 0 ? 0 : checked(array4.length) | 0;
                var buf = createBuffer(length);
                for(var i = 0; i < length; i += 1){
                    buf[i] = array4[i] & 255;
                }
                return buf;
            }
            function fromArrayView(arrayView) {
                if (isInstance(arrayView, Uint8Array)) {
                    var copy = new Uint8Array(arrayView);
                    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);
                }
                return fromArrayLike(arrayView);
            }
            function fromArrayBuffer(array4, byteOffset, length) {
                if (byteOffset < 0 || array4.byteLength < byteOffset) {
                    throw new RangeError('"offset" is outside of buffer bounds');
                }
                if (array4.byteLength < byteOffset + (length || 0)) {
                    throw new RangeError('"length" is outside of buffer bounds');
                }
                var buf;
                if (byteOffset === void 0 && length === void 0) {
                    buf = new Uint8Array(array4);
                } else if (length === void 0) {
                    buf = new Uint8Array(array4, byteOffset);
                } else {
                    buf = new Uint8Array(array4, byteOffset, length);
                }
                Object.setPrototypeOf(buf, Buffer3.prototype);
                return buf;
            }
            function fromObject(obj) {
                if (Buffer3.isBuffer(obj)) {
                    var len = checked(obj.length) | 0;
                    var buf = createBuffer(len);
                    if (buf.length === 0) {
                        return buf;
                    }
                    obj.copy(buf, 0, 0, len);
                    return buf;
                }
                if (obj.length !== void 0) {
                    if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {
                        return createBuffer(0);
                    }
                    return fromArrayLike(obj);
                }
                if (obj.type === "Buffer" && Array.isArray(obj.data)) {
                    return fromArrayLike(obj.data);
                }
            }
            function checked(length) {
                if (length >= K_MAX_LENGTH) {
                    throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");
                }
                return length | 0;
            }
            function SlowBuffer(length) {
                if (+length != length) {
                    length = 0;
                }
                return Buffer3.alloc(+length);
            }
            Buffer3.isBuffer = function isBuffer(b) {
                return b != null && b._isBuffer === true && b !== Buffer3.prototype;
            };
            Buffer3.compare = function compare(a, b) {
                if (isInstance(a, Uint8Array)) a = Buffer3.from(a, a.offset, a.byteLength);
                if (isInstance(b, Uint8Array)) b = Buffer3.from(b, b.offset, b.byteLength);
                if (!Buffer3.isBuffer(a) || !Buffer3.isBuffer(b)) {
                    throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
                }
                if (a === b) return 0;
                var x = a.length;
                var y = b.length;
                for(var i = 0, len = Math.min(x, y); i < len; ++i){
                    if (a[i] !== b[i]) {
                        x = a[i];
                        y = b[i];
                        break;
                    }
                }
                if (x < y) return -1;
                if (y < x) return 1;
                return 0;
            };
            Buffer3.isEncoding = function isEncoding(encoding) {
                switch(String(encoding).toLowerCase()){
                    case "hex":
                    case "utf8":
                    case "utf-8":
                    case "ascii":
                    case "latin1":
                    case "binary":
                    case "base64":
                    case "ucs2":
                    case "ucs-2":
                    case "utf16le":
                    case "utf-16le":
                        return true;
                    default:
                        return false;
                }
            };
            Buffer3.concat = function concat2(list, length) {
                if (!Array.isArray(list)) {
                    throw new TypeError('"list" argument must be an Array of Buffers');
                }
                if (list.length === 0) {
                    return Buffer3.alloc(0);
                }
                var i;
                if (length === void 0) {
                    length = 0;
                    for(i = 0; i < list.length; ++i){
                        length += list[i].length;
                    }
                }
                var buffer = Buffer3.allocUnsafe(length);
                var pos = 0;
                for(i = 0; i < list.length; ++i){
                    var buf = list[i];
                    if (isInstance(buf, Uint8Array)) {
                        if (pos + buf.length > buffer.length) {
                            if (!Buffer3.isBuffer(buf)) buf = Buffer3.from(buf);
                            buf.copy(buffer, pos);
                        } else {
                            Uint8Array.prototype.set.call(buffer, buf, pos);
                        }
                    } else if (!Buffer3.isBuffer(buf)) {
                        throw new TypeError('"list" argument must be an Array of Buffers');
                    } else {
                        buf.copy(buffer, pos);
                    }
                    pos += buf.length;
                }
                return buffer;
            };
            function byteLength(string5, encoding) {
                if (Buffer3.isBuffer(string5)) {
                    return string5.length;
                }
                if (ArrayBuffer.isView(string5) || isInstance(string5, ArrayBuffer)) {
                    return string5.byteLength;
                }
                if (typeof string5 !== "string") {
                    throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + (typeof string5 === "undefined" ? "undefined" : _type_of(string5)));
                }
                var len = string5.length;
                var mustMatch = arguments.length > 2 && arguments[2] === true;
                if (!mustMatch && len === 0) return 0;
                var loweredCase = false;
                for(;;){
                    switch(encoding){
                        case "ascii":
                        case "latin1":
                        case "binary":
                            return len;
                        case "utf8":
                        case "utf-8":
                            return utf8ToBytes(string5).length;
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return len * 2;
                        case "hex":
                            return len >>> 1;
                        case "base64":
                            return base64ToBytes(string5).length;
                        default:
                            if (loweredCase) {
                                return mustMatch ? -1 : utf8ToBytes(string5).length;
                            }
                            encoding = ("" + encoding).toLowerCase();
                            loweredCase = true;
                    }
                }
            }
            Buffer3.byteLength = byteLength;
            function slowToString(encoding, start, end) {
                var loweredCase = false;
                if (start === void 0 || start < 0) {
                    start = 0;
                }
                if (start > this.length) {
                    return "";
                }
                if (end === void 0 || end > this.length) {
                    end = this.length;
                }
                if (end <= 0) {
                    return "";
                }
                end >>>= 0;
                start >>>= 0;
                if (end <= start) {
                    return "";
                }
                if (!encoding) encoding = "utf8";
                while(true){
                    switch(encoding){
                        case "hex":
                            return hexSlice(this, start, end);
                        case "utf8":
                        case "utf-8":
                            return utf8Slice(this, start, end);
                        case "ascii":
                            return asciiSlice(this, start, end);
                        case "latin1":
                        case "binary":
                            return latin1Slice(this, start, end);
                        case "base64":
                            return base64Slice(this, start, end);
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return utf16leSlice(this, start, end);
                        default:
                            if (loweredCase) throw new TypeError("Unknown encoding: " + encoding);
                            encoding = (encoding + "").toLowerCase();
                            loweredCase = true;
                    }
                }
            }
            Buffer3.prototype._isBuffer = true;
            function swap(b, n, m) {
                var i = b[n];
                b[n] = b[m];
                b[m] = i;
            }
            Buffer3.prototype.swap16 = function swap16() {
                var len = this.length;
                if (len % 2 !== 0) {
                    throw new RangeError("Buffer size must be a multiple of 16-bits");
                }
                for(var i = 0; i < len; i += 2){
                    swap(this, i, i + 1);
                }
                return this;
            };
            Buffer3.prototype.swap32 = function swap32() {
                var len = this.length;
                if (len % 4 !== 0) {
                    throw new RangeError("Buffer size must be a multiple of 32-bits");
                }
                for(var i = 0; i < len; i += 4){
                    swap(this, i, i + 3);
                    swap(this, i + 1, i + 2);
                }
                return this;
            };
            Buffer3.prototype.swap64 = function swap64() {
                var len = this.length;
                if (len % 8 !== 0) {
                    throw new RangeError("Buffer size must be a multiple of 64-bits");
                }
                for(var i = 0; i < len; i += 8){
                    swap(this, i, i + 7);
                    swap(this, i + 1, i + 6);
                    swap(this, i + 2, i + 5);
                    swap(this, i + 3, i + 4);
                }
                return this;
            };
            Buffer3.prototype.toString = function toString3() {
                var length = this.length;
                if (length === 0) return "";
                if (arguments.length === 0) return utf8Slice(this, 0, length);
                return slowToString.apply(this, arguments);
            };
            Buffer3.prototype.toLocaleString = Buffer3.prototype.toString;
            Buffer3.prototype.equals = function equals(b) {
                if (!Buffer3.isBuffer(b)) throw new TypeError("Argument must be a Buffer");
                if (this === b) return true;
                return Buffer3.compare(this, b) === 0;
            };
            Buffer3.prototype.inspect = function inspect() {
                var str = "";
                var max = exports.INSPECT_MAX_BYTES;
                str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();
                if (this.length > max) str += " ... ";
                return "<Buffer " + str + ">";
            };
            if (customInspectSymbol) {
                Buffer3.prototype[customInspectSymbol] = Buffer3.prototype.inspect;
            }
            Buffer3.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {
                if (isInstance(target, Uint8Array)) {
                    target = Buffer3.from(target, target.offset, target.byteLength);
                }
                if (!Buffer3.isBuffer(target)) {
                    throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + (typeof target === "undefined" ? "undefined" : _type_of(target)));
                }
                if (start === void 0) {
                    start = 0;
                }
                if (end === void 0) {
                    end = target ? target.length : 0;
                }
                if (thisStart === void 0) {
                    thisStart = 0;
                }
                if (thisEnd === void 0) {
                    thisEnd = this.length;
                }
                if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
                    throw new RangeError("out of range index");
                }
                if (thisStart >= thisEnd && start >= end) {
                    return 0;
                }
                if (thisStart >= thisEnd) {
                    return -1;
                }
                if (start >= end) {
                    return 1;
                }
                start >>>= 0;
                end >>>= 0;
                thisStart >>>= 0;
                thisEnd >>>= 0;
                if (this === target) return 0;
                var x = thisEnd - thisStart;
                var y = end - start;
                var len = Math.min(x, y);
                var thisCopy = this.slice(thisStart, thisEnd);
                var targetCopy = target.slice(start, end);
                for(var i = 0; i < len; ++i){
                    if (thisCopy[i] !== targetCopy[i]) {
                        x = thisCopy[i];
                        y = targetCopy[i];
                        break;
                    }
                }
                if (x < y) return -1;
                if (y < x) return 1;
                return 0;
            };
            function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {
                if (buffer.length === 0) return -1;
                if (typeof byteOffset === "string") {
                    encoding = byteOffset;
                    byteOffset = 0;
                } else if (byteOffset > 2147483647) {
                    byteOffset = 2147483647;
                } else if (byteOffset < -2147483648) {
                    byteOffset = -2147483648;
                }
                byteOffset = +byteOffset;
                if (numberIsNaN(byteOffset)) {
                    byteOffset = dir ? 0 : buffer.length - 1;
                }
                if (byteOffset < 0) byteOffset = buffer.length + byteOffset;
                if (byteOffset >= buffer.length) {
                    if (dir) return -1;
                    else byteOffset = buffer.length - 1;
                } else if (byteOffset < 0) {
                    if (dir) byteOffset = 0;
                    else return -1;
                }
                if (typeof val === "string") {
                    val = Buffer3.from(val, encoding);
                }
                if (Buffer3.isBuffer(val)) {
                    if (val.length === 0) {
                        return -1;
                    }
                    return arrayIndexOf(buffer, val, byteOffset, encoding, dir);
                } else if (typeof val === "number") {
                    val = val & 255;
                    if (typeof Uint8Array.prototype.indexOf === "function") {
                        if (dir) {
                            return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);
                        } else {
                            return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);
                        }
                    }
                    return arrayIndexOf(buffer, [
                        val
                    ], byteOffset, encoding, dir);
                }
                throw new TypeError("val must be string, number or Buffer");
            }
            function arrayIndexOf(arr, val, byteOffset, encoding, dir) {
                var indexSize = 1;
                var arrLength = arr.length;
                var valLength = val.length;
                if (encoding !== void 0) {
                    encoding = String(encoding).toLowerCase();
                    if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {
                        if (arr.length < 2 || val.length < 2) {
                            return -1;
                        }
                        indexSize = 2;
                        arrLength /= 2;
                        valLength /= 2;
                        byteOffset /= 2;
                    }
                }
                function read(buf, i2) {
                    if (indexSize === 1) {
                        return buf[i2];
                    } else {
                        return buf.readUInt16BE(i2 * indexSize);
                    }
                }
                var i;
                if (dir) {
                    var foundIndex = -1;
                    for(i = byteOffset; i < arrLength; i++){
                        if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
                            if (foundIndex === -1) foundIndex = i;
                            if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;
                        } else {
                            if (foundIndex !== -1) i -= i - foundIndex;
                            foundIndex = -1;
                        }
                    }
                } else {
                    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;
                    for(i = byteOffset; i >= 0; i--){
                        var found = true;
                        for(var j = 0; j < valLength; j++){
                            if (read(arr, i + j) !== read(val, j)) {
                                found = false;
                                break;
                            }
                        }
                        if (found) return i;
                    }
                }
                return -1;
            }
            Buffer3.prototype.includes = function includes(val, byteOffset, encoding) {
                return this.indexOf(val, byteOffset, encoding) !== -1;
            };
            Buffer3.prototype.indexOf = function indexOf(val, byteOffset, encoding) {
                return bidirectionalIndexOf(this, val, byteOffset, encoding, true);
            };
            Buffer3.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {
                return bidirectionalIndexOf(this, val, byteOffset, encoding, false);
            };
            function hexWrite(buf, string5, offset, length) {
                offset = Number(offset) || 0;
                var remaining = buf.length - offset;
                if (!length) {
                    length = remaining;
                } else {
                    length = Number(length);
                    if (length > remaining) {
                        length = remaining;
                    }
                }
                var strLen = string5.length;
                if (length > strLen / 2) {
                    length = strLen / 2;
                }
                var i;
                for(i = 0; i < length; ++i){
                    var parsed = parseInt(string5.substr(i * 2, 2), 16);
                    if (numberIsNaN(parsed)) return i;
                    buf[offset + i] = parsed;
                }
                return i;
            }
            function utf8Write(buf, string5, offset, length) {
                return blitBuffer(utf8ToBytes(string5, buf.length - offset), buf, offset, length);
            }
            function asciiWrite(buf, string5, offset, length) {
                return blitBuffer(asciiToBytes(string5), buf, offset, length);
            }
            function base64Write(buf, string5, offset, length) {
                return blitBuffer(base64ToBytes(string5), buf, offset, length);
            }
            function ucs2Write(buf, string5, offset, length) {
                return blitBuffer(utf16leToBytes(string5, buf.length - offset), buf, offset, length);
            }
            Buffer3.prototype.write = function write(string5, offset, length, encoding) {
                if (offset === void 0) {
                    encoding = "utf8";
                    length = this.length;
                    offset = 0;
                } else if (length === void 0 && typeof offset === "string") {
                    encoding = offset;
                    length = this.length;
                    offset = 0;
                } else if (isFinite(offset)) {
                    offset = offset >>> 0;
                    if (isFinite(length)) {
                        length = length >>> 0;
                        if (encoding === void 0) encoding = "utf8";
                    } else {
                        encoding = length;
                        length = void 0;
                    }
                } else {
                    throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
                }
                var remaining = this.length - offset;
                if (length === void 0 || length > remaining) length = remaining;
                if (string5.length > 0 && (length < 0 || offset < 0) || offset > this.length) {
                    throw new RangeError("Attempt to write outside buffer bounds");
                }
                if (!encoding) encoding = "utf8";
                var loweredCase = false;
                for(;;){
                    switch(encoding){
                        case "hex":
                            return hexWrite(this, string5, offset, length);
                        case "utf8":
                        case "utf-8":
                            return utf8Write(this, string5, offset, length);
                        case "ascii":
                        case "latin1":
                        case "binary":
                            return asciiWrite(this, string5, offset, length);
                        case "base64":
                            return base64Write(this, string5, offset, length);
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return ucs2Write(this, string5, offset, length);
                        default:
                            if (loweredCase) throw new TypeError("Unknown encoding: " + encoding);
                            encoding = ("" + encoding).toLowerCase();
                            loweredCase = true;
                    }
                }
            };
            Buffer3.prototype.toJSON = function toJSON() {
                return {
                    type: "Buffer",
                    data: Array.prototype.slice.call(this._arr || this, 0)
                };
            };
            function base64Slice(buf, start, end) {
                if (start === 0 && end === buf.length) {
                    return base64.fromByteArray(buf);
                } else {
                    return base64.fromByteArray(buf.slice(start, end));
                }
            }
            function utf8Slice(buf, start, end) {
                end = Math.min(buf.length, end);
                var res = [];
                var i = start;
                while(i < end){
                    var firstByte = buf[i];
                    var codePoint = null;
                    var bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;
                    if (i + bytesPerSequence <= end) {
                        var secondByte = void 0, thirdByte = void 0, fourthByte = void 0, tempCodePoint = void 0;
                        switch(bytesPerSequence){
                            case 1:
                                if (firstByte < 128) {
                                    codePoint = firstByte;
                                }
                                break;
                            case 2:
                                secondByte = buf[i + 1];
                                if ((secondByte & 192) === 128) {
                                    tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;
                                    if (tempCodePoint > 127) {
                                        codePoint = tempCodePoint;
                                    }
                                }
                                break;
                            case 3:
                                secondByte = buf[i + 1];
                                thirdByte = buf[i + 2];
                                if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {
                                    tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;
                                    if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {
                                        codePoint = tempCodePoint;
                                    }
                                }
                                break;
                            case 4:
                                secondByte = buf[i + 1];
                                thirdByte = buf[i + 2];
                                fourthByte = buf[i + 3];
                                if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {
                                    tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;
                                    if (tempCodePoint > 65535 && tempCodePoint < 1114112) {
                                        codePoint = tempCodePoint;
                                    }
                                }
                        }
                    }
                    if (codePoint === null) {
                        codePoint = 65533;
                        bytesPerSequence = 1;
                    } else if (codePoint > 65535) {
                        codePoint -= 65536;
                        res.push(codePoint >>> 10 & 1023 | 55296);
                        codePoint = 56320 | codePoint & 1023;
                    }
                    res.push(codePoint);
                    i += bytesPerSequence;
                }
                return decodeCodePointsArray(res);
            }
            var MAX_ARGUMENTS_LENGTH = 4096;
            function decodeCodePointsArray(codePoints) {
                var len = codePoints.length;
                if (len <= MAX_ARGUMENTS_LENGTH) {
                    return String.fromCharCode.apply(String, codePoints);
                }
                var res = "";
                var i = 0;
                while(i < len){
                    res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));
                }
                return res;
            }
            function asciiSlice(buf, start, end) {
                var ret = "";
                end = Math.min(buf.length, end);
                for(var i = start; i < end; ++i){
                    ret += String.fromCharCode(buf[i] & 127);
                }
                return ret;
            }
            function latin1Slice(buf, start, end) {
                var ret = "";
                end = Math.min(buf.length, end);
                for(var i = start; i < end; ++i){
                    ret += String.fromCharCode(buf[i]);
                }
                return ret;
            }
            function hexSlice(buf, start, end) {
                var len = buf.length;
                if (!start || start < 0) start = 0;
                if (!end || end < 0 || end > len) end = len;
                var out = "";
                for(var i = start; i < end; ++i){
                    out += hexSliceLookupTable[buf[i]];
                }
                return out;
            }
            function utf16leSlice(buf, start, end) {
                var bytes = buf.slice(start, end);
                var res = "";
                for(var i = 0; i < bytes.length - 1; i += 2){
                    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);
                }
                return res;
            }
            Buffer3.prototype.slice = function slice(start, end) {
                var len = this.length;
                start = ~~start;
                end = end === void 0 ? len : ~~end;
                if (start < 0) {
                    start += len;
                    if (start < 0) start = 0;
                } else if (start > len) {
                    start = len;
                }
                if (end < 0) {
                    end += len;
                    if (end < 0) end = 0;
                } else if (end > len) {
                    end = len;
                }
                if (end < start) end = start;
                var newBuf = this.subarray(start, end);
                Object.setPrototypeOf(newBuf, Buffer3.prototype);
                return newBuf;
            };
            function checkOffset(offset, ext, length) {
                if (offset % 1 !== 0 || offset < 0) throw new RangeError("offset is not uint");
                if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length");
            }
            Buffer3.prototype.readUintLE = Buffer3.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {
                offset = offset >>> 0;
                byteLength2 = byteLength2 >>> 0;
                if (!noAssert) checkOffset(offset, byteLength2, this.length);
                var val = this[offset];
                var mul = 1;
                var i = 0;
                while(++i < byteLength2 && (mul *= 256)){
                    val += this[offset + i] * mul;
                }
                return val;
            };
            Buffer3.prototype.readUintBE = Buffer3.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {
                offset = offset >>> 0;
                byteLength2 = byteLength2 >>> 0;
                if (!noAssert) {
                    checkOffset(offset, byteLength2, this.length);
                }
                var val = this[offset + --byteLength2];
                var mul = 1;
                while(byteLength2 > 0 && (mul *= 256)){
                    val += this[offset + --byteLength2] * mul;
                }
                return val;
            };
            Buffer3.prototype.readUint8 = Buffer3.prototype.readUInt8 = function readUInt8(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 1, this.length);
                return this[offset];
            };
            Buffer3.prototype.readUint16LE = Buffer3.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 2, this.length);
                return this[offset] | this[offset + 1] << 8;
            };
            Buffer3.prototype.readUint16BE = Buffer3.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 2, this.length);
                return this[offset] << 8 | this[offset + 1];
            };
            Buffer3.prototype.readUint32LE = Buffer3.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 4, this.length);
                return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;
            };
            Buffer3.prototype.readUint32BE = Buffer3.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 4, this.length);
                return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);
            };
            Buffer3.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {
                offset = offset >>> 0;
                validateNumber(offset, "offset");
                var first = this[offset];
                var last = this[offset + 7];
                if (first === void 0 || last === void 0) {
                    boundsError(offset, this.length - 8);
                }
                var lo = first + this[++offset] * __pow(2, 8) + this[++offset] * __pow(2, 16) + this[++offset] * __pow(2, 24);
                var hi = this[++offset] + this[++offset] * __pow(2, 8) + this[++offset] * __pow(2, 16) + last * __pow(2, 24);
                return BigInt(lo) + (BigInt(hi) << BigInt(32));
            });
            Buffer3.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {
                offset = offset >>> 0;
                validateNumber(offset, "offset");
                var first = this[offset];
                var last = this[offset + 7];
                if (first === void 0 || last === void 0) {
                    boundsError(offset, this.length - 8);
                }
                var hi = first * __pow(2, 24) + this[++offset] * __pow(2, 16) + this[++offset] * __pow(2, 8) + this[++offset];
                var lo = this[++offset] * __pow(2, 24) + this[++offset] * __pow(2, 16) + this[++offset] * __pow(2, 8) + last;
                return (BigInt(hi) << BigInt(32)) + BigInt(lo);
            });
            Buffer3.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {
                offset = offset >>> 0;
                byteLength2 = byteLength2 >>> 0;
                if (!noAssert) checkOffset(offset, byteLength2, this.length);
                var val = this[offset];
                var mul = 1;
                var i = 0;
                while(++i < byteLength2 && (mul *= 256)){
                    val += this[offset + i] * mul;
                }
                mul *= 128;
                if (val >= mul) val -= Math.pow(2, 8 * byteLength2);
                return val;
            };
            Buffer3.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {
                offset = offset >>> 0;
                byteLength2 = byteLength2 >>> 0;
                if (!noAssert) checkOffset(offset, byteLength2, this.length);
                var i = byteLength2;
                var mul = 1;
                var val = this[offset + --i];
                while(i > 0 && (mul *= 256)){
                    val += this[offset + --i] * mul;
                }
                mul *= 128;
                if (val >= mul) val -= Math.pow(2, 8 * byteLength2);
                return val;
            };
            Buffer3.prototype.readInt8 = function readInt8(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 1, this.length);
                if (!(this[offset] & 128)) return this[offset];
                return (255 - this[offset] + 1) * -1;
            };
            Buffer3.prototype.readInt16LE = function readInt16LE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 2, this.length);
                var val = this[offset] | this[offset + 1] << 8;
                return val & 32768 ? val | 4294901760 : val;
            };
            Buffer3.prototype.readInt16BE = function readInt16BE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 2, this.length);
                var val = this[offset + 1] | this[offset] << 8;
                return val & 32768 ? val | 4294901760 : val;
            };
            Buffer3.prototype.readInt32LE = function readInt32LE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 4, this.length);
                return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;
            };
            Buffer3.prototype.readInt32BE = function readInt32BE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 4, this.length);
                return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];
            };
            Buffer3.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {
                offset = offset >>> 0;
                validateNumber(offset, "offset");
                var first = this[offset];
                var last = this[offset + 7];
                if (first === void 0 || last === void 0) {
                    boundsError(offset, this.length - 8);
                }
                var val = this[offset + 4] + this[offset + 5] * __pow(2, 8) + this[offset + 6] * __pow(2, 16) + (last << 24);
                return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * __pow(2, 8) + this[++offset] * __pow(2, 16) + this[++offset] * __pow(2, 24));
            });
            Buffer3.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {
                offset = offset >>> 0;
                validateNumber(offset, "offset");
                var first = this[offset];
                var last = this[offset + 7];
                if (first === void 0 || last === void 0) {
                    boundsError(offset, this.length - 8);
                }
                var val = (first << 24) + // Overflow
                this[++offset] * __pow(2, 16) + this[++offset] * __pow(2, 8) + this[++offset];
                return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * __pow(2, 24) + this[++offset] * __pow(2, 16) + this[++offset] * __pow(2, 8) + last);
            });
            Buffer3.prototype.readFloatLE = function readFloatLE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 4, this.length);
                return ieee754.read(this, offset, true, 23, 4);
            };
            Buffer3.prototype.readFloatBE = function readFloatBE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 4, this.length);
                return ieee754.read(this, offset, false, 23, 4);
            };
            Buffer3.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 8, this.length);
                return ieee754.read(this, offset, true, 52, 8);
            };
            Buffer3.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {
                offset = offset >>> 0;
                if (!noAssert) checkOffset(offset, 8, this.length);
                return ieee754.read(this, offset, false, 52, 8);
            };
            function checkInt(buf, value, offset, ext, max, min) {
                if (!Buffer3.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance');
                if (value > max || value < min) throw new RangeError('"value" argument is out of bounds');
                if (offset + ext > buf.length) throw new RangeError("Index out of range");
            }
            Buffer3.prototype.writeUintLE = Buffer3.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {
                value = +value;
                offset = offset >>> 0;
                byteLength2 = byteLength2 >>> 0;
                if (!noAssert) {
                    var maxBytes = Math.pow(2, 8 * byteLength2) - 1;
                    checkInt(this, value, offset, byteLength2, maxBytes, 0);
                }
                var mul = 1;
                var i = 0;
                this[offset] = value & 255;
                while(++i < byteLength2 && (mul *= 256)){
                    this[offset + i] = value / mul & 255;
                }
                return offset + byteLength2;
            };
            Buffer3.prototype.writeUintBE = Buffer3.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {
                value = +value;
                offset = offset >>> 0;
                byteLength2 = byteLength2 >>> 0;
                if (!noAssert) {
                    var maxBytes = Math.pow(2, 8 * byteLength2) - 1;
                    checkInt(this, value, offset, byteLength2, maxBytes, 0);
                }
                var i = byteLength2 - 1;
                var mul = 1;
                this[offset + i] = value & 255;
                while(--i >= 0 && (mul *= 256)){
                    this[offset + i] = value / mul & 255;
                }
                return offset + byteLength2;
            };
            Buffer3.prototype.writeUint8 = Buffer3.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 1, 255, 0);
                this[offset] = value & 255;
                return offset + 1;
            };
            Buffer3.prototype.writeUint16LE = Buffer3.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);
                this[offset] = value & 255;
                this[offset + 1] = value >>> 8;
                return offset + 2;
            };
            Buffer3.prototype.writeUint16BE = Buffer3.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);
                this[offset] = value >>> 8;
                this[offset + 1] = value & 255;
                return offset + 2;
            };
            Buffer3.prototype.writeUint32LE = Buffer3.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);
                this[offset + 3] = value >>> 24;
                this[offset + 2] = value >>> 16;
                this[offset + 1] = value >>> 8;
                this[offset] = value & 255;
                return offset + 4;
            };
            Buffer3.prototype.writeUint32BE = Buffer3.prototype.writeUInt32BE = function writeUInt32BE2(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);
                this[offset] = value >>> 24;
                this[offset + 1] = value >>> 16;
                this[offset + 2] = value >>> 8;
                this[offset + 3] = value & 255;
                return offset + 4;
            };
            function wrtBigUInt64LE(buf, value, offset, min, max) {
                checkIntBI(value, min, max, buf, offset, 7);
                var lo = Number(value & BigInt(4294967295));
                buf[offset++] = lo;
                lo = lo >> 8;
                buf[offset++] = lo;
                lo = lo >> 8;
                buf[offset++] = lo;
                lo = lo >> 8;
                buf[offset++] = lo;
                var hi = Number(value >> BigInt(32) & BigInt(4294967295));
                buf[offset++] = hi;
                hi = hi >> 8;
                buf[offset++] = hi;
                hi = hi >> 8;
                buf[offset++] = hi;
                hi = hi >> 8;
                buf[offset++] = hi;
                return offset;
            }
            function wrtBigUInt64BE(buf, value, offset, min, max) {
                checkIntBI(value, min, max, buf, offset, 7);
                var lo = Number(value & BigInt(4294967295));
                buf[offset + 7] = lo;
                lo = lo >> 8;
                buf[offset + 6] = lo;
                lo = lo >> 8;
                buf[offset + 5] = lo;
                lo = lo >> 8;
                buf[offset + 4] = lo;
                var hi = Number(value >> BigInt(32) & BigInt(4294967295));
                buf[offset + 3] = hi;
                hi = hi >> 8;
                buf[offset + 2] = hi;
                hi = hi >> 8;
                buf[offset + 1] = hi;
                hi = hi >> 8;
                buf[offset] = hi;
                return offset + 8;
            }
            Buffer3.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value) {
                var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
                return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));
            });
            Buffer3.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value) {
                var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
                return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));
            });
            Buffer3.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) {
                    var limit = Math.pow(2, 8 * byteLength2 - 1);
                    checkInt(this, value, offset, byteLength2, limit - 1, -limit);
                }
                var i = 0;
                var mul = 1;
                var sub = 0;
                this[offset] = value & 255;
                while(++i < byteLength2 && (mul *= 256)){
                    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
                        sub = 1;
                    }
                    this[offset + i] = (value / mul >> 0) - sub & 255;
                }
                return offset + byteLength2;
            };
            Buffer3.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) {
                    var limit = Math.pow(2, 8 * byteLength2 - 1);
                    checkInt(this, value, offset, byteLength2, limit - 1, -limit);
                }
                var i = byteLength2 - 1;
                var mul = 1;
                var sub = 0;
                this[offset + i] = value & 255;
                while(--i >= 0 && (mul *= 256)){
                    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
                        sub = 1;
                    }
                    this[offset + i] = (value / mul >> 0) - sub & 255;
                }
                return offset + byteLength2;
            };
            Buffer3.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 1, 127, -128);
                if (value < 0) value = 255 + value + 1;
                this[offset] = value & 255;
                return offset + 1;
            };
            Buffer3.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);
                this[offset] = value & 255;
                this[offset + 1] = value >>> 8;
                return offset + 2;
            };
            Buffer3.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);
                this[offset] = value >>> 8;
                this[offset + 1] = value & 255;
                return offset + 2;
            };
            Buffer3.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);
                this[offset] = value & 255;
                this[offset + 1] = value >>> 8;
                this[offset + 2] = value >>> 16;
                this[offset + 3] = value >>> 24;
                return offset + 4;
            };
            Buffer3.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);
                if (value < 0) value = 4294967295 + value + 1;
                this[offset] = value >>> 24;
                this[offset + 1] = value >>> 16;
                this[offset + 2] = value >>> 8;
                this[offset + 3] = value & 255;
                return offset + 4;
            };
            Buffer3.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value) {
                var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
                return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
            });
            Buffer3.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value) {
                var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
                return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
            });
            function checkIEEE754(buf, value, offset, ext, max, min) {
                if (offset + ext > buf.length) throw new RangeError("Index out of range");
                if (offset < 0) throw new RangeError("Index out of range");
            }
            function writeFloat(buf, value, offset, littleEndian, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) {
                    checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22);
                }
                ieee754.write(buf, value, offset, littleEndian, 23, 4);
                return offset + 4;
            }
            Buffer3.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {
                return writeFloat(this, value, offset, true, noAssert);
            };
            Buffer3.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {
                return writeFloat(this, value, offset, false, noAssert);
            };
            function writeDouble(buf, value, offset, littleEndian, noAssert) {
                value = +value;
                offset = offset >>> 0;
                if (!noAssert) {
                    checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292);
                }
                ieee754.write(buf, value, offset, littleEndian, 52, 8);
                return offset + 8;
            }
            Buffer3.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {
                return writeDouble(this, value, offset, true, noAssert);
            };
            Buffer3.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {
                return writeDouble(this, value, offset, false, noAssert);
            };
            Buffer3.prototype.copy = function copy(target, targetStart, start, end) {
                if (!Buffer3.isBuffer(target)) throw new TypeError("argument should be a Buffer");
                if (!start) start = 0;
                if (!end && end !== 0) end = this.length;
                if (targetStart >= target.length) targetStart = target.length;
                if (!targetStart) targetStart = 0;
                if (end > 0 && end < start) end = start;
                if (end === start) return 0;
                if (target.length === 0 || this.length === 0) return 0;
                if (targetStart < 0) {
                    throw new RangeError("targetStart out of bounds");
                }
                if (start < 0 || start >= this.length) throw new RangeError("Index out of range");
                if (end < 0) throw new RangeError("sourceEnd out of bounds");
                if (end > this.length) end = this.length;
                if (target.length - targetStart < end - start) {
                    end = target.length - targetStart + start;
                }
                var len = end - start;
                if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {
                    this.copyWithin(targetStart, start, end);
                } else {
                    Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);
                }
                return len;
            };
            Buffer3.prototype.fill = function fill(val, start, end, encoding) {
                if (typeof val === "string") {
                    if (typeof start === "string") {
                        encoding = start;
                        start = 0;
                        end = this.length;
                    } else if (typeof end === "string") {
                        encoding = end;
                        end = this.length;
                    }
                    if (encoding !== void 0 && typeof encoding !== "string") {
                        throw new TypeError("encoding must be a string");
                    }
                    if (typeof encoding === "string" && !Buffer3.isEncoding(encoding)) {
                        throw new TypeError("Unknown encoding: " + encoding);
                    }
                    if (val.length === 1) {
                        var code = val.charCodeAt(0);
                        if (encoding === "utf8" && code < 128 || encoding === "latin1") {
                            val = code;
                        }
                    }
                } else if (typeof val === "number") {
                    val = val & 255;
                } else if (typeof val === "boolean") {
                    val = Number(val);
                }
                if (start < 0 || this.length < start || this.length < end) {
                    throw new RangeError("Out of range index");
                }
                if (end <= start) {
                    return this;
                }
                start = start >>> 0;
                end = end === void 0 ? this.length : end >>> 0;
                if (!val) val = 0;
                var i;
                if (typeof val === "number") {
                    for(i = start; i < end; ++i){
                        this[i] = val;
                    }
                } else {
                    var bytes = Buffer3.isBuffer(val) ? val : Buffer3.from(val, encoding);
                    var len = bytes.length;
                    if (len === 0) {
                        throw new TypeError('The value "' + val + '" is invalid for argument "value"');
                    }
                    for(i = 0; i < end - start; ++i){
                        this[i + start] = bytes[i % len];
                    }
                }
                return this;
            };
            var errors = {};
            function E(sym, getMessage, Base) {
                errors[sym] = /*#__PURE__*/ function(Base) {
                    _inherits(NodeError, Base);
                    var _super = _create_super(NodeError);
                    function NodeError() {
                        _class_call_check(this, NodeError);
                        var _this;
                        _this = _super.call(this);
                        Object.defineProperty(_assert_this_initialized(_this), "message", {
                            value: getMessage.apply(_assert_this_initialized(_this), arguments),
                            writable: true,
                            configurable: true
                        });
                        _this.name = "".concat(_this.name, " [").concat(sym, "]");
                        _this.stack;
                        delete _this.name;
                        return _this;
                    }
                    _create_class(NodeError, [
                        {
                            key: "code",
                            get: function get() {
                                return sym;
                            },
                            set: function set(value) {
                                Object.defineProperty(this, "code", {
                                    configurable: true,
                                    enumerable: true,
                                    value: value,
                                    writable: true
                                });
                            }
                        },
                        {
                            key: "toString",
                            value: function toString() {
                                return "".concat(this.name, " [").concat(sym, "]: ").concat(this.message);
                            }
                        }
                    ]);
                    return NodeError;
                }(Base);
            }
            E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {
                if (name) {
                    return "".concat(name, " is outside of buffer bounds");
                }
                return "Attempt to access memory outside buffer bounds";
            }, RangeError);
            E("ERR_INVALID_ARG_TYPE", function(name, actual) {
                return 'The "'.concat(name, '" argument must be of type number. Received type ').concat(typeof actual === "undefined" ? "undefined" : _type_of(actual));
            }, TypeError);
            E("ERR_OUT_OF_RANGE", function(str, range, input) {
                var msg = 'The value of "'.concat(str, '" is out of range.');
                var received = input;
                if (Number.isInteger(input) && Math.abs(input) > __pow(2, 32)) {
                    received = addNumericalSeparator(String(input));
                } else if ((typeof input === "undefined" ? "undefined" : _type_of(input)) === "bigint") {
                    received = String(input);
                    if (input > __pow(BigInt(2), BigInt(32)) || input < -__pow(BigInt(2), BigInt(32))) {
                        received = addNumericalSeparator(received);
                    }
                    received += "n";
                }
                msg += " It must be ".concat(range, ". Received ").concat(received);
                return msg;
            }, RangeError);
            function addNumericalSeparator(val) {
                var res = "";
                var i = val.length;
                var start = val[0] === "-" ? 1 : 0;
                for(; i >= start + 4; i -= 3){
                    res = "_".concat(val.slice(i - 3, i)).concat(res);
                }
                return "".concat(val.slice(0, i)).concat(res);
            }
            function checkBounds(buf, offset, byteLength2) {
                validateNumber(offset, "offset");
                if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) {
                    boundsError(offset, buf.length - (byteLength2 + 1));
                }
            }
            function checkIntBI(value, min, max, buf, offset, byteLength2) {
                if (value > max || value < min) {
                    var n = (typeof min === "undefined" ? "undefined" : _type_of(min)) === "bigint" ? "n" : "";
                    var range;
                    if (byteLength2 > 3) {
                        if (min === 0 || min === BigInt(0)) {
                            range = ">= 0".concat(n, " and < 2").concat(n, " ** ").concat((byteLength2 + 1) * 8).concat(n);
                        } else {
                            range = ">= -(2".concat(n, " ** ").concat((byteLength2 + 1) * 8 - 1).concat(n, ") and < 2 ** ").concat((byteLength2 + 1) * 8 - 1).concat(n);
                        }
                    } else {
                        range = ">= ".concat(min).concat(n, " and <= ").concat(max).concat(n);
                    }
                    throw new errors.ERR_OUT_OF_RANGE("value", range, value);
                }
                checkBounds(buf, offset, byteLength2);
            }
            function validateNumber(value, name) {
                if (typeof value !== "number") {
                    throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);
                }
            }
            function boundsError(value, length, type) {
                if (Math.floor(value) !== value) {
                    validateNumber(value, type);
                    throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);
                }
                if (length < 0) {
                    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();
                }
                throw new errors.ERR_OUT_OF_RANGE(type || "offset", ">= ".concat(type ? 1 : 0, " and <= ").concat(length), value);
            }
            var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;
            function base64clean(str) {
                str = str.split("=")[0];
                str = str.trim().replace(INVALID_BASE64_RE, "");
                if (str.length < 2) return "";
                while(str.length % 4 !== 0){
                    str = str + "=";
                }
                return str;
            }
            function utf8ToBytes(string5, units) {
                units = units || Infinity;
                var codePoint;
                var length = string5.length;
                var leadSurrogate = null;
                var bytes = [];
                for(var i = 0; i < length; ++i){
                    codePoint = string5.charCodeAt(i);
                    if (codePoint > 55295 && codePoint < 57344) {
                        if (!leadSurrogate) {
                            if (codePoint > 56319) {
                                if ((units -= 3) > -1) bytes.push(239, 191, 189);
                                continue;
                            } else if (i + 1 === length) {
                                if ((units -= 3) > -1) bytes.push(239, 191, 189);
                                continue;
                            }
                            leadSurrogate = codePoint;
                            continue;
                        }
                        if (codePoint < 56320) {
                            if ((units -= 3) > -1) bytes.push(239, 191, 189);
                            leadSurrogate = codePoint;
                            continue;
                        }
                        codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;
                    } else if (leadSurrogate) {
                        if ((units -= 3) > -1) bytes.push(239, 191, 189);
                    }
                    leadSurrogate = null;
                    if (codePoint < 128) {
                        if ((units -= 1) < 0) break;
                        bytes.push(codePoint);
                    } else if (codePoint < 2048) {
                        if ((units -= 2) < 0) break;
                        bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);
                    } else if (codePoint < 65536) {
                        if ((units -= 3) < 0) break;
                        bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);
                    } else if (codePoint < 1114112) {
                        if ((units -= 4) < 0) break;
                        bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);
                    } else {
                        throw new Error("Invalid code point");
                    }
                }
                return bytes;
            }
            function asciiToBytes(str) {
                var byteArray = [];
                for(var i = 0; i < str.length; ++i){
                    byteArray.push(str.charCodeAt(i) & 255);
                }
                return byteArray;
            }
            function utf16leToBytes(str, units) {
                var c, hi, lo;
                var byteArray = [];
                for(var i = 0; i < str.length; ++i){
                    if ((units -= 2) < 0) break;
                    c = str.charCodeAt(i);
                    hi = c >> 8;
                    lo = c % 256;
                    byteArray.push(lo);
                    byteArray.push(hi);
                }
                return byteArray;
            }
            function base64ToBytes(str) {
                return base64.toByteArray(base64clean(str));
            }
            function blitBuffer(src, dst, offset, length) {
                var i;
                for(i = 0; i < length; ++i){
                    if (i + offset >= dst.length || i >= src.length) break;
                    dst[i + offset] = src[i];
                }
                return i;
            }
            function isInstance(obj, type) {
                return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;
            }
            function numberIsNaN(obj) {
                return obj !== obj;
            }
            var hexSliceLookupTable = function() {
                var alphabet = "0123456789abcdef";
                var table = new Array(256);
                for(var i = 0; i < 16; ++i){
                    var i16 = i * 16;
                    for(var j = 0; j < 16; ++j){
                        table[i16 + j] = alphabet[i] + alphabet[j];
                    }
                }
                return table;
            }();
            function defineBigIntMethod(fn) {
                return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;
            }
            function BufferBigIntNotDefined() {
                throw new Error("BigInt not supported");
            }
        }
    });
    // node_modules/@signageos/lib-bundler/shims/node.js
    var import_buffer, process;
    var init_node = __esm({
        "node_modules/@signageos/lib-bundler/shims/node.js": function() {
            import_buffer = __toESM(require_buffer());
            process = {
                env: {},
                cwd: function() {
                    return "/";
                },
                browser: true
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Display/IConfig.js
    var require_IConfig = __commonJS({
        "node_modules/@signageos/front-display/es6/Display/IConfig.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SubscriptionType = void 0;
            var SubscriptionType;
            (function(SubscriptionType2) {
                SubscriptionType2["open"] = "open";
                SubscriptionType2["platform"] = "platform";
            })(SubscriptionType || (exports.SubscriptionType = SubscriptionType = {}));
        }
    });
    // node_modules/lodash/lodash.js
    var require_lodash = __commonJS({
        "node_modules/lodash/lodash.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function() {
                var undefined2;
                var VERSION = "4.17.21";
                var LARGE_ARRAY_SIZE = 200;
                var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
                var HASH_UNDEFINED = "__lodash_hash_undefined__";
                var MAX_MEMOIZE_SIZE = 500;
                var PLACEHOLDER = "__lodash_placeholder__";
                var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;
                var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
                var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512;
                var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "...";
                var HOT_COUNT = 800, HOT_SPAN = 16;
                var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3;
                var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0;
                var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
                var wrapFlags = [
                    [
                        "ary",
                        WRAP_ARY_FLAG
                    ],
                    [
                        "bind",
                        WRAP_BIND_FLAG
                    ],
                    [
                        "bindKey",
                        WRAP_BIND_KEY_FLAG
                    ],
                    [
                        "curry",
                        WRAP_CURRY_FLAG
                    ],
                    [
                        "curryRight",
                        WRAP_CURRY_RIGHT_FLAG
                    ],
                    [
                        "flip",
                        WRAP_FLIP_FLAG
                    ],
                    [
                        "partial",
                        WRAP_PARTIAL_FLAG
                    ],
                    [
                        "partialRight",
                        WRAP_PARTIAL_RIGHT_FLAG
                    ],
                    [
                        "rearg",
                        WRAP_REARG_FLAG
                    ]
                ];
                var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]";
                var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
                var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
                var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
                var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g;
                var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
                var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source);
                var reTrimStart = /^\s+/;
                var reWhitespace = /\s/;
                var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /;
                var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
                var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
                var reEscapeChar = /\\(\\)?/g;
                var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
                var reFlags = /\w*$/;
                var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
                var reIsBinary = /^0b[01]+$/i;
                var reIsHostCtor = /^\[object .+?Constructor\]$/;
                var reIsOctal = /^0o[0-7]+$/i;
                var reIsUint = /^(?:0|[1-9]\d*)$/;
                var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
                var reNoMatch = /($^)/;
                var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
                var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
                var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d";
                var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [
                    rsNonAstral,
                    rsRegional,
                    rsSurrPair
                ].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [
                    rsDingbat,
                    rsRegional,
                    rsSurrPair
                ].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [
                    rsNonAstral + rsCombo + "?",
                    rsCombo,
                    rsRegional,
                    rsSurrPair,
                    rsAstral
                ].join("|") + ")";
                var reApos = RegExp(rsApos, "g");
                var reComboMark = RegExp(rsCombo, "g");
                var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
                var reUnicodeWord = RegExp([
                    rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [
                        rsBreak,
                        rsUpper,
                        "$"
                    ].join("|") + ")",
                    rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [
                        rsBreak,
                        rsUpper + rsMiscLower,
                        "$"
                    ].join("|") + ")",
                    rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
                    rsUpper + "+" + rsOptContrUpper,
                    rsOrdUpper,
                    rsOrdLower,
                    rsDigits,
                    rsEmoji
                ].join("|"), "g");
                var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
                var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
                var contextProps = [
                    "Array",
                    "Buffer",
                    "DataView",
                    "Date",
                    "Error",
                    "Float32Array",
                    "Float64Array",
                    "Function",
                    "Int8Array",
                    "Int16Array",
                    "Int32Array",
                    "Map",
                    "Math",
                    "Object",
                    "Promise",
                    "RegExp",
                    "Set",
                    "String",
                    "Symbol",
                    "TypeError",
                    "Uint8Array",
                    "Uint8ClampedArray",
                    "Uint16Array",
                    "Uint32Array",
                    "WeakMap",
                    "_",
                    "clearTimeout",
                    "isFinite",
                    "parseInt",
                    "setTimeout"
                ];
                var templateCounter = -1;
                var typedArrayTags = {};
                typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
                typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
                var cloneableTags = {};
                cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
                cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
                var deburredLetters = {
                    // Latin-1 Supplement block.
                    À: "A",
                    Á: "A",
                    Â: "A",
                    Ã: "A",
                    Ä: "A",
                    Å: "A",
                    à: "a",
                    á: "a",
                    â: "a",
                    ã: "a",
                    ä: "a",
                    å: "a",
                    Ç: "C",
                    ç: "c",
                    Ð: "D",
                    ð: "d",
                    È: "E",
                    É: "E",
                    Ê: "E",
                    Ë: "E",
                    è: "e",
                    é: "e",
                    ê: "e",
                    ë: "e",
                    Ì: "I",
                    Í: "I",
                    Î: "I",
                    Ï: "I",
                    ì: "i",
                    í: "i",
                    î: "i",
                    ï: "i",
                    Ñ: "N",
                    ñ: "n",
                    Ò: "O",
                    Ó: "O",
                    Ô: "O",
                    Õ: "O",
                    Ö: "O",
                    Ø: "O",
                    ò: "o",
                    ó: "o",
                    ô: "o",
                    õ: "o",
                    ö: "o",
                    ø: "o",
                    Ù: "U",
                    Ú: "U",
                    Û: "U",
                    Ü: "U",
                    ù: "u",
                    ú: "u",
                    û: "u",
                    ü: "u",
                    Ý: "Y",
                    ý: "y",
                    ÿ: "y",
                    Æ: "Ae",
                    æ: "ae",
                    Þ: "Th",
                    þ: "th",
                    ß: "ss",
                    // Latin Extended-A block.
                    Ā: "A",
                    Ă: "A",
                    Ą: "A",
                    ā: "a",
                    ă: "a",
                    ą: "a",
                    Ć: "C",
                    Ĉ: "C",
                    Ċ: "C",
                    Č: "C",
                    ć: "c",
                    ĉ: "c",
                    ċ: "c",
                    č: "c",
                    Ď: "D",
                    Đ: "D",
                    ď: "d",
                    đ: "d",
                    Ē: "E",
                    Ĕ: "E",
                    Ė: "E",
                    Ę: "E",
                    Ě: "E",
                    ē: "e",
                    ĕ: "e",
                    ė: "e",
                    ę: "e",
                    ě: "e",
                    Ĝ: "G",
                    Ğ: "G",
                    Ġ: "G",
                    Ģ: "G",
                    ĝ: "g",
                    ğ: "g",
                    ġ: "g",
                    ģ: "g",
                    Ĥ: "H",
                    Ħ: "H",
                    ĥ: "h",
                    ħ: "h",
                    Ĩ: "I",
                    Ī: "I",
                    Ĭ: "I",
                    Į: "I",
                    İ: "I",
                    ĩ: "i",
                    ī: "i",
                    ĭ: "i",
                    į: "i",
                    ı: "i",
                    Ĵ: "J",
                    ĵ: "j",
                    Ķ: "K",
                    ķ: "k",
                    ĸ: "k",
                    Ĺ: "L",
                    Ļ: "L",
                    Ľ: "L",
                    Ŀ: "L",
                    Ł: "L",
                    ĺ: "l",
                    ļ: "l",
                    ľ: "l",
                    ŀ: "l",
                    ł: "l",
                    Ń: "N",
                    Ņ: "N",
                    Ň: "N",
                    Ŋ: "N",
                    ń: "n",
                    ņ: "n",
                    ň: "n",
                    ŋ: "n",
                    Ō: "O",
                    Ŏ: "O",
                    Ő: "O",
                    ō: "o",
                    ŏ: "o",
                    ő: "o",
                    Ŕ: "R",
                    Ŗ: "R",
                    Ř: "R",
                    ŕ: "r",
                    ŗ: "r",
                    ř: "r",
                    Ś: "S",
                    Ŝ: "S",
                    Ş: "S",
                    Š: "S",
                    ś: "s",
                    ŝ: "s",
                    ş: "s",
                    š: "s",
                    Ţ: "T",
                    Ť: "T",
                    Ŧ: "T",
                    ţ: "t",
                    ť: "t",
                    ŧ: "t",
                    Ũ: "U",
                    Ū: "U",
                    Ŭ: "U",
                    Ů: "U",
                    Ű: "U",
                    Ų: "U",
                    ũ: "u",
                    ū: "u",
                    ŭ: "u",
                    ů: "u",
                    ű: "u",
                    ų: "u",
                    Ŵ: "W",
                    ŵ: "w",
                    Ŷ: "Y",
                    ŷ: "y",
                    Ÿ: "Y",
                    Ź: "Z",
                    Ż: "Z",
                    Ž: "Z",
                    ź: "z",
                    ż: "z",
                    ž: "z",
                    Ĳ: "IJ",
                    ĳ: "ij",
                    Œ: "Oe",
                    œ: "oe",
                    ŉ: "'n",
                    ſ: "s"
                };
                var htmlEscapes = {
                    "&": "&amp;",
                    "<": "&lt;",
                    ">": "&gt;",
                    '"': "&quot;",
                    "'": "&#39;"
                };
                var htmlUnescapes = {
                    "&amp;": "&",
                    "&lt;": "<",
                    "&gt;": ">",
                    "&quot;": '"',
                    "&#39;": "'"
                };
                var stringEscapes = {
                    "\\": "\\",
                    "'": "'",
                    "\n": "n",
                    "\r": "r",
                    "\u2028": "u2028",
                    "\u2029": "u2029"
                };
                var freeParseFloat = parseFloat, freeParseInt = parseInt;
                var freeGlobal = (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) == "object" && globalThis && globalThis.Object === Object && globalThis;
                var freeSelf = (typeof self === "undefined" ? "undefined" : _type_of(self)) == "object" && self && self.Object === Object && self;
                var root = freeGlobal || freeSelf || Function("return this")();
                var freeExports = (typeof exports === "undefined" ? "undefined" : _type_of(exports)) == "object" && exports && !exports.nodeType && exports;
                var freeModule = freeExports && (typeof module === "undefined" ? "undefined" : _type_of(module)) == "object" && module && !module.nodeType && module;
                var moduleExports = freeModule && freeModule.exports === freeExports;
                var freeProcess = moduleExports && freeGlobal.process;
                var nodeUtil = function() {
                    try {
                        var types2 = freeModule && freeModule.require && freeModule.require("util").types;
                        if (types2) {
                            return types2;
                        }
                        return freeProcess && freeProcess.binding && freeProcess.binding("util");
                    } catch (e) {}
                }();
                var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
                function apply2(func3, thisArg, args) {
                    switch(args.length){
                        case 0:
                            return func3.call(thisArg);
                        case 1:
                            return func3.call(thisArg, args[0]);
                        case 2:
                            return func3.call(thisArg, args[0], args[1]);
                        case 3:
                            return func3.call(thisArg, args[0], args[1], args[2]);
                    }
                    return func3.apply(thisArg, args);
                }
                function arrayAggregator(array4, setter, iteratee, accumulator) {
                    var index = -1, length = array4 == null ? 0 : array4.length;
                    while(++index < length){
                        var value = array4[index];
                        setter(accumulator, value, iteratee(value), array4);
                    }
                    return accumulator;
                }
                function arrayEach(array4, iteratee) {
                    var index = -1, length = array4 == null ? 0 : array4.length;
                    while(++index < length){
                        if (iteratee(array4[index], index, array4) === false) {
                            break;
                        }
                    }
                    return array4;
                }
                function arrayEachRight(array4, iteratee) {
                    var length = array4 == null ? 0 : array4.length;
                    while(length--){
                        if (iteratee(array4[length], length, array4) === false) {
                            break;
                        }
                    }
                    return array4;
                }
                function arrayEvery(array4, predicate3) {
                    var index = -1, length = array4 == null ? 0 : array4.length;
                    while(++index < length){
                        if (!predicate3(array4[index], index, array4)) {
                            return false;
                        }
                    }
                    return true;
                }
                function arrayFilter(array4, predicate3) {
                    var index = -1, length = array4 == null ? 0 : array4.length, resIndex = 0, result17 = [];
                    while(++index < length){
                        var value = array4[index];
                        if (predicate3(value, index, array4)) {
                            result17[resIndex++] = value;
                        }
                    }
                    return result17;
                }
                function arrayIncludes(array4, value) {
                    var length = array4 == null ? 0 : array4.length;
                    return !!length && baseIndexOf(array4, value, 0) > -1;
                }
                function arrayIncludesWith(array4, value, comparator) {
                    var index = -1, length = array4 == null ? 0 : array4.length;
                    while(++index < length){
                        if (comparator(value, array4[index])) {
                            return true;
                        }
                    }
                    return false;
                }
                function arrayMap(array4, iteratee) {
                    var index = -1, length = array4 == null ? 0 : array4.length, result17 = Array(length);
                    while(++index < length){
                        result17[index] = iteratee(array4[index], index, array4);
                    }
                    return result17;
                }
                function arrayPush(array4, values) {
                    var index = -1, length = values.length, offset = array4.length;
                    while(++index < length){
                        array4[offset + index] = values[index];
                    }
                    return array4;
                }
                function arrayReduce(array4, iteratee, accumulator, initAccum) {
                    var index = -1, length = array4 == null ? 0 : array4.length;
                    if (initAccum && length) {
                        accumulator = array4[++index];
                    }
                    while(++index < length){
                        accumulator = iteratee(accumulator, array4[index], index, array4);
                    }
                    return accumulator;
                }
                function arrayReduceRight(array4, iteratee, accumulator, initAccum) {
                    var length = array4 == null ? 0 : array4.length;
                    if (initAccum && length) {
                        accumulator = array4[--length];
                    }
                    while(length--){
                        accumulator = iteratee(accumulator, array4[length], length, array4);
                    }
                    return accumulator;
                }
                function arraySome(array4, predicate3) {
                    var index = -1, length = array4 == null ? 0 : array4.length;
                    while(++index < length){
                        if (predicate3(array4[index], index, array4)) {
                            return true;
                        }
                    }
                    return false;
                }
                var asciiSize = baseProperty("length");
                function asciiToArray(string5) {
                    return string5.split("");
                }
                function asciiWords(string5) {
                    return string5.match(reAsciiWord) || [];
                }
                function baseFindKey(collection, predicate3, eachFunc) {
                    var result17;
                    eachFunc(collection, function(value, key, collection2) {
                        if (predicate3(value, key, collection2)) {
                            result17 = key;
                            return false;
                        }
                    });
                    return result17;
                }
                function baseFindIndex(array4, predicate3, fromIndex, fromRight) {
                    var length = array4.length, index = fromIndex + (fromRight ? 1 : -1);
                    while(fromRight ? index-- : ++index < length){
                        if (predicate3(array4[index], index, array4)) {
                            return index;
                        }
                    }
                    return -1;
                }
                function baseIndexOf(array4, value, fromIndex) {
                    return value === value ? strictIndexOf(array4, value, fromIndex) : baseFindIndex(array4, baseIsNaN, fromIndex);
                }
                function baseIndexOfWith(array4, value, fromIndex, comparator) {
                    var index = fromIndex - 1, length = array4.length;
                    while(++index < length){
                        if (comparator(array4[index], value)) {
                            return index;
                        }
                    }
                    return -1;
                }
                function baseIsNaN(value) {
                    return value !== value;
                }
                function baseMean(array4, iteratee) {
                    var length = array4 == null ? 0 : array4.length;
                    return length ? baseSum(array4, iteratee) / length : NAN;
                }
                function baseProperty(key) {
                    return function(object) {
                        return object == null ? undefined2 : object[key];
                    };
                }
                function basePropertyOf(object) {
                    return function(key) {
                        return object == null ? undefined2 : object[key];
                    };
                }
                function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
                    eachFunc(collection, function(value, index, collection2) {
                        accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);
                    });
                    return accumulator;
                }
                function baseSortBy(array4, comparer) {
                    var length = array4.length;
                    array4.sort(comparer);
                    while(length--){
                        array4[length] = array4[length].value;
                    }
                    return array4;
                }
                function baseSum(array4, iteratee) {
                    var result17, index = -1, length = array4.length;
                    while(++index < length){
                        var current2 = iteratee(array4[index]);
                        if (current2 !== undefined2) {
                            result17 = result17 === undefined2 ? current2 : result17 + current2;
                        }
                    }
                    return result17;
                }
                function baseTimes(n, iteratee) {
                    var index = -1, result17 = Array(n);
                    while(++index < n){
                        result17[index] = iteratee(index);
                    }
                    return result17;
                }
                function baseToPairs(object, props) {
                    return arrayMap(props, function(key) {
                        return [
                            key,
                            object[key]
                        ];
                    });
                }
                function baseTrim(string5) {
                    return string5 ? string5.slice(0, trimmedEndIndex(string5) + 1).replace(reTrimStart, "") : string5;
                }
                function baseUnary(func3) {
                    return function(value) {
                        return func3(value);
                    };
                }
                function baseValues(object, props) {
                    return arrayMap(props, function(key) {
                        return object[key];
                    });
                }
                function cacheHas(cache, key) {
                    return cache.has(key);
                }
                function charsStartIndex(strSymbols, chrSymbols) {
                    var index = -1, length = strSymbols.length;
                    while(++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1){}
                    return index;
                }
                function charsEndIndex(strSymbols, chrSymbols) {
                    var index = strSymbols.length;
                    while(index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1){}
                    return index;
                }
                function countHolders(array4, placeholder) {
                    var length = array4.length, result17 = 0;
                    while(length--){
                        if (array4[length] === placeholder) {
                            ++result17;
                        }
                    }
                    return result17;
                }
                var deburrLetter = basePropertyOf(deburredLetters);
                var escapeHtmlChar = basePropertyOf(htmlEscapes);
                function escapeStringChar(chr) {
                    return "\\" + stringEscapes[chr];
                }
                function getValue(object, key) {
                    return object == null ? undefined2 : object[key];
                }
                function hasUnicode(string5) {
                    return reHasUnicode.test(string5);
                }
                function hasUnicodeWord(string5) {
                    return reHasUnicodeWord.test(string5);
                }
                function iteratorToArray(iterator3) {
                    var data, result17 = [];
                    while(!(data = iterator3.next()).done){
                        result17.push(data.value);
                    }
                    return result17;
                }
                function mapToArray(map) {
                    var index = -1, result17 = Array(map.size);
                    map.forEach(function(value, key) {
                        result17[++index] = [
                            key,
                            value
                        ];
                    });
                    return result17;
                }
                function overArg(func3, transform) {
                    return function(arg) {
                        return func3(transform(arg));
                    };
                }
                function replaceHolders(array4, placeholder) {
                    var index = -1, length = array4.length, resIndex = 0, result17 = [];
                    while(++index < length){
                        var value = array4[index];
                        if (value === placeholder || value === PLACEHOLDER) {
                            array4[index] = PLACEHOLDER;
                            result17[resIndex++] = index;
                        }
                    }
                    return result17;
                }
                function setToArray(set) {
                    var index = -1, result17 = Array(set.size);
                    set.forEach(function(value) {
                        result17[++index] = value;
                    });
                    return result17;
                }
                function setToPairs(set) {
                    var index = -1, result17 = Array(set.size);
                    set.forEach(function(value) {
                        result17[++index] = [
                            value,
                            value
                        ];
                    });
                    return result17;
                }
                function strictIndexOf(array4, value, fromIndex) {
                    var index = fromIndex - 1, length = array4.length;
                    while(++index < length){
                        if (array4[index] === value) {
                            return index;
                        }
                    }
                    return -1;
                }
                function strictLastIndexOf(array4, value, fromIndex) {
                    var index = fromIndex + 1;
                    while(index--){
                        if (array4[index] === value) {
                            return index;
                        }
                    }
                    return index;
                }
                function stringSize(string5) {
                    return hasUnicode(string5) ? unicodeSize(string5) : asciiSize(string5);
                }
                function stringToArray(string5) {
                    return hasUnicode(string5) ? unicodeToArray(string5) : asciiToArray(string5);
                }
                function trimmedEndIndex(string5) {
                    var index = string5.length;
                    while(index-- && reWhitespace.test(string5.charAt(index))){}
                    return index;
                }
                var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
                function unicodeSize(string5) {
                    var result17 = reUnicode.lastIndex = 0;
                    while(reUnicode.test(string5)){
                        ++result17;
                    }
                    return result17;
                }
                function unicodeToArray(string5) {
                    return string5.match(reUnicode) || [];
                }
                function unicodeWords(string5) {
                    return string5.match(reUnicodeWord) || [];
                }
                var runInContext = function runInContext2(context) {
                    context = context == null ? root : _2.defaults(root.Object(), context, _2.pick(root, contextProps));
                    var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;
                    var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;
                    var coreJsData = context["__core-js_shared__"];
                    var funcToString = funcProto.toString;
                    var hasOwnProperty = objectProto.hasOwnProperty;
                    var idCounter = 0;
                    var maskSrcKey = function() {
                        var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
                        return uid ? "Symbol(src)_1." + uid : "";
                    }();
                    var nativeObjectToString = objectProto.toString;
                    var objectCtorString = funcToString.call(Object2);
                    var oldDash = root._;
                    var reIsNative = RegExp2("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
                    var Buffer3 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer3 ? Buffer3.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2;
                    var defineProperty = function() {
                        try {
                            var func3 = getNative(Object2, "defineProperty");
                            func3({}, "", {});
                            return func3;
                        } catch (e) {}
                    }();
                    var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
                    var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer3 ? Buffer3.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
                    var DataView2 = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create");
                    var metaMap = WeakMap2 && new WeakMap2();
                    var realNames = {};
                    var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2);
                    var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2;
                    function lodash(value) {
                        if (isObjectLike2(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
                            if (value instanceof LodashWrapper) {
                                return value;
                            }
                            if (hasOwnProperty.call(value, "__wrapped__")) {
                                return wrapperClone(value);
                            }
                        }
                        return new LodashWrapper(value);
                    }
                    var baseCreate = /* @__PURE__ */ function() {
                        function object() {}
                        return function(proto) {
                            if (!isObject2(proto)) {
                                return {};
                            }
                            if (objectCreate) {
                                return objectCreate(proto);
                            }
                            object.prototype = proto;
                            var result18 = new object();
                            object.prototype = undefined2;
                            return result18;
                        };
                    }();
                    function baseLodash() {}
                    function LodashWrapper(value, chainAll) {
                        this.__wrapped__ = value;
                        this.__actions__ = [];
                        this.__chain__ = !!chainAll;
                        this.__index__ = 0;
                        this.__values__ = undefined2;
                    }
                    lodash.templateSettings = {
                        /**
             * Used to detect `data` property values to be HTML-escaped.
             *
             * @memberOf _.templateSettings
             * @type {RegExp}
             */ escape: reEscape,
                        /**
             * Used to detect code to be evaluated.
             *
             * @memberOf _.templateSettings
             * @type {RegExp}
             */ evaluate: reEvaluate,
                        /**
             * Used to detect `data` property values to inject.
             *
             * @memberOf _.templateSettings
             * @type {RegExp}
             */ interpolate: reInterpolate,
                        /**
             * Used to reference the data object in the template text.
             *
             * @memberOf _.templateSettings
             * @type {string}
             */ variable: "",
                        /**
             * Used to import variables into the compiled template.
             *
             * @memberOf _.templateSettings
             * @type {Object}
             */ imports: {
                            /**
               * A reference to the `lodash` function.
               *
               * @memberOf _.templateSettings.imports
               * @type {Function}
               */ _: lodash
                        }
                    };
                    lodash.prototype = baseLodash.prototype;
                    lodash.prototype.constructor = lodash;
                    LodashWrapper.prototype = baseCreate(baseLodash.prototype);
                    LodashWrapper.prototype.constructor = LodashWrapper;
                    function LazyWrapper(value) {
                        this.__wrapped__ = value;
                        this.__actions__ = [];
                        this.__dir__ = 1;
                        this.__filtered__ = false;
                        this.__iteratees__ = [];
                        this.__takeCount__ = MAX_ARRAY_LENGTH;
                        this.__views__ = [];
                    }
                    function lazyClone() {
                        var result18 = new LazyWrapper(this.__wrapped__);
                        result18.__actions__ = copyArray(this.__actions__);
                        result18.__dir__ = this.__dir__;
                        result18.__filtered__ = this.__filtered__;
                        result18.__iteratees__ = copyArray(this.__iteratees__);
                        result18.__takeCount__ = this.__takeCount__;
                        result18.__views__ = copyArray(this.__views__);
                        return result18;
                    }
                    function lazyReverse() {
                        if (this.__filtered__) {
                            var result18 = new LazyWrapper(this);
                            result18.__dir__ = -1;
                            result18.__filtered__ = true;
                        } else {
                            result18 = this.clone();
                            result18.__dir__ *= -1;
                        }
                        return result18;
                    }
                    function lazyValue() {
                        var array4 = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array4), isRight = dir < 0, arrLength = isArr ? array4.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);
                        if (!isArr || !isRight && arrLength == length && takeCount == length) {
                            return baseWrapperValue(array4, this.__actions__);
                        }
                        var result18 = [];
                        outer: while(length-- && resIndex < takeCount){
                            index += dir;
                            var iterIndex = -1, value = array4[index];
                            while(++iterIndex < iterLength){
                                var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value);
                                if (type == LAZY_MAP_FLAG) {
                                    value = computed;
                                } else if (!computed) {
                                    if (type == LAZY_FILTER_FLAG) {
                                        continue outer;
                                    } else {
                                        break outer;
                                    }
                                }
                            }
                            result18[resIndex++] = value;
                        }
                        return result18;
                    }
                    LazyWrapper.prototype = baseCreate(baseLodash.prototype);
                    LazyWrapper.prototype.constructor = LazyWrapper;
                    function Hash(entries) {
                        var index = -1, length = entries == null ? 0 : entries.length;
                        this.clear();
                        while(++index < length){
                            var entry = entries[index];
                            this.set(entry[0], entry[1]);
                        }
                    }
                    function hashClear() {
                        this.__data__ = nativeCreate ? nativeCreate(null) : {};
                        this.size = 0;
                    }
                    function hashDelete(key) {
                        var result18 = this.has(key) && delete this.__data__[key];
                        this.size -= result18 ? 1 : 0;
                        return result18;
                    }
                    function hashGet(key) {
                        var data = this.__data__;
                        if (nativeCreate) {
                            var result18 = data[key];
                            return result18 === HASH_UNDEFINED ? undefined2 : result18;
                        }
                        return hasOwnProperty.call(data, key) ? data[key] : undefined2;
                    }
                    function hashHas(key) {
                        var data = this.__data__;
                        return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key);
                    }
                    function hashSet(key, value) {
                        var data = this.__data__;
                        this.size += this.has(key) ? 0 : 1;
                        data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value;
                        return this;
                    }
                    Hash.prototype.clear = hashClear;
                    Hash.prototype["delete"] = hashDelete;
                    Hash.prototype.get = hashGet;
                    Hash.prototype.has = hashHas;
                    Hash.prototype.set = hashSet;
                    function ListCache(entries) {
                        var index = -1, length = entries == null ? 0 : entries.length;
                        this.clear();
                        while(++index < length){
                            var entry = entries[index];
                            this.set(entry[0], entry[1]);
                        }
                    }
                    function listCacheClear() {
                        this.__data__ = [];
                        this.size = 0;
                    }
                    function listCacheDelete(key) {
                        var data = this.__data__, index = assocIndexOf(data, key);
                        if (index < 0) {
                            return false;
                        }
                        var lastIndex = data.length - 1;
                        if (index == lastIndex) {
                            data.pop();
                        } else {
                            splice.call(data, index, 1);
                        }
                        --this.size;
                        return true;
                    }
                    function listCacheGet(key) {
                        var data = this.__data__, index = assocIndexOf(data, key);
                        return index < 0 ? undefined2 : data[index][1];
                    }
                    function listCacheHas(key) {
                        return assocIndexOf(this.__data__, key) > -1;
                    }
                    function listCacheSet(key, value) {
                        var data = this.__data__, index = assocIndexOf(data, key);
                        if (index < 0) {
                            ++this.size;
                            data.push([
                                key,
                                value
                            ]);
                        } else {
                            data[index][1] = value;
                        }
                        return this;
                    }
                    ListCache.prototype.clear = listCacheClear;
                    ListCache.prototype["delete"] = listCacheDelete;
                    ListCache.prototype.get = listCacheGet;
                    ListCache.prototype.has = listCacheHas;
                    ListCache.prototype.set = listCacheSet;
                    function MapCache(entries) {
                        var index = -1, length = entries == null ? 0 : entries.length;
                        this.clear();
                        while(++index < length){
                            var entry = entries[index];
                            this.set(entry[0], entry[1]);
                        }
                    }
                    function mapCacheClear() {
                        this.size = 0;
                        this.__data__ = {
                            hash: new Hash(),
                            map: new (Map2 || ListCache)(),
                            string: new Hash()
                        };
                    }
                    function mapCacheDelete(key) {
                        var result18 = getMapData(this, key)["delete"](key);
                        this.size -= result18 ? 1 : 0;
                        return result18;
                    }
                    function mapCacheGet(key) {
                        return getMapData(this, key).get(key);
                    }
                    function mapCacheHas(key) {
                        return getMapData(this, key).has(key);
                    }
                    function mapCacheSet(key, value) {
                        var data = getMapData(this, key), size2 = data.size;
                        data.set(key, value);
                        this.size += data.size == size2 ? 0 : 1;
                        return this;
                    }
                    MapCache.prototype.clear = mapCacheClear;
                    MapCache.prototype["delete"] = mapCacheDelete;
                    MapCache.prototype.get = mapCacheGet;
                    MapCache.prototype.has = mapCacheHas;
                    MapCache.prototype.set = mapCacheSet;
                    function SetCache(values2) {
                        var index = -1, length = values2 == null ? 0 : values2.length;
                        this.__data__ = new MapCache();
                        while(++index < length){
                            this.add(values2[index]);
                        }
                    }
                    function setCacheAdd(value) {
                        this.__data__.set(value, HASH_UNDEFINED);
                        return this;
                    }
                    function setCacheHas(value) {
                        return this.__data__.has(value);
                    }
                    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
                    SetCache.prototype.has = setCacheHas;
                    function Stack(entries) {
                        var data = this.__data__ = new ListCache(entries);
                        this.size = data.size;
                    }
                    function stackClear() {
                        this.__data__ = new ListCache();
                        this.size = 0;
                    }
                    function stackDelete(key) {
                        var data = this.__data__, result18 = data["delete"](key);
                        this.size = data.size;
                        return result18;
                    }
                    function stackGet(key) {
                        return this.__data__.get(key);
                    }
                    function stackHas(key) {
                        return this.__data__.has(key);
                    }
                    function stackSet(key, value) {
                        var data = this.__data__;
                        if (data instanceof ListCache) {
                            var pairs = data.__data__;
                            if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
                                pairs.push([
                                    key,
                                    value
                                ]);
                                this.size = ++data.size;
                                return this;
                            }
                            data = this.__data__ = new MapCache(pairs);
                        }
                        data.set(key, value);
                        this.size = data.size;
                        return this;
                    }
                    Stack.prototype.clear = stackClear;
                    Stack.prototype["delete"] = stackDelete;
                    Stack.prototype.get = stackGet;
                    Stack.prototype.has = stackHas;
                    Stack.prototype.set = stackSet;
                    function arrayLikeKeys(value, inherited) {
                        var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result18 = skipIndexes ? baseTimes(value.length, String2) : [], length = result18.length;
                        for(var key in value){
                            if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
                            (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
                            isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
                            isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
                            isIndex(key, length)))) {
                                result18.push(key);
                            }
                        }
                        return result18;
                    }
                    function arraySample(array4) {
                        var length = array4.length;
                        return length ? array4[baseRandom(0, length - 1)] : undefined2;
                    }
                    function arraySampleSize(array4, n) {
                        return shuffleSelf(copyArray(array4), baseClamp(n, 0, array4.length));
                    }
                    function arrayShuffle(array4) {
                        return shuffleSelf(copyArray(array4));
                    }
                    function assignMergeValue(object, key, value) {
                        if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) {
                            baseAssignValue(object, key, value);
                        }
                    }
                    function assignValue(object, key, value) {
                        var objValue = object[key];
                        if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) {
                            baseAssignValue(object, key, value);
                        }
                    }
                    function assocIndexOf(array4, key) {
                        var length = array4.length;
                        while(length--){
                            if (eq(array4[length][0], key)) {
                                return length;
                            }
                        }
                        return -1;
                    }
                    function baseAggregator(collection, setter, iteratee2, accumulator) {
                        baseEach(collection, function(value, key, collection2) {
                            setter(accumulator, value, iteratee2(value), collection2);
                        });
                        return accumulator;
                    }
                    function baseAssign(object, source) {
                        return object && copyObject(source, keys(source), object);
                    }
                    function baseAssignIn(object, source) {
                        return object && copyObject(source, keysIn(source), object);
                    }
                    function baseAssignValue(object, key, value) {
                        if (key == "__proto__" && defineProperty) {
                            defineProperty(object, key, {
                                configurable: true,
                                enumerable: true,
                                value: value,
                                writable: true
                            });
                        } else {
                            object[key] = value;
                        }
                    }
                    function baseAt(object, paths) {
                        var index = -1, length = paths.length, result18 = Array2(length), skip = object == null;
                        while(++index < length){
                            result18[index] = skip ? undefined2 : get(object, paths[index]);
                        }
                        return result18;
                    }
                    function baseClamp(number, lower, upper) {
                        if (number === number) {
                            if (upper !== undefined2) {
                                number = number <= upper ? number : upper;
                            }
                            if (lower !== undefined2) {
                                number = number >= lower ? number : lower;
                            }
                        }
                        return number;
                    }
                    function baseClone(value, bitmask, customizer, key, object, stack) {
                        var result18, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;
                        if (customizer) {
                            result18 = object ? customizer(value, key, object, stack) : customizer(value);
                        }
                        if (result18 !== undefined2) {
                            return result18;
                        }
                        if (!isObject2(value)) {
                            return value;
                        }
                        var isArr = isArray(value);
                        if (isArr) {
                            result18 = initCloneArray(value);
                            if (!isDeep) {
                                return copyArray(value, result18);
                            }
                        } else {
                            var tag2 = getTag(value), isFunc = tag2 == funcTag || tag2 == genTag;
                            if (isBuffer(value)) {
                                return cloneBuffer(value, isDeep);
                            }
                            if (tag2 == objectTag || tag2 == argsTag || isFunc && !object) {
                                result18 = isFlat || isFunc ? {} : initCloneObject(value);
                                if (!isDeep) {
                                    return isFlat ? copySymbolsIn(value, baseAssignIn(result18, value)) : copySymbols(value, baseAssign(result18, value));
                                }
                            } else {
                                if (!cloneableTags[tag2]) {
                                    return object ? value : {};
                                }
                                result18 = initCloneByTag(value, tag2, isDeep);
                            }
                        }
                        stack || (stack = new Stack());
                        var stacked = stack.get(value);
                        if (stacked) {
                            return stacked;
                        }
                        stack.set(value, result18);
                        if (isSet(value)) {
                            value.forEach(function(subValue) {
                                result18.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
                            });
                        } else if (isMap(value)) {
                            value.forEach(function(subValue, key2) {
                                result18.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
                            });
                        }
                        var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
                        var props = isArr ? undefined2 : keysFunc(value);
                        arrayEach(props || value, function(subValue, key2) {
                            if (props) {
                                key2 = subValue;
                                subValue = value[key2];
                            }
                            assignValue(result18, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
                        });
                        return result18;
                    }
                    function baseConforms(source) {
                        var props = keys(source);
                        return function(object) {
                            return baseConformsTo(object, source, props);
                        };
                    }
                    function baseConformsTo(object, source, props) {
                        var length = props.length;
                        if (object == null) {
                            return !length;
                        }
                        object = Object2(object);
                        while(length--){
                            var key = props[length], predicate3 = source[key], value = object[key];
                            if (value === undefined2 && !(key in object) || !predicate3(value)) {
                                return false;
                            }
                        }
                        return true;
                    }
                    function baseDelay(func3, wait6, args) {
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        return setTimeout2(function() {
                            func3.apply(undefined2, args);
                        }, wait6);
                    }
                    function baseDifference(array4, values2, iteratee2, comparator) {
                        var index = -1, includes2 = arrayIncludes, isCommon = true, length = array4.length, result18 = [], valuesLength = values2.length;
                        if (!length) {
                            return result18;
                        }
                        if (iteratee2) {
                            values2 = arrayMap(values2, baseUnary(iteratee2));
                        }
                        if (comparator) {
                            includes2 = arrayIncludesWith;
                            isCommon = false;
                        } else if (values2.length >= LARGE_ARRAY_SIZE) {
                            includes2 = cacheHas;
                            isCommon = false;
                            values2 = new SetCache(values2);
                        }
                        outer: while(++index < length){
                            var value = array4[index], computed = iteratee2 == null ? value : iteratee2(value);
                            value = comparator || value !== 0 ? value : 0;
                            if (isCommon && computed === computed) {
                                var valuesIndex = valuesLength;
                                while(valuesIndex--){
                                    if (values2[valuesIndex] === computed) {
                                        continue outer;
                                    }
                                }
                                result18.push(value);
                            } else if (!includes2(values2, computed, comparator)) {
                                result18.push(value);
                            }
                        }
                        return result18;
                    }
                    var baseEach = createBaseEach(baseForOwn);
                    var baseEachRight = createBaseEach(baseForOwnRight, true);
                    function baseEvery(collection, predicate3) {
                        var result18 = true;
                        baseEach(collection, function(value, index, collection2) {
                            result18 = !!predicate3(value, index, collection2);
                            return result18;
                        });
                        return result18;
                    }
                    function baseExtremum(array4, iteratee2, comparator) {
                        var index = -1, length = array4.length;
                        while(++index < length){
                            var value = array4[index], current2 = iteratee2(value);
                            if (current2 != null && (computed === undefined2 ? current2 === current2 && !isSymbol(current2) : comparator(current2, computed))) {
                                var computed = current2, result18 = value;
                            }
                        }
                        return result18;
                    }
                    function baseFill(array4, value, start, end) {
                        var length = array4.length;
                        start = toInteger(start);
                        if (start < 0) {
                            start = -start > length ? 0 : length + start;
                        }
                        end = end === undefined2 || end > length ? length : toInteger(end);
                        if (end < 0) {
                            end += length;
                        }
                        end = start > end ? 0 : toLength(end);
                        while(start < end){
                            array4[start++] = value;
                        }
                        return array4;
                    }
                    function baseFilter(collection, predicate3) {
                        var result18 = [];
                        baseEach(collection, function(value, index, collection2) {
                            if (predicate3(value, index, collection2)) {
                                result18.push(value);
                            }
                        });
                        return result18;
                    }
                    function baseFlatten(array4, depth, predicate3, isStrict, result18) {
                        var index = -1, length = array4.length;
                        predicate3 || (predicate3 = isFlattenable);
                        result18 || (result18 = []);
                        while(++index < length){
                            var value = array4[index];
                            if (depth > 0 && predicate3(value)) {
                                if (depth > 1) {
                                    baseFlatten(value, depth - 1, predicate3, isStrict, result18);
                                } else {
                                    arrayPush(result18, value);
                                }
                            } else if (!isStrict) {
                                result18[result18.length] = value;
                            }
                        }
                        return result18;
                    }
                    var baseFor = createBaseFor();
                    var baseForRight = createBaseFor(true);
                    function baseForOwn(object, iteratee2) {
                        return object && baseFor(object, iteratee2, keys);
                    }
                    function baseForOwnRight(object, iteratee2) {
                        return object && baseForRight(object, iteratee2, keys);
                    }
                    function baseFunctions(object, props) {
                        return arrayFilter(props, function(key) {
                            return isFunction(object[key]);
                        });
                    }
                    function baseGet(object, path2) {
                        path2 = castPath(path2, object);
                        var index = 0, length = path2.length;
                        while(object != null && index < length){
                            object = object[toKey(path2[index++])];
                        }
                        return index && index == length ? object : undefined2;
                    }
                    function baseGetAllKeys(object, keysFunc, symbolsFunc) {
                        var result18 = keysFunc(object);
                        return isArray(object) ? result18 : arrayPush(result18, symbolsFunc(object));
                    }
                    function baseGetTag(value) {
                        if (value == null) {
                            return value === undefined2 ? undefinedTag : nullTag;
                        }
                        return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value);
                    }
                    function baseGt(value, other) {
                        return value > other;
                    }
                    function baseHas(object, key) {
                        return object != null && hasOwnProperty.call(object, key);
                    }
                    function baseHasIn(object, key) {
                        return object != null && key in Object2(object);
                    }
                    function baseInRange(number, start, end) {
                        return number >= nativeMin(start, end) && number < nativeMax(start, end);
                    }
                    function baseIntersection(arrays, iteratee2, comparator) {
                        var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result18 = [];
                        while(othIndex--){
                            var array4 = arrays[othIndex];
                            if (othIndex && iteratee2) {
                                array4 = arrayMap(array4, baseUnary(iteratee2));
                            }
                            maxLength = nativeMin(array4.length, maxLength);
                            caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array4.length >= 120) ? new SetCache(othIndex && array4) : undefined2;
                        }
                        array4 = arrays[0];
                        var index = -1, seen = caches[0];
                        outer: while(++index < length && result18.length < maxLength){
                            var value = array4[index], computed = iteratee2 ? iteratee2(value) : value;
                            value = comparator || value !== 0 ? value : 0;
                            if (!(seen ? cacheHas(seen, computed) : includes2(result18, computed, comparator))) {
                                othIndex = othLength;
                                while(--othIndex){
                                    var cache = caches[othIndex];
                                    if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) {
                                        continue outer;
                                    }
                                }
                                if (seen) {
                                    seen.push(computed);
                                }
                                result18.push(value);
                            }
                        }
                        return result18;
                    }
                    function baseInverter(object, setter, iteratee2, accumulator) {
                        baseForOwn(object, function(value, key, object2) {
                            setter(accumulator, iteratee2(value), key, object2);
                        });
                        return accumulator;
                    }
                    function baseInvoke(object, path2, args) {
                        path2 = castPath(path2, object);
                        object = parent2(object, path2);
                        var func3 = object == null ? object : object[toKey(last(path2))];
                        return func3 == null ? undefined2 : apply2(func3, object, args);
                    }
                    function baseIsArguments(value) {
                        return isObjectLike2(value) && baseGetTag(value) == argsTag;
                    }
                    function baseIsArrayBuffer(value) {
                        return isObjectLike2(value) && baseGetTag(value) == arrayBufferTag;
                    }
                    function baseIsDate(value) {
                        return isObjectLike2(value) && baseGetTag(value) == dateTag;
                    }
                    function baseIsEqual(value, other, bitmask, customizer, stack) {
                        if (value === other) {
                            return true;
                        }
                        if (value == null || other == null || !isObjectLike2(value) && !isObjectLike2(other)) {
                            return value !== value && other !== other;
                        }
                        return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
                    }
                    function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
                        var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
                        objTag = objTag == argsTag ? objectTag : objTag;
                        othTag = othTag == argsTag ? objectTag : othTag;
                        var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
                        if (isSameTag && isBuffer(object)) {
                            if (!isBuffer(other)) {
                                return false;
                            }
                            objIsArr = true;
                            objIsObj = false;
                        }
                        if (isSameTag && !objIsObj) {
                            stack || (stack = new Stack());
                            return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
                        }
                        if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
                            var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
                            if (objIsWrapped || othIsWrapped) {
                                var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
                                stack || (stack = new Stack());
                                return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
                            }
                        }
                        if (!isSameTag) {
                            return false;
                        }
                        stack || (stack = new Stack());
                        return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
                    }
                    function baseIsMap(value) {
                        return isObjectLike2(value) && getTag(value) == mapTag;
                    }
                    function baseIsMatch(object, source, matchData, customizer) {
                        var index = matchData.length, length = index, noCustomizer = !customizer;
                        if (object == null) {
                            return !length;
                        }
                        object = Object2(object);
                        while(index--){
                            var data = matchData[index];
                            if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
                                return false;
                            }
                        }
                        while(++index < length){
                            data = matchData[index];
                            var key = data[0], objValue = object[key], srcValue = data[1];
                            if (noCustomizer && data[2]) {
                                if (objValue === undefined2 && !(key in object)) {
                                    return false;
                                }
                            } else {
                                var stack = new Stack();
                                if (customizer) {
                                    var result18 = customizer(objValue, srcValue, key, object, source, stack);
                                }
                                if (!(result18 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result18)) {
                                    return false;
                                }
                            }
                        }
                        return true;
                    }
                    function baseIsNative(value) {
                        if (!isObject2(value) || isMasked(value)) {
                            return false;
                        }
                        var pattern2 = isFunction(value) ? reIsNative : reIsHostCtor;
                        return pattern2.test(toSource(value));
                    }
                    function baseIsRegExp(value) {
                        return isObjectLike2(value) && baseGetTag(value) == regexpTag;
                    }
                    function baseIsSet(value) {
                        return isObjectLike2(value) && getTag(value) == setTag;
                    }
                    function baseIsTypedArray(value) {
                        return isObjectLike2(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
                    }
                    function baseIteratee(value) {
                        if (typeof value == "function") {
                            return value;
                        }
                        if (value == null) {
                            return identity3;
                        }
                        if ((typeof value === "undefined" ? "undefined" : _type_of(value)) == "object") {
                            return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
                        }
                        return property(value);
                    }
                    function baseKeys(object) {
                        if (!isPrototype(object)) {
                            return nativeKeys(object);
                        }
                        var result18 = [];
                        for(var key in Object2(object)){
                            if (hasOwnProperty.call(object, key) && key != "constructor") {
                                result18.push(key);
                            }
                        }
                        return result18;
                    }
                    function baseKeysIn(object) {
                        if (!isObject2(object)) {
                            return nativeKeysIn(object);
                        }
                        var isProto = isPrototype(object), result18 = [];
                        for(var key in object){
                            if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) {
                                result18.push(key);
                            }
                        }
                        return result18;
                    }
                    function baseLt(value, other) {
                        return value < other;
                    }
                    function baseMap(collection, iteratee2) {
                        var index = -1, result18 = isArrayLike(collection) ? Array2(collection.length) : [];
                        baseEach(collection, function(value, key, collection2) {
                            result18[++index] = iteratee2(value, key, collection2);
                        });
                        return result18;
                    }
                    function baseMatches(source) {
                        var matchData = getMatchData(source);
                        if (matchData.length == 1 && matchData[0][2]) {
                            return matchesStrictComparable(matchData[0][0], matchData[0][1]);
                        }
                        return function(object) {
                            return object === source || baseIsMatch(object, source, matchData);
                        };
                    }
                    function baseMatchesProperty(path2, srcValue) {
                        if (isKey(path2) && isStrictComparable(srcValue)) {
                            return matchesStrictComparable(toKey(path2), srcValue);
                        }
                        return function(object) {
                            var objValue = get(object, path2);
                            return objValue === undefined2 && objValue === srcValue ? hasIn(object, path2) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
                        };
                    }
                    function baseMerge(object, source, srcIndex, customizer, stack) {
                        if (object === source) {
                            return;
                        }
                        baseFor(source, function(srcValue, key) {
                            stack || (stack = new Stack());
                            if (isObject2(srcValue)) {
                                baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
                            } else {
                                var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2;
                                if (newValue === undefined2) {
                                    newValue = srcValue;
                                }
                                assignMergeValue(object, key, newValue);
                            }
                        }, keysIn);
                    }
                    function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
                        var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
                        if (stacked) {
                            assignMergeValue(object, key, stacked);
                            return;
                        }
                        var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2;
                        var isCommon = newValue === undefined2;
                        if (isCommon) {
                            var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);
                            newValue = srcValue;
                            if (isArr || isBuff || isTyped) {
                                if (isArray(objValue)) {
                                    newValue = objValue;
                                } else if (isArrayLikeObject(objValue)) {
                                    newValue = copyArray(objValue);
                                } else if (isBuff) {
                                    isCommon = false;
                                    newValue = cloneBuffer(srcValue, true);
                                } else if (isTyped) {
                                    isCommon = false;
                                    newValue = cloneTypedArray(srcValue, true);
                                } else {
                                    newValue = [];
                                }
                            } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
                                newValue = objValue;
                                if (isArguments(objValue)) {
                                    newValue = toPlainObject(objValue);
                                } else if (!isObject2(objValue) || isFunction(objValue)) {
                                    newValue = initCloneObject(srcValue);
                                }
                            } else {
                                isCommon = false;
                            }
                        }
                        if (isCommon) {
                            stack.set(srcValue, newValue);
                            mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
                            stack["delete"](srcValue);
                        }
                        assignMergeValue(object, key, newValue);
                    }
                    function baseNth(array4, n) {
                        var length = array4.length;
                        if (!length) {
                            return;
                        }
                        n += n < 0 ? length : 0;
                        return isIndex(n, length) ? array4[n] : undefined2;
                    }
                    function baseOrderBy(collection, iteratees, orders) {
                        if (iteratees.length) {
                            iteratees = arrayMap(iteratees, function(iteratee2) {
                                if (isArray(iteratee2)) {
                                    return function(value) {
                                        return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2);
                                    };
                                }
                                return iteratee2;
                            });
                        } else {
                            iteratees = [
                                identity3
                            ];
                        }
                        var index = -1;
                        iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
                        var result18 = baseMap(collection, function(value, key, collection2) {
                            var criteria = arrayMap(iteratees, function(iteratee2) {
                                return iteratee2(value);
                            });
                            return {
                                criteria: criteria,
                                index: ++index,
                                value: value
                            };
                        });
                        return baseSortBy(result18, function(object, other) {
                            return compareMultiple(object, other, orders);
                        });
                    }
                    function basePick(object, paths) {
                        return basePickBy(object, paths, function(value, path2) {
                            return hasIn(object, path2);
                        });
                    }
                    function basePickBy(object, paths, predicate3) {
                        var index = -1, length = paths.length, result18 = {};
                        while(++index < length){
                            var path2 = paths[index], value = baseGet(object, path2);
                            if (predicate3(value, path2)) {
                                baseSet(result18, castPath(path2, object), value);
                            }
                        }
                        return result18;
                    }
                    function basePropertyDeep(path2) {
                        return function(object) {
                            return baseGet(object, path2);
                        };
                    }
                    function basePullAll(array4, values2, iteratee2, comparator) {
                        var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array4;
                        if (array4 === values2) {
                            values2 = copyArray(values2);
                        }
                        if (iteratee2) {
                            seen = arrayMap(array4, baseUnary(iteratee2));
                        }
                        while(++index < length){
                            var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value;
                            while((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1){
                                if (seen !== array4) {
                                    splice.call(seen, fromIndex, 1);
                                }
                                splice.call(array4, fromIndex, 1);
                            }
                        }
                        return array4;
                    }
                    function basePullAt(array4, indexes) {
                        var length = array4 ? indexes.length : 0, lastIndex = length - 1;
                        while(length--){
                            var index = indexes[length];
                            if (length == lastIndex || index !== previous) {
                                var previous = index;
                                if (isIndex(index)) {
                                    splice.call(array4, index, 1);
                                } else {
                                    baseUnset(array4, index);
                                }
                            }
                        }
                        return array4;
                    }
                    function baseRandom(lower, upper) {
                        return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
                    }
                    function baseRange(start, end, step, fromRight) {
                        var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result18 = Array2(length);
                        while(length--){
                            result18[fromRight ? length : ++index] = start;
                            start += step;
                        }
                        return result18;
                    }
                    function baseRepeat(string5, n) {
                        var result18 = "";
                        if (!string5 || n < 1 || n > MAX_SAFE_INTEGER) {
                            return result18;
                        }
                        do {
                            if (n % 2) {
                                result18 += string5;
                            }
                            n = nativeFloor(n / 2);
                            if (n) {
                                string5 += string5;
                            }
                        }while (n);
                        return result18;
                    }
                    function baseRest(func3, start) {
                        return setToString(overRest(func3, start, identity3), func3 + "");
                    }
                    function baseSample(collection) {
                        return arraySample(values(collection));
                    }
                    function baseSampleSize(collection, n) {
                        var array4 = values(collection);
                        return shuffleSelf(array4, baseClamp(n, 0, array4.length));
                    }
                    function baseSet(object, path2, value, customizer) {
                        if (!isObject2(object)) {
                            return object;
                        }
                        path2 = castPath(path2, object);
                        var index = -1, length = path2.length, lastIndex = length - 1, nested = object;
                        while(nested != null && ++index < length){
                            var key = toKey(path2[index]), newValue = value;
                            if (key === "__proto__" || key === "constructor" || key === "prototype") {
                                return object;
                            }
                            if (index != lastIndex) {
                                var objValue = nested[key];
                                newValue = customizer ? customizer(objValue, key, nested) : undefined2;
                                if (newValue === undefined2) {
                                    newValue = isObject2(objValue) ? objValue : isIndex(path2[index + 1]) ? [] : {};
                                }
                            }
                            assignValue(nested, key, newValue);
                            nested = nested[key];
                        }
                        return object;
                    }
                    var baseSetData = !metaMap ? identity3 : function baseSetData(func3, data) {
                        metaMap.set(func3, data);
                        return func3;
                    };
                    var baseSetToString = !defineProperty ? identity3 : function baseSetToString(func3, string5) {
                        return defineProperty(func3, "toString", {
                            configurable: true,
                            enumerable: false,
                            value: constant(string5),
                            writable: true
                        });
                    };
                    function baseShuffle(collection) {
                        return shuffleSelf(values(collection));
                    }
                    function baseSlice(array4, start, end) {
                        var index = -1, length = array4.length;
                        if (start < 0) {
                            start = -start > length ? 0 : length + start;
                        }
                        end = end > length ? length : end;
                        if (end < 0) {
                            end += length;
                        }
                        length = start > end ? 0 : end - start >>> 0;
                        start >>>= 0;
                        var result18 = Array2(length);
                        while(++index < length){
                            result18[index] = array4[index + start];
                        }
                        return result18;
                    }
                    function baseSome(collection, predicate3) {
                        var result18;
                        baseEach(collection, function(value, index, collection2) {
                            result18 = predicate3(value, index, collection2);
                            return !result18;
                        });
                        return !!result18;
                    }
                    function baseSortedIndex(array4, value, retHighest) {
                        var low = 0, high = array4 == null ? low : array4.length;
                        if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
                            while(low < high){
                                var mid = low + high >>> 1, computed = array4[mid];
                                if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {
                                    low = mid + 1;
                                } else {
                                    high = mid;
                                }
                            }
                            return high;
                        }
                        return baseSortedIndexBy(array4, value, identity3, retHighest);
                    }
                    function baseSortedIndexBy(array4, value, iteratee2, retHighest) {
                        var low = 0, high = array4 == null ? 0 : array4.length;
                        if (high === 0) {
                            return 0;
                        }
                        value = iteratee2(value);
                        var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2;
                        while(low < high){
                            var mid = nativeFloor((low + high) / 2), computed = iteratee2(array4[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed);
                            if (valIsNaN) {
                                var setLow = retHighest || othIsReflexive;
                            } else if (valIsUndefined) {
                                setLow = othIsReflexive && (retHighest || othIsDefined);
                            } else if (valIsNull) {
                                setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
                            } else if (valIsSymbol) {
                                setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
                            } else if (othIsNull || othIsSymbol) {
                                setLow = false;
                            } else {
                                setLow = retHighest ? computed <= value : computed < value;
                            }
                            if (setLow) {
                                low = mid + 1;
                            } else {
                                high = mid;
                            }
                        }
                        return nativeMin(high, MAX_ARRAY_INDEX);
                    }
                    function baseSortedUniq(array4, iteratee2) {
                        var index = -1, length = array4.length, resIndex = 0, result18 = [];
                        while(++index < length){
                            var value = array4[index], computed = iteratee2 ? iteratee2(value) : value;
                            if (!index || !eq(computed, seen)) {
                                var seen = computed;
                                result18[resIndex++] = value === 0 ? 0 : value;
                            }
                        }
                        return result18;
                    }
                    function baseToNumber(value) {
                        if (typeof value == "number") {
                            return value;
                        }
                        if (isSymbol(value)) {
                            return NAN;
                        }
                        return +value;
                    }
                    function baseToString(value) {
                        if (typeof value == "string") {
                            return value;
                        }
                        if (isArray(value)) {
                            return arrayMap(value, baseToString) + "";
                        }
                        if (isSymbol(value)) {
                            return symbolToString ? symbolToString.call(value) : "";
                        }
                        var result18 = value + "";
                        return result18 == "0" && 1 / value == -INFINITY ? "-0" : result18;
                    }
                    function baseUniq(array4, iteratee2, comparator) {
                        var index = -1, includes2 = arrayIncludes, length = array4.length, isCommon = true, result18 = [], seen = result18;
                        if (comparator) {
                            isCommon = false;
                            includes2 = arrayIncludesWith;
                        } else if (length >= LARGE_ARRAY_SIZE) {
                            var set2 = iteratee2 ? null : createSet(array4);
                            if (set2) {
                                return setToArray(set2);
                            }
                            isCommon = false;
                            includes2 = cacheHas;
                            seen = new SetCache();
                        } else {
                            seen = iteratee2 ? [] : result18;
                        }
                        outer: while(++index < length){
                            var value = array4[index], computed = iteratee2 ? iteratee2(value) : value;
                            value = comparator || value !== 0 ? value : 0;
                            if (isCommon && computed === computed) {
                                var seenIndex = seen.length;
                                while(seenIndex--){
                                    if (seen[seenIndex] === computed) {
                                        continue outer;
                                    }
                                }
                                if (iteratee2) {
                                    seen.push(computed);
                                }
                                result18.push(value);
                            } else if (!includes2(seen, computed, comparator)) {
                                if (seen !== result18) {
                                    seen.push(computed);
                                }
                                result18.push(value);
                            }
                        }
                        return result18;
                    }
                    function baseUnset(object, path2) {
                        path2 = castPath(path2, object);
                        object = parent2(object, path2);
                        return object == null || delete object[toKey(last(path2))];
                    }
                    function baseUpdate(object, path2, updater, customizer) {
                        return baseSet(object, path2, updater(baseGet(object, path2)), customizer);
                    }
                    function baseWhile(array4, predicate3, isDrop, fromRight) {
                        var length = array4.length, index = fromRight ? length : -1;
                        while((fromRight ? index-- : ++index < length) && predicate3(array4[index], index, array4)){}
                        return isDrop ? baseSlice(array4, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array4, fromRight ? index + 1 : 0, fromRight ? length : index);
                    }
                    function baseWrapperValue(value, actions) {
                        var result18 = value;
                        if (result18 instanceof LazyWrapper) {
                            result18 = result18.value();
                        }
                        return arrayReduce(actions, function(result19, action) {
                            return action.func.apply(action.thisArg, arrayPush([
                                result19
                            ], action.args));
                        }, result18);
                    }
                    function baseXor(arrays, iteratee2, comparator) {
                        var length = arrays.length;
                        if (length < 2) {
                            return length ? baseUniq(arrays[0]) : [];
                        }
                        var index = -1, result18 = Array2(length);
                        while(++index < length){
                            var array4 = arrays[index], othIndex = -1;
                            while(++othIndex < length){
                                if (othIndex != index) {
                                    result18[index] = baseDifference(result18[index] || array4, arrays[othIndex], iteratee2, comparator);
                                }
                            }
                        }
                        return baseUniq(baseFlatten(result18, 1), iteratee2, comparator);
                    }
                    function baseZipObject(props, values2, assignFunc) {
                        var index = -1, length = props.length, valsLength = values2.length, result18 = {};
                        while(++index < length){
                            var value = index < valsLength ? values2[index] : undefined2;
                            assignFunc(result18, props[index], value);
                        }
                        return result18;
                    }
                    function castArrayLikeObject(value) {
                        return isArrayLikeObject(value) ? value : [];
                    }
                    function castFunction(value) {
                        return typeof value == "function" ? value : identity3;
                    }
                    function castPath(value, object) {
                        if (isArray(value)) {
                            return value;
                        }
                        return isKey(value, object) ? [
                            value
                        ] : stringToPath(toString3(value));
                    }
                    var castRest = baseRest;
                    function castSlice(array4, start, end) {
                        var length = array4.length;
                        end = end === undefined2 ? length : end;
                        return !start && end >= length ? array4 : baseSlice(array4, start, end);
                    }
                    var clearTimeout2 = ctxClearTimeout || function(id) {
                        return root.clearTimeout(id);
                    };
                    function cloneBuffer(buffer, isDeep) {
                        if (isDeep) {
                            return buffer.slice();
                        }
                        var length = buffer.length, result18 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
                        buffer.copy(result18);
                        return result18;
                    }
                    function cloneArrayBuffer(arrayBuffer) {
                        var result18 = new arrayBuffer.constructor(arrayBuffer.byteLength);
                        new Uint8Array2(result18).set(new Uint8Array2(arrayBuffer));
                        return result18;
                    }
                    function cloneDataView(dataView, isDeep) {
                        var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
                        return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
                    }
                    function cloneRegExp(regexp) {
                        var result18 = new regexp.constructor(regexp.source, reFlags.exec(regexp));
                        result18.lastIndex = regexp.lastIndex;
                        return result18;
                    }
                    function cloneSymbol(symbol5) {
                        return symbolValueOf ? Object2(symbolValueOf.call(symbol5)) : {};
                    }
                    function cloneTypedArray(typedArray, isDeep) {
                        var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
                        return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
                    }
                    function compareAscending(value, other) {
                        if (value !== other) {
                            var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
                            var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
                            if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
                                return 1;
                            }
                            if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
                                return -1;
                            }
                        }
                        return 0;
                    }
                    function compareMultiple(object, other, orders) {
                        var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;
                        while(++index < length){
                            var result18 = compareAscending(objCriteria[index], othCriteria[index]);
                            if (result18) {
                                if (index >= ordersLength) {
                                    return result18;
                                }
                                var order = orders[index];
                                return result18 * (order == "desc" ? -1 : 1);
                            }
                        }
                        return object.index - other.index;
                    }
                    function composeArgs(args, partials, holders, isCurried) {
                        var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result18 = Array2(leftLength + rangeLength), isUncurried = !isCurried;
                        while(++leftIndex < leftLength){
                            result18[leftIndex] = partials[leftIndex];
                        }
                        while(++argsIndex < holdersLength){
                            if (isUncurried || argsIndex < argsLength) {
                                result18[holders[argsIndex]] = args[argsIndex];
                            }
                        }
                        while(rangeLength--){
                            result18[leftIndex++] = args[argsIndex++];
                        }
                        return result18;
                    }
                    function composeArgsRight(args, partials, holders, isCurried) {
                        var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result18 = Array2(rangeLength + rightLength), isUncurried = !isCurried;
                        while(++argsIndex < rangeLength){
                            result18[argsIndex] = args[argsIndex];
                        }
                        var offset = argsIndex;
                        while(++rightIndex < rightLength){
                            result18[offset + rightIndex] = partials[rightIndex];
                        }
                        while(++holdersIndex < holdersLength){
                            if (isUncurried || argsIndex < argsLength) {
                                result18[offset + holders[holdersIndex]] = args[argsIndex++];
                            }
                        }
                        return result18;
                    }
                    function copyArray(source, array4) {
                        var index = -1, length = source.length;
                        array4 || (array4 = Array2(length));
                        while(++index < length){
                            array4[index] = source[index];
                        }
                        return array4;
                    }
                    function copyObject(source, props, object, customizer) {
                        var isNew = !object;
                        object || (object = {});
                        var index = -1, length = props.length;
                        while(++index < length){
                            var key = props[index];
                            var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2;
                            if (newValue === undefined2) {
                                newValue = source[key];
                            }
                            if (isNew) {
                                baseAssignValue(object, key, newValue);
                            } else {
                                assignValue(object, key, newValue);
                            }
                        }
                        return object;
                    }
                    function copySymbols(source, object) {
                        return copyObject(source, getSymbols(source), object);
                    }
                    function copySymbolsIn(source, object) {
                        return copyObject(source, getSymbolsIn(source), object);
                    }
                    function createAggregator(setter, initializer) {
                        return function(collection, iteratee2) {
                            var func3 = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {};
                            return func3(collection, setter, getIteratee(iteratee2, 2), accumulator);
                        };
                    }
                    function createAssigner(assigner) {
                        return baseRest(function(object, sources) {
                            var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2;
                            customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2;
                            if (guard && isIterateeCall(sources[0], sources[1], guard)) {
                                customizer = length < 3 ? undefined2 : customizer;
                                length = 1;
                            }
                            object = Object2(object);
                            while(++index < length){
                                var source = sources[index];
                                if (source) {
                                    assigner(object, source, index, customizer);
                                }
                            }
                            return object;
                        });
                    }
                    function createBaseEach(eachFunc, fromRight) {
                        return function(collection, iteratee2) {
                            if (collection == null) {
                                return collection;
                            }
                            if (!isArrayLike(collection)) {
                                return eachFunc(collection, iteratee2);
                            }
                            var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection);
                            while(fromRight ? index-- : ++index < length){
                                if (iteratee2(iterable[index], index, iterable) === false) {
                                    break;
                                }
                            }
                            return collection;
                        };
                    }
                    function createBaseFor(fromRight) {
                        return function(object, iteratee2, keysFunc) {
                            var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length;
                            while(length--){
                                var key = props[fromRight ? length : ++index];
                                if (iteratee2(iterable[key], key, iterable) === false) {
                                    break;
                                }
                            }
                            return object;
                        };
                    }
                    function createBind(func3, bitmask, thisArg) {
                        var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func3);
                        function wrapper() {
                            var fn = this && this !== root && this instanceof wrapper ? Ctor : func3;
                            return fn.apply(isBind ? thisArg : this, arguments);
                        }
                        return wrapper;
                    }
                    function createCaseFirst(methodName) {
                        return function(string5) {
                            string5 = toString3(string5);
                            var strSymbols = hasUnicode(string5) ? stringToArray(string5) : undefined2;
                            var chr = strSymbols ? strSymbols[0] : string5.charAt(0);
                            var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string5.slice(1);
                            return chr[methodName]() + trailing;
                        };
                    }
                    function createCompounder(callback) {
                        return function(string5) {
                            return arrayReduce(words(deburr(string5).replace(reApos, "")), callback, "");
                        };
                    }
                    function createCtor(Ctor) {
                        return function() {
                            var args = arguments;
                            switch(args.length){
                                case 0:
                                    return new Ctor();
                                case 1:
                                    return new Ctor(args[0]);
                                case 2:
                                    return new Ctor(args[0], args[1]);
                                case 3:
                                    return new Ctor(args[0], args[1], args[2]);
                                case 4:
                                    return new Ctor(args[0], args[1], args[2], args[3]);
                                case 5:
                                    return new Ctor(args[0], args[1], args[2], args[3], args[4]);
                                case 6:
                                    return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
                                case 7:
                                    return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
                            }
                            var thisBinding = baseCreate(Ctor.prototype), result18 = Ctor.apply(thisBinding, args);
                            return isObject2(result18) ? result18 : thisBinding;
                        };
                    }
                    function createCurry(func3, bitmask, arity) {
                        var Ctor = createCtor(func3);
                        function wrapper() {
                            var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper);
                            while(index--){
                                args[index] = arguments[index];
                            }
                            var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);
                            length -= holders.length;
                            if (length < arity) {
                                return createRecurry(func3, bitmask, createHybrid, wrapper.placeholder, undefined2, args, holders, undefined2, undefined2, arity - length);
                            }
                            var fn = this && this !== root && this instanceof wrapper ? Ctor : func3;
                            return apply2(fn, this, args);
                        }
                        return wrapper;
                    }
                    function createFind(findIndexFunc) {
                        return function(collection, predicate3, fromIndex) {
                            var iterable = Object2(collection);
                            if (!isArrayLike(collection)) {
                                var iteratee2 = getIteratee(predicate3, 3);
                                collection = keys(collection);
                                predicate3 = function predicate3(key) {
                                    return iteratee2(iterable[key], key, iterable);
                                };
                            }
                            var index = findIndexFunc(collection, predicate3, fromIndex);
                            return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2;
                        };
                    }
                    function createFlow(fromRight) {
                        return flatRest(function(funcs) {
                            var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru;
                            if (fromRight) {
                                funcs.reverse();
                            }
                            while(index--){
                                var func3 = funcs[index];
                                if (typeof func3 != "function") {
                                    throw new TypeError2(FUNC_ERROR_TEXT);
                                }
                                if (prereq && !wrapper && getFuncName(func3) == "wrapper") {
                                    var wrapper = new LodashWrapper([], true);
                                }
                            }
                            index = wrapper ? index : length;
                            while(++index < length){
                                func3 = funcs[index];
                                var funcName = getFuncName(func3), data = funcName == "wrapper" ? getData(func3) : undefined2;
                                if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {
                                    wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
                                } else {
                                    wrapper = func3.length == 1 && isLaziable(func3) ? wrapper[funcName]() : wrapper.thru(func3);
                                }
                            }
                            return function() {
                                var args = arguments, value = args[0];
                                if (wrapper && args.length == 1 && isArray(value)) {
                                    return wrapper.plant(value).value();
                                }
                                var index2 = 0, result18 = length ? funcs[index2].apply(this, args) : value;
                                while(++index2 < length){
                                    result18 = funcs[index2].call(this, result18);
                                }
                                return result18;
                            };
                        });
                    }
                    function createHybrid(func3, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) {
                        var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func3);
                        function wrapper() {
                            var length = arguments.length, args = Array2(length), index = length;
                            while(index--){
                                args[index] = arguments[index];
                            }
                            if (isCurried) {
                                var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder);
                            }
                            if (partials) {
                                args = composeArgs(args, partials, holders, isCurried);
                            }
                            if (partialsRight) {
                                args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
                            }
                            length -= holdersCount;
                            if (isCurried && length < arity) {
                                var newHolders = replaceHolders(args, placeholder);
                                return createRecurry(func3, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary2, arity - length);
                            }
                            var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func3] : func3;
                            length = args.length;
                            if (argPos) {
                                args = reorder(args, argPos);
                            } else if (isFlip && length > 1) {
                                args.reverse();
                            }
                            if (isAry && ary2 < length) {
                                args.length = ary2;
                            }
                            if (this && this !== root && this instanceof wrapper) {
                                fn = Ctor || createCtor(fn);
                            }
                            return fn.apply(thisBinding, args);
                        }
                        return wrapper;
                    }
                    function createInverter(setter, toIteratee) {
                        return function(object, iteratee2) {
                            return baseInverter(object, setter, toIteratee(iteratee2), {});
                        };
                    }
                    function createMathOperation(operator, defaultValue) {
                        return function(value, other) {
                            var result18;
                            if (value === undefined2 && other === undefined2) {
                                return defaultValue;
                            }
                            if (value !== undefined2) {
                                result18 = value;
                            }
                            if (other !== undefined2) {
                                if (result18 === undefined2) {
                                    return other;
                                }
                                if (typeof value == "string" || typeof other == "string") {
                                    value = baseToString(value);
                                    other = baseToString(other);
                                } else {
                                    value = baseToNumber(value);
                                    other = baseToNumber(other);
                                }
                                result18 = operator(value, other);
                            }
                            return result18;
                        };
                    }
                    function createOver(arrayFunc) {
                        return flatRest(function(iteratees) {
                            iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
                            return baseRest(function(args) {
                                var thisArg = this;
                                return arrayFunc(iteratees, function(iteratee2) {
                                    return apply2(iteratee2, thisArg, args);
                                });
                            });
                        });
                    }
                    function createPadding(length, chars) {
                        chars = chars === undefined2 ? " " : baseToString(chars);
                        var charsLength = chars.length;
                        if (charsLength < 2) {
                            return charsLength ? baseRepeat(chars, length) : chars;
                        }
                        var result18 = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
                        return hasUnicode(chars) ? castSlice(stringToArray(result18), 0, length).join("") : result18.slice(0, length);
                    }
                    function createPartial(func3, bitmask, thisArg, partials) {
                        var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func3);
                        function wrapper() {
                            var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func3;
                            while(++leftIndex < leftLength){
                                args[leftIndex] = partials[leftIndex];
                            }
                            while(argsLength--){
                                args[leftIndex++] = arguments[++argsIndex];
                            }
                            return apply2(fn, isBind ? thisArg : this, args);
                        }
                        return wrapper;
                    }
                    function createRange(fromRight) {
                        return function(start, end, step) {
                            if (step && typeof step != "number" && isIterateeCall(start, end, step)) {
                                end = step = undefined2;
                            }
                            start = toFinite(start);
                            if (end === undefined2) {
                                end = start;
                                start = 0;
                            } else {
                                end = toFinite(end);
                            }
                            step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step);
                            return baseRange(start, end, step, fromRight);
                        };
                    }
                    function createRelationalOperation(operator) {
                        return function(value, other) {
                            if (!(typeof value == "string" && typeof other == "string")) {
                                value = toNumber(value);
                                other = toNumber(other);
                            }
                            return operator(value, other);
                        };
                    }
                    function createRecurry(func3, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) {
                        var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials;
                        bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;
                        bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
                        if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
                            bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
                        }
                        var newData = [
                            func3,
                            bitmask,
                            thisArg,
                            newPartials,
                            newHolders,
                            newPartialsRight,
                            newHoldersRight,
                            argPos,
                            ary2,
                            arity
                        ];
                        var result18 = wrapFunc.apply(undefined2, newData);
                        if (isLaziable(func3)) {
                            setData(result18, newData);
                        }
                        result18.placeholder = placeholder;
                        return setWrapToString(result18, func3, bitmask);
                    }
                    function createRound(methodName) {
                        var func3 = Math2[methodName];
                        return function(number, precision) {
                            number = toNumber(number);
                            precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
                            if (precision && nativeIsFinite(number)) {
                                var pair = (toString3(number) + "e").split("e"), value = func3(pair[0] + "e" + (+pair[1] + precision));
                                pair = (toString3(value) + "e").split("e");
                                return +(pair[0] + "e" + (+pair[1] - precision));
                            }
                            return func3(number);
                        };
                    }
                    var createSet = !(Set2 && 1 / setToArray(new Set2([
                        ,
                        -0
                    ]))[1] == INFINITY) ? noop3 : function createSet(values2) {
                        return new Set2(values2);
                    };
                    function createToPairs(keysFunc) {
                        return function(object) {
                            var tag2 = getTag(object);
                            if (tag2 == mapTag) {
                                return mapToArray(object);
                            }
                            if (tag2 == setTag) {
                                return setToPairs(object);
                            }
                            return baseToPairs(object, keysFunc(object));
                        };
                    }
                    function createWrap(func3, bitmask, thisArg, partials, holders, argPos, ary2, arity) {
                        var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
                        if (!isBindKey && typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        var length = partials ? partials.length : 0;
                        if (!length) {
                            bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
                            partials = holders = undefined2;
                        }
                        ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0);
                        arity = arity === undefined2 ? arity : toInteger(arity);
                        length -= holders ? holders.length : 0;
                        if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
                            var partialsRight = partials, holdersRight = holders;
                            partials = holders = undefined2;
                        }
                        var data = isBindKey ? undefined2 : getData(func3);
                        var newData = [
                            func3,
                            bitmask,
                            thisArg,
                            partials,
                            holders,
                            partialsRight,
                            holdersRight,
                            argPos,
                            ary2,
                            arity
                        ];
                        if (data) {
                            mergeData(newData, data);
                        }
                        func3 = newData[0];
                        bitmask = newData[1];
                        thisArg = newData[2];
                        partials = newData[3];
                        holders = newData[4];
                        arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func3.length : nativeMax(newData[9] - length, 0);
                        if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
                            bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
                        }
                        if (!bitmask || bitmask == WRAP_BIND_FLAG) {
                            var result18 = createBind(func3, bitmask, thisArg);
                        } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
                            result18 = createCurry(func3, bitmask, arity);
                        } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
                            result18 = createPartial(func3, bitmask, thisArg, partials);
                        } else {
                            result18 = createHybrid.apply(undefined2, newData);
                        }
                        var setter = data ? baseSetData : setData;
                        return setWrapToString(setter(result18, newData), func3, bitmask);
                    }
                    function customDefaultsAssignIn(objValue, srcValue, key, object) {
                        if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {
                            return srcValue;
                        }
                        return objValue;
                    }
                    function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
                        if (isObject2(objValue) && isObject2(srcValue)) {
                            stack.set(srcValue, objValue);
                            baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);
                            stack["delete"](srcValue);
                        }
                        return objValue;
                    }
                    function customOmitClone(value) {
                        return isPlainObject(value) ? undefined2 : value;
                    }
                    function equalArrays(array4, other, bitmask, customizer, equalFunc, stack) {
                        var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array4.length, othLength = other.length;
                        if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
                            return false;
                        }
                        var arrStacked = stack.get(array4);
                        var othStacked = stack.get(other);
                        if (arrStacked && othStacked) {
                            return arrStacked == other && othStacked == array4;
                        }
                        var index = -1, result18 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2;
                        stack.set(array4, other);
                        stack.set(other, array4);
                        while(++index < arrLength){
                            var arrValue = array4[index], othValue = other[index];
                            if (customizer) {
                                var compared = isPartial ? customizer(othValue, arrValue, index, other, array4, stack) : customizer(arrValue, othValue, index, array4, other, stack);
                            }
                            if (compared !== undefined2) {
                                if (compared) {
                                    continue;
                                }
                                result18 = false;
                                break;
                            }
                            if (seen) {
                                if (!arraySome(other, function(othValue2, othIndex) {
                                    if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
                                        return seen.push(othIndex);
                                    }
                                })) {
                                    result18 = false;
                                    break;
                                }
                            } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
                                result18 = false;
                                break;
                            }
                        }
                        stack["delete"](array4);
                        stack["delete"](other);
                        return result18;
                    }
                    function equalByTag(object, other, tag2, bitmask, customizer, equalFunc, stack) {
                        switch(tag2){
                            case dataViewTag:
                                if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
                                    return false;
                                }
                                object = object.buffer;
                                other = other.buffer;
                            case arrayBufferTag:
                                if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
                                    return false;
                                }
                                return true;
                            case boolTag:
                            case dateTag:
                            case numberTag:
                                return eq(+object, +other);
                            case errorTag:
                                return object.name == other.name && object.message == other.message;
                            case regexpTag:
                            case stringTag:
                                return object == other + "";
                            case mapTag:
                                var convert = mapToArray;
                            case setTag:
                                var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
                                convert || (convert = setToArray);
                                if (object.size != other.size && !isPartial) {
                                    return false;
                                }
                                var stacked = stack.get(object);
                                if (stacked) {
                                    return stacked == other;
                                }
                                bitmask |= COMPARE_UNORDERED_FLAG;
                                stack.set(object, other);
                                var result18 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
                                stack["delete"](object);
                                return result18;
                            case symbolTag:
                                if (symbolValueOf) {
                                    return symbolValueOf.call(object) == symbolValueOf.call(other);
                                }
                        }
                        return false;
                    }
                    function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
                        var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
                        if (objLength != othLength && !isPartial) {
                            return false;
                        }
                        var index = objLength;
                        while(index--){
                            var key = objProps[index];
                            if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
                                return false;
                            }
                        }
                        var objStacked = stack.get(object);
                        var othStacked = stack.get(other);
                        if (objStacked && othStacked) {
                            return objStacked == other && othStacked == object;
                        }
                        var result18 = true;
                        stack.set(object, other);
                        stack.set(other, object);
                        var skipCtor = isPartial;
                        while(++index < objLength){
                            key = objProps[index];
                            var objValue = object[key], othValue = other[key];
                            if (customizer) {
                                var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
                            }
                            if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
                                result18 = false;
                                break;
                            }
                            skipCtor || (skipCtor = key == "constructor");
                        }
                        if (result18 && !skipCtor) {
                            var objCtor = object.constructor, othCtor = other.constructor;
                            if (objCtor != othCtor && "constructor" in object && "constructor" in other && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
                                result18 = false;
                            }
                        }
                        stack["delete"](object);
                        stack["delete"](other);
                        return result18;
                    }
                    function flatRest(func3) {
                        return setToString(overRest(func3, undefined2, flatten), func3 + "");
                    }
                    function getAllKeys(object) {
                        return baseGetAllKeys(object, keys, getSymbols);
                    }
                    function getAllKeysIn(object) {
                        return baseGetAllKeys(object, keysIn, getSymbolsIn);
                    }
                    var getData = !metaMap ? noop3 : function getData(func3) {
                        return metaMap.get(func3);
                    };
                    function getFuncName(func3) {
                        var result18 = func3.name + "", array4 = realNames[result18], length = hasOwnProperty.call(realNames, result18) ? array4.length : 0;
                        while(length--){
                            var data = array4[length], otherFunc = data.func;
                            if (otherFunc == null || otherFunc == func3) {
                                return data.name;
                            }
                        }
                        return result18;
                    }
                    function getHolder(func3) {
                        var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func3;
                        return object.placeholder;
                    }
                    function getIteratee() {
                        var result18 = lodash.iteratee || iteratee;
                        result18 = result18 === iteratee ? baseIteratee : result18;
                        return arguments.length ? result18(arguments[0], arguments[1]) : result18;
                    }
                    function getMapData(map2, key) {
                        var data = map2.__data__;
                        return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
                    }
                    function getMatchData(object) {
                        var result18 = keys(object), length = result18.length;
                        while(length--){
                            var key = result18[length], value = object[key];
                            result18[length] = [
                                key,
                                value,
                                isStrictComparable(value)
                            ];
                        }
                        return result18;
                    }
                    function getNative(object, key) {
                        var value = getValue(object, key);
                        return baseIsNative(value) ? value : undefined2;
                    }
                    function getRawTag(value) {
                        var isOwn = hasOwnProperty.call(value, symToStringTag), tag2 = value[symToStringTag];
                        try {
                            value[symToStringTag] = undefined2;
                            var unmasked = true;
                        } catch (e) {}
                        var result18 = nativeObjectToString.call(value);
                        if (unmasked) {
                            if (isOwn) {
                                value[symToStringTag] = tag2;
                            } else {
                                delete value[symToStringTag];
                            }
                        }
                        return result18;
                    }
                    var getSymbols = !nativeGetSymbols ? stubArray : function getSymbols(object) {
                        if (object == null) {
                            return [];
                        }
                        object = Object2(object);
                        return arrayFilter(nativeGetSymbols(object), function(symbol5) {
                            return propertyIsEnumerable.call(object, symbol5);
                        });
                    };
                    var getSymbolsIn = !nativeGetSymbols ? stubArray : function getSymbolsIn(object) {
                        var result18 = [];
                        while(object){
                            arrayPush(result18, getSymbols(object));
                            object = getPrototype(object);
                        }
                        return result18;
                    };
                    var getTag = baseGetTag;
                    if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
                        getTag = function getTag(value) {
                            var result18 = baseGetTag(value), Ctor = result18 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : "";
                            if (ctorString) {
                                switch(ctorString){
                                    case dataViewCtorString:
                                        return dataViewTag;
                                    case mapCtorString:
                                        return mapTag;
                                    case promiseCtorString:
                                        return promiseTag;
                                    case setCtorString:
                                        return setTag;
                                    case weakMapCtorString:
                                        return weakMapTag;
                                }
                            }
                            return result18;
                        };
                    }
                    function getView(start, end, transforms) {
                        var index = -1, length = transforms.length;
                        while(++index < length){
                            var data = transforms[index], size2 = data.size;
                            switch(data.type){
                                case "drop":
                                    start += size2;
                                    break;
                                case "dropRight":
                                    end -= size2;
                                    break;
                                case "take":
                                    end = nativeMin(end, start + size2);
                                    break;
                                case "takeRight":
                                    start = nativeMax(start, end - size2);
                                    break;
                            }
                        }
                        return {
                            start: start,
                            end: end
                        };
                    }
                    function getWrapDetails(source) {
                        var match = source.match(reWrapDetails);
                        return match ? match[1].split(reSplitDetails) : [];
                    }
                    function hasPath(object, path2, hasFunc) {
                        path2 = castPath(path2, object);
                        var index = -1, length = path2.length, result18 = false;
                        while(++index < length){
                            var key = toKey(path2[index]);
                            if (!(result18 = object != null && hasFunc(object, key))) {
                                break;
                            }
                            object = object[key];
                        }
                        if (result18 || ++index != length) {
                            return result18;
                        }
                        length = object == null ? 0 : object.length;
                        return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));
                    }
                    function initCloneArray(array4) {
                        var length = array4.length, result18 = new array4.constructor(length);
                        if (length && typeof array4[0] == "string" && hasOwnProperty.call(array4, "index")) {
                            result18.index = array4.index;
                            result18.input = array4.input;
                        }
                        return result18;
                    }
                    function initCloneObject(object) {
                        return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
                    }
                    function initCloneByTag(object, tag2, isDeep) {
                        var Ctor = object.constructor;
                        switch(tag2){
                            case arrayBufferTag:
                                return cloneArrayBuffer(object);
                            case boolTag:
                            case dateTag:
                                return new Ctor(+object);
                            case dataViewTag:
                                return cloneDataView(object, isDeep);
                            case float32Tag:
                            case float64Tag:
                            case int8Tag:
                            case int16Tag:
                            case int32Tag:
                            case uint8Tag:
                            case uint8ClampedTag:
                            case uint16Tag:
                            case uint32Tag:
                                return cloneTypedArray(object, isDeep);
                            case mapTag:
                                return new Ctor();
                            case numberTag:
                            case stringTag:
                                return new Ctor(object);
                            case regexpTag:
                                return cloneRegExp(object);
                            case setTag:
                                return new Ctor();
                            case symbolTag:
                                return cloneSymbol(object);
                        }
                    }
                    function insertWrapDetails(source, details) {
                        var length = details.length;
                        if (!length) {
                            return source;
                        }
                        var lastIndex = length - 1;
                        details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex];
                        details = details.join(length > 2 ? ", " : " ");
                        return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n");
                    }
                    function isFlattenable(value) {
                        return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
                    }
                    function isIndex(value, length) {
                        var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                        length = length == null ? MAX_SAFE_INTEGER : length;
                        return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
                    }
                    function isIterateeCall(value, index, object) {
                        if (!isObject2(object)) {
                            return false;
                        }
                        var type = typeof index === "undefined" ? "undefined" : _type_of(index);
                        if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) {
                            return eq(object[index], value);
                        }
                        return false;
                    }
                    function isKey(value, object) {
                        if (isArray(value)) {
                            return false;
                        }
                        var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                        if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
                            return true;
                        }
                        return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object);
                    }
                    function isKeyable(value) {
                        var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                        return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
                    }
                    function isLaziable(func3) {
                        var funcName = getFuncName(func3), other = lodash[funcName];
                        if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) {
                            return false;
                        }
                        if (func3 === other) {
                            return true;
                        }
                        var data = getData(other);
                        return !!data && func3 === data[0];
                    }
                    function isMasked(func3) {
                        return !!maskSrcKey && maskSrcKey in func3;
                    }
                    var isMaskable = coreJsData ? isFunction : stubFalse;
                    function isPrototype(value) {
                        var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
                        return value === proto;
                    }
                    function isStrictComparable(value) {
                        return value === value && !isObject2(value);
                    }
                    function matchesStrictComparable(key, srcValue) {
                        return function(object) {
                            if (object == null) {
                                return false;
                            }
                            return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object));
                        };
                    }
                    function memoizeCapped(func3) {
                        var result18 = memoize(func3, function(key) {
                            if (cache.size === MAX_MEMOIZE_SIZE) {
                                cache.clear();
                            }
                            return key;
                        });
                        var cache = result18.cache;
                        return result18;
                    }
                    function mergeData(data, source) {
                        var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
                        var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;
                        if (!(isCommon || isCombo)) {
                            return data;
                        }
                        if (srcBitmask & WRAP_BIND_FLAG) {
                            data[2] = source[2];
                            newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
                        }
                        var value = source[3];
                        if (value) {
                            var partials = data[3];
                            data[3] = partials ? composeArgs(partials, value, source[4]) : value;
                            data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
                        }
                        value = source[5];
                        if (value) {
                            partials = data[5];
                            data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
                            data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
                        }
                        value = source[7];
                        if (value) {
                            data[7] = value;
                        }
                        if (srcBitmask & WRAP_ARY_FLAG) {
                            data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
                        }
                        if (data[9] == null) {
                            data[9] = source[9];
                        }
                        data[0] = source[0];
                        data[1] = newBitmask;
                        return data;
                    }
                    function nativeKeysIn(object) {
                        var result18 = [];
                        if (object != null) {
                            for(var key in Object2(object)){
                                result18.push(key);
                            }
                        }
                        return result18;
                    }
                    function objectToString(value) {
                        return nativeObjectToString.call(value);
                    }
                    function overRest(func3, start, transform2) {
                        start = nativeMax(start === undefined2 ? func3.length - 1 : start, 0);
                        return function() {
                            var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array4 = Array2(length);
                            while(++index < length){
                                array4[index] = args[start + index];
                            }
                            index = -1;
                            var otherArgs = Array2(start + 1);
                            while(++index < start){
                                otherArgs[index] = args[index];
                            }
                            otherArgs[start] = transform2(array4);
                            return apply2(func3, this, otherArgs);
                        };
                    }
                    function parent2(object, path2) {
                        return path2.length < 2 ? object : baseGet(object, baseSlice(path2, 0, -1));
                    }
                    function reorder(array4, indexes) {
                        var arrLength = array4.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array4);
                        while(length--){
                            var index = indexes[length];
                            array4[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2;
                        }
                        return array4;
                    }
                    function safeGet(object, key) {
                        if (key === "constructor" && typeof object[key] === "function") {
                            return;
                        }
                        if (key == "__proto__") {
                            return;
                        }
                        return object[key];
                    }
                    var setData = shortOut(baseSetData);
                    var setTimeout2 = ctxSetTimeout || function(func3, wait6) {
                        return root.setTimeout(func3, wait6);
                    };
                    var setToString = shortOut(baseSetToString);
                    function setWrapToString(wrapper, reference, bitmask) {
                        var source = reference + "";
                        return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
                    }
                    function shortOut(func3) {
                        var count = 0, lastCalled = 0;
                        return function() {
                            var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
                            lastCalled = stamp;
                            if (remaining > 0) {
                                if (++count >= HOT_COUNT) {
                                    return arguments[0];
                                }
                            } else {
                                count = 0;
                            }
                            return func3.apply(undefined2, arguments);
                        };
                    }
                    function shuffleSelf(array4, size2) {
                        var index = -1, length = array4.length, lastIndex = length - 1;
                        size2 = size2 === undefined2 ? length : size2;
                        while(++index < size2){
                            var rand = baseRandom(index, lastIndex), value = array4[rand];
                            array4[rand] = array4[index];
                            array4[index] = value;
                        }
                        array4.length = size2;
                        return array4;
                    }
                    var stringToPath = memoizeCapped(function(string5) {
                        var result18 = [];
                        if (string5.charCodeAt(0) === 46) {
                            result18.push("");
                        }
                        string5.replace(rePropName, function(match, number, quote, subString) {
                            result18.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
                        });
                        return result18;
                    });
                    function toKey(value) {
                        if (typeof value == "string" || isSymbol(value)) {
                            return value;
                        }
                        var result18 = value + "";
                        return result18 == "0" && 1 / value == -INFINITY ? "-0" : result18;
                    }
                    function toSource(func3) {
                        if (func3 != null) {
                            try {
                                return funcToString.call(func3);
                            } catch (e) {}
                            try {
                                return func3 + "";
                            } catch (e) {}
                        }
                        return "";
                    }
                    function updateWrapDetails(details, bitmask) {
                        arrayEach(wrapFlags, function(pair) {
                            var value = "_." + pair[0];
                            if (bitmask & pair[1] && !arrayIncludes(details, value)) {
                                details.push(value);
                            }
                        });
                        return details.sort();
                    }
                    function wrapperClone(wrapper) {
                        if (wrapper instanceof LazyWrapper) {
                            return wrapper.clone();
                        }
                        var result18 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
                        result18.__actions__ = copyArray(wrapper.__actions__);
                        result18.__index__ = wrapper.__index__;
                        result18.__values__ = wrapper.__values__;
                        return result18;
                    }
                    function chunk(array4, size2, guard) {
                        if (guard ? isIterateeCall(array4, size2, guard) : size2 === undefined2) {
                            size2 = 1;
                        } else {
                            size2 = nativeMax(toInteger(size2), 0);
                        }
                        var length = array4 == null ? 0 : array4.length;
                        if (!length || size2 < 1) {
                            return [];
                        }
                        var index = 0, resIndex = 0, result18 = Array2(nativeCeil(length / size2));
                        while(index < length){
                            result18[resIndex++] = baseSlice(array4, index, index += size2);
                        }
                        return result18;
                    }
                    function compact(array4) {
                        var index = -1, length = array4 == null ? 0 : array4.length, resIndex = 0, result18 = [];
                        while(++index < length){
                            var value = array4[index];
                            if (value) {
                                result18[resIndex++] = value;
                            }
                        }
                        return result18;
                    }
                    function concat2() {
                        var length = arguments.length;
                        if (!length) {
                            return [];
                        }
                        var args = Array2(length - 1), array4 = arguments[0], index = length;
                        while(index--){
                            args[index - 1] = arguments[index];
                        }
                        return arrayPush(isArray(array4) ? copyArray(array4) : [
                            array4
                        ], baseFlatten(args, 1));
                    }
                    var difference = baseRest(function(array4, values2) {
                        return isArrayLikeObject(array4) ? baseDifference(array4, baseFlatten(values2, 1, isArrayLikeObject, true)) : [];
                    });
                    var differenceBy = baseRest(function(array4, values2) {
                        var iteratee2 = last(values2);
                        if (isArrayLikeObject(iteratee2)) {
                            iteratee2 = undefined2;
                        }
                        return isArrayLikeObject(array4) ? baseDifference(array4, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : [];
                    });
                    var differenceWith = baseRest(function(array4, values2) {
                        var comparator = last(values2);
                        if (isArrayLikeObject(comparator)) {
                            comparator = undefined2;
                        }
                        return isArrayLikeObject(array4) ? baseDifference(array4, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : [];
                    });
                    function drop(array4, n, guard) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return [];
                        }
                        n = guard || n === undefined2 ? 1 : toInteger(n);
                        return baseSlice(array4, n < 0 ? 0 : n, length);
                    }
                    function dropRight(array4, n, guard) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return [];
                        }
                        n = guard || n === undefined2 ? 1 : toInteger(n);
                        n = length - n;
                        return baseSlice(array4, 0, n < 0 ? 0 : n);
                    }
                    function dropRightWhile(array4, predicate3) {
                        return array4 && array4.length ? baseWhile(array4, getIteratee(predicate3, 3), true, true) : [];
                    }
                    function dropWhile(array4, predicate3) {
                        return array4 && array4.length ? baseWhile(array4, getIteratee(predicate3, 3), true) : [];
                    }
                    function fill(array4, value, start, end) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return [];
                        }
                        if (start && typeof start != "number" && isIterateeCall(array4, value, start)) {
                            start = 0;
                            end = length;
                        }
                        return baseFill(array4, value, start, end);
                    }
                    function findIndex(array4, predicate3, fromIndex) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return -1;
                        }
                        var index = fromIndex == null ? 0 : toInteger(fromIndex);
                        if (index < 0) {
                            index = nativeMax(length + index, 0);
                        }
                        return baseFindIndex(array4, getIteratee(predicate3, 3), index);
                    }
                    function findLastIndex(array4, predicate3, fromIndex) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return -1;
                        }
                        var index = length - 1;
                        if (fromIndex !== undefined2) {
                            index = toInteger(fromIndex);
                            index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
                        }
                        return baseFindIndex(array4, getIteratee(predicate3, 3), index, true);
                    }
                    function flatten(array4) {
                        var length = array4 == null ? 0 : array4.length;
                        return length ? baseFlatten(array4, 1) : [];
                    }
                    function flattenDeep(array4) {
                        var length = array4 == null ? 0 : array4.length;
                        return length ? baseFlatten(array4, INFINITY) : [];
                    }
                    function flattenDepth(array4, depth) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return [];
                        }
                        depth = depth === undefined2 ? 1 : toInteger(depth);
                        return baseFlatten(array4, depth);
                    }
                    function fromPairs(pairs) {
                        var index = -1, length = pairs == null ? 0 : pairs.length, result18 = {};
                        while(++index < length){
                            var pair = pairs[index];
                            result18[pair[0]] = pair[1];
                        }
                        return result18;
                    }
                    function head(array4) {
                        return array4 && array4.length ? array4[0] : undefined2;
                    }
                    function indexOf(array4, value, fromIndex) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return -1;
                        }
                        var index = fromIndex == null ? 0 : toInteger(fromIndex);
                        if (index < 0) {
                            index = nativeMax(length + index, 0);
                        }
                        return baseIndexOf(array4, value, index);
                    }
                    function initial(array4) {
                        var length = array4 == null ? 0 : array4.length;
                        return length ? baseSlice(array4, 0, -1) : [];
                    }
                    var intersection = baseRest(function(arrays) {
                        var mapped = arrayMap(arrays, castArrayLikeObject);
                        return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];
                    });
                    var intersectionBy = baseRest(function(arrays) {
                        var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);
                        if (iteratee2 === last(mapped)) {
                            iteratee2 = undefined2;
                        } else {
                            mapped.pop();
                        }
                        return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : [];
                    });
                    var intersectionWith = baseRest(function(arrays) {
                        var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);
                        comparator = typeof comparator == "function" ? comparator : undefined2;
                        if (comparator) {
                            mapped.pop();
                        }
                        return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];
                    });
                    function join2(array4, separator) {
                        return array4 == null ? "" : nativeJoin.call(array4, separator);
                    }
                    function last(array4) {
                        var length = array4 == null ? 0 : array4.length;
                        return length ? array4[length - 1] : undefined2;
                    }
                    function lastIndexOf(array4, value, fromIndex) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return -1;
                        }
                        var index = length;
                        if (fromIndex !== undefined2) {
                            index = toInteger(fromIndex);
                            index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
                        }
                        return value === value ? strictLastIndexOf(array4, value, index) : baseFindIndex(array4, baseIsNaN, index, true);
                    }
                    function nth(array4, n) {
                        return array4 && array4.length ? baseNth(array4, toInteger(n)) : undefined2;
                    }
                    var pull = baseRest(pullAll);
                    function pullAll(array4, values2) {
                        return array4 && array4.length && values2 && values2.length ? basePullAll(array4, values2) : array4;
                    }
                    function pullAllBy(array4, values2, iteratee2) {
                        return array4 && array4.length && values2 && values2.length ? basePullAll(array4, values2, getIteratee(iteratee2, 2)) : array4;
                    }
                    function pullAllWith(array4, values2, comparator) {
                        return array4 && array4.length && values2 && values2.length ? basePullAll(array4, values2, undefined2, comparator) : array4;
                    }
                    var pullAt = flatRest(function(array4, indexes) {
                        var length = array4 == null ? 0 : array4.length, result18 = baseAt(array4, indexes);
                        basePullAt(array4, arrayMap(indexes, function(index) {
                            return isIndex(index, length) ? +index : index;
                        }).sort(compareAscending));
                        return result18;
                    });
                    function remove2(array4, predicate3) {
                        var result18 = [];
                        if (!(array4 && array4.length)) {
                            return result18;
                        }
                        var index = -1, indexes = [], length = array4.length;
                        predicate3 = getIteratee(predicate3, 3);
                        while(++index < length){
                            var value = array4[index];
                            if (predicate3(value, index, array4)) {
                                result18.push(value);
                                indexes.push(index);
                            }
                        }
                        basePullAt(array4, indexes);
                        return result18;
                    }
                    function reverse(array4) {
                        return array4 == null ? array4 : nativeReverse.call(array4);
                    }
                    function slice(array4, start, end) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return [];
                        }
                        if (end && typeof end != "number" && isIterateeCall(array4, start, end)) {
                            start = 0;
                            end = length;
                        } else {
                            start = start == null ? 0 : toInteger(start);
                            end = end === undefined2 ? length : toInteger(end);
                        }
                        return baseSlice(array4, start, end);
                    }
                    function sortedIndex(array4, value) {
                        return baseSortedIndex(array4, value);
                    }
                    function sortedIndexBy(array4, value, iteratee2) {
                        return baseSortedIndexBy(array4, value, getIteratee(iteratee2, 2));
                    }
                    function sortedIndexOf(array4, value) {
                        var length = array4 == null ? 0 : array4.length;
                        if (length) {
                            var index = baseSortedIndex(array4, value);
                            if (index < length && eq(array4[index], value)) {
                                return index;
                            }
                        }
                        return -1;
                    }
                    function sortedLastIndex(array4, value) {
                        return baseSortedIndex(array4, value, true);
                    }
                    function sortedLastIndexBy(array4, value, iteratee2) {
                        return baseSortedIndexBy(array4, value, getIteratee(iteratee2, 2), true);
                    }
                    function sortedLastIndexOf(array4, value) {
                        var length = array4 == null ? 0 : array4.length;
                        if (length) {
                            var index = baseSortedIndex(array4, value, true) - 1;
                            if (eq(array4[index], value)) {
                                return index;
                            }
                        }
                        return -1;
                    }
                    function sortedUniq(array4) {
                        return array4 && array4.length ? baseSortedUniq(array4) : [];
                    }
                    function sortedUniqBy(array4, iteratee2) {
                        return array4 && array4.length ? baseSortedUniq(array4, getIteratee(iteratee2, 2)) : [];
                    }
                    function tail(array4) {
                        var length = array4 == null ? 0 : array4.length;
                        return length ? baseSlice(array4, 1, length) : [];
                    }
                    function take2(array4, n, guard) {
                        if (!(array4 && array4.length)) {
                            return [];
                        }
                        n = guard || n === undefined2 ? 1 : toInteger(n);
                        return baseSlice(array4, 0, n < 0 ? 0 : n);
                    }
                    function takeRight(array4, n, guard) {
                        var length = array4 == null ? 0 : array4.length;
                        if (!length) {
                            return [];
                        }
                        n = guard || n === undefined2 ? 1 : toInteger(n);
                        n = length - n;
                        return baseSlice(array4, n < 0 ? 0 : n, length);
                    }
                    function takeRightWhile(array4, predicate3) {
                        return array4 && array4.length ? baseWhile(array4, getIteratee(predicate3, 3), false, true) : [];
                    }
                    function takeWhile(array4, predicate3) {
                        return array4 && array4.length ? baseWhile(array4, getIteratee(predicate3, 3)) : [];
                    }
                    var union = baseRest(function(arrays) {
                        return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
                    });
                    var unionBy = baseRest(function(arrays) {
                        var iteratee2 = last(arrays);
                        if (isArrayLikeObject(iteratee2)) {
                            iteratee2 = undefined2;
                        }
                        return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2));
                    });
                    var unionWith = baseRest(function(arrays) {
                        var comparator = last(arrays);
                        comparator = typeof comparator == "function" ? comparator : undefined2;
                        return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator);
                    });
                    function uniq(array4) {
                        return array4 && array4.length ? baseUniq(array4) : [];
                    }
                    function uniqBy(array4, iteratee2) {
                        return array4 && array4.length ? baseUniq(array4, getIteratee(iteratee2, 2)) : [];
                    }
                    function uniqWith(array4, comparator) {
                        comparator = typeof comparator == "function" ? comparator : undefined2;
                        return array4 && array4.length ? baseUniq(array4, undefined2, comparator) : [];
                    }
                    function unzip(array4) {
                        if (!(array4 && array4.length)) {
                            return [];
                        }
                        var length = 0;
                        array4 = arrayFilter(array4, function(group) {
                            if (isArrayLikeObject(group)) {
                                length = nativeMax(group.length, length);
                                return true;
                            }
                        });
                        return baseTimes(length, function(index) {
                            return arrayMap(array4, baseProperty(index));
                        });
                    }
                    function unzipWith(array4, iteratee2) {
                        if (!(array4 && array4.length)) {
                            return [];
                        }
                        var result18 = unzip(array4);
                        if (iteratee2 == null) {
                            return result18;
                        }
                        return arrayMap(result18, function(group) {
                            return apply2(iteratee2, undefined2, group);
                        });
                    }
                    var without = baseRest(function(array4, values2) {
                        return isArrayLikeObject(array4) ? baseDifference(array4, values2) : [];
                    });
                    var xor = baseRest(function(arrays) {
                        return baseXor(arrayFilter(arrays, isArrayLikeObject));
                    });
                    var xorBy = baseRest(function(arrays) {
                        var iteratee2 = last(arrays);
                        if (isArrayLikeObject(iteratee2)) {
                            iteratee2 = undefined2;
                        }
                        return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2));
                    });
                    var xorWith = baseRest(function(arrays) {
                        var comparator = last(arrays);
                        comparator = typeof comparator == "function" ? comparator : undefined2;
                        return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator);
                    });
                    var zip = baseRest(unzip);
                    function zipObject(props, values2) {
                        return baseZipObject(props || [], values2 || [], assignValue);
                    }
                    function zipObjectDeep(props, values2) {
                        return baseZipObject(props || [], values2 || [], baseSet);
                    }
                    var zipWith = baseRest(function(arrays) {
                        var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2;
                        iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2;
                        return unzipWith(arrays, iteratee2);
                    });
                    function chain(value) {
                        var result18 = lodash(value);
                        result18.__chain__ = true;
                        return result18;
                    }
                    function tap(value, interceptor) {
                        interceptor(value);
                        return value;
                    }
                    function thru(value, interceptor) {
                        return interceptor(value);
                    }
                    var wrapperAt = flatRest(function(paths) {
                        var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function interceptor(object) {
                            return baseAt(object, paths);
                        };
                        if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {
                            return this.thru(interceptor);
                        }
                        value = value.slice(start, +start + (length ? 1 : 0));
                        value.__actions__.push({
                            func: thru,
                            args: [
                                interceptor
                            ],
                            thisArg: undefined2
                        });
                        return new LodashWrapper(value, this.__chain__).thru(function(array4) {
                            if (length && !array4.length) {
                                array4.push(undefined2);
                            }
                            return array4;
                        });
                    });
                    function wrapperChain() {
                        return chain(this);
                    }
                    function wrapperCommit() {
                        return new LodashWrapper(this.value(), this.__chain__);
                    }
                    function wrapperNext() {
                        if (this.__values__ === undefined2) {
                            this.__values__ = toArray(this.value());
                        }
                        var done3 = this.__index__ >= this.__values__.length, value = done3 ? undefined2 : this.__values__[this.__index__++];
                        return {
                            done: done3,
                            value: value
                        };
                    }
                    function wrapperToIterator() {
                        return this;
                    }
                    function wrapperPlant(value) {
                        var result18, parent3 = this;
                        while(parent3 instanceof baseLodash){
                            var clone3 = wrapperClone(parent3);
                            clone3.__index__ = 0;
                            clone3.__values__ = undefined2;
                            if (result18) {
                                previous.__wrapped__ = clone3;
                            } else {
                                result18 = clone3;
                            }
                            var previous = clone3;
                            parent3 = parent3.__wrapped__;
                        }
                        previous.__wrapped__ = value;
                        return result18;
                    }
                    function wrapperReverse() {
                        var value = this.__wrapped__;
                        if (value instanceof LazyWrapper) {
                            var wrapped = value;
                            if (this.__actions__.length) {
                                wrapped = new LazyWrapper(this);
                            }
                            wrapped = wrapped.reverse();
                            wrapped.__actions__.push({
                                func: thru,
                                args: [
                                    reverse
                                ],
                                thisArg: undefined2
                            });
                            return new LodashWrapper(wrapped, this.__chain__);
                        }
                        return this.thru(reverse);
                    }
                    function wrapperValue() {
                        return baseWrapperValue(this.__wrapped__, this.__actions__);
                    }
                    var countBy = createAggregator(function(result18, value, key) {
                        if (hasOwnProperty.call(result18, key)) {
                            ++result18[key];
                        } else {
                            baseAssignValue(result18, key, 1);
                        }
                    });
                    function every(collection, predicate3, guard) {
                        var func3 = isArray(collection) ? arrayEvery : baseEvery;
                        if (guard && isIterateeCall(collection, predicate3, guard)) {
                            predicate3 = undefined2;
                        }
                        return func3(collection, getIteratee(predicate3, 3));
                    }
                    function filter(collection, predicate3) {
                        var func3 = isArray(collection) ? arrayFilter : baseFilter;
                        return func3(collection, getIteratee(predicate3, 3));
                    }
                    var find = createFind(findIndex);
                    var findLast = createFind(findLastIndex);
                    function flatMap3(collection, iteratee2) {
                        return baseFlatten(map(collection, iteratee2), 1);
                    }
                    function flatMapDeep(collection, iteratee2) {
                        return baseFlatten(map(collection, iteratee2), INFINITY);
                    }
                    function flatMapDepth(collection, iteratee2, depth) {
                        depth = depth === undefined2 ? 1 : toInteger(depth);
                        return baseFlatten(map(collection, iteratee2), depth);
                    }
                    function forEach(collection, iteratee2) {
                        var func3 = isArray(collection) ? arrayEach : baseEach;
                        return func3(collection, getIteratee(iteratee2, 3));
                    }
                    function forEachRight(collection, iteratee2) {
                        var func3 = isArray(collection) ? arrayEachRight : baseEachRight;
                        return func3(collection, getIteratee(iteratee2, 3));
                    }
                    var groupBy = createAggregator(function(result18, value, key) {
                        if (hasOwnProperty.call(result18, key)) {
                            result18[key].push(value);
                        } else {
                            baseAssignValue(result18, key, [
                                value
                            ]);
                        }
                    });
                    function includes(collection, value, fromIndex, guard) {
                        collection = isArrayLike(collection) ? collection : values(collection);
                        fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;
                        var length = collection.length;
                        if (fromIndex < 0) {
                            fromIndex = nativeMax(length + fromIndex, 0);
                        }
                        return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
                    }
                    var invokeMap = baseRest(function(collection, path2, args) {
                        var index = -1, isFunc = typeof path2 == "function", result18 = isArrayLike(collection) ? Array2(collection.length) : [];
                        baseEach(collection, function(value) {
                            result18[++index] = isFunc ? apply2(path2, value, args) : baseInvoke(value, path2, args);
                        });
                        return result18;
                    });
                    var keyBy = createAggregator(function(result18, value, key) {
                        baseAssignValue(result18, key, value);
                    });
                    function map(collection, iteratee2) {
                        var func3 = isArray(collection) ? arrayMap : baseMap;
                        return func3(collection, getIteratee(iteratee2, 3));
                    }
                    function orderBy(collection, iteratees, orders, guard) {
                        if (collection == null) {
                            return [];
                        }
                        if (!isArray(iteratees)) {
                            iteratees = iteratees == null ? [] : [
                                iteratees
                            ];
                        }
                        orders = guard ? undefined2 : orders;
                        if (!isArray(orders)) {
                            orders = orders == null ? [] : [
                                orders
                            ];
                        }
                        return baseOrderBy(collection, iteratees, orders);
                    }
                    var partition = createAggregator(function(result18, value, key) {
                        result18[key ? 0 : 1].push(value);
                    }, function() {
                        return [
                            [],
                            []
                        ];
                    });
                    function reduce(collection, iteratee2, accumulator) {
                        var func3 = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
                        return func3(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach);
                    }
                    function reduceRight(collection, iteratee2, accumulator) {
                        var func3 = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3;
                        return func3(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight);
                    }
                    function reject(collection, predicate3) {
                        var func3 = isArray(collection) ? arrayFilter : baseFilter;
                        return func3(collection, negate(getIteratee(predicate3, 3)));
                    }
                    function sample(collection) {
                        var func3 = isArray(collection) ? arraySample : baseSample;
                        return func3(collection);
                    }
                    function sampleSize(collection, n, guard) {
                        if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) {
                            n = 1;
                        } else {
                            n = toInteger(n);
                        }
                        var func3 = isArray(collection) ? arraySampleSize : baseSampleSize;
                        return func3(collection, n);
                    }
                    function shuffle(collection) {
                        var func3 = isArray(collection) ? arrayShuffle : baseShuffle;
                        return func3(collection);
                    }
                    function size(collection) {
                        if (collection == null) {
                            return 0;
                        }
                        if (isArrayLike(collection)) {
                            return isString(collection) ? stringSize(collection) : collection.length;
                        }
                        var tag2 = getTag(collection);
                        if (tag2 == mapTag || tag2 == setTag) {
                            return collection.size;
                        }
                        return baseKeys(collection).length;
                    }
                    function some(collection, predicate3, guard) {
                        var func3 = isArray(collection) ? arraySome : baseSome;
                        if (guard && isIterateeCall(collection, predicate3, guard)) {
                            predicate3 = undefined2;
                        }
                        return func3(collection, getIteratee(predicate3, 3));
                    }
                    var sortBy = baseRest(function(collection, iteratees) {
                        if (collection == null) {
                            return [];
                        }
                        var length = iteratees.length;
                        if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
                            iteratees = [];
                        } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
                            iteratees = [
                                iteratees[0]
                            ];
                        }
                        return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
                    });
                    var now2 = ctxNow || function() {
                        return root.Date.now();
                    };
                    function after(n, func3) {
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        n = toInteger(n);
                        return function() {
                            if (--n < 1) {
                                return func3.apply(this, arguments);
                            }
                        };
                    }
                    function ary(func3, n, guard) {
                        n = guard ? undefined2 : n;
                        n = func3 && n == null ? func3.length : n;
                        return createWrap(func3, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n);
                    }
                    function before(n, func3) {
                        var result18;
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        n = toInteger(n);
                        return function() {
                            if (--n > 0) {
                                result18 = func3.apply(this, arguments);
                            }
                            if (n <= 1) {
                                func3 = undefined2;
                            }
                            return result18;
                        };
                    }
                    var bind = baseRest(function(func3, thisArg, partials) {
                        var bitmask = WRAP_BIND_FLAG;
                        if (partials.length) {
                            var holders = replaceHolders(partials, getHolder(bind));
                            bitmask |= WRAP_PARTIAL_FLAG;
                        }
                        return createWrap(func3, bitmask, thisArg, partials, holders);
                    });
                    var bindKey = baseRest(function(object, key, partials) {
                        var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
                        if (partials.length) {
                            var holders = replaceHolders(partials, getHolder(bindKey));
                            bitmask |= WRAP_PARTIAL_FLAG;
                        }
                        return createWrap(key, bitmask, object, partials, holders);
                    });
                    function curry(func3, arity, guard) {
                        arity = guard ? undefined2 : arity;
                        var result18 = createWrap(func3, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);
                        result18.placeholder = curry.placeholder;
                        return result18;
                    }
                    function curryRight(func3, arity, guard) {
                        arity = guard ? undefined2 : arity;
                        var result18 = createWrap(func3, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);
                        result18.placeholder = curryRight.placeholder;
                        return result18;
                    }
                    function debounce3(func3, wait6, options) {
                        var lastArgs, lastThis, maxWait, result18, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        wait6 = toNumber(wait6) || 0;
                        if (isObject2(options)) {
                            leading = !!options.leading;
                            maxing = "maxWait" in options;
                            maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait6) : maxWait;
                            trailing = "trailing" in options ? !!options.trailing : trailing;
                        }
                        function invokeFunc(time) {
                            var args = lastArgs, thisArg = lastThis;
                            lastArgs = lastThis = undefined2;
                            lastInvokeTime = time;
                            result18 = func3.apply(thisArg, args);
                            return result18;
                        }
                        function leadingEdge(time) {
                            lastInvokeTime = time;
                            timerId = setTimeout2(timerExpired, wait6);
                            return leading ? invokeFunc(time) : result18;
                        }
                        function remainingWait(time) {
                            var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait6 - timeSinceLastCall;
                            return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
                        }
                        function shouldInvoke(time) {
                            var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
                            return lastCallTime === undefined2 || timeSinceLastCall >= wait6 || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
                        }
                        function timerExpired() {
                            var time = now2();
                            if (shouldInvoke(time)) {
                                return trailingEdge(time);
                            }
                            timerId = setTimeout2(timerExpired, remainingWait(time));
                        }
                        function trailingEdge(time) {
                            timerId = undefined2;
                            if (trailing && lastArgs) {
                                return invokeFunc(time);
                            }
                            lastArgs = lastThis = undefined2;
                            return result18;
                        }
                        function cancel2() {
                            if (timerId !== undefined2) {
                                clearTimeout2(timerId);
                            }
                            lastInvokeTime = 0;
                            lastArgs = lastCallTime = lastThis = timerId = undefined2;
                        }
                        function flush3() {
                            return timerId === undefined2 ? result18 : trailingEdge(now2());
                        }
                        function debounced() {
                            var time = now2(), isInvoking = shouldInvoke(time);
                            lastArgs = arguments;
                            lastThis = this;
                            lastCallTime = time;
                            if (isInvoking) {
                                if (timerId === undefined2) {
                                    return leadingEdge(lastCallTime);
                                }
                                if (maxing) {
                                    clearTimeout2(timerId);
                                    timerId = setTimeout2(timerExpired, wait6);
                                    return invokeFunc(lastCallTime);
                                }
                            }
                            if (timerId === undefined2) {
                                timerId = setTimeout2(timerExpired, wait6);
                            }
                            return result18;
                        }
                        debounced.cancel = cancel2;
                        debounced.flush = flush3;
                        return debounced;
                    }
                    var defer = baseRest(function(func3, args) {
                        return baseDelay(func3, 1, args);
                    });
                    var delay2 = baseRest(function(func3, wait6, args) {
                        return baseDelay(func3, toNumber(wait6) || 0, args);
                    });
                    function flip(func3) {
                        return createWrap(func3, WRAP_FLIP_FLAG);
                    }
                    function memoize(func3, resolver) {
                        if (typeof func3 != "function" || resolver != null && typeof resolver != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        var memoized = function memoized1() {
                            var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
                            if (cache.has(key)) {
                                return cache.get(key);
                            }
                            var result18 = func3.apply(this, args);
                            memoized.cache = cache.set(key, result18) || cache;
                            return result18;
                        };
                        memoized.cache = new (memoize.Cache || MapCache)();
                        return memoized;
                    }
                    memoize.Cache = MapCache;
                    function negate(predicate3) {
                        if (typeof predicate3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        return function() {
                            var args = arguments;
                            switch(args.length){
                                case 0:
                                    return !predicate3.call(this);
                                case 1:
                                    return !predicate3.call(this, args[0]);
                                case 2:
                                    return !predicate3.call(this, args[0], args[1]);
                                case 3:
                                    return !predicate3.call(this, args[0], args[1], args[2]);
                            }
                            return !predicate3.apply(this, args);
                        };
                    }
                    function once2(func3) {
                        return before(2, func3);
                    }
                    var overArgs = castRest(function(func3, transforms) {
                        transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
                        var funcsLength = transforms.length;
                        return baseRest(function(args) {
                            var index = -1, length = nativeMin(args.length, funcsLength);
                            while(++index < length){
                                args[index] = transforms[index].call(this, args[index]);
                            }
                            return apply2(func3, this, args);
                        });
                    });
                    var partial = baseRest(function(func3, partials) {
                        var holders = replaceHolders(partials, getHolder(partial));
                        return createWrap(func3, WRAP_PARTIAL_FLAG, undefined2, partials, holders);
                    });
                    var partialRight = baseRest(function(func3, partials) {
                        var holders = replaceHolders(partials, getHolder(partialRight));
                        return createWrap(func3, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders);
                    });
                    var rearg = flatRest(function(func3, indexes) {
                        return createWrap(func3, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes);
                    });
                    function rest(func3, start) {
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        start = start === undefined2 ? start : toInteger(start);
                        return baseRest(func3, start);
                    }
                    function spread(func3, start) {
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        start = start == null ? 0 : nativeMax(toInteger(start), 0);
                        return baseRest(function(args) {
                            var array4 = args[start], otherArgs = castSlice(args, 0, start);
                            if (array4) {
                                arrayPush(otherArgs, array4);
                            }
                            return apply2(func3, this, otherArgs);
                        });
                    }
                    function throttle2(func3, wait6, options) {
                        var leading = true, trailing = true;
                        if (typeof func3 != "function") {
                            throw new TypeError2(FUNC_ERROR_TEXT);
                        }
                        if (isObject2(options)) {
                            leading = "leading" in options ? !!options.leading : leading;
                            trailing = "trailing" in options ? !!options.trailing : trailing;
                        }
                        return debounce3(func3, wait6, {
                            leading: leading,
                            maxWait: wait6,
                            trailing: trailing
                        });
                    }
                    function unary(func3) {
                        return ary(func3, 1);
                    }
                    function wrap3(value, wrapper) {
                        return partial(castFunction(wrapper), value);
                    }
                    function castArray() {
                        if (!arguments.length) {
                            return [];
                        }
                        var value = arguments[0];
                        return isArray(value) ? value : [
                            value
                        ];
                    }
                    function clone2(value) {
                        return baseClone(value, CLONE_SYMBOLS_FLAG);
                    }
                    function cloneWith(value, customizer) {
                        customizer = typeof customizer == "function" ? customizer : undefined2;
                        return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
                    }
                    function cloneDeep(value) {
                        return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
                    }
                    function cloneDeepWith(value, customizer) {
                        customizer = typeof customizer == "function" ? customizer : undefined2;
                        return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
                    }
                    function conformsTo(object, source) {
                        return source == null || baseConformsTo(object, source, keys(source));
                    }
                    function eq(value, other) {
                        return value === other || value !== value && other !== other;
                    }
                    var gt = createRelationalOperation(baseGt);
                    var gte = createRelationalOperation(function(value, other) {
                        return value >= other;
                    });
                    var isArguments = baseIsArguments(/* @__PURE__ */ function() {
                        return arguments;
                    }()) ? baseIsArguments : function isArguments(value) {
                        return isObjectLike2(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
                    };
                    var isArray = Array2.isArray;
                    var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
                    function isArrayLike(value) {
                        return value != null && isLength(value.length) && !isFunction(value);
                    }
                    function isArrayLikeObject(value) {
                        return isObjectLike2(value) && isArrayLike(value);
                    }
                    function isBoolean(value) {
                        return value === true || value === false || isObjectLike2(value) && baseGetTag(value) == boolTag;
                    }
                    var isBuffer = nativeIsBuffer || stubFalse;
                    var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
                    function isElement(value) {
                        return isObjectLike2(value) && value.nodeType === 1 && !isPlainObject(value);
                    }
                    function isEmpty(value) {
                        if (value == null) {
                            return true;
                        }
                        if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {
                            return !value.length;
                        }
                        var tag2 = getTag(value);
                        if (tag2 == mapTag || tag2 == setTag) {
                            return !value.size;
                        }
                        if (isPrototype(value)) {
                            return !baseKeys(value).length;
                        }
                        for(var key in value){
                            if (hasOwnProperty.call(value, key)) {
                                return false;
                            }
                        }
                        return true;
                    }
                    function isEqual(value, other) {
                        return baseIsEqual(value, other);
                    }
                    function isEqualWith(value, other, customizer) {
                        customizer = typeof customizer == "function" ? customizer : undefined2;
                        var result18 = customizer ? customizer(value, other) : undefined2;
                        return result18 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result18;
                    }
                    function isError(value) {
                        if (!isObjectLike2(value)) {
                            return false;
                        }
                        var tag2 = baseGetTag(value);
                        return tag2 == errorTag || tag2 == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject(value);
                    }
                    function isFinite2(value) {
                        return typeof value == "number" && nativeIsFinite(value);
                    }
                    function isFunction(value) {
                        if (!isObject2(value)) {
                            return false;
                        }
                        var tag2 = baseGetTag(value);
                        return tag2 == funcTag || tag2 == genTag || tag2 == asyncTag || tag2 == proxyTag;
                    }
                    function isInteger(value) {
                        return typeof value == "number" && value == toInteger(value);
                    }
                    function isLength(value) {
                        return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
                    }
                    function isObject2(value) {
                        var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                        return value != null && (type == "object" || type == "function");
                    }
                    function isObjectLike2(value) {
                        return value != null && (typeof value === "undefined" ? "undefined" : _type_of(value)) == "object";
                    }
                    var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
                    function isMatch(object, source) {
                        return object === source || baseIsMatch(object, source, getMatchData(source));
                    }
                    function isMatchWith(object, source, customizer) {
                        customizer = typeof customizer == "function" ? customizer : undefined2;
                        return baseIsMatch(object, source, getMatchData(source), customizer);
                    }
                    function isNaN2(value) {
                        return isNumber(value) && value != +value;
                    }
                    function isNative(value) {
                        if (isMaskable(value)) {
                            throw new Error2(CORE_ERROR_TEXT);
                        }
                        return baseIsNative(value);
                    }
                    function isNull(value) {
                        return value === null;
                    }
                    function isNil(value) {
                        return value == null;
                    }
                    function isNumber(value) {
                        return typeof value == "number" || isObjectLike2(value) && baseGetTag(value) == numberTag;
                    }
                    function isPlainObject(value) {
                        if (!isObjectLike2(value) || baseGetTag(value) != objectTag) {
                            return false;
                        }
                        var proto = getPrototype(value);
                        if (proto === null) {
                            return true;
                        }
                        var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
                        return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
                    }
                    var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
                    function isSafeInteger(value) {
                        return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
                    }
                    var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
                    function isString(value) {
                        return typeof value == "string" || !isArray(value) && isObjectLike2(value) && baseGetTag(value) == stringTag;
                    }
                    function isSymbol(value) {
                        return (typeof value === "undefined" ? "undefined" : _type_of(value)) == "symbol" || isObjectLike2(value) && baseGetTag(value) == symbolTag;
                    }
                    var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
                    function isUndefined2(value) {
                        return value === undefined2;
                    }
                    function isWeakMap(value) {
                        return isObjectLike2(value) && getTag(value) == weakMapTag;
                    }
                    function isWeakSet(value) {
                        return isObjectLike2(value) && baseGetTag(value) == weakSetTag;
                    }
                    var lt = createRelationalOperation(baseLt);
                    var lte = createRelationalOperation(function(value, other) {
                        return value <= other;
                    });
                    function toArray(value) {
                        if (!value) {
                            return [];
                        }
                        if (isArrayLike(value)) {
                            return isString(value) ? stringToArray(value) : copyArray(value);
                        }
                        if (symIterator && value[symIterator]) {
                            return iteratorToArray(value[symIterator]());
                        }
                        var tag2 = getTag(value), func3 = tag2 == mapTag ? mapToArray : tag2 == setTag ? setToArray : values;
                        return func3(value);
                    }
                    function toFinite(value) {
                        if (!value) {
                            return value === 0 ? value : 0;
                        }
                        value = toNumber(value);
                        if (value === INFINITY || value === -INFINITY) {
                            var sign2 = value < 0 ? -1 : 1;
                            return sign2 * MAX_INTEGER;
                        }
                        return value === value ? value : 0;
                    }
                    function toInteger(value) {
                        var result18 = toFinite(value), remainder = result18 % 1;
                        return result18 === result18 ? remainder ? result18 - remainder : result18 : 0;
                    }
                    function toLength(value) {
                        return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
                    }
                    function toNumber(value) {
                        if (typeof value == "number") {
                            return value;
                        }
                        if (isSymbol(value)) {
                            return NAN;
                        }
                        if (isObject2(value)) {
                            var other = typeof value.valueOf == "function" ? value.valueOf() : value;
                            value = isObject2(other) ? other + "" : other;
                        }
                        if (typeof value != "string") {
                            return value === 0 ? value : +value;
                        }
                        value = baseTrim(value);
                        var isBinary = reIsBinary.test(value);
                        return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
                    }
                    function toPlainObject(value) {
                        return copyObject(value, keysIn(value));
                    }
                    function toSafeInteger(value) {
                        return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;
                    }
                    function toString3(value) {
                        return value == null ? "" : baseToString(value);
                    }
                    var assign = createAssigner(function(object, source) {
                        if (isPrototype(source) || isArrayLike(source)) {
                            copyObject(source, keys(source), object);
                            return;
                        }
                        for(var key in source){
                            if (hasOwnProperty.call(source, key)) {
                                assignValue(object, key, source[key]);
                            }
                        }
                    });
                    var assignIn = createAssigner(function(object, source) {
                        copyObject(source, keysIn(source), object);
                    });
                    var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
                        copyObject(source, keysIn(source), object, customizer);
                    });
                    var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
                        copyObject(source, keys(source), object, customizer);
                    });
                    var at = flatRest(baseAt);
                    function create(prototype, properties) {
                        var result18 = baseCreate(prototype);
                        return properties == null ? result18 : baseAssign(result18, properties);
                    }
                    var defaults = baseRest(function(object, sources) {
                        object = Object2(object);
                        var index = -1;
                        var length = sources.length;
                        var guard = length > 2 ? sources[2] : undefined2;
                        if (guard && isIterateeCall(sources[0], sources[1], guard)) {
                            length = 1;
                        }
                        while(++index < length){
                            var source = sources[index];
                            var props = keysIn(source);
                            var propsIndex = -1;
                            var propsLength = props.length;
                            while(++propsIndex < propsLength){
                                var key = props[propsIndex];
                                var value = object[key];
                                if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {
                                    object[key] = source[key];
                                }
                            }
                        }
                        return object;
                    });
                    var defaultsDeep = baseRest(function(args) {
                        args.push(undefined2, customDefaultsMerge);
                        return apply2(mergeWith, undefined2, args);
                    });
                    function findKey(object, predicate3) {
                        return baseFindKey(object, getIteratee(predicate3, 3), baseForOwn);
                    }
                    function findLastKey(object, predicate3) {
                        return baseFindKey(object, getIteratee(predicate3, 3), baseForOwnRight);
                    }
                    function forIn(object, iteratee2) {
                        return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn);
                    }
                    function forInRight(object, iteratee2) {
                        return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn);
                    }
                    function forOwn(object, iteratee2) {
                        return object && baseForOwn(object, getIteratee(iteratee2, 3));
                    }
                    function forOwnRight(object, iteratee2) {
                        return object && baseForOwnRight(object, getIteratee(iteratee2, 3));
                    }
                    function functions(object) {
                        return object == null ? [] : baseFunctions(object, keys(object));
                    }
                    function functionsIn(object) {
                        return object == null ? [] : baseFunctions(object, keysIn(object));
                    }
                    function get(object, path2, defaultValue) {
                        var result18 = object == null ? undefined2 : baseGet(object, path2);
                        return result18 === undefined2 ? defaultValue : result18;
                    }
                    function has(object, path2) {
                        return object != null && hasPath(object, path2, baseHas);
                    }
                    function hasIn(object, path2) {
                        return object != null && hasPath(object, path2, baseHasIn);
                    }
                    var invert = createInverter(function(result18, value, key) {
                        if (value != null && typeof value.toString != "function") {
                            value = nativeObjectToString.call(value);
                        }
                        result18[value] = key;
                    }, constant(identity3));
                    var invertBy = createInverter(function(result18, value, key) {
                        if (value != null && typeof value.toString != "function") {
                            value = nativeObjectToString.call(value);
                        }
                        if (hasOwnProperty.call(result18, value)) {
                            result18[value].push(key);
                        } else {
                            result18[value] = [
                                key
                            ];
                        }
                    }, getIteratee);
                    var invoke = baseRest(baseInvoke);
                    function keys(object) {
                        return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
                    }
                    function keysIn(object) {
                        return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
                    }
                    function mapKeys(object, iteratee2) {
                        var result18 = {};
                        iteratee2 = getIteratee(iteratee2, 3);
                        baseForOwn(object, function(value, key, object2) {
                            baseAssignValue(result18, iteratee2(value, key, object2), value);
                        });
                        return result18;
                    }
                    function mapValues(object, iteratee2) {
                        var result18 = {};
                        iteratee2 = getIteratee(iteratee2, 3);
                        baseForOwn(object, function(value, key, object2) {
                            baseAssignValue(result18, key, iteratee2(value, key, object2));
                        });
                        return result18;
                    }
                    var merge = createAssigner(function(object, source, srcIndex) {
                        baseMerge(object, source, srcIndex);
                    });
                    var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
                        baseMerge(object, source, srcIndex, customizer);
                    });
                    var omit = flatRest(function(object, paths) {
                        var result18 = {};
                        if (object == null) {
                            return result18;
                        }
                        var isDeep = false;
                        paths = arrayMap(paths, function(path2) {
                            path2 = castPath(path2, object);
                            isDeep || (isDeep = path2.length > 1);
                            return path2;
                        });
                        copyObject(object, getAllKeysIn(object), result18);
                        if (isDeep) {
                            result18 = baseClone(result18, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
                        }
                        var length = paths.length;
                        while(length--){
                            baseUnset(result18, paths[length]);
                        }
                        return result18;
                    });
                    function omitBy2(object, predicate3) {
                        return pickBy(object, negate(getIteratee(predicate3)));
                    }
                    var pick = flatRest(function(object, paths) {
                        return object == null ? {} : basePick(object, paths);
                    });
                    function pickBy(object, predicate3) {
                        if (object == null) {
                            return {};
                        }
                        var props = arrayMap(getAllKeysIn(object), function(prop) {
                            return [
                                prop
                            ];
                        });
                        predicate3 = getIteratee(predicate3);
                        return basePickBy(object, props, function(value, path2) {
                            return predicate3(value, path2[0]);
                        });
                    }
                    function result17(object, path2, defaultValue) {
                        path2 = castPath(path2, object);
                        var index = -1, length = path2.length;
                        if (!length) {
                            length = 1;
                            object = undefined2;
                        }
                        while(++index < length){
                            var value = object == null ? undefined2 : object[toKey(path2[index])];
                            if (value === undefined2) {
                                index = length;
                                value = defaultValue;
                            }
                            object = isFunction(value) ? value.call(object) : value;
                        }
                        return object;
                    }
                    function set(object, path2, value) {
                        return object == null ? object : baseSet(object, path2, value);
                    }
                    function setWith(object, path2, value, customizer) {
                        customizer = typeof customizer == "function" ? customizer : undefined2;
                        return object == null ? object : baseSet(object, path2, value, customizer);
                    }
                    var toPairs = createToPairs(keys);
                    var toPairsIn = createToPairs(keysIn);
                    function transform(object, iteratee2, accumulator) {
                        var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object);
                        iteratee2 = getIteratee(iteratee2, 4);
                        if (accumulator == null) {
                            var Ctor = object && object.constructor;
                            if (isArrLike) {
                                accumulator = isArr ? new Ctor() : [];
                            } else if (isObject2(object)) {
                                accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
                            } else {
                                accumulator = {};
                            }
                        }
                        (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) {
                            return iteratee2(accumulator, value, index, object2);
                        });
                        return accumulator;
                    }
                    function unset(object, path2) {
                        return object == null ? true : baseUnset(object, path2);
                    }
                    function update(object, path2, updater) {
                        return object == null ? object : baseUpdate(object, path2, castFunction(updater));
                    }
                    function updateWith(object, path2, updater, customizer) {
                        customizer = typeof customizer == "function" ? customizer : undefined2;
                        return object == null ? object : baseUpdate(object, path2, castFunction(updater), customizer);
                    }
                    function values(object) {
                        return object == null ? [] : baseValues(object, keys(object));
                    }
                    function valuesIn(object) {
                        return object == null ? [] : baseValues(object, keysIn(object));
                    }
                    function clamp(number, lower, upper) {
                        if (upper === undefined2) {
                            upper = lower;
                            lower = undefined2;
                        }
                        if (upper !== undefined2) {
                            upper = toNumber(upper);
                            upper = upper === upper ? upper : 0;
                        }
                        if (lower !== undefined2) {
                            lower = toNumber(lower);
                            lower = lower === lower ? lower : 0;
                        }
                        return baseClamp(toNumber(number), lower, upper);
                    }
                    function inRange(number, start, end) {
                        start = toFinite(start);
                        if (end === undefined2) {
                            end = start;
                            start = 0;
                        } else {
                            end = toFinite(end);
                        }
                        number = toNumber(number);
                        return baseInRange(number, start, end);
                    }
                    function random(lower, upper, floating) {
                        if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) {
                            upper = floating = undefined2;
                        }
                        if (floating === undefined2) {
                            if (typeof upper == "boolean") {
                                floating = upper;
                                upper = undefined2;
                            } else if (typeof lower == "boolean") {
                                floating = lower;
                                lower = undefined2;
                            }
                        }
                        if (lower === undefined2 && upper === undefined2) {
                            lower = 0;
                            upper = 1;
                        } else {
                            lower = toFinite(lower);
                            if (upper === undefined2) {
                                upper = lower;
                                lower = 0;
                            } else {
                                upper = toFinite(upper);
                            }
                        }
                        if (lower > upper) {
                            var temp = lower;
                            lower = upper;
                            upper = temp;
                        }
                        if (floating || lower % 1 || upper % 1) {
                            var rand = nativeRandom();
                            return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper);
                        }
                        return baseRandom(lower, upper);
                    }
                    var camelCase = createCompounder(function(result18, word, index) {
                        word = word.toLowerCase();
                        return result18 + (index ? capitalize(word) : word);
                    });
                    function capitalize(string5) {
                        return upperFirst(toString3(string5).toLowerCase());
                    }
                    function deburr(string5) {
                        string5 = toString3(string5);
                        return string5 && string5.replace(reLatin, deburrLetter).replace(reComboMark, "");
                    }
                    function endsWith(string5, target, position) {
                        string5 = toString3(string5);
                        target = baseToString(target);
                        var length = string5.length;
                        position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length);
                        var end = position;
                        position -= target.length;
                        return position >= 0 && string5.slice(position, end) == target;
                    }
                    function escape2(string5) {
                        string5 = toString3(string5);
                        return string5 && reHasUnescapedHtml.test(string5) ? string5.replace(reUnescapedHtml, escapeHtmlChar) : string5;
                    }
                    function escapeRegExp(string5) {
                        string5 = toString3(string5);
                        return string5 && reHasRegExpChar.test(string5) ? string5.replace(reRegExpChar, "\\$&") : string5;
                    }
                    var kebabCase = createCompounder(function(result18, word, index) {
                        return result18 + (index ? "-" : "") + word.toLowerCase();
                    });
                    var lowerCase = createCompounder(function(result18, word, index) {
                        return result18 + (index ? " " : "") + word.toLowerCase();
                    });
                    var lowerFirst = createCaseFirst("toLowerCase");
                    function pad(string5, length, chars) {
                        string5 = toString3(string5);
                        length = toInteger(length);
                        var strLength = length ? stringSize(string5) : 0;
                        if (!length || strLength >= length) {
                            return string5;
                        }
                        var mid = (length - strLength) / 2;
                        return createPadding(nativeFloor(mid), chars) + string5 + createPadding(nativeCeil(mid), chars);
                    }
                    function padEnd(string5, length, chars) {
                        string5 = toString3(string5);
                        length = toInteger(length);
                        var strLength = length ? stringSize(string5) : 0;
                        return length && strLength < length ? string5 + createPadding(length - strLength, chars) : string5;
                    }
                    function padStart(string5, length, chars) {
                        string5 = toString3(string5);
                        length = toInteger(length);
                        var strLength = length ? stringSize(string5) : 0;
                        return length && strLength < length ? createPadding(length - strLength, chars) + string5 : string5;
                    }
                    function parseInt2(string5, radix, guard) {
                        if (guard || radix == null) {
                            radix = 0;
                        } else if (radix) {
                            radix = +radix;
                        }
                        return nativeParseInt(toString3(string5).replace(reTrimStart, ""), radix || 0);
                    }
                    function repeat(string5, n, guard) {
                        if (guard ? isIterateeCall(string5, n, guard) : n === undefined2) {
                            n = 1;
                        } else {
                            n = toInteger(n);
                        }
                        return baseRepeat(toString3(string5), n);
                    }
                    function replace() {
                        var args = arguments, string5 = toString3(args[0]);
                        return args.length < 3 ? string5 : string5.replace(args[1], args[2]);
                    }
                    var snakeCase = createCompounder(function(result18, word, index) {
                        return result18 + (index ? "_" : "") + word.toLowerCase();
                    });
                    function split(string5, separator, limit) {
                        if (limit && typeof limit != "number" && isIterateeCall(string5, separator, limit)) {
                            separator = limit = undefined2;
                        }
                        limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0;
                        if (!limit) {
                            return [];
                        }
                        string5 = toString3(string5);
                        if (string5 && (typeof separator == "string" || separator != null && !isRegExp(separator))) {
                            separator = baseToString(separator);
                            if (!separator && hasUnicode(string5)) {
                                return castSlice(stringToArray(string5), 0, limit);
                            }
                        }
                        return string5.split(separator, limit);
                    }
                    var startCase = createCompounder(function(result18, word, index) {
                        return result18 + (index ? " " : "") + upperFirst(word);
                    });
                    function startsWith(string5, target, position) {
                        string5 = toString3(string5);
                        position = position == null ? 0 : baseClamp(toInteger(position), 0, string5.length);
                        target = baseToString(target);
                        return string5.slice(position, position + target.length) == target;
                    }
                    function template(string5, options, guard) {
                        var settings = lodash.templateSettings;
                        if (guard && isIterateeCall(string5, options, guard)) {
                            options = undefined2;
                        }
                        string5 = toString3(string5);
                        options = assignInWith({}, options, settings, customDefaultsAssignIn);
                        var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
                        var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '";
                        var reDelimiters = RegExp2((options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", "g");
                        var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n";
                        string5.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
                            interpolateValue || (interpolateValue = esTemplateValue);
                            source += string5.slice(index, offset).replace(reUnescapedString, escapeStringChar);
                            if (escapeValue) {
                                isEscaping = true;
                                source += "' +\n__e(" + escapeValue + ") +\n'";
                            }
                            if (evaluateValue) {
                                isEvaluating = true;
                                source += "';\n" + evaluateValue + ";\n__p += '";
                            }
                            if (interpolateValue) {
                                source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
                            }
                            index = offset + match.length;
                            return match;
                        });
                        source += "';\n";
                        var variable = hasOwnProperty.call(options, "variable") && options.variable;
                        if (!variable) {
                            source = "with (obj) {\n" + source + "\n}\n";
                        } else if (reForbiddenIdentifierChars.test(variable)) {
                            throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);
                        }
                        source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;");
                        source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}";
                        var result18 = attempt(function() {
                            return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues);
                        });
                        result18.source = source;
                        if (isError(result18)) {
                            throw result18;
                        }
                        return result18;
                    }
                    function toLower(value) {
                        return toString3(value).toLowerCase();
                    }
                    function toUpper(value) {
                        return toString3(value).toUpperCase();
                    }
                    function trim(string5, chars, guard) {
                        string5 = toString3(string5);
                        if (string5 && (guard || chars === undefined2)) {
                            return baseTrim(string5);
                        }
                        if (!string5 || !(chars = baseToString(chars))) {
                            return string5;
                        }
                        var strSymbols = stringToArray(string5), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1;
                        return castSlice(strSymbols, start, end).join("");
                    }
                    function trimEnd(string5, chars, guard) {
                        string5 = toString3(string5);
                        if (string5 && (guard || chars === undefined2)) {
                            return string5.slice(0, trimmedEndIndex(string5) + 1);
                        }
                        if (!string5 || !(chars = baseToString(chars))) {
                            return string5;
                        }
                        var strSymbols = stringToArray(string5), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;
                        return castSlice(strSymbols, 0, end).join("");
                    }
                    function trimStart(string5, chars, guard) {
                        string5 = toString3(string5);
                        if (string5 && (guard || chars === undefined2)) {
                            return string5.replace(reTrimStart, "");
                        }
                        if (!string5 || !(chars = baseToString(chars))) {
                            return string5;
                        }
                        var strSymbols = stringToArray(string5), start = charsStartIndex(strSymbols, stringToArray(chars));
                        return castSlice(strSymbols, start).join("");
                    }
                    function truncate(string5, options) {
                        var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;
                        if (isObject2(options)) {
                            var separator = "separator" in options ? options.separator : separator;
                            length = "length" in options ? toInteger(options.length) : length;
                            omission = "omission" in options ? baseToString(options.omission) : omission;
                        }
                        string5 = toString3(string5);
                        var strLength = string5.length;
                        if (hasUnicode(string5)) {
                            var strSymbols = stringToArray(string5);
                            strLength = strSymbols.length;
                        }
                        if (length >= strLength) {
                            return string5;
                        }
                        var end = length - stringSize(omission);
                        if (end < 1) {
                            return omission;
                        }
                        var result18 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string5.slice(0, end);
                        if (separator === undefined2) {
                            return result18 + omission;
                        }
                        if (strSymbols) {
                            end += result18.length - end;
                        }
                        if (isRegExp(separator)) {
                            if (string5.slice(end).search(separator)) {
                                var match, substring = result18;
                                if (!separator.global) {
                                    separator = RegExp2(separator.source, toString3(reFlags.exec(separator)) + "g");
                                }
                                separator.lastIndex = 0;
                                while(match = separator.exec(substring)){
                                    var newEnd = match.index;
                                }
                                result18 = result18.slice(0, newEnd === undefined2 ? end : newEnd);
                            }
                        } else if (string5.indexOf(baseToString(separator), end) != end) {
                            var index = result18.lastIndexOf(separator);
                            if (index > -1) {
                                result18 = result18.slice(0, index);
                            }
                        }
                        return result18 + omission;
                    }
                    function unescape2(string5) {
                        string5 = toString3(string5);
                        return string5 && reHasEscapedHtml.test(string5) ? string5.replace(reEscapedHtml, unescapeHtmlChar) : string5;
                    }
                    var upperCase = createCompounder(function(result18, word, index) {
                        return result18 + (index ? " " : "") + word.toUpperCase();
                    });
                    var upperFirst = createCaseFirst("toUpperCase");
                    function words(string5, pattern2, guard) {
                        string5 = toString3(string5);
                        pattern2 = guard ? undefined2 : pattern2;
                        if (pattern2 === undefined2) {
                            return hasUnicodeWord(string5) ? unicodeWords(string5) : asciiWords(string5);
                        }
                        return string5.match(pattern2) || [];
                    }
                    var attempt = baseRest(function(func3, args) {
                        try {
                            return apply2(func3, undefined2, args);
                        } catch (e) {
                            return isError(e) ? e : new Error2(e);
                        }
                    });
                    var bindAll = flatRest(function(object, methodNames) {
                        arrayEach(methodNames, function(key) {
                            key = toKey(key);
                            baseAssignValue(object, key, bind(object[key], object));
                        });
                        return object;
                    });
                    function cond(pairs) {
                        var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();
                        pairs = !length ? [] : arrayMap(pairs, function(pair) {
                            if (typeof pair[1] != "function") {
                                throw new TypeError2(FUNC_ERROR_TEXT);
                            }
                            return [
                                toIteratee(pair[0]),
                                pair[1]
                            ];
                        });
                        return baseRest(function(args) {
                            var index = -1;
                            while(++index < length){
                                var pair = pairs[index];
                                if (apply2(pair[0], this, args)) {
                                    return apply2(pair[1], this, args);
                                }
                            }
                        });
                    }
                    function conforms(source) {
                        return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
                    }
                    function constant(value) {
                        return function() {
                            return value;
                        };
                    }
                    function defaultTo(value, defaultValue) {
                        return value == null || value !== value ? defaultValue : value;
                    }
                    var flow = createFlow();
                    var flowRight = createFlow(true);
                    function identity3(value) {
                        return value;
                    }
                    function iteratee(func3) {
                        return baseIteratee(typeof func3 == "function" ? func3 : baseClone(func3, CLONE_DEEP_FLAG));
                    }
                    function matches(source) {
                        return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
                    }
                    function matchesProperty(path2, srcValue) {
                        return baseMatchesProperty(path2, baseClone(srcValue, CLONE_DEEP_FLAG));
                    }
                    var method = baseRest(function(path2, args) {
                        return function(object) {
                            return baseInvoke(object, path2, args);
                        };
                    });
                    var methodOf = baseRest(function(object, args) {
                        return function(path2) {
                            return baseInvoke(object, path2, args);
                        };
                    });
                    function mixin(object, source, options) {
                        var props = keys(source), methodNames = baseFunctions(source, props);
                        if (options == null && !(isObject2(source) && (methodNames.length || !props.length))) {
                            options = source;
                            source = object;
                            object = this;
                            methodNames = baseFunctions(source, keys(source));
                        }
                        var chain2 = !(isObject2(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object);
                        arrayEach(methodNames, function(methodName) {
                            var func3 = source[methodName];
                            object[methodName] = func3;
                            if (isFunc) {
                                object.prototype[methodName] = function() {
                                    var chainAll = this.__chain__;
                                    if (chain2 || chainAll) {
                                        var result18 = object(this.__wrapped__), actions = result18.__actions__ = copyArray(this.__actions__);
                                        actions.push({
                                            func: func3,
                                            args: arguments,
                                            thisArg: object
                                        });
                                        result18.__chain__ = chainAll;
                                        return result18;
                                    }
                                    return func3.apply(object, arrayPush([
                                        this.value()
                                    ], arguments));
                                };
                            }
                        });
                        return object;
                    }
                    function noConflict() {
                        if (root._ === this) {
                            root._ = oldDash;
                        }
                        return this;
                    }
                    function noop3() {}
                    function nthArg(n) {
                        n = toInteger(n);
                        return baseRest(function(args) {
                            return baseNth(args, n);
                        });
                    }
                    var over = createOver(arrayMap);
                    var overEvery = createOver(arrayEvery);
                    var overSome = createOver(arraySome);
                    function property(path2) {
                        return isKey(path2) ? baseProperty(toKey(path2)) : basePropertyDeep(path2);
                    }
                    function propertyOf(object) {
                        return function(path2) {
                            return object == null ? undefined2 : baseGet(object, path2);
                        };
                    }
                    var range = createRange();
                    var rangeRight = createRange(true);
                    function stubArray() {
                        return [];
                    }
                    function stubFalse() {
                        return false;
                    }
                    function stubObject() {
                        return {};
                    }
                    function stubString() {
                        return "";
                    }
                    function stubTrue() {
                        return true;
                    }
                    function times(n, iteratee2) {
                        n = toInteger(n);
                        if (n < 1 || n > MAX_SAFE_INTEGER) {
                            return [];
                        }
                        var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH);
                        iteratee2 = getIteratee(iteratee2);
                        n -= MAX_ARRAY_LENGTH;
                        var result18 = baseTimes(length, iteratee2);
                        while(++index < n){
                            iteratee2(index);
                        }
                        return result18;
                    }
                    function toPath(value) {
                        if (isArray(value)) {
                            return arrayMap(value, toKey);
                        }
                        return isSymbol(value) ? [
                            value
                        ] : copyArray(stringToPath(toString3(value)));
                    }
                    function uniqueId(prefix) {
                        var id = ++idCounter;
                        return toString3(prefix) + id;
                    }
                    var add = createMathOperation(function(augend, addend) {
                        return augend + addend;
                    }, 0);
                    var ceil = createRound("ceil");
                    var divide = createMathOperation(function(dividend, divisor) {
                        return dividend / divisor;
                    }, 1);
                    var floor = createRound("floor");
                    function max(array4) {
                        return array4 && array4.length ? baseExtremum(array4, identity3, baseGt) : undefined2;
                    }
                    function maxBy(array4, iteratee2) {
                        return array4 && array4.length ? baseExtremum(array4, getIteratee(iteratee2, 2), baseGt) : undefined2;
                    }
                    function mean(array4) {
                        return baseMean(array4, identity3);
                    }
                    function meanBy(array4, iteratee2) {
                        return baseMean(array4, getIteratee(iteratee2, 2));
                    }
                    function min(array4) {
                        return array4 && array4.length ? baseExtremum(array4, identity3, baseLt) : undefined2;
                    }
                    function minBy(array4, iteratee2) {
                        return array4 && array4.length ? baseExtremum(array4, getIteratee(iteratee2, 2), baseLt) : undefined2;
                    }
                    var multiply = createMathOperation(function(multiplier, multiplicand) {
                        return multiplier * multiplicand;
                    }, 1);
                    var round = createRound("round");
                    var subtract = createMathOperation(function(minuend, subtrahend) {
                        return minuend - subtrahend;
                    }, 0);
                    function sum(array4) {
                        return array4 && array4.length ? baseSum(array4, identity3) : 0;
                    }
                    function sumBy(array4, iteratee2) {
                        return array4 && array4.length ? baseSum(array4, getIteratee(iteratee2, 2)) : 0;
                    }
                    lodash.after = after;
                    lodash.ary = ary;
                    lodash.assign = assign;
                    lodash.assignIn = assignIn;
                    lodash.assignInWith = assignInWith;
                    lodash.assignWith = assignWith;
                    lodash.at = at;
                    lodash.before = before;
                    lodash.bind = bind;
                    lodash.bindAll = bindAll;
                    lodash.bindKey = bindKey;
                    lodash.castArray = castArray;
                    lodash.chain = chain;
                    lodash.chunk = chunk;
                    lodash.compact = compact;
                    lodash.concat = concat2;
                    lodash.cond = cond;
                    lodash.conforms = conforms;
                    lodash.constant = constant;
                    lodash.countBy = countBy;
                    lodash.create = create;
                    lodash.curry = curry;
                    lodash.curryRight = curryRight;
                    lodash.debounce = debounce3;
                    lodash.defaults = defaults;
                    lodash.defaultsDeep = defaultsDeep;
                    lodash.defer = defer;
                    lodash.delay = delay2;
                    lodash.difference = difference;
                    lodash.differenceBy = differenceBy;
                    lodash.differenceWith = differenceWith;
                    lodash.drop = drop;
                    lodash.dropRight = dropRight;
                    lodash.dropRightWhile = dropRightWhile;
                    lodash.dropWhile = dropWhile;
                    lodash.fill = fill;
                    lodash.filter = filter;
                    lodash.flatMap = flatMap3;
                    lodash.flatMapDeep = flatMapDeep;
                    lodash.flatMapDepth = flatMapDepth;
                    lodash.flatten = flatten;
                    lodash.flattenDeep = flattenDeep;
                    lodash.flattenDepth = flattenDepth;
                    lodash.flip = flip;
                    lodash.flow = flow;
                    lodash.flowRight = flowRight;
                    lodash.fromPairs = fromPairs;
                    lodash.functions = functions;
                    lodash.functionsIn = functionsIn;
                    lodash.groupBy = groupBy;
                    lodash.initial = initial;
                    lodash.intersection = intersection;
                    lodash.intersectionBy = intersectionBy;
                    lodash.intersectionWith = intersectionWith;
                    lodash.invert = invert;
                    lodash.invertBy = invertBy;
                    lodash.invokeMap = invokeMap;
                    lodash.iteratee = iteratee;
                    lodash.keyBy = keyBy;
                    lodash.keys = keys;
                    lodash.keysIn = keysIn;
                    lodash.map = map;
                    lodash.mapKeys = mapKeys;
                    lodash.mapValues = mapValues;
                    lodash.matches = matches;
                    lodash.matchesProperty = matchesProperty;
                    lodash.memoize = memoize;
                    lodash.merge = merge;
                    lodash.mergeWith = mergeWith;
                    lodash.method = method;
                    lodash.methodOf = methodOf;
                    lodash.mixin = mixin;
                    lodash.negate = negate;
                    lodash.nthArg = nthArg;
                    lodash.omit = omit;
                    lodash.omitBy = omitBy2;
                    lodash.once = once2;
                    lodash.orderBy = orderBy;
                    lodash.over = over;
                    lodash.overArgs = overArgs;
                    lodash.overEvery = overEvery;
                    lodash.overSome = overSome;
                    lodash.partial = partial;
                    lodash.partialRight = partialRight;
                    lodash.partition = partition;
                    lodash.pick = pick;
                    lodash.pickBy = pickBy;
                    lodash.property = property;
                    lodash.propertyOf = propertyOf;
                    lodash.pull = pull;
                    lodash.pullAll = pullAll;
                    lodash.pullAllBy = pullAllBy;
                    lodash.pullAllWith = pullAllWith;
                    lodash.pullAt = pullAt;
                    lodash.range = range;
                    lodash.rangeRight = rangeRight;
                    lodash.rearg = rearg;
                    lodash.reject = reject;
                    lodash.remove = remove2;
                    lodash.rest = rest;
                    lodash.reverse = reverse;
                    lodash.sampleSize = sampleSize;
                    lodash.set = set;
                    lodash.setWith = setWith;
                    lodash.shuffle = shuffle;
                    lodash.slice = slice;
                    lodash.sortBy = sortBy;
                    lodash.sortedUniq = sortedUniq;
                    lodash.sortedUniqBy = sortedUniqBy;
                    lodash.split = split;
                    lodash.spread = spread;
                    lodash.tail = tail;
                    lodash.take = take2;
                    lodash.takeRight = takeRight;
                    lodash.takeRightWhile = takeRightWhile;
                    lodash.takeWhile = takeWhile;
                    lodash.tap = tap;
                    lodash.throttle = throttle2;
                    lodash.thru = thru;
                    lodash.toArray = toArray;
                    lodash.toPairs = toPairs;
                    lodash.toPairsIn = toPairsIn;
                    lodash.toPath = toPath;
                    lodash.toPlainObject = toPlainObject;
                    lodash.transform = transform;
                    lodash.unary = unary;
                    lodash.union = union;
                    lodash.unionBy = unionBy;
                    lodash.unionWith = unionWith;
                    lodash.uniq = uniq;
                    lodash.uniqBy = uniqBy;
                    lodash.uniqWith = uniqWith;
                    lodash.unset = unset;
                    lodash.unzip = unzip;
                    lodash.unzipWith = unzipWith;
                    lodash.update = update;
                    lodash.updateWith = updateWith;
                    lodash.values = values;
                    lodash.valuesIn = valuesIn;
                    lodash.without = without;
                    lodash.words = words;
                    lodash.wrap = wrap3;
                    lodash.xor = xor;
                    lodash.xorBy = xorBy;
                    lodash.xorWith = xorWith;
                    lodash.zip = zip;
                    lodash.zipObject = zipObject;
                    lodash.zipObjectDeep = zipObjectDeep;
                    lodash.zipWith = zipWith;
                    lodash.entries = toPairs;
                    lodash.entriesIn = toPairsIn;
                    lodash.extend = assignIn;
                    lodash.extendWith = assignInWith;
                    mixin(lodash, lodash);
                    lodash.add = add;
                    lodash.attempt = attempt;
                    lodash.camelCase = camelCase;
                    lodash.capitalize = capitalize;
                    lodash.ceil = ceil;
                    lodash.clamp = clamp;
                    lodash.clone = clone2;
                    lodash.cloneDeep = cloneDeep;
                    lodash.cloneDeepWith = cloneDeepWith;
                    lodash.cloneWith = cloneWith;
                    lodash.conformsTo = conformsTo;
                    lodash.deburr = deburr;
                    lodash.defaultTo = defaultTo;
                    lodash.divide = divide;
                    lodash.endsWith = endsWith;
                    lodash.eq = eq;
                    lodash.escape = escape2;
                    lodash.escapeRegExp = escapeRegExp;
                    lodash.every = every;
                    lodash.find = find;
                    lodash.findIndex = findIndex;
                    lodash.findKey = findKey;
                    lodash.findLast = findLast;
                    lodash.findLastIndex = findLastIndex;
                    lodash.findLastKey = findLastKey;
                    lodash.floor = floor;
                    lodash.forEach = forEach;
                    lodash.forEachRight = forEachRight;
                    lodash.forIn = forIn;
                    lodash.forInRight = forInRight;
                    lodash.forOwn = forOwn;
                    lodash.forOwnRight = forOwnRight;
                    lodash.get = get;
                    lodash.gt = gt;
                    lodash.gte = gte;
                    lodash.has = has;
                    lodash.hasIn = hasIn;
                    lodash.head = head;
                    lodash.identity = identity3;
                    lodash.includes = includes;
                    lodash.indexOf = indexOf;
                    lodash.inRange = inRange;
                    lodash.invoke = invoke;
                    lodash.isArguments = isArguments;
                    lodash.isArray = isArray;
                    lodash.isArrayBuffer = isArrayBuffer;
                    lodash.isArrayLike = isArrayLike;
                    lodash.isArrayLikeObject = isArrayLikeObject;
                    lodash.isBoolean = isBoolean;
                    lodash.isBuffer = isBuffer;
                    lodash.isDate = isDate;
                    lodash.isElement = isElement;
                    lodash.isEmpty = isEmpty;
                    lodash.isEqual = isEqual;
                    lodash.isEqualWith = isEqualWith;
                    lodash.isError = isError;
                    lodash.isFinite = isFinite2;
                    lodash.isFunction = isFunction;
                    lodash.isInteger = isInteger;
                    lodash.isLength = isLength;
                    lodash.isMap = isMap;
                    lodash.isMatch = isMatch;
                    lodash.isMatchWith = isMatchWith;
                    lodash.isNaN = isNaN2;
                    lodash.isNative = isNative;
                    lodash.isNil = isNil;
                    lodash.isNull = isNull;
                    lodash.isNumber = isNumber;
                    lodash.isObject = isObject2;
                    lodash.isObjectLike = isObjectLike2;
                    lodash.isPlainObject = isPlainObject;
                    lodash.isRegExp = isRegExp;
                    lodash.isSafeInteger = isSafeInteger;
                    lodash.isSet = isSet;
                    lodash.isString = isString;
                    lodash.isSymbol = isSymbol;
                    lodash.isTypedArray = isTypedArray;
                    lodash.isUndefined = isUndefined2;
                    lodash.isWeakMap = isWeakMap;
                    lodash.isWeakSet = isWeakSet;
                    lodash.join = join2;
                    lodash.kebabCase = kebabCase;
                    lodash.last = last;
                    lodash.lastIndexOf = lastIndexOf;
                    lodash.lowerCase = lowerCase;
                    lodash.lowerFirst = lowerFirst;
                    lodash.lt = lt;
                    lodash.lte = lte;
                    lodash.max = max;
                    lodash.maxBy = maxBy;
                    lodash.mean = mean;
                    lodash.meanBy = meanBy;
                    lodash.min = min;
                    lodash.minBy = minBy;
                    lodash.stubArray = stubArray;
                    lodash.stubFalse = stubFalse;
                    lodash.stubObject = stubObject;
                    lodash.stubString = stubString;
                    lodash.stubTrue = stubTrue;
                    lodash.multiply = multiply;
                    lodash.nth = nth;
                    lodash.noConflict = noConflict;
                    lodash.noop = noop3;
                    lodash.now = now2;
                    lodash.pad = pad;
                    lodash.padEnd = padEnd;
                    lodash.padStart = padStart;
                    lodash.parseInt = parseInt2;
                    lodash.random = random;
                    lodash.reduce = reduce;
                    lodash.reduceRight = reduceRight;
                    lodash.repeat = repeat;
                    lodash.replace = replace;
                    lodash.result = result17;
                    lodash.round = round;
                    lodash.runInContext = runInContext2;
                    lodash.sample = sample;
                    lodash.size = size;
                    lodash.snakeCase = snakeCase;
                    lodash.some = some;
                    lodash.sortedIndex = sortedIndex;
                    lodash.sortedIndexBy = sortedIndexBy;
                    lodash.sortedIndexOf = sortedIndexOf;
                    lodash.sortedLastIndex = sortedLastIndex;
                    lodash.sortedLastIndexBy = sortedLastIndexBy;
                    lodash.sortedLastIndexOf = sortedLastIndexOf;
                    lodash.startCase = startCase;
                    lodash.startsWith = startsWith;
                    lodash.subtract = subtract;
                    lodash.sum = sum;
                    lodash.sumBy = sumBy;
                    lodash.template = template;
                    lodash.times = times;
                    lodash.toFinite = toFinite;
                    lodash.toInteger = toInteger;
                    lodash.toLength = toLength;
                    lodash.toLower = toLower;
                    lodash.toNumber = toNumber;
                    lodash.toSafeInteger = toSafeInteger;
                    lodash.toString = toString3;
                    lodash.toUpper = toUpper;
                    lodash.trim = trim;
                    lodash.trimEnd = trimEnd;
                    lodash.trimStart = trimStart;
                    lodash.truncate = truncate;
                    lodash.unescape = unescape2;
                    lodash.uniqueId = uniqueId;
                    lodash.upperCase = upperCase;
                    lodash.upperFirst = upperFirst;
                    lodash.each = forEach;
                    lodash.eachRight = forEachRight;
                    lodash.first = head;
                    mixin(lodash, function() {
                        var source = {};
                        baseForOwn(lodash, function(func3, methodName) {
                            if (!hasOwnProperty.call(lodash.prototype, methodName)) {
                                source[methodName] = func3;
                            }
                        });
                        return source;
                    }(), {
                        chain: false
                    });
                    lodash.VERSION = VERSION;
                    arrayEach([
                        "bind",
                        "bindKey",
                        "curry",
                        "curryRight",
                        "partial",
                        "partialRight"
                    ], function(methodName) {
                        lodash[methodName].placeholder = lodash;
                    });
                    arrayEach([
                        "drop",
                        "take"
                    ], function(methodName, index) {
                        LazyWrapper.prototype[methodName] = function(n) {
                            n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);
                            var result18 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();
                            if (result18.__filtered__) {
                                result18.__takeCount__ = nativeMin(n, result18.__takeCount__);
                            } else {
                                result18.__views__.push({
                                    size: nativeMin(n, MAX_ARRAY_LENGTH),
                                    type: methodName + (result18.__dir__ < 0 ? "Right" : "")
                                });
                            }
                            return result18;
                        };
                        LazyWrapper.prototype[methodName + "Right"] = function(n) {
                            return this.reverse()[methodName](n).reverse();
                        };
                    });
                    arrayEach([
                        "filter",
                        "map",
                        "takeWhile"
                    ], function(methodName, index) {
                        var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
                        LazyWrapper.prototype[methodName] = function(iteratee2) {
                            var result18 = this.clone();
                            result18.__iteratees__.push({
                                iteratee: getIteratee(iteratee2, 3),
                                type: type
                            });
                            result18.__filtered__ = result18.__filtered__ || isFilter;
                            return result18;
                        };
                    });
                    arrayEach([
                        "head",
                        "last"
                    ], function(methodName, index) {
                        var takeName = "take" + (index ? "Right" : "");
                        LazyWrapper.prototype[methodName] = function() {
                            return this[takeName](1).value()[0];
                        };
                    });
                    arrayEach([
                        "initial",
                        "tail"
                    ], function(methodName, index) {
                        var dropName = "drop" + (index ? "" : "Right");
                        LazyWrapper.prototype[methodName] = function() {
                            return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
                        };
                    });
                    LazyWrapper.prototype.compact = function() {
                        return this.filter(identity3);
                    };
                    LazyWrapper.prototype.find = function(predicate3) {
                        return this.filter(predicate3).head();
                    };
                    LazyWrapper.prototype.findLast = function(predicate3) {
                        return this.reverse().find(predicate3);
                    };
                    LazyWrapper.prototype.invokeMap = baseRest(function(path2, args) {
                        if (typeof path2 == "function") {
                            return new LazyWrapper(this);
                        }
                        return this.map(function(value) {
                            return baseInvoke(value, path2, args);
                        });
                    });
                    LazyWrapper.prototype.reject = function(predicate3) {
                        return this.filter(negate(getIteratee(predicate3)));
                    };
                    LazyWrapper.prototype.slice = function(start, end) {
                        start = toInteger(start);
                        var result18 = this;
                        if (result18.__filtered__ && (start > 0 || end < 0)) {
                            return new LazyWrapper(result18);
                        }
                        if (start < 0) {
                            result18 = result18.takeRight(-start);
                        } else if (start) {
                            result18 = result18.drop(start);
                        }
                        if (end !== undefined2) {
                            end = toInteger(end);
                            result18 = end < 0 ? result18.dropRight(-end) : result18.take(end - start);
                        }
                        return result18;
                    };
                    LazyWrapper.prototype.takeRightWhile = function(predicate3) {
                        return this.reverse().takeWhile(predicate3).reverse();
                    };
                    LazyWrapper.prototype.toArray = function() {
                        return this.take(MAX_ARRAY_LENGTH);
                    };
                    baseForOwn(LazyWrapper.prototype, function(func3, methodName) {
                        var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);
                        if (!lodashFunc) {
                            return;
                        }
                        lodash.prototype[methodName] = function() {
                            var value = this.__wrapped__, args = isTaker ? [
                                1
                            ] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);
                            var interceptor = function interceptor(value2) {
                                var result19 = lodashFunc.apply(lodash, arrayPush([
                                    value2
                                ], args));
                                return isTaker && chainAll ? result19[0] : result19;
                            };
                            if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) {
                                isLazy = useLazy = false;
                            }
                            var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;
                            if (!retUnwrapped && useLazy) {
                                value = onlyLazy ? value : new LazyWrapper(this);
                                var result18 = func3.apply(value, args);
                                result18.__actions__.push({
                                    func: thru,
                                    args: [
                                        interceptor
                                    ],
                                    thisArg: undefined2
                                });
                                return new LodashWrapper(result18, chainAll);
                            }
                            if (isUnwrapped && onlyLazy) {
                                return func3.apply(this, args);
                            }
                            result18 = this.thru(interceptor);
                            return isUnwrapped ? isTaker ? result18.value()[0] : result18.value() : result18;
                        };
                    });
                    arrayEach([
                        "pop",
                        "push",
                        "shift",
                        "sort",
                        "splice",
                        "unshift"
                    ], function(methodName) {
                        var func3 = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName);
                        lodash.prototype[methodName] = function() {
                            var args = arguments;
                            if (retUnwrapped && !this.__chain__) {
                                var value = this.value();
                                return func3.apply(isArray(value) ? value : [], args);
                            }
                            return this[chainName](function(value2) {
                                return func3.apply(isArray(value2) ? value2 : [], args);
                            });
                        };
                    });
                    baseForOwn(LazyWrapper.prototype, function(func3, methodName) {
                        var lodashFunc = lodash[methodName];
                        if (lodashFunc) {
                            var key = lodashFunc.name + "";
                            if (!hasOwnProperty.call(realNames, key)) {
                                realNames[key] = [];
                            }
                            realNames[key].push({
                                name: methodName,
                                func: lodashFunc
                            });
                        }
                    });
                    realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [
                        {
                            name: "wrapper",
                            func: undefined2
                        }
                    ];
                    LazyWrapper.prototype.clone = lazyClone;
                    LazyWrapper.prototype.reverse = lazyReverse;
                    LazyWrapper.prototype.value = lazyValue;
                    lodash.prototype.at = wrapperAt;
                    lodash.prototype.chain = wrapperChain;
                    lodash.prototype.commit = wrapperCommit;
                    lodash.prototype.next = wrapperNext;
                    lodash.prototype.plant = wrapperPlant;
                    lodash.prototype.reverse = wrapperReverse;
                    lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
                    lodash.prototype.first = lodash.prototype.head;
                    if (symIterator) {
                        lodash.prototype[symIterator] = wrapperToIterator;
                    }
                    return lodash;
                };
                var _2 = runInContext();
                if (typeof define == "function" && _type_of(define.amd) == "object" && define.amd) {
                    root._ = _2;
                    define(function() {
                        return _2;
                    });
                } else if (freeModule) {
                    (freeModule.exports = _2)._ = _2;
                    freeExports._ = _2;
                } else {
                    root._ = _2;
                }
            }).call(exports);
        }
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/front.sass
    var require_front = __commonJS({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/front.sass": function(exports, module) {
            module.exports = {};
        }
    });
    // node_modules/object-assign/index.js
    var require_object_assign = __commonJS({
        "node_modules/object-assign/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getOwnPropertySymbols = Object.getOwnPropertySymbols;
            var hasOwnProperty = Object.prototype.hasOwnProperty;
            var propIsEnumerable = Object.prototype.propertyIsEnumerable;
            function toObject(val) {
                if (val === null || val === void 0) {
                    throw new TypeError("Object.assign cannot be called with null or undefined");
                }
                return Object(val);
            }
            function shouldUseNative() {
                try {
                    if (!Object.assign) {
                        return false;
                    }
                    var test1 = new String("abc");
                    test1[5] = "de";
                    if (Object.getOwnPropertyNames(test1)[0] === "5") {
                        return false;
                    }
                    var test2 = {};
                    for(var i = 0; i < 10; i++){
                        test2["_" + String.fromCharCode(i)] = i;
                    }
                    var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
                        return test2[n];
                    });
                    if (order2.join("") !== "0123456789") {
                        return false;
                    }
                    var test3 = {};
                    "abcdefghijklmnopqrst".split("").forEach(function(letter) {
                        test3[letter] = letter;
                    });
                    if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
                        return false;
                    }
                    return true;
                } catch (err) {
                    return false;
                }
            }
            module.exports = shouldUseNative() ? Object.assign : function(target, source) {
                var from;
                var to = toObject(target);
                var symbols;
                for(var s = 1; s < arguments.length; s++){
                    from = Object(arguments[s]);
                    for(var key in from){
                        if (hasOwnProperty.call(from, key)) {
                            to[key] = from[key];
                        }
                    }
                    if (getOwnPropertySymbols) {
                        symbols = getOwnPropertySymbols(from);
                        for(var i = 0; i < symbols.length; i++){
                            if (propIsEnumerable.call(from, symbols[i])) {
                                to[symbols[i]] = from[symbols[i]];
                            }
                        }
                    }
                }
                return to;
            };
        }
    });
    // node_modules/react/cjs/react.production.min.js
    var require_react_production_min = __commonJS({
        "node_modules/react/cjs/react.production.min.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var k = require_object_assign();
            var n = "function" === typeof Symbol && Symbol["for"];
            var p = n ? Symbol["for"]("react.element") : 60103;
            var q = n ? Symbol["for"]("react.portal") : 60106;
            var r = n ? Symbol["for"]("react.fragment") : 60107;
            var t = n ? Symbol["for"]("react.strict_mode") : 60108;
            var u = n ? Symbol["for"]("react.profiler") : 60114;
            var v = n ? Symbol["for"]("react.provider") : 60109;
            var w = n ? Symbol["for"]("react.context") : 60110;
            var x = n ? Symbol["for"]("react.concurrent_mode") : 60111;
            var y = n ? Symbol["for"]("react.forward_ref") : 60112;
            var z = n ? Symbol["for"]("react.suspense") : 60113;
            var aa = n ? Symbol["for"]("react.memo") : 60115;
            var ba = n ? Symbol["for"]("react.lazy") : 60116;
            var A = "function" === typeof Symbol && Symbol.iterator;
            function ca(a, b, d, c, e, g, h, f) {
                if (!a) {
                    a = void 0;
                    if (void 0 === b) a = Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
                    else {
                        var l = [
                            d,
                            c,
                            e,
                            g,
                            h,
                            f
                        ], m = 0;
                        a = Error(b.replace(/%s/g, function() {
                            return l[m++];
                        }));
                        a.name = "Invariant Violation";
                    }
                    a.framesToPop = 1;
                    throw a;
                }
            }
            function B(a) {
                for(var b = arguments.length - 1, d = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 0; c < b; c++)d += "&args[]=" + encodeURIComponent(arguments[c + 1]);
                ca(false, "Minified React error #" + a + "; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ", d);
            }
            var C = {
                isMounted: function isMounted() {
                    return false;
                },
                enqueueForceUpdate: function enqueueForceUpdate() {},
                enqueueReplaceState: function enqueueReplaceState() {},
                enqueueSetState: function enqueueSetState() {}
            };
            var D = {};
            function E(a, b, d) {
                this.props = a;
                this.context = b;
                this.refs = D;
                this.updater = d || C;
            }
            E.prototype.isReactComponent = {};
            E.prototype.setState = function(a, b) {
                "object" !== (typeof a === "undefined" ? "undefined" : _type_of(a)) && "function" !== typeof a && null != a ? B("85") : void 0;
                this.updater.enqueueSetState(this, a, b, "setState");
            };
            E.prototype.forceUpdate = function(a) {
                this.updater.enqueueForceUpdate(this, a, "forceUpdate");
            };
            function F() {}
            F.prototype = E.prototype;
            function G(a, b, d) {
                this.props = a;
                this.context = b;
                this.refs = D;
                this.updater = d || C;
            }
            var H = G.prototype = new F();
            H.constructor = G;
            k(H, E.prototype);
            H.isPureReactComponent = true;
            var I = {
                current: null
            };
            var J = {
                current: null
            };
            var K = Object.prototype.hasOwnProperty;
            var L = {
                key: true,
                ref: true,
                __self: true,
                __source: true
            };
            function M(a, b, d) {
                var c = void 0, e = {}, g = null, h = null;
                if (null != b) for(c in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (g = "" + b.key), b)K.call(b, c) && !L.hasOwnProperty(c) && (e[c] = b[c]);
                var f = arguments.length - 2;
                if (1 === f) e.children = d;
                else if (1 < f) {
                    for(var l = Array(f), m = 0; m < f; m++)l[m] = arguments[m + 2];
                    e.children = l;
                }
                if (a && a.defaultProps) for(c in f = a.defaultProps, f)void 0 === e[c] && (e[c] = f[c]);
                return {
                    $$typeof: p,
                    type: a,
                    key: g,
                    ref: h,
                    props: e,
                    _owner: J.current
                };
            }
            function da(a, b) {
                return {
                    $$typeof: p,
                    type: a.type,
                    key: b,
                    ref: a.ref,
                    props: a.props,
                    _owner: a._owner
                };
            }
            function N(a) {
                return "object" === (typeof a === "undefined" ? "undefined" : _type_of(a)) && null !== a && a.$$typeof === p;
            }
            function escape2(a) {
                var b = {
                    "=": "=0",
                    ":": "=2"
                };
                return "$" + ("" + a).replace(/[=:]/g, function(a2) {
                    return b[a2];
                });
            }
            var O = /\/+/g;
            var P = [];
            function Q(a, b, d, c) {
                if (P.length) {
                    var e = P.pop();
                    e.result = a;
                    e.keyPrefix = b;
                    e.func = d;
                    e.context = c;
                    e.count = 0;
                    return e;
                }
                return {
                    result: a,
                    keyPrefix: b,
                    func: d,
                    context: c,
                    count: 0
                };
            }
            function R(a) {
                a.result = null;
                a.keyPrefix = null;
                a.func = null;
                a.context = null;
                a.count = 0;
                10 > P.length && P.push(a);
            }
            function S(a, b, d, c) {
                var e = typeof a === "undefined" ? "undefined" : _type_of(a);
                if ("undefined" === e || "boolean" === e) a = null;
                var g = false;
                if (null === a) g = true;
                else switch(e){
                    case "string":
                    case "number":
                        g = true;
                        break;
                    case "object":
                        switch(a.$$typeof){
                            case p:
                            case q:
                                g = true;
                        }
                }
                if (g) return d(c, a, "" === b ? "." + T(a, 0) : b), 1;
                g = 0;
                b = "" === b ? "." : b + ":";
                if (Array.isArray(a)) for(var h = 0; h < a.length; h++){
                    e = a[h];
                    var f = b + T(e, h);
                    g += S(e, f, d, c);
                }
                else if (null === a || "object" !== (typeof a === "undefined" ? "undefined" : _type_of(a)) ? f = null : (f = A && a[A] || a["@@iterator"], f = "function" === typeof f ? f : null), "function" === typeof f) for(a = f.call(a), h = 0; !(e = a.next()).done;)e = e.value, f = b + T(e, h++), g += S(e, f, d, c);
                else "object" === e && (d = "" + a, B("31", "[object Object]" === d ? "object with keys {" + Object.keys(a).join(", ") + "}" : d, ""));
                return g;
            }
            function U(a, b, d) {
                return null == a ? 0 : S(a, "", b, d);
            }
            function T(a, b) {
                return "object" === (typeof a === "undefined" ? "undefined" : _type_of(a)) && null !== a && null != a.key ? escape2(a.key) : b.toString(36);
            }
            function ea(a, b) {
                a.func.call(a.context, b, a.count++);
            }
            function fa(a, b, d) {
                var c = a.result, e = a.keyPrefix;
                a = a.func.call(a.context, b, a.count++);
                Array.isArray(a) ? V(a, c, d, function(a2) {
                    return a2;
                }) : null != a && (N(a) && (a = da(a, e + (!a.key || b && b.key === a.key ? "" : ("" + a.key).replace(O, "$&/") + "/") + d)), c.push(a));
            }
            function V(a, b, d, c, e) {
                var g = "";
                null != d && (g = ("" + d).replace(O, "$&/") + "/");
                b = Q(b, g, c, e);
                U(a, fa, b);
                R(b);
            }
            function W() {
                var a = I.current;
                null === a ? B("321") : void 0;
                return a;
            }
            var X = {
                Children: {
                    map: function map(a, b, d) {
                        if (null == a) return a;
                        var c = [];
                        V(a, c, null, b, d);
                        return c;
                    },
                    forEach: function forEach(a, b, d) {
                        if (null == a) return a;
                        b = Q(null, null, b, d);
                        U(a, ea, b);
                        R(b);
                    },
                    count: function count(a) {
                        return U(a, function() {
                            return null;
                        }, null);
                    },
                    toArray: function toArray(a) {
                        var b = [];
                        V(a, b, null, function(a2) {
                            return a2;
                        });
                        return b;
                    },
                    only: function only(a) {
                        N(a) ? void 0 : B("143");
                        return a;
                    }
                },
                createRef: function createRef() {
                    return {
                        current: null
                    };
                },
                Component: E,
                PureComponent: G,
                createContext: function createContext(a, b) {
                    void 0 === b && (b = null);
                    a = {
                        $$typeof: w,
                        _calculateChangedBits: b,
                        _currentValue: a,
                        _currentValue2: a,
                        _threadCount: 0,
                        Provider: null,
                        Consumer: null
                    };
                    a.Provider = {
                        $$typeof: v,
                        _context: a
                    };
                    return a.Consumer = a;
                },
                forwardRef: function forwardRef(a) {
                    return {
                        $$typeof: y,
                        render: a
                    };
                },
                lazy: function lazy(a) {
                    return {
                        $$typeof: ba,
                        _ctor: a,
                        _status: -1,
                        _result: null
                    };
                },
                memo: function memo(a, b) {
                    return {
                        $$typeof: aa,
                        type: a,
                        compare: void 0 === b ? null : b
                    };
                },
                useCallback: function useCallback(a, b) {
                    return W().useCallback(a, b);
                },
                useContext: function useContext(a, b) {
                    return W().useContext(a, b);
                },
                useEffect: function useEffect(a, b) {
                    return W().useEffect(a, b);
                },
                useImperativeHandle: function useImperativeHandle(a, b, d) {
                    return W().useImperativeHandle(a, b, d);
                },
                useDebugValue: function useDebugValue() {},
                useLayoutEffect: function useLayoutEffect(a, b) {
                    return W().useLayoutEffect(a, b);
                },
                useMemo: function useMemo(a, b) {
                    return W().useMemo(a, b);
                },
                useReducer: function useReducer(a, b, d) {
                    return W().useReducer(a, b, d);
                },
                useRef: function useRef(a) {
                    return W().useRef(a);
                },
                useState: function useState(a) {
                    return W().useState(a);
                },
                Fragment: r,
                StrictMode: t,
                Suspense: z,
                createElement: M,
                cloneElement: function cloneElement(a, b, d) {
                    null === a || void 0 === a ? B("267", a) : void 0;
                    var c = void 0, e = k({}, a.props), g = a.key, h = a.ref, f = a._owner;
                    if (null != b) {
                        void 0 !== b.ref && (h = b.ref, f = J.current);
                        void 0 !== b.key && (g = "" + b.key);
                        var l = void 0;
                        a.type && a.type.defaultProps && (l = a.type.defaultProps);
                        for(c in b)K.call(b, c) && !L.hasOwnProperty(c) && (e[c] = void 0 === b[c] && void 0 !== l ? l[c] : b[c]);
                    }
                    c = arguments.length - 2;
                    if (1 === c) e.children = d;
                    else if (1 < c) {
                        l = Array(c);
                        for(var m = 0; m < c; m++)l[m] = arguments[m + 2];
                        e.children = l;
                    }
                    return {
                        $$typeof: p,
                        type: a.type,
                        key: g,
                        ref: h,
                        props: e,
                        _owner: f
                    };
                },
                createFactory: function createFactory(a) {
                    var b = M.bind(null, a);
                    b.type = a;
                    return b;
                },
                isValidElement: N,
                version: "16.8.6",
                unstable_ConcurrentMode: x,
                unstable_Profiler: u,
                __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
                    ReactCurrentDispatcher: I,
                    ReactCurrentOwner: J,
                    assign: k
                }
            };
            var Y = {
                "default": X
            };
            var Z = Y && X || Y;
            module.exports = Z["default"] || Z;
        }
    });
    // node_modules/react/index.js
    var require_react = __commonJS({
        "node_modules/react/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            if (true) {
                module.exports = require_react_production_min();
            } else {
                module.exports = null;
            }
        }
    });
    // node_modules/scheduler/cjs/scheduler.production.min.js
    var require_scheduler_production_min = __commonJS({
        "node_modules/scheduler/cjs/scheduler.production.min.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var d = null;
            var e = false;
            var g = 3;
            var k = -1;
            var l = -1;
            var m = false;
            var n = false;
            function p() {
                if (!m) {
                    var a = d.expirationTime;
                    n ? q() : n = true;
                    r(t, a);
                }
            }
            function u() {
                var a = d, b = d.next;
                if (d === b) d = null;
                else {
                    var c = d.previous;
                    d = c.next = b;
                    b.previous = c;
                }
                a.next = a.previous = null;
                c = a.callback;
                b = a.expirationTime;
                a = a.priorityLevel;
                var f = g, Q = l;
                g = a;
                l = b;
                try {
                    var h = c();
                } finally{
                    g = f, l = Q;
                }
                if ("function" === typeof h) if (h = {
                    callback: h,
                    priorityLevel: a,
                    expirationTime: b,
                    next: null,
                    previous: null
                }, null === d) d = h.next = h.previous = h;
                else {
                    c = null;
                    a = d;
                    do {
                        if (a.expirationTime >= b) {
                            c = a;
                            break;
                        }
                        a = a.next;
                    }while (a !== d);
                    null === c ? c = d : c === d && (d = h, p());
                    b = c.previous;
                    b.next = c.previous = h;
                    h.next = c;
                    h.previous = b;
                }
            }
            function v() {
                if (-1 === k && null !== d && 1 === d.priorityLevel) {
                    m = true;
                    try {
                        do u();
                        while (null !== d && 1 === d.priorityLevel);
                    } finally{
                        m = false, null !== d ? p() : n = false;
                    }
                }
            }
            function t(a) {
                m = true;
                var b = e;
                e = a;
                try {
                    if (a) for(; null !== d;){
                        var c = exports.unstable_now();
                        if (d.expirationTime <= c) {
                            do u();
                            while (null !== d && d.expirationTime <= c);
                        } else break;
                    }
                    else if (null !== d) {
                        do u();
                        while (null !== d && !w());
                    }
                } finally{
                    m = false, e = b, null !== d ? p() : n = false, v();
                }
            }
            var x = Date;
            var y = "function" === typeof setTimeout ? setTimeout : void 0;
            var z = "function" === typeof clearTimeout ? clearTimeout : void 0;
            var A = "function" === typeof requestAnimationFrame ? requestAnimationFrame : void 0;
            var B = "function" === typeof cancelAnimationFrame ? cancelAnimationFrame : void 0;
            var C;
            var D;
            function E(a) {
                C = A(function(b) {
                    z(D);
                    a(b);
                });
                D = y(function() {
                    B(C);
                    a(exports.unstable_now());
                }, 100);
            }
            if ("object" === (typeof performance === "undefined" ? "undefined" : _type_of(performance)) && "function" === typeof performance.now) {
                F = performance;
                exports.unstable_now = function() {
                    return F.now();
                };
            } else exports.unstable_now = function() {
                return x.now();
            };
            var F;
            var r;
            var q;
            var w;
            var G = null;
            "undefined" !== typeof window ? G = window : "undefined" !== typeof globalThis && (G = globalThis);
            if (G && G._schedMock) {
                H = G._schedMock;
                r = H[0];
                q = H[1];
                w = H[2];
                exports.unstable_now = H[3];
            } else if ("undefined" === typeof window || "function" !== typeof MessageChannel) {
                I = null, J = function J(a) {
                    if (null !== I) try {
                        I(a);
                    } finally{
                        I = null;
                    }
                };
                r = function(a) {
                    null !== I ? setTimeout(r, 0, a) : (I = a, setTimeout(J, 0, false));
                };
                q = function q() {
                    I = null;
                };
                w = function w() {
                    return false;
                };
            } else {
                "undefined" !== typeof console && ("function" !== typeof A && console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"), "function" !== typeof B && console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));
                K = null, L = false, M = -1, N = false, O = false, P = 0, R = 33, S = 33;
                w = function w() {
                    return P <= exports.unstable_now();
                };
                T = new MessageChannel(), U = T.port2;
                T.port1.onmessage = function() {
                    L = false;
                    var a = K, b = M;
                    K = null;
                    M = -1;
                    var c = exports.unstable_now(), f = false;
                    if (0 >= P - c) if (-1 !== b && b <= c) f = true;
                    else {
                        N || (N = true, E(V));
                        K = a;
                        M = b;
                        return;
                    }
                    if (null !== a) {
                        O = true;
                        try {
                            a(f);
                        } finally{
                            O = false;
                        }
                    }
                };
                V = function(a) {
                    if (null !== K) {
                        E(V);
                        var b = a - P + S;
                        b < S && R < S ? (8 > b && (b = 8), S = b < R ? R : b) : R = b;
                        P = a + S;
                        L || (L = true, U.postMessage(void 0));
                    } else N = false;
                };
                r = function r(a, b) {
                    K = a;
                    M = b;
                    O || 0 > b ? U.postMessage(void 0) : N || (N = true, E(V));
                };
                q = function q() {
                    K = null;
                    L = false;
                    M = -1;
                };
            }
            var H;
            var I;
            var J;
            var K;
            var L;
            var M;
            var N;
            var O;
            var P;
            var R;
            var S;
            var T;
            var U;
            var V;
            exports.unstable_ImmediatePriority = 1;
            exports.unstable_UserBlockingPriority = 2;
            exports.unstable_NormalPriority = 3;
            exports.unstable_IdlePriority = 5;
            exports.unstable_LowPriority = 4;
            exports.unstable_runWithPriority = function(a, b) {
                switch(a){
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                        break;
                    default:
                        a = 3;
                }
                var c = g, f = k;
                g = a;
                k = exports.unstable_now();
                try {
                    return b();
                } finally{
                    g = c, k = f, v();
                }
            };
            exports.unstable_next = function(a) {
                switch(g){
                    case 1:
                    case 2:
                    case 3:
                        var b = 3;
                        break;
                    default:
                        b = g;
                }
                var c = g, f = k;
                g = b;
                k = exports.unstable_now();
                try {
                    return a();
                } finally{
                    g = c, k = f, v();
                }
            };
            exports.unstable_scheduleCallback = function(a, b) {
                var c = -1 !== k ? k : exports.unstable_now();
                if ("object" === (typeof b === "undefined" ? "undefined" : _type_of(b)) && null !== b && "number" === typeof b.timeout) b = c + b.timeout;
                else switch(g){
                    case 1:
                        b = c + -1;
                        break;
                    case 2:
                        b = c + 250;
                        break;
                    case 5:
                        b = c + 1073741823;
                        break;
                    case 4:
                        b = c + 1e4;
                        break;
                    default:
                        b = c + 5e3;
                }
                a = {
                    callback: a,
                    priorityLevel: g,
                    expirationTime: b,
                    next: null,
                    previous: null
                };
                if (null === d) d = a.next = a.previous = a, p();
                else {
                    c = null;
                    var f = d;
                    do {
                        if (f.expirationTime > b) {
                            c = f;
                            break;
                        }
                        f = f.next;
                    }while (f !== d);
                    null === c ? c = d : c === d && (d = a, p());
                    b = c.previous;
                    b.next = c.previous = a;
                    a.next = c;
                    a.previous = b;
                }
                return a;
            };
            exports.unstable_cancelCallback = function(a) {
                var b = a.next;
                if (null !== b) {
                    if (b === a) d = null;
                    else {
                        a === d && (d = b);
                        var c = a.previous;
                        c.next = b;
                        b.previous = c;
                    }
                    a.next = a.previous = null;
                }
            };
            exports.unstable_wrapCallback = function(a) {
                var b = g;
                return function() {
                    var c = g, f = k;
                    g = b;
                    k = exports.unstable_now();
                    try {
                        return a.apply(this, arguments);
                    } finally{
                        g = c, k = f, v();
                    }
                };
            };
            exports.unstable_getCurrentPriorityLevel = function() {
                return g;
            };
            exports.unstable_shouldYield = function() {
                return !e && (null !== d && d.expirationTime < l || w());
            };
            exports.unstable_continueExecution = function() {
                null !== d && p();
            };
            exports.unstable_pauseExecution = function() {};
            exports.unstable_getFirstCallbackNode = function() {
                return d;
            };
        }
    });
    // node_modules/scheduler/index.js
    var require_scheduler = __commonJS({
        "node_modules/scheduler/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            if (true) {
                module.exports = require_scheduler_production_min();
            } else {
                module.exports = null;
            }
        }
    });
    // node_modules/react-dom/cjs/react-dom.production.min.js
    var require_react_dom_production_min = __commonJS({
        "node_modules/react-dom/cjs/react-dom.production.min.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var aa = require_react();
            var n = require_object_assign();
            var r = require_scheduler();
            function ba(a, b, c, d, e, f, g, h) {
                if (!a) {
                    a = void 0;
                    if (void 0 === b) a = Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
                    else {
                        var l = [
                            c,
                            d,
                            e,
                            f,
                            g,
                            h
                        ], k = 0;
                        a = Error(b.replace(/%s/g, function() {
                            return l[k++];
                        }));
                        a.name = "Invariant Violation";
                    }
                    a.framesToPop = 1;
                    throw a;
                }
            }
            function x(a) {
                for(var b = arguments.length - 1, c = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, d = 0; d < b; d++)c += "&args[]=" + encodeURIComponent(arguments[d + 1]);
                ba(false, "Minified React error #" + a + "; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ", c);
            }
            aa ? void 0 : x("227");
            function ca(a, b, c, d, e, f, g, h, l) {
                var k = Array.prototype.slice.call(arguments, 3);
                try {
                    b.apply(c, k);
                } catch (m) {
                    this.onError(m);
                }
            }
            var da = false;
            var ea = null;
            var fa = false;
            var ha = null;
            var ia = {
                onError: function onError(a) {
                    da = true;
                    ea = a;
                }
            };
            function ja(a, b, c, d, e, f, g, h, l) {
                da = false;
                ea = null;
                ca.apply(ia, arguments);
            }
            function ka(a, b, c, d, e, f, g, h, l) {
                ja.apply(this, arguments);
                if (da) {
                    if (da) {
                        var k = ea;
                        da = false;
                        ea = null;
                    } else x("198"), k = void 0;
                    fa || (fa = true, ha = k);
                }
            }
            var la = null;
            var ma = {};
            function na() {
                if (la) for(var a in ma){
                    var b = ma[a], c = la.indexOf(a);
                    -1 < c ? void 0 : x("96", a);
                    if (!oa[c]) {
                        b.extractEvents ? void 0 : x("97", a);
                        oa[c] = b;
                        c = b.eventTypes;
                        for(var d in c){
                            var e = void 0;
                            var f = c[d], g = b, h = d;
                            pa.hasOwnProperty(h) ? x("99", h) : void 0;
                            pa[h] = f;
                            var l = f.phasedRegistrationNames;
                            if (l) {
                                for(e in l)l.hasOwnProperty(e) && qa(l[e], g, h);
                                e = true;
                            } else f.registrationName ? (qa(f.registrationName, g, h), e = true) : e = false;
                            e ? void 0 : x("98", d, a);
                        }
                    }
                }
            }
            function qa(a, b, c) {
                ra[a] ? x("100", a) : void 0;
                ra[a] = b;
                sa[a] = b.eventTypes[c].dependencies;
            }
            var oa = [];
            var pa = {};
            var ra = {};
            var sa = {};
            var ta = null;
            var ua = null;
            var va = null;
            function wa(a, b, c) {
                var d = a.type || "unknown-event";
                a.currentTarget = va(c);
                ka(d, b, void 0, a);
                a.currentTarget = null;
            }
            function xa(a, b) {
                null == b ? x("30") : void 0;
                if (null == a) return b;
                if (Array.isArray(a)) {
                    if (Array.isArray(b)) return a.push.apply(a, b), a;
                    a.push(b);
                    return a;
                }
                return Array.isArray(b) ? [
                    a
                ].concat(b) : [
                    a,
                    b
                ];
            }
            function ya(a, b, c) {
                Array.isArray(a) ? a.forEach(b, c) : a && b.call(c, a);
            }
            var za = null;
            function Aa(a) {
                if (a) {
                    var b = a._dispatchListeners, c = a._dispatchInstances;
                    if (Array.isArray(b)) for(var d = 0; d < b.length && !a.isPropagationStopped(); d++)wa(a, b[d], c[d]);
                    else b && wa(a, b, c);
                    a._dispatchListeners = null;
                    a._dispatchInstances = null;
                    a.isPersistent() || a.constructor.release(a);
                }
            }
            var Ba = {
                injectEventPluginOrder: function injectEventPluginOrder(a) {
                    la ? x("101") : void 0;
                    la = Array.prototype.slice.call(a);
                    na();
                },
                injectEventPluginsByName: function injectEventPluginsByName(a) {
                    var b = false, c;
                    for(c in a)if (a.hasOwnProperty(c)) {
                        var d = a[c];
                        ma.hasOwnProperty(c) && ma[c] === d || (ma[c] ? x("102", c) : void 0, ma[c] = d, b = true);
                    }
                    b && na();
                }
            };
            function Ca(a, b) {
                var c = a.stateNode;
                if (!c) return null;
                var d = ta(c);
                if (!d) return null;
                c = d[b];
                a: switch(b){
                    case "onClick":
                    case "onClickCapture":
                    case "onDoubleClick":
                    case "onDoubleClickCapture":
                    case "onMouseDown":
                    case "onMouseDownCapture":
                    case "onMouseMove":
                    case "onMouseMoveCapture":
                    case "onMouseUp":
                    case "onMouseUpCapture":
                        (d = !d.disabled) || (a = a.type, d = !("button" === a || "input" === a || "select" === a || "textarea" === a));
                        a = !d;
                        break a;
                    default:
                        a = false;
                }
                if (a) return null;
                c && "function" !== typeof c ? x("231", b, typeof c === "undefined" ? "undefined" : _type_of(c)) : void 0;
                return c;
            }
            function Da(a) {
                null !== a && (za = xa(za, a));
                a = za;
                za = null;
                if (a && (ya(a, Aa), za ? x("95") : void 0, fa)) throw a = ha, fa = false, ha = null, a;
            }
            var Ea = Math.random().toString(36).slice(2);
            var Fa = "__reactInternalInstance$" + Ea;
            var Ga = "__reactEventHandlers$" + Ea;
            function Ha(a) {
                if (a[Fa]) return a[Fa];
                for(; !a[Fa];)if (a.parentNode) a = a.parentNode;
                else return null;
                a = a[Fa];
                return 5 === a.tag || 6 === a.tag ? a : null;
            }
            function Ia(a) {
                a = a[Fa];
                return !a || 5 !== a.tag && 6 !== a.tag ? null : a;
            }
            function Ja(a) {
                if (5 === a.tag || 6 === a.tag) return a.stateNode;
                x("33");
            }
            function Ka(a) {
                return a[Ga] || null;
            }
            function La(a) {
                do a = a["return"];
                while (a && 5 !== a.tag);
                return a ? a : null;
            }
            function Ma(a, b, c) {
                if (b = Ca(a, c.dispatchConfig.phasedRegistrationNames[b])) c._dispatchListeners = xa(c._dispatchListeners, b), c._dispatchInstances = xa(c._dispatchInstances, a);
            }
            function Na(a) {
                if (a && a.dispatchConfig.phasedRegistrationNames) {
                    for(var b = a._targetInst, c = []; b;)c.push(b), b = La(b);
                    for(b = c.length; 0 < b--;)Ma(c[b], "captured", a);
                    for(b = 0; b < c.length; b++)Ma(c[b], "bubbled", a);
                }
            }
            function Oa(a, b, c) {
                a && c && c.dispatchConfig.registrationName && (b = Ca(a, c.dispatchConfig.registrationName)) && (c._dispatchListeners = xa(c._dispatchListeners, b), c._dispatchInstances = xa(c._dispatchInstances, a));
            }
            function Pa(a) {
                a && a.dispatchConfig.registrationName && Oa(a._targetInst, null, a);
            }
            function Qa(a) {
                ya(a, Na);
            }
            var Ra = !("undefined" === typeof window || !window.document || !window.document.createElement);
            function Sa(a, b) {
                var c = {};
                c[a.toLowerCase()] = b.toLowerCase();
                c["Webkit" + a] = "webkit" + b;
                c["Moz" + a] = "moz" + b;
                return c;
            }
            var Ta = {
                animationend: Sa("Animation", "AnimationEnd"),
                animationiteration: Sa("Animation", "AnimationIteration"),
                animationstart: Sa("Animation", "AnimationStart"),
                transitionend: Sa("Transition", "TransitionEnd")
            };
            var Ua = {};
            var Va = {};
            Ra && (Va = document.createElement("div").style, "AnimationEvent" in window || (delete Ta.animationend.animation, delete Ta.animationiteration.animation, delete Ta.animationstart.animation), "TransitionEvent" in window || delete Ta.transitionend.transition);
            function Wa(a) {
                if (Ua[a]) return Ua[a];
                if (!Ta[a]) return a;
                var b = Ta[a], c;
                for(c in b)if (b.hasOwnProperty(c) && c in Va) return Ua[a] = b[c];
                return a;
            }
            var Xa = Wa("animationend");
            var Ya = Wa("animationiteration");
            var Za = Wa("animationstart");
            var $a = Wa("transitionend");
            var ab = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");
            var bb = null;
            var cb = null;
            var db = null;
            function eb() {
                if (db) return db;
                var a, b = cb, c = b.length, d, e = "value" in bb ? bb.value : bb.textContent, f = e.length;
                for(a = 0; a < c && b[a] === e[a]; a++);
                var g = c - a;
                for(d = 1; d <= g && b[c - d] === e[f - d]; d++);
                return db = e.slice(a, 1 < d ? 1 - d : void 0);
            }
            function fb() {
                return true;
            }
            function gb() {
                return false;
            }
            function y(a, b, c, d) {
                this.dispatchConfig = a;
                this._targetInst = b;
                this.nativeEvent = c;
                a = this.constructor.Interface;
                for(var e in a)a.hasOwnProperty(e) && ((b = a[e]) ? this[e] = b(c) : "target" === e ? this.target = d : this[e] = c[e]);
                this.isDefaultPrevented = (null != c.defaultPrevented ? c.defaultPrevented : false === c.returnValue) ? fb : gb;
                this.isPropagationStopped = gb;
                return this;
            }
            n(y.prototype, {
                preventDefault: function preventDefault() {
                    this.defaultPrevented = true;
                    var a = this.nativeEvent;
                    a && (a.preventDefault ? a.preventDefault() : "unknown" !== _type_of(a.returnValue) && (a.returnValue = false), this.isDefaultPrevented = fb);
                },
                stopPropagation: function stopPropagation() {
                    var a = this.nativeEvent;
                    a && (a.stopPropagation ? a.stopPropagation() : "unknown" !== _type_of(a.cancelBubble) && (a.cancelBubble = true), this.isPropagationStopped = fb);
                },
                persist: function persist() {
                    this.isPersistent = fb;
                },
                isPersistent: gb,
                destructor: function destructor() {
                    var a = this.constructor.Interface, b;
                    for(b in a)this[b] = null;
                    this.nativeEvent = this._targetInst = this.dispatchConfig = null;
                    this.isPropagationStopped = this.isDefaultPrevented = gb;
                    this._dispatchInstances = this._dispatchListeners = null;
                }
            });
            y.Interface = {
                type: null,
                target: null,
                currentTarget: function currentTarget() {
                    return null;
                },
                eventPhase: null,
                bubbles: null,
                cancelable: null,
                timeStamp: function timeStamp(a) {
                    return a.timeStamp || Date.now();
                },
                defaultPrevented: null,
                isTrusted: null
            };
            y.extend = function(a) {
                function b() {}
                function c() {
                    return d.apply(this, arguments);
                }
                var d = this;
                b.prototype = d.prototype;
                var e = new b();
                n(e, c.prototype);
                c.prototype = e;
                c.prototype.constructor = c;
                c.Interface = n({}, d.Interface, a);
                c.extend = d.extend;
                hb(c);
                return c;
            };
            hb(y);
            function ib(a, b, c, d) {
                if (this.eventPool.length) {
                    var e = this.eventPool.pop();
                    this.call(e, a, b, c, d);
                    return e;
                }
                return new this(a, b, c, d);
            }
            function jb(a) {
                a instanceof this ? void 0 : x("279");
                a.destructor();
                10 > this.eventPool.length && this.eventPool.push(a);
            }
            function hb(a) {
                a.eventPool = [];
                a.getPooled = ib;
                a.release = jb;
            }
            var kb = y.extend({
                data: null
            });
            var lb = y.extend({
                data: null
            });
            var mb = [
                9,
                13,
                27,
                32
            ];
            var nb = Ra && "CompositionEvent" in window;
            var ob = null;
            Ra && "documentMode" in document && (ob = document.documentMode);
            var pb = Ra && "TextEvent" in window && !ob;
            var qb = Ra && (!nb || ob && 8 < ob && 11 >= ob);
            var rb = String.fromCharCode(32);
            var sb = {
                beforeInput: {
                    phasedRegistrationNames: {
                        bubbled: "onBeforeInput",
                        captured: "onBeforeInputCapture"
                    },
                    dependencies: [
                        "compositionend",
                        "keypress",
                        "textInput",
                        "paste"
                    ]
                },
                compositionEnd: {
                    phasedRegistrationNames: {
                        bubbled: "onCompositionEnd",
                        captured: "onCompositionEndCapture"
                    },
                    dependencies: "blur compositionend keydown keypress keyup mousedown".split(" ")
                },
                compositionStart: {
                    phasedRegistrationNames: {
                        bubbled: "onCompositionStart",
                        captured: "onCompositionStartCapture"
                    },
                    dependencies: "blur compositionstart keydown keypress keyup mousedown".split(" ")
                },
                compositionUpdate: {
                    phasedRegistrationNames: {
                        bubbled: "onCompositionUpdate",
                        captured: "onCompositionUpdateCapture"
                    },
                    dependencies: "blur compositionupdate keydown keypress keyup mousedown".split(" ")
                }
            };
            var tb = false;
            function ub(a, b) {
                switch(a){
                    case "keyup":
                        return -1 !== mb.indexOf(b.keyCode);
                    case "keydown":
                        return 229 !== b.keyCode;
                    case "keypress":
                    case "mousedown":
                    case "blur":
                        return true;
                    default:
                        return false;
                }
            }
            function vb(a) {
                a = a.detail;
                return "object" === (typeof a === "undefined" ? "undefined" : _type_of(a)) && "data" in a ? a.data : null;
            }
            var wb = false;
            function xb(a, b) {
                switch(a){
                    case "compositionend":
                        return vb(b);
                    case "keypress":
                        if (32 !== b.which) return null;
                        tb = true;
                        return rb;
                    case "textInput":
                        return a = b.data, a === rb && tb ? null : a;
                    default:
                        return null;
                }
            }
            function yb(a, b) {
                if (wb) return "compositionend" === a || !nb && ub(a, b) ? (a = eb(), db = cb = bb = null, wb = false, a) : null;
                switch(a){
                    case "paste":
                        return null;
                    case "keypress":
                        if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {
                            if (b["char"] && 1 < b["char"].length) return b["char"];
                            if (b.which) return String.fromCharCode(b.which);
                        }
                        return null;
                    case "compositionend":
                        return qb && "ko" !== b.locale ? null : b.data;
                    default:
                        return null;
                }
            }
            var zb = {
                eventTypes: sb,
                extractEvents: function extractEvents(a, b, c, d) {
                    var e = void 0;
                    var f = void 0;
                    if (nb) b: {
                        switch(a){
                            case "compositionstart":
                                e = sb.compositionStart;
                                break b;
                            case "compositionend":
                                e = sb.compositionEnd;
                                break b;
                            case "compositionupdate":
                                e = sb.compositionUpdate;
                                break b;
                        }
                        e = void 0;
                    }
                    else wb ? ub(a, c) && (e = sb.compositionEnd) : "keydown" === a && 229 === c.keyCode && (e = sb.compositionStart);
                    e ? (qb && "ko" !== c.locale && (wb || e !== sb.compositionStart ? e === sb.compositionEnd && wb && (f = eb()) : (bb = d, cb = "value" in bb ? bb.value : bb.textContent, wb = true)), e = kb.getPooled(e, b, c, d), f ? e.data = f : (f = vb(c), null !== f && (e.data = f)), Qa(e), f = e) : f = null;
                    (a = pb ? xb(a, c) : yb(a, c)) ? (b = lb.getPooled(sb.beforeInput, b, c, d), b.data = a, Qa(b)) : b = null;
                    return null === f ? b : null === b ? f : [
                        f,
                        b
                    ];
                }
            };
            var Ab = null;
            var Bb = null;
            var Cb = null;
            function Db(a) {
                if (a = ua(a)) {
                    "function" !== typeof Ab ? x("280") : void 0;
                    var b = ta(a.stateNode);
                    Ab(a.stateNode, a.type, b);
                }
            }
            function Eb(a) {
                Bb ? Cb ? Cb.push(a) : Cb = [
                    a
                ] : Bb = a;
            }
            function Fb() {
                if (Bb) {
                    var a = Bb, b = Cb;
                    Cb = Bb = null;
                    Db(a);
                    if (b) for(a = 0; a < b.length; a++)Db(b[a]);
                }
            }
            function Gb(a, b) {
                return a(b);
            }
            function Hb(a, b, c) {
                return a(b, c);
            }
            function Ib() {}
            var Jb = false;
            function Kb(a, b) {
                if (Jb) return a(b);
                Jb = true;
                try {
                    return Gb(a, b);
                } finally{
                    if (Jb = false, null !== Bb || null !== Cb) Ib(), Fb();
                }
            }
            var Lb = {
                color: true,
                date: true,
                datetime: true,
                "datetime-local": true,
                email: true,
                month: true,
                number: true,
                password: true,
                range: true,
                search: true,
                tel: true,
                text: true,
                time: true,
                url: true,
                week: true
            };
            function Mb(a) {
                var b = a && a.nodeName && a.nodeName.toLowerCase();
                return "input" === b ? !!Lb[a.type] : "textarea" === b ? true : false;
            }
            function Nb(a) {
                a = a.target || a.srcElement || window;
                a.correspondingUseElement && (a = a.correspondingUseElement);
                return 3 === a.nodeType ? a.parentNode : a;
            }
            function Ob(a) {
                if (!Ra) return false;
                a = "on" + a;
                var b = a in document;
                b || (b = document.createElement("div"), b.setAttribute(a, "return;"), b = "function" === typeof b[a]);
                return b;
            }
            function Pb(a) {
                var b = a.type;
                return (a = a.nodeName) && "input" === a.toLowerCase() && ("checkbox" === b || "radio" === b);
            }
            function Qb(a) {
                var b = Pb(a) ? "checked" : "value", c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b), d = "" + a[b];
                if (!a.hasOwnProperty(b) && "undefined" !== typeof c && "function" === typeof c.get && "function" === typeof c.set) {
                    var e = c.get, f = c.set;
                    Object.defineProperty(a, b, {
                        configurable: true,
                        get: function get() {
                            return e.call(this);
                        },
                        set: function set(a2) {
                            d = "" + a2;
                            f.call(this, a2);
                        }
                    });
                    Object.defineProperty(a, b, {
                        enumerable: c.enumerable
                    });
                    return {
                        getValue: function getValue() {
                            return d;
                        },
                        setValue: function setValue(a2) {
                            d = "" + a2;
                        },
                        stopTracking: function stopTracking() {
                            a._valueTracker = null;
                            delete a[b];
                        }
                    };
                }
            }
            function Rb(a) {
                a._valueTracker || (a._valueTracker = Qb(a));
            }
            function Sb(a) {
                if (!a) return false;
                var b = a._valueTracker;
                if (!b) return true;
                var c = b.getValue();
                var d = "";
                a && (d = Pb(a) ? a.checked ? "true" : "false" : a.value);
                a = d;
                return a !== c ? (b.setValue(a), true) : false;
            }
            var Tb = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
            Tb.hasOwnProperty("ReactCurrentDispatcher") || (Tb.ReactCurrentDispatcher = {
                current: null
            });
            var Ub = /^(.*)[\\\/]/;
            var z = "function" === typeof Symbol && Symbol["for"];
            var Vb = z ? Symbol["for"]("react.element") : 60103;
            var Wb = z ? Symbol["for"]("react.portal") : 60106;
            var Xb = z ? Symbol["for"]("react.fragment") : 60107;
            var Yb = z ? Symbol["for"]("react.strict_mode") : 60108;
            var Zb = z ? Symbol["for"]("react.profiler") : 60114;
            var $b = z ? Symbol["for"]("react.provider") : 60109;
            var ac = z ? Symbol["for"]("react.context") : 60110;
            var bc = z ? Symbol["for"]("react.concurrent_mode") : 60111;
            var cc = z ? Symbol["for"]("react.forward_ref") : 60112;
            var dc = z ? Symbol["for"]("react.suspense") : 60113;
            var ec = z ? Symbol["for"]("react.memo") : 60115;
            var fc = z ? Symbol["for"]("react.lazy") : 60116;
            var gc = "function" === typeof Symbol && Symbol.iterator;
            function hc(a) {
                if (null === a || "object" !== (typeof a === "undefined" ? "undefined" : _type_of(a))) return null;
                a = gc && a[gc] || a["@@iterator"];
                return "function" === typeof a ? a : null;
            }
            function ic(a) {
                if (null == a) return null;
                if ("function" === typeof a) return a.displayName || a.name || null;
                if ("string" === typeof a) return a;
                switch(a){
                    case bc:
                        return "ConcurrentMode";
                    case Xb:
                        return "Fragment";
                    case Wb:
                        return "Portal";
                    case Zb:
                        return "Profiler";
                    case Yb:
                        return "StrictMode";
                    case dc:
                        return "Suspense";
                }
                if ("object" === (typeof a === "undefined" ? "undefined" : _type_of(a))) switch(a.$$typeof){
                    case ac:
                        return "Context.Consumer";
                    case $b:
                        return "Context.Provider";
                    case cc:
                        var b = a.render;
                        b = b.displayName || b.name || "";
                        return a.displayName || ("" !== b ? "ForwardRef(" + b + ")" : "ForwardRef");
                    case ec:
                        return ic(a.type);
                    case fc:
                        if (a = 1 === a._status ? a._result : null) return ic(a);
                }
                return null;
            }
            function jc(a) {
                var b = "";
                do {
                    a: switch(a.tag){
                        case 3:
                        case 4:
                        case 6:
                        case 7:
                        case 10:
                        case 9:
                            var c = "";
                            break a;
                        default:
                            var d = a._debugOwner, e = a._debugSource, f = ic(a.type);
                            c = null;
                            d && (c = ic(d.type));
                            d = f;
                            f = "";
                            e ? f = " (at " + e.fileName.replace(Ub, "") + ":" + e.lineNumber + ")" : c && (f = " (created by " + c + ")");
                            c = "\n    in " + (d || "Unknown") + f;
                    }
                    b += c;
                    a = a["return"];
                }while (a);
                return b;
            }
            var kc = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/;
            var lc = Object.prototype.hasOwnProperty;
            var mc = {};
            var nc = {};
            function oc(a) {
                if (lc.call(nc, a)) return true;
                if (lc.call(mc, a)) return false;
                if (kc.test(a)) return nc[a] = true;
                mc[a] = true;
                return false;
            }
            function pc(a, b, c, d) {
                if (null !== c && 0 === c.type) return false;
                switch(typeof b === "undefined" ? "undefined" : _type_of(b)){
                    case "function":
                    case "symbol":
                        return true;
                    case "boolean":
                        if (d) return false;
                        if (null !== c) return !c.acceptsBooleans;
                        a = a.toLowerCase().slice(0, 5);
                        return "data-" !== a && "aria-" !== a;
                    default:
                        return false;
                }
            }
            function qc(a, b, c, d) {
                if (null === b || "undefined" === typeof b || pc(a, b, c, d)) return true;
                if (d) return false;
                if (null !== c) switch(c.type){
                    case 3:
                        return !b;
                    case 4:
                        return false === b;
                    case 5:
                        return isNaN(b);
                    case 6:
                        return isNaN(b) || 1 > b;
                }
                return false;
            }
            function C(a, b, c, d, e) {
                this.acceptsBooleans = 2 === b || 3 === b || 4 === b;
                this.attributeName = d;
                this.attributeNamespace = e;
                this.mustUseProperty = c;
                this.propertyName = a;
                this.type = b;
            }
            var D = {};
            "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a) {
                D[a] = new C(a, 0, false, a, null);
            });
            [
                [
                    "acceptCharset",
                    "accept-charset"
                ],
                [
                    "className",
                    "class"
                ],
                [
                    "htmlFor",
                    "for"
                ],
                [
                    "httpEquiv",
                    "http-equiv"
                ]
            ].forEach(function(a) {
                var b = a[0];
                D[b] = new C(b, 1, false, a[1], null);
            });
            [
                "contentEditable",
                "draggable",
                "spellCheck",
                "value"
            ].forEach(function(a) {
                D[a] = new C(a, 2, false, a.toLowerCase(), null);
            });
            [
                "autoReverse",
                "externalResourcesRequired",
                "focusable",
                "preserveAlpha"
            ].forEach(function(a) {
                D[a] = new C(a, 2, false, a, null);
            });
            "allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a) {
                D[a] = new C(a, 3, false, a.toLowerCase(), null);
            });
            [
                "checked",
                "multiple",
                "muted",
                "selected"
            ].forEach(function(a) {
                D[a] = new C(a, 3, true, a, null);
            });
            [
                "capture",
                "download"
            ].forEach(function(a) {
                D[a] = new C(a, 4, false, a, null);
            });
            [
                "cols",
                "rows",
                "size",
                "span"
            ].forEach(function(a) {
                D[a] = new C(a, 6, false, a, null);
            });
            [
                "rowSpan",
                "start"
            ].forEach(function(a) {
                D[a] = new C(a, 5, false, a.toLowerCase(), null);
            });
            var rc = /[\-:]([a-z])/g;
            function sc(a) {
                return a[1].toUpperCase();
            }
            "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a) {
                var b = a.replace(rc, sc);
                D[b] = new C(b, 1, false, a, null);
            });
            "xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a) {
                var b = a.replace(rc, sc);
                D[b] = new C(b, 1, false, a, "http://www.w3.org/1999/xlink");
            });
            [
                "xml:base",
                "xml:lang",
                "xml:space"
            ].forEach(function(a) {
                var b = a.replace(rc, sc);
                D[b] = new C(b, 1, false, a, "http://www.w3.org/XML/1998/namespace");
            });
            [
                "tabIndex",
                "crossOrigin"
            ].forEach(function(a) {
                D[a] = new C(a, 1, false, a.toLowerCase(), null);
            });
            function tc(a, b, c, d) {
                var e = D.hasOwnProperty(b) ? D[b] : null;
                var f = null !== e ? 0 === e.type : d ? false : !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1] ? false : true;
                f || (qc(b, c, e, d) && (c = null), d || null === e ? oc(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? false : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && true === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));
            }
            function uc(a) {
                switch(typeof a === "undefined" ? "undefined" : _type_of(a)){
                    case "boolean":
                    case "number":
                    case "object":
                    case "string":
                    case "undefined":
                        return a;
                    default:
                        return "";
                }
            }
            function vc(a, b) {
                var c = b.checked;
                return n({}, b, {
                    defaultChecked: void 0,
                    defaultValue: void 0,
                    value: void 0,
                    checked: null != c ? c : a._wrapperState.initialChecked
                });
            }
            function wc(a, b) {
                var c = null == b.defaultValue ? "" : b.defaultValue, d = null != b.checked ? b.checked : b.defaultChecked;
                c = uc(null != b.value ? b.value : c);
                a._wrapperState = {
                    initialChecked: d,
                    initialValue: c,
                    controlled: "checkbox" === b.type || "radio" === b.type ? null != b.checked : null != b.value
                };
            }
            function xc(a, b) {
                b = b.checked;
                null != b && tc(a, "checked", b, false);
            }
            function yc(a, b) {
                xc(a, b);
                var c = uc(b.value), d = b.type;
                if (null != c) if ("number" === d) {
                    if (0 === c && "" === a.value || a.value != c) a.value = "" + c;
                } else a.value !== "" + c && (a.value = "" + c);
                else if ("submit" === d || "reset" === d) {
                    a.removeAttribute("value");
                    return;
                }
                b.hasOwnProperty("value") ? zc(a, b.type, c) : b.hasOwnProperty("defaultValue") && zc(a, b.type, uc(b.defaultValue));
                null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);
            }
            function Ac(a, b, c) {
                if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
                    var d = b.type;
                    if (!("submit" !== d && "reset" !== d || void 0 !== b.value && null !== b.value)) return;
                    b = "" + a._wrapperState.initialValue;
                    c || b === a.value || (a.value = b);
                    a.defaultValue = b;
                }
                c = a.name;
                "" !== c && (a.name = "");
                a.defaultChecked = !a.defaultChecked;
                a.defaultChecked = !!a._wrapperState.initialChecked;
                "" !== c && (a.name = c);
            }
            function zc(a, b, c) {
                if ("number" !== b || a.ownerDocument.activeElement !== a) null == c ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c);
            }
            var Bc = {
                change: {
                    phasedRegistrationNames: {
                        bubbled: "onChange",
                        captured: "onChangeCapture"
                    },
                    dependencies: "blur change click focus input keydown keyup selectionchange".split(" ")
                }
            };
            function Cc(a, b, c) {
                a = y.getPooled(Bc.change, a, b, c);
                a.type = "change";
                Eb(c);
                Qa(a);
                return a;
            }
            var Dc = null;
            var Ec = null;
            function Fc(a) {
                Da(a);
            }
            function Gc(a) {
                var b = Ja(a);
                if (Sb(b)) return a;
            }
            function Hc(a, b) {
                if ("change" === a) return b;
            }
            var Ic = false;
            Ra && (Ic = Ob("input") && (!document.documentMode || 9 < document.documentMode));
            function Jc() {
                Dc && (Dc.detachEvent("onpropertychange", Kc), Ec = Dc = null);
            }
            function Kc(a) {
                "value" === a.propertyName && Gc(Ec) && (a = Cc(Ec, a, Nb(a)), Kb(Fc, a));
            }
            function Lc(a, b, c) {
                "focus" === a ? (Jc(), Dc = b, Ec = c, Dc.attachEvent("onpropertychange", Kc)) : "blur" === a && Jc();
            }
            function Mc(a) {
                if ("selectionchange" === a || "keyup" === a || "keydown" === a) return Gc(Ec);
            }
            function Nc(a, b) {
                if ("click" === a) return Gc(b);
            }
            function Oc(a, b) {
                if ("input" === a || "change" === a) return Gc(b);
            }
            var Pc = {
                eventTypes: Bc,
                _isInputEventSupported: Ic,
                extractEvents: function extractEvents(a, b, c, d) {
                    var e = b ? Ja(b) : window, f = void 0, g = void 0, h = e.nodeName && e.nodeName.toLowerCase();
                    "select" === h || "input" === h && "file" === e.type ? f = Hc : Mb(e) ? Ic ? f = Oc : (f = Mc, g = Lc) : (h = e.nodeName) && "input" === h.toLowerCase() && ("checkbox" === e.type || "radio" === e.type) && (f = Nc);
                    if (f && (f = f(a, b))) return Cc(f, c, d);
                    g && g(a, e, b);
                    "blur" === a && (a = e._wrapperState) && a.controlled && "number" === e.type && zc(e, "number", e.value);
                }
            };
            var Qc = y.extend({
                view: null,
                detail: null
            });
            var Rc = {
                Alt: "altKey",
                Control: "ctrlKey",
                Meta: "metaKey",
                Shift: "shiftKey"
            };
            function Sc(a) {
                var b = this.nativeEvent;
                return b.getModifierState ? b.getModifierState(a) : (a = Rc[a]) ? !!b[a] : false;
            }
            function Tc() {
                return Sc;
            }
            var Uc = 0;
            var Vc = 0;
            var Wc = false;
            var Xc = false;
            var Yc = Qc.extend({
                screenX: null,
                screenY: null,
                clientX: null,
                clientY: null,
                pageX: null,
                pageY: null,
                ctrlKey: null,
                shiftKey: null,
                altKey: null,
                metaKey: null,
                getModifierState: Tc,
                button: null,
                buttons: null,
                relatedTarget: function relatedTarget(a) {
                    return a.relatedTarget || (a.fromElement === a.srcElement ? a.toElement : a.fromElement);
                },
                movementX: function movementX(a) {
                    if ("movementX" in a) return a.movementX;
                    var b = Uc;
                    Uc = a.screenX;
                    return Wc ? "mousemove" === a.type ? a.screenX - b : 0 : (Wc = true, 0);
                },
                movementY: function movementY(a) {
                    if ("movementY" in a) return a.movementY;
                    var b = Vc;
                    Vc = a.screenY;
                    return Xc ? "mousemove" === a.type ? a.screenY - b : 0 : (Xc = true, 0);
                }
            });
            var Zc = Yc.extend({
                pointerId: null,
                width: null,
                height: null,
                pressure: null,
                tangentialPressure: null,
                tiltX: null,
                tiltY: null,
                twist: null,
                pointerType: null,
                isPrimary: null
            });
            var $c = {
                mouseEnter: {
                    registrationName: "onMouseEnter",
                    dependencies: [
                        "mouseout",
                        "mouseover"
                    ]
                },
                mouseLeave: {
                    registrationName: "onMouseLeave",
                    dependencies: [
                        "mouseout",
                        "mouseover"
                    ]
                },
                pointerEnter: {
                    registrationName: "onPointerEnter",
                    dependencies: [
                        "pointerout",
                        "pointerover"
                    ]
                },
                pointerLeave: {
                    registrationName: "onPointerLeave",
                    dependencies: [
                        "pointerout",
                        "pointerover"
                    ]
                }
            };
            var ad = {
                eventTypes: $c,
                extractEvents: function extractEvents(a, b, c, d) {
                    var e = "mouseover" === a || "pointerover" === a, f = "mouseout" === a || "pointerout" === a;
                    if (e && (c.relatedTarget || c.fromElement) || !f && !e) return null;
                    e = d.window === d ? d : (e = d.ownerDocument) ? e.defaultView || e.parentWindow : window;
                    f ? (f = b, b = (b = c.relatedTarget || c.toElement) ? Ha(b) : null) : f = null;
                    if (f === b) return null;
                    var g = void 0, h = void 0, l = void 0, k = void 0;
                    if ("mouseout" === a || "mouseover" === a) g = Yc, h = $c.mouseLeave, l = $c.mouseEnter, k = "mouse";
                    else if ("pointerout" === a || "pointerover" === a) g = Zc, h = $c.pointerLeave, l = $c.pointerEnter, k = "pointer";
                    var m = null == f ? e : Ja(f);
                    e = null == b ? e : Ja(b);
                    a = g.getPooled(h, f, c, d);
                    a.type = k + "leave";
                    a.target = m;
                    a.relatedTarget = e;
                    c = g.getPooled(l, b, c, d);
                    c.type = k + "enter";
                    c.target = e;
                    c.relatedTarget = m;
                    d = b;
                    if (f && d) a: {
                        b = f;
                        e = d;
                        k = 0;
                        for(g = b; g; g = La(g))k++;
                        g = 0;
                        for(l = e; l; l = La(l))g++;
                        for(; 0 < k - g;)b = La(b), k--;
                        for(; 0 < g - k;)e = La(e), g--;
                        for(; k--;){
                            if (b === e || b === e.alternate) break a;
                            b = La(b);
                            e = La(e);
                        }
                        b = null;
                    }
                    else b = null;
                    e = b;
                    for(b = []; f && f !== e;){
                        k = f.alternate;
                        if (null !== k && k === e) break;
                        b.push(f);
                        f = La(f);
                    }
                    for(f = []; d && d !== e;){
                        k = d.alternate;
                        if (null !== k && k === e) break;
                        f.push(d);
                        d = La(d);
                    }
                    for(d = 0; d < b.length; d++)Oa(b[d], "bubbled", a);
                    for(d = f.length; 0 < d--;)Oa(f[d], "captured", c);
                    return [
                        a,
                        c
                    ];
                }
            };
            function bd(a, b) {
                return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
            }
            var cd = Object.prototype.hasOwnProperty;
            function dd(a, b) {
                if (bd(a, b)) return true;
                if ("object" !== (typeof a === "undefined" ? "undefined" : _type_of(a)) || null === a || "object" !== (typeof b === "undefined" ? "undefined" : _type_of(b)) || null === b) return false;
                var c = Object.keys(a), d = Object.keys(b);
                if (c.length !== d.length) return false;
                for(d = 0; d < c.length; d++)if (!cd.call(b, c[d]) || !bd(a[c[d]], b[c[d]])) return false;
                return true;
            }
            function ed(a) {
                var b = a;
                if (a.alternate) for(; b["return"];)b = b["return"];
                else {
                    if (0 !== (b.effectTag & 2)) return 1;
                    for(; b["return"];)if (b = b["return"], 0 !== (b.effectTag & 2)) return 1;
                }
                return 3 === b.tag ? 2 : 3;
            }
            function fd(a) {
                2 !== ed(a) ? x("188") : void 0;
            }
            function gd(a) {
                var b = a.alternate;
                if (!b) return b = ed(a), 3 === b ? x("188") : void 0, 1 === b ? null : a;
                for(var c = a, d = b;;){
                    var e = c["return"], f = e ? e.alternate : null;
                    if (!e || !f) break;
                    if (e.child === f.child) {
                        for(var g = e.child; g;){
                            if (g === c) return fd(e), a;
                            if (g === d) return fd(e), b;
                            g = g.sibling;
                        }
                        x("188");
                    }
                    if (c["return"] !== d["return"]) c = e, d = f;
                    else {
                        g = false;
                        for(var h = e.child; h;){
                            if (h === c) {
                                g = true;
                                c = e;
                                d = f;
                                break;
                            }
                            if (h === d) {
                                g = true;
                                d = e;
                                c = f;
                                break;
                            }
                            h = h.sibling;
                        }
                        if (!g) {
                            for(h = f.child; h;){
                                if (h === c) {
                                    g = true;
                                    c = f;
                                    d = e;
                                    break;
                                }
                                if (h === d) {
                                    g = true;
                                    d = f;
                                    c = e;
                                    break;
                                }
                                h = h.sibling;
                            }
                            g ? void 0 : x("189");
                        }
                    }
                    c.alternate !== d ? x("190") : void 0;
                }
                3 !== c.tag ? x("188") : void 0;
                return c.stateNode.current === c ? a : b;
            }
            function hd(a) {
                a = gd(a);
                if (!a) return null;
                for(var b = a;;){
                    if (5 === b.tag || 6 === b.tag) return b;
                    if (b.child) b.child["return"] = b, b = b.child;
                    else {
                        if (b === a) break;
                        for(; !b.sibling;){
                            if (!b["return"] || b["return"] === a) return null;
                            b = b["return"];
                        }
                        b.sibling["return"] = b["return"];
                        b = b.sibling;
                    }
                }
                return null;
            }
            var id = y.extend({
                animationName: null,
                elapsedTime: null,
                pseudoElement: null
            });
            var jd = y.extend({
                clipboardData: function clipboardData(a) {
                    return "clipboardData" in a ? a.clipboardData : window.clipboardData;
                }
            });
            var kd = Qc.extend({
                relatedTarget: null
            });
            function ld(a) {
                var b = a.keyCode;
                "charCode" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;
                10 === a && (a = 13);
                return 32 <= a || 13 === a ? a : 0;
            }
            var md = {
                Esc: "Escape",
                Spacebar: " ",
                Left: "ArrowLeft",
                Up: "ArrowUp",
                Right: "ArrowRight",
                Down: "ArrowDown",
                Del: "Delete",
                Win: "OS",
                Menu: "ContextMenu",
                Apps: "ContextMenu",
                Scroll: "ScrollLock",
                MozPrintableKey: "Unidentified"
            };
            var nd = {
                8: "Backspace",
                9: "Tab",
                12: "Clear",
                13: "Enter",
                16: "Shift",
                17: "Control",
                18: "Alt",
                19: "Pause",
                20: "CapsLock",
                27: "Escape",
                32: " ",
                33: "PageUp",
                34: "PageDown",
                35: "End",
                36: "Home",
                37: "ArrowLeft",
                38: "ArrowUp",
                39: "ArrowRight",
                40: "ArrowDown",
                45: "Insert",
                46: "Delete",
                112: "F1",
                113: "F2",
                114: "F3",
                115: "F4",
                116: "F5",
                117: "F6",
                118: "F7",
                119: "F8",
                120: "F9",
                121: "F10",
                122: "F11",
                123: "F12",
                144: "NumLock",
                145: "ScrollLock",
                224: "Meta"
            };
            var od = Qc.extend({
                key: function key(a) {
                    if (a.key) {
                        var b = md[a.key] || a.key;
                        if ("Unidentified" !== b) return b;
                    }
                    return "keypress" === a.type ? (a = ld(a), 13 === a ? "Enter" : String.fromCharCode(a)) : "keydown" === a.type || "keyup" === a.type ? nd[a.keyCode] || "Unidentified" : "";
                },
                location: null,
                ctrlKey: null,
                shiftKey: null,
                altKey: null,
                metaKey: null,
                repeat: null,
                locale: null,
                getModifierState: Tc,
                charCode: function charCode(a) {
                    return "keypress" === a.type ? ld(a) : 0;
                },
                keyCode: function keyCode(a) {
                    return "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
                },
                which: function which(a) {
                    return "keypress" === a.type ? ld(a) : "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
                }
            });
            var pd = Yc.extend({
                dataTransfer: null
            });
            var qd = Qc.extend({
                touches: null,
                targetTouches: null,
                changedTouches: null,
                altKey: null,
                metaKey: null,
                ctrlKey: null,
                shiftKey: null,
                getModifierState: Tc
            });
            var rd = y.extend({
                propertyName: null,
                elapsedTime: null,
                pseudoElement: null
            });
            var sd = Yc.extend({
                deltaX: function deltaX(a) {
                    return "deltaX" in a ? a.deltaX : "wheelDeltaX" in a ? -a.wheelDeltaX : 0;
                },
                deltaY: function deltaY(a) {
                    return "deltaY" in a ? a.deltaY : "wheelDeltaY" in a ? -a.wheelDeltaY : "wheelDelta" in a ? -a.wheelDelta : 0;
                },
                deltaZ: null,
                deltaMode: null
            });
            var td = [
                [
                    "abort",
                    "abort"
                ],
                [
                    Xa,
                    "animationEnd"
                ],
                [
                    Ya,
                    "animationIteration"
                ],
                [
                    Za,
                    "animationStart"
                ],
                [
                    "canplay",
                    "canPlay"
                ],
                [
                    "canplaythrough",
                    "canPlayThrough"
                ],
                [
                    "drag",
                    "drag"
                ],
                [
                    "dragenter",
                    "dragEnter"
                ],
                [
                    "dragexit",
                    "dragExit"
                ],
                [
                    "dragleave",
                    "dragLeave"
                ],
                [
                    "dragover",
                    "dragOver"
                ],
                [
                    "durationchange",
                    "durationChange"
                ],
                [
                    "emptied",
                    "emptied"
                ],
                [
                    "encrypted",
                    "encrypted"
                ],
                [
                    "ended",
                    "ended"
                ],
                [
                    "error",
                    "error"
                ],
                [
                    "gotpointercapture",
                    "gotPointerCapture"
                ],
                [
                    "load",
                    "load"
                ],
                [
                    "loadeddata",
                    "loadedData"
                ],
                [
                    "loadedmetadata",
                    "loadedMetadata"
                ],
                [
                    "loadstart",
                    "loadStart"
                ],
                [
                    "lostpointercapture",
                    "lostPointerCapture"
                ],
                [
                    "mousemove",
                    "mouseMove"
                ],
                [
                    "mouseout",
                    "mouseOut"
                ],
                [
                    "mouseover",
                    "mouseOver"
                ],
                [
                    "playing",
                    "playing"
                ],
                [
                    "pointermove",
                    "pointerMove"
                ],
                [
                    "pointerout",
                    "pointerOut"
                ],
                [
                    "pointerover",
                    "pointerOver"
                ],
                [
                    "progress",
                    "progress"
                ],
                [
                    "scroll",
                    "scroll"
                ],
                [
                    "seeking",
                    "seeking"
                ],
                [
                    "stalled",
                    "stalled"
                ],
                [
                    "suspend",
                    "suspend"
                ],
                [
                    "timeupdate",
                    "timeUpdate"
                ],
                [
                    "toggle",
                    "toggle"
                ],
                [
                    "touchmove",
                    "touchMove"
                ],
                [
                    $a,
                    "transitionEnd"
                ],
                [
                    "waiting",
                    "waiting"
                ],
                [
                    "wheel",
                    "wheel"
                ]
            ];
            var ud = {};
            var vd = {};
            function wd(a, b) {
                var c = a[0];
                a = a[1];
                var d = "on" + (a[0].toUpperCase() + a.slice(1));
                b = {
                    phasedRegistrationNames: {
                        bubbled: d,
                        captured: d + "Capture"
                    },
                    dependencies: [
                        c
                    ],
                    isInteractive: b
                };
                ud[a] = b;
                vd[c] = b;
            }
            [
                [
                    "blur",
                    "blur"
                ],
                [
                    "cancel",
                    "cancel"
                ],
                [
                    "click",
                    "click"
                ],
                [
                    "close",
                    "close"
                ],
                [
                    "contextmenu",
                    "contextMenu"
                ],
                [
                    "copy",
                    "copy"
                ],
                [
                    "cut",
                    "cut"
                ],
                [
                    "auxclick",
                    "auxClick"
                ],
                [
                    "dblclick",
                    "doubleClick"
                ],
                [
                    "dragend",
                    "dragEnd"
                ],
                [
                    "dragstart",
                    "dragStart"
                ],
                [
                    "drop",
                    "drop"
                ],
                [
                    "focus",
                    "focus"
                ],
                [
                    "input",
                    "input"
                ],
                [
                    "invalid",
                    "invalid"
                ],
                [
                    "keydown",
                    "keyDown"
                ],
                [
                    "keypress",
                    "keyPress"
                ],
                [
                    "keyup",
                    "keyUp"
                ],
                [
                    "mousedown",
                    "mouseDown"
                ],
                [
                    "mouseup",
                    "mouseUp"
                ],
                [
                    "paste",
                    "paste"
                ],
                [
                    "pause",
                    "pause"
                ],
                [
                    "play",
                    "play"
                ],
                [
                    "pointercancel",
                    "pointerCancel"
                ],
                [
                    "pointerdown",
                    "pointerDown"
                ],
                [
                    "pointerup",
                    "pointerUp"
                ],
                [
                    "ratechange",
                    "rateChange"
                ],
                [
                    "reset",
                    "reset"
                ],
                [
                    "seeked",
                    "seeked"
                ],
                [
                    "submit",
                    "submit"
                ],
                [
                    "touchcancel",
                    "touchCancel"
                ],
                [
                    "touchend",
                    "touchEnd"
                ],
                [
                    "touchstart",
                    "touchStart"
                ],
                [
                    "volumechange",
                    "volumeChange"
                ]
            ].forEach(function(a) {
                wd(a, true);
            });
            td.forEach(function(a) {
                wd(a, false);
            });
            var xd = {
                eventTypes: ud,
                isInteractiveTopLevelEventType: function isInteractiveTopLevelEventType(a) {
                    a = vd[a];
                    return void 0 !== a && true === a.isInteractive;
                },
                extractEvents: function extractEvents(a, b, c, d) {
                    var e = vd[a];
                    if (!e) return null;
                    switch(a){
                        case "keypress":
                            if (0 === ld(c)) return null;
                        case "keydown":
                        case "keyup":
                            a = od;
                            break;
                        case "blur":
                        case "focus":
                            a = kd;
                            break;
                        case "click":
                            if (2 === c.button) return null;
                        case "auxclick":
                        case "dblclick":
                        case "mousedown":
                        case "mousemove":
                        case "mouseup":
                        case "mouseout":
                        case "mouseover":
                        case "contextmenu":
                            a = Yc;
                            break;
                        case "drag":
                        case "dragend":
                        case "dragenter":
                        case "dragexit":
                        case "dragleave":
                        case "dragover":
                        case "dragstart":
                        case "drop":
                            a = pd;
                            break;
                        case "touchcancel":
                        case "touchend":
                        case "touchmove":
                        case "touchstart":
                            a = qd;
                            break;
                        case Xa:
                        case Ya:
                        case Za:
                            a = id;
                            break;
                        case $a:
                            a = rd;
                            break;
                        case "scroll":
                            a = Qc;
                            break;
                        case "wheel":
                            a = sd;
                            break;
                        case "copy":
                        case "cut":
                        case "paste":
                            a = jd;
                            break;
                        case "gotpointercapture":
                        case "lostpointercapture":
                        case "pointercancel":
                        case "pointerdown":
                        case "pointermove":
                        case "pointerout":
                        case "pointerover":
                        case "pointerup":
                            a = Zc;
                            break;
                        default:
                            a = y;
                    }
                    b = a.getPooled(e, b, c, d);
                    Qa(b);
                    return b;
                }
            };
            var yd = xd.isInteractiveTopLevelEventType;
            var zd = [];
            function Ad(a) {
                var b = a.targetInst, c = b;
                do {
                    if (!c) {
                        a.ancestors.push(c);
                        break;
                    }
                    var d;
                    for(d = c; d["return"];)d = d["return"];
                    d = 3 !== d.tag ? null : d.stateNode.containerInfo;
                    if (!d) break;
                    a.ancestors.push(c);
                    c = Ha(d);
                }while (c);
                for(c = 0; c < a.ancestors.length; c++){
                    b = a.ancestors[c];
                    var e = Nb(a.nativeEvent);
                    d = a.topLevelType;
                    for(var f = a.nativeEvent, g = null, h = 0; h < oa.length; h++){
                        var l = oa[h];
                        l && (l = l.extractEvents(d, b, f, e)) && (g = xa(g, l));
                    }
                    Da(g);
                }
            }
            var Bd = true;
            function E(a, b) {
                if (!b) return null;
                var c = (yd(a) ? Cd : Dd).bind(null, a);
                b.addEventListener(a, c, false);
            }
            function Ed(a, b) {
                if (!b) return null;
                var c = (yd(a) ? Cd : Dd).bind(null, a);
                b.addEventListener(a, c, true);
            }
            function Cd(a, b) {
                Hb(Dd, a, b);
            }
            function Dd(a, b) {
                if (Bd) {
                    var c = Nb(b);
                    c = Ha(c);
                    null === c || "number" !== typeof c.tag || 2 === ed(c) || (c = null);
                    if (zd.length) {
                        var d = zd.pop();
                        d.topLevelType = a;
                        d.nativeEvent = b;
                        d.targetInst = c;
                        a = d;
                    } else a = {
                        topLevelType: a,
                        nativeEvent: b,
                        targetInst: c,
                        ancestors: []
                    };
                    try {
                        Kb(Ad, a);
                    } finally{
                        a.topLevelType = null, a.nativeEvent = null, a.targetInst = null, a.ancestors.length = 0, 10 > zd.length && zd.push(a);
                    }
                }
            }
            var Fd = {};
            var Gd = 0;
            var Hd = "_reactListenersID" + ("" + Math.random()).slice(2);
            function Id(a) {
                Object.prototype.hasOwnProperty.call(a, Hd) || (a[Hd] = Gd++, Fd[a[Hd]] = {});
                return Fd[a[Hd]];
            }
            function Jd(a) {
                a = a || ("undefined" !== typeof document ? document : void 0);
                if ("undefined" === typeof a) return null;
                try {
                    return a.activeElement || a.body;
                } catch (b) {
                    return a.body;
                }
            }
            function Kd(a) {
                for(; a && a.firstChild;)a = a.firstChild;
                return a;
            }
            function Ld(a, b) {
                var c = Kd(a);
                a = 0;
                for(var d; c;){
                    if (3 === c.nodeType) {
                        d = a + c.textContent.length;
                        if (a <= b && d >= b) return {
                            node: c,
                            offset: b - a
                        };
                        a = d;
                    }
                    a: {
                        for(; c;){
                            if (c.nextSibling) {
                                c = c.nextSibling;
                                break a;
                            }
                            c = c.parentNode;
                        }
                        c = void 0;
                    }
                    c = Kd(c);
                }
            }
            function Md(a, b) {
                return a && b ? a === b ? true : a && 3 === a.nodeType ? false : b && 3 === b.nodeType ? Md(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : false : false;
            }
            function Nd() {
                for(var a = window, b = Jd(); b instanceof a.HTMLIFrameElement;){
                    try {
                        var c = "string" === typeof b.contentWindow.location.href;
                    } catch (d) {
                        c = false;
                    }
                    if (c) a = b.contentWindow;
                    else break;
                    b = Jd(a.document);
                }
                return b;
            }
            function Od(a) {
                var b = a && a.nodeName && a.nodeName.toLowerCase();
                return b && ("input" === b && ("text" === a.type || "search" === a.type || "tel" === a.type || "url" === a.type || "password" === a.type) || "textarea" === b || "true" === a.contentEditable);
            }
            function Pd() {
                var a = Nd();
                if (Od(a)) {
                    if ("selectionStart" in a) var b = {
                        start: a.selectionStart,
                        end: a.selectionEnd
                    };
                    else a: {
                        b = (b = a.ownerDocument) && b.defaultView || window;
                        var c = b.getSelection && b.getSelection();
                        if (c && 0 !== c.rangeCount) {
                            b = c.anchorNode;
                            var d = c.anchorOffset, e = c.focusNode;
                            c = c.focusOffset;
                            try {
                                b.nodeType, e.nodeType;
                            } catch (A) {
                                b = null;
                                break a;
                            }
                            var f = 0, g = -1, h = -1, l = 0, k = 0, m = a, p = null;
                            b: for(;;){
                                for(var t;;){
                                    m !== b || 0 !== d && 3 !== m.nodeType || (g = f + d);
                                    m !== e || 0 !== c && 3 !== m.nodeType || (h = f + c);
                                    3 === m.nodeType && (f += m.nodeValue.length);
                                    if (null === (t = m.firstChild)) break;
                                    p = m;
                                    m = t;
                                }
                                for(;;){
                                    if (m === a) break b;
                                    p === b && ++l === d && (g = f);
                                    p === e && ++k === c && (h = f);
                                    if (null !== (t = m.nextSibling)) break;
                                    m = p;
                                    p = m.parentNode;
                                }
                                m = t;
                            }
                            b = -1 === g || -1 === h ? null : {
                                start: g,
                                end: h
                            };
                        } else b = null;
                    }
                    b = b || {
                        start: 0,
                        end: 0
                    };
                } else b = null;
                return {
                    focusedElem: a,
                    selectionRange: b
                };
            }
            function Qd(a) {
                var b = Nd(), c = a.focusedElem, d = a.selectionRange;
                if (b !== c && c && c.ownerDocument && Md(c.ownerDocument.documentElement, c)) {
                    if (null !== d && Od(c)) {
                        if (b = d.start, a = d.end, void 0 === a && (a = b), "selectionStart" in c) c.selectionStart = b, c.selectionEnd = Math.min(a, c.value.length);
                        else if (a = (b = c.ownerDocument || document) && b.defaultView || window, a.getSelection) {
                            a = a.getSelection();
                            var e = c.textContent.length, f = Math.min(d.start, e);
                            d = void 0 === d.end ? f : Math.min(d.end, e);
                            !a.extend && f > d && (e = d, d = f, f = e);
                            e = Ld(c, f);
                            var g = Ld(c, d);
                            e && g && (1 !== a.rangeCount || a.anchorNode !== e.node || a.anchorOffset !== e.offset || a.focusNode !== g.node || a.focusOffset !== g.offset) && (b = b.createRange(), b.setStart(e.node, e.offset), a.removeAllRanges(), f > d ? (a.addRange(b), a.extend(g.node, g.offset)) : (b.setEnd(g.node, g.offset), a.addRange(b)));
                        }
                    }
                    b = [];
                    for(a = c; a = a.parentNode;)1 === a.nodeType && b.push({
                        element: a,
                        left: a.scrollLeft,
                        top: a.scrollTop
                    });
                    "function" === typeof c.focus && c.focus();
                    for(c = 0; c < b.length; c++)a = b[c], a.element.scrollLeft = a.left, a.element.scrollTop = a.top;
                }
            }
            var Rd = Ra && "documentMode" in document && 11 >= document.documentMode;
            var Sd = {
                select: {
                    phasedRegistrationNames: {
                        bubbled: "onSelect",
                        captured: "onSelectCapture"
                    },
                    dependencies: "blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")
                }
            };
            var Td = null;
            var Ud = null;
            var Vd = null;
            var Wd = false;
            function Xd(a, b) {
                var c = b.window === b ? b.document : 9 === b.nodeType ? b : b.ownerDocument;
                if (Wd || null == Td || Td !== Jd(c)) return null;
                c = Td;
                "selectionStart" in c && Od(c) ? c = {
                    start: c.selectionStart,
                    end: c.selectionEnd
                } : (c = (c.ownerDocument && c.ownerDocument.defaultView || window).getSelection(), c = {
                    anchorNode: c.anchorNode,
                    anchorOffset: c.anchorOffset,
                    focusNode: c.focusNode,
                    focusOffset: c.focusOffset
                });
                return Vd && dd(Vd, c) ? null : (Vd = c, a = y.getPooled(Sd.select, Ud, a, b), a.type = "select", a.target = Td, Qa(a), a);
            }
            var Yd = {
                eventTypes: Sd,
                extractEvents: function extractEvents(a, b, c, d) {
                    var e = d.window === d ? d.document : 9 === d.nodeType ? d : d.ownerDocument, f;
                    if (!(f = !e)) {
                        a: {
                            e = Id(e);
                            f = sa.onSelect;
                            for(var g = 0; g < f.length; g++){
                                var h = f[g];
                                if (!e.hasOwnProperty(h) || !e[h]) {
                                    e = false;
                                    break a;
                                }
                            }
                            e = true;
                        }
                        f = !e;
                    }
                    if (f) return null;
                    e = b ? Ja(b) : window;
                    switch(a){
                        case "focus":
                            if (Mb(e) || "true" === e.contentEditable) Td = e, Ud = b, Vd = null;
                            break;
                        case "blur":
                            Vd = Ud = Td = null;
                            break;
                        case "mousedown":
                            Wd = true;
                            break;
                        case "contextmenu":
                        case "mouseup":
                        case "dragend":
                            return Wd = false, Xd(c, d);
                        case "selectionchange":
                            if (Rd) break;
                        case "keydown":
                        case "keyup":
                            return Xd(c, d);
                    }
                    return null;
                }
            };
            Ba.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" "));
            ta = Ka;
            ua = Ia;
            va = Ja;
            Ba.injectEventPluginsByName({
                SimpleEventPlugin: xd,
                EnterLeaveEventPlugin: ad,
                ChangeEventPlugin: Pc,
                SelectEventPlugin: Yd,
                BeforeInputEventPlugin: zb
            });
            function Zd(a) {
                var b = "";
                aa.Children.forEach(a, function(a2) {
                    null != a2 && (b += a2);
                });
                return b;
            }
            function $d(a, b) {
                a = n({
                    children: void 0
                }, b);
                if (b = Zd(b.children)) a.children = b;
                return a;
            }
            function ae(a, b, c, d) {
                a = a.options;
                if (b) {
                    b = {};
                    for(var e = 0; e < c.length; e++)b["$" + c[e]] = true;
                    for(c = 0; c < a.length; c++)e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = true);
                } else {
                    c = "" + uc(c);
                    b = null;
                    for(e = 0; e < a.length; e++){
                        if (a[e].value === c) {
                            a[e].selected = true;
                            d && (a[e].defaultSelected = true);
                            return;
                        }
                        null !== b || a[e].disabled || (b = a[e]);
                    }
                    null !== b && (b.selected = true);
                }
            }
            function be(a, b) {
                null != b.dangerouslySetInnerHTML ? x("91") : void 0;
                return n({}, b, {
                    value: void 0,
                    defaultValue: void 0,
                    children: "" + a._wrapperState.initialValue
                });
            }
            function ce(a, b) {
                var c = b.value;
                null == c && (c = b.defaultValue, b = b.children, null != b && (null != c ? x("92") : void 0, Array.isArray(b) && (1 >= b.length ? void 0 : x("93"), b = b[0]), c = b), null == c && (c = ""));
                a._wrapperState = {
                    initialValue: uc(c)
                };
            }
            function de(a, b) {
                var c = uc(b.value), d = uc(b.defaultValue);
                null != c && (c = "" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));
                null != d && (a.defaultValue = "" + d);
            }
            function ee(a) {
                var b = a.textContent;
                b === a._wrapperState.initialValue && (a.value = b);
            }
            var fe = {
                html: "http://www.w3.org/1999/xhtml",
                mathml: "http://www.w3.org/1998/Math/MathML",
                svg: "http://www.w3.org/2000/svg"
            };
            function ge(a) {
                switch(a){
                    case "svg":
                        return "http://www.w3.org/2000/svg";
                    case "math":
                        return "http://www.w3.org/1998/Math/MathML";
                    default:
                        return "http://www.w3.org/1999/xhtml";
                }
            }
            function he(a, b) {
                return null == a || "http://www.w3.org/1999/xhtml" === a ? ge(b) : "http://www.w3.org/2000/svg" === a && "foreignObject" === b ? "http://www.w3.org/1999/xhtml" : a;
            }
            var ie = void 0;
            var je = function(a) {
                return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function(b, c, d, e) {
                    MSApp.execUnsafeLocalFunction(function() {
                        return a(b, c, d, e);
                    });
                } : a;
            }(function(a, b) {
                if (a.namespaceURI !== fe.svg || "innerHTML" in a) a.innerHTML = b;
                else {
                    ie = ie || document.createElement("div");
                    ie.innerHTML = "<svg>" + b + "</svg>";
                    for(b = ie.firstChild; a.firstChild;)a.removeChild(a.firstChild);
                    for(; b.firstChild;)a.appendChild(b.firstChild);
                }
            });
            function ke(a, b) {
                if (b) {
                    var c = a.firstChild;
                    if (c && c === a.lastChild && 3 === c.nodeType) {
                        c.nodeValue = b;
                        return;
                    }
                }
                a.textContent = b;
            }
            var le = {
                animationIterationCount: true,
                borderImageOutset: true,
                borderImageSlice: true,
                borderImageWidth: true,
                boxFlex: true,
                boxFlexGroup: true,
                boxOrdinalGroup: true,
                columnCount: true,
                columns: true,
                flex: true,
                flexGrow: true,
                flexPositive: true,
                flexShrink: true,
                flexNegative: true,
                flexOrder: true,
                gridArea: true,
                gridRow: true,
                gridRowEnd: true,
                gridRowSpan: true,
                gridRowStart: true,
                gridColumn: true,
                gridColumnEnd: true,
                gridColumnSpan: true,
                gridColumnStart: true,
                fontWeight: true,
                lineClamp: true,
                lineHeight: true,
                opacity: true,
                order: true,
                orphans: true,
                tabSize: true,
                widows: true,
                zIndex: true,
                zoom: true,
                fillOpacity: true,
                floodOpacity: true,
                stopOpacity: true,
                strokeDasharray: true,
                strokeDashoffset: true,
                strokeMiterlimit: true,
                strokeOpacity: true,
                strokeWidth: true
            };
            var me = [
                "Webkit",
                "ms",
                "Moz",
                "O"
            ];
            Object.keys(le).forEach(function(a) {
                me.forEach(function(b) {
                    b = b + a.charAt(0).toUpperCase() + a.substring(1);
                    le[b] = le[a];
                });
            });
            function ne(a, b, c) {
                return null == b || "boolean" === typeof b || "" === b ? "" : c || "number" !== typeof b || 0 === b || le.hasOwnProperty(a) && le[a] ? ("" + b).trim() : b + "px";
            }
            function oe(a, b) {
                a = a.style;
                for(var c in b)if (b.hasOwnProperty(c)) {
                    var d = 0 === c.indexOf("--"), e = ne(c, b[c], d);
                    "float" === c && (c = "cssFloat");
                    d ? a.setProperty(c, e) : a[c] = e;
                }
            }
            var pe = n({
                menuitem: true
            }, {
                area: true,
                base: true,
                br: true,
                col: true,
                embed: true,
                hr: true,
                img: true,
                input: true,
                keygen: true,
                link: true,
                meta: true,
                param: true,
                source: true,
                track: true,
                wbr: true
            });
            function qe(a, b) {
                b && (pe[a] && (null != b.children || null != b.dangerouslySetInnerHTML ? x("137", a, "") : void 0), null != b.dangerouslySetInnerHTML && (null != b.children ? x("60") : void 0, "object" === _type_of(b.dangerouslySetInnerHTML) && "__html" in b.dangerouslySetInnerHTML ? void 0 : x("61")), null != b.style && "object" !== _type_of(b.style) ? x("62", "") : void 0);
            }
            function re(a, b) {
                if (-1 === a.indexOf("-")) return "string" === typeof b.is;
                switch(a){
                    case "annotation-xml":
                    case "color-profile":
                    case "font-face":
                    case "font-face-src":
                    case "font-face-uri":
                    case "font-face-format":
                    case "font-face-name":
                    case "missing-glyph":
                        return false;
                    default:
                        return true;
                }
            }
            function se(a, b) {
                a = 9 === a.nodeType || 11 === a.nodeType ? a : a.ownerDocument;
                var c = Id(a);
                b = sa[b];
                for(var d = 0; d < b.length; d++){
                    var e = b[d];
                    if (!c.hasOwnProperty(e) || !c[e]) {
                        switch(e){
                            case "scroll":
                                Ed("scroll", a);
                                break;
                            case "focus":
                            case "blur":
                                Ed("focus", a);
                                Ed("blur", a);
                                c.blur = true;
                                c.focus = true;
                                break;
                            case "cancel":
                            case "close":
                                Ob(e) && Ed(e, a);
                                break;
                            case "invalid":
                            case "submit":
                            case "reset":
                                break;
                            default:
                                -1 === ab.indexOf(e) && E(e, a);
                        }
                        c[e] = true;
                    }
                }
            }
            function te() {}
            var ue = null;
            var ve = null;
            function we(a, b) {
                switch(a){
                    case "button":
                    case "input":
                    case "select":
                    case "textarea":
                        return !!b.autoFocus;
                }
                return false;
            }
            function xe(a, b) {
                return "textarea" === a || "option" === a || "noscript" === a || "string" === typeof b.children || "number" === typeof b.children || "object" === _type_of(b.dangerouslySetInnerHTML) && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;
            }
            var ye = "function" === typeof setTimeout ? setTimeout : void 0;
            var ze = "function" === typeof clearTimeout ? clearTimeout : void 0;
            var Ae = r.unstable_scheduleCallback;
            var Be = r.unstable_cancelCallback;
            function Ce(a, b, c, d, e) {
                a[Ga] = e;
                "input" === c && "radio" === e.type && null != e.name && xc(a, e);
                re(c, d);
                d = re(c, e);
                for(var f = 0; f < b.length; f += 2){
                    var g = b[f], h = b[f + 1];
                    "style" === g ? oe(a, h) : "dangerouslySetInnerHTML" === g ? je(a, h) : "children" === g ? ke(a, h) : tc(a, g, h, d);
                }
                switch(c){
                    case "input":
                        yc(a, e);
                        break;
                    case "textarea":
                        de(a, e);
                        break;
                    case "select":
                        b = a._wrapperState.wasMultiple, a._wrapperState.wasMultiple = !!e.multiple, c = e.value, null != c ? ae(a, !!e.multiple, c, false) : b !== !!e.multiple && (null != e.defaultValue ? ae(a, !!e.multiple, e.defaultValue, true) : ae(a, !!e.multiple, e.multiple ? [] : "", false));
                }
            }
            function De(a) {
                for(a = a.nextSibling; a && 1 !== a.nodeType && 3 !== a.nodeType;)a = a.nextSibling;
                return a;
            }
            function Ee(a) {
                for(a = a.firstChild; a && 1 !== a.nodeType && 3 !== a.nodeType;)a = a.nextSibling;
                return a;
            }
            var Fe = [];
            var Ge = -1;
            function F(a) {
                0 > Ge || (a.current = Fe[Ge], Fe[Ge] = null, Ge--);
            }
            function G(a, b) {
                Ge++;
                Fe[Ge] = a.current;
                a.current = b;
            }
            var He = {};
            var H = {
                current: He
            };
            var I = {
                current: false
            };
            var Ie = He;
            function Je(a, b) {
                var c = a.type.contextTypes;
                if (!c) return He;
                var d = a.stateNode;
                if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;
                var e = {}, f;
                for(f in c)e[f] = b[f];
                d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);
                return e;
            }
            function J(a) {
                a = a.childContextTypes;
                return null !== a && void 0 !== a;
            }
            function Ke(a) {
                F(I, a);
                F(H, a);
            }
            function Le(a) {
                F(I, a);
                F(H, a);
            }
            function Me(a, b, c) {
                H.current !== He ? x("168") : void 0;
                G(H, b, a);
                G(I, c, a);
            }
            function Ne(a, b, c) {
                var d = a.stateNode;
                a = b.childContextTypes;
                if ("function" !== typeof d.getChildContext) return c;
                d = d.getChildContext();
                for(var e in d)e in a ? void 0 : x("108", ic(b) || "Unknown", e);
                return n({}, c, d);
            }
            function Oe(a) {
                var b = a.stateNode;
                b = b && b.__reactInternalMemoizedMergedChildContext || He;
                Ie = H.current;
                G(H, b, a);
                G(I, I.current, a);
                return true;
            }
            function Pe(a, b, c) {
                var d = a.stateNode;
                d ? void 0 : x("169");
                c ? (b = Ne(a, b, Ie), d.__reactInternalMemoizedMergedChildContext = b, F(I, a), F(H, a), G(H, b, a)) : F(I, a);
                G(I, c, a);
            }
            var Qe = null;
            var Re = null;
            function Se(a) {
                return function(b) {
                    try {
                        return a(b);
                    } catch (c) {}
                };
            }
            function Te(a) {
                if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return false;
                var b = __REACT_DEVTOOLS_GLOBAL_HOOK__;
                if (b.isDisabled || !b.supportsFiber) return true;
                try {
                    var c = b.inject(a);
                    Qe = Se(function(a2) {
                        return b.onCommitFiberRoot(c, a2);
                    });
                    Re = Se(function(a2) {
                        return b.onCommitFiberUnmount(c, a2);
                    });
                } catch (d) {}
                return true;
            }
            function Ue(a, b, c, d) {
                this.tag = a;
                this.key = c;
                this.sibling = this.child = this["return"] = this.stateNode = this.type = this.elementType = null;
                this.index = 0;
                this.ref = null;
                this.pendingProps = b;
                this.contextDependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;
                this.mode = d;
                this.effectTag = 0;
                this.lastEffect = this.firstEffect = this.nextEffect = null;
                this.childExpirationTime = this.expirationTime = 0;
                this.alternate = null;
            }
            function K(a, b, c, d) {
                return new Ue(a, b, c, d);
            }
            function Ve(a) {
                a = a.prototype;
                return !(!a || !a.isReactComponent);
            }
            function We(a) {
                if ("function" === typeof a) return Ve(a) ? 1 : 0;
                if (void 0 !== a && null !== a) {
                    a = a.$$typeof;
                    if (a === cc) return 11;
                    if (a === ec) return 14;
                }
                return 2;
            }
            function Xe(a, b) {
                var c = a.alternate;
                null === c ? (c = K(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.effectTag = 0, c.nextEffect = null, c.firstEffect = null, c.lastEffect = null);
                c.childExpirationTime = a.childExpirationTime;
                c.expirationTime = a.expirationTime;
                c.child = a.child;
                c.memoizedProps = a.memoizedProps;
                c.memoizedState = a.memoizedState;
                c.updateQueue = a.updateQueue;
                c.contextDependencies = a.contextDependencies;
                c.sibling = a.sibling;
                c.index = a.index;
                c.ref = a.ref;
                return c;
            }
            function Ye(a, b, c, d, e, f) {
                var g = 2;
                d = a;
                if ("function" === typeof a) Ve(a) && (g = 1);
                else if ("string" === typeof a) g = 5;
                else a: switch(a){
                    case Xb:
                        return Ze(c.children, e, f, b);
                    case bc:
                        return $e(c, e | 3, f, b);
                    case Yb:
                        return $e(c, e | 2, f, b);
                    case Zb:
                        return a = K(12, c, b, e | 4), a.elementType = Zb, a.type = Zb, a.expirationTime = f, a;
                    case dc:
                        return a = K(13, c, b, e), a.elementType = dc, a.type = dc, a.expirationTime = f, a;
                    default:
                        if ("object" === (typeof a === "undefined" ? "undefined" : _type_of(a)) && null !== a) switch(a.$$typeof){
                            case $b:
                                g = 10;
                                break a;
                            case ac:
                                g = 9;
                                break a;
                            case cc:
                                g = 11;
                                break a;
                            case ec:
                                g = 14;
                                break a;
                            case fc:
                                g = 16;
                                d = null;
                                break a;
                        }
                        x("130", null == a ? a : typeof a === "undefined" ? "undefined" : _type_of(a), "");
                }
                b = K(g, c, b, e);
                b.elementType = a;
                b.type = d;
                b.expirationTime = f;
                return b;
            }
            function Ze(a, b, c, d) {
                a = K(7, a, d, b);
                a.expirationTime = c;
                return a;
            }
            function $e(a, b, c, d) {
                a = K(8, a, d, b);
                b = 0 === (b & 1) ? Yb : bc;
                a.elementType = b;
                a.type = b;
                a.expirationTime = c;
                return a;
            }
            function af(a, b, c) {
                a = K(6, a, null, b);
                a.expirationTime = c;
                return a;
            }
            function bf(a, b, c) {
                b = K(4, null !== a.children ? a.children : [], a.key, b);
                b.expirationTime = c;
                b.stateNode = {
                    containerInfo: a.containerInfo,
                    pendingChildren: null,
                    implementation: a.implementation
                };
                return b;
            }
            function cf(a, b) {
                a.didError = false;
                var c = a.earliestPendingTime;
                0 === c ? a.earliestPendingTime = a.latestPendingTime = b : c < b ? a.earliestPendingTime = b : a.latestPendingTime > b && (a.latestPendingTime = b);
                df(b, a);
            }
            function ef(a, b) {
                a.didError = false;
                if (0 === b) a.earliestPendingTime = 0, a.latestPendingTime = 0, a.earliestSuspendedTime = 0, a.latestSuspendedTime = 0, a.latestPingedTime = 0;
                else {
                    b < a.latestPingedTime && (a.latestPingedTime = 0);
                    var c = a.latestPendingTime;
                    0 !== c && (c > b ? a.earliestPendingTime = a.latestPendingTime = 0 : a.earliestPendingTime > b && (a.earliestPendingTime = a.latestPendingTime));
                    c = a.earliestSuspendedTime;
                    0 === c ? cf(a, b) : b < a.latestSuspendedTime ? (a.earliestSuspendedTime = 0, a.latestSuspendedTime = 0, a.latestPingedTime = 0, cf(a, b)) : b > c && cf(a, b);
                }
                df(0, a);
            }
            function ff(a, b) {
                a.didError = false;
                a.latestPingedTime >= b && (a.latestPingedTime = 0);
                var c = a.earliestPendingTime, d = a.latestPendingTime;
                c === b ? a.earliestPendingTime = d === b ? a.latestPendingTime = 0 : d : d === b && (a.latestPendingTime = c);
                c = a.earliestSuspendedTime;
                d = a.latestSuspendedTime;
                0 === c ? a.earliestSuspendedTime = a.latestSuspendedTime = b : c < b ? a.earliestSuspendedTime = b : d > b && (a.latestSuspendedTime = b);
                df(b, a);
            }
            function gf(a, b) {
                var c = a.earliestPendingTime;
                a = a.earliestSuspendedTime;
                c > b && (b = c);
                a > b && (b = a);
                return b;
            }
            function df(a, b) {
                var c = b.earliestSuspendedTime, d = b.latestSuspendedTime, e = b.earliestPendingTime, f = b.latestPingedTime;
                e = 0 !== e ? e : f;
                0 === e && (0 === a || d < a) && (e = d);
                a = e;
                0 !== a && c > a && (a = c);
                b.nextExpirationTimeToWorkOn = e;
                b.expirationTime = a;
            }
            function L(a, b) {
                if (a && a.defaultProps) {
                    b = n({}, b);
                    a = a.defaultProps;
                    for(var c in a)void 0 === b[c] && (b[c] = a[c]);
                }
                return b;
            }
            function hf(a) {
                var b = a._result;
                switch(a._status){
                    case 1:
                        return b;
                    case 2:
                        throw b;
                    case 0:
                        throw b;
                    default:
                        a._status = 0;
                        b = a._ctor;
                        b = b();
                        b.then(function(b2) {
                            0 === a._status && (b2 = b2["default"], a._status = 1, a._result = b2);
                        }, function(b2) {
                            0 === a._status && (a._status = 2, a._result = b2);
                        });
                        switch(a._status){
                            case 1:
                                return a._result;
                            case 2:
                                throw a._result;
                        }
                        a._result = b;
                        throw b;
                }
            }
            var jf = new aa.Component().refs;
            function kf(a, b, c, d) {
                b = a.memoizedState;
                c = c(d, b);
                c = null === c || void 0 === c ? b : n({}, b, c);
                a.memoizedState = c;
                d = a.updateQueue;
                null !== d && 0 === a.expirationTime && (d.baseState = c);
            }
            var tf = {
                isMounted: function isMounted(a) {
                    return (a = a._reactInternalFiber) ? 2 === ed(a) : false;
                },
                enqueueSetState: function enqueueSetState(a, b, c) {
                    a = a._reactInternalFiber;
                    var d = lf();
                    d = mf(d, a);
                    var e = nf(d);
                    e.payload = b;
                    void 0 !== c && null !== c && (e.callback = c);
                    of();
                    pf(a, e);
                    qf(a, d);
                },
                enqueueReplaceState: function enqueueReplaceState(a, b, c) {
                    a = a._reactInternalFiber;
                    var d = lf();
                    d = mf(d, a);
                    var e = nf(d);
                    e.tag = rf;
                    e.payload = b;
                    void 0 !== c && null !== c && (e.callback = c);
                    of();
                    pf(a, e);
                    qf(a, d);
                },
                enqueueForceUpdate: function enqueueForceUpdate(a, b) {
                    a = a._reactInternalFiber;
                    var c = lf();
                    c = mf(c, a);
                    var d = nf(c);
                    d.tag = sf;
                    void 0 !== b && null !== b && (d.callback = b);
                    of();
                    pf(a, d);
                    qf(a, c);
                }
            };
            function uf(a, b, c, d, e, f, g) {
                a = a.stateNode;
                return "function" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !dd(c, d) || !dd(e, f) : true;
            }
            function vf(a, b, c) {
                var d = false, e = He;
                var f = b.contextType;
                "object" === (typeof f === "undefined" ? "undefined" : _type_of(f)) && null !== f ? f = M(f) : (e = J(b) ? Ie : H.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Je(a, e) : He);
                b = new b(c, f);
                a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;
                b.updater = tf;
                a.stateNode = b;
                b._reactInternalFiber = a;
                d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);
                return b;
            }
            function wf(a, b, c, d) {
                a = b.state;
                "function" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);
                "function" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);
                b.state !== a && tf.enqueueReplaceState(b, b.state, null);
            }
            function xf(a, b, c, d) {
                var e = a.stateNode;
                e.props = c;
                e.state = a.memoizedState;
                e.refs = jf;
                var f = b.contextType;
                "object" === (typeof f === "undefined" ? "undefined" : _type_of(f)) && null !== f ? e.context = M(f) : (f = J(b) ? Ie : H.current, e.context = Je(a, f));
                f = a.updateQueue;
                null !== f && (yf(a, f, c, e, d), e.state = a.memoizedState);
                f = b.getDerivedStateFromProps;
                "function" === typeof f && (kf(a, b, f, c), e.state = a.memoizedState);
                "function" === typeof b.getDerivedStateFromProps || "function" === typeof e.getSnapshotBeforeUpdate || "function" !== typeof e.UNSAFE_componentWillMount && "function" !== typeof e.componentWillMount || (b = e.state, "function" === typeof e.componentWillMount && e.componentWillMount(), "function" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && tf.enqueueReplaceState(e, e.state, null), f = a.updateQueue, null !== f && (yf(a, f, c, e, d), e.state = a.memoizedState));
                "function" === typeof e.componentDidMount && (a.effectTag |= 4);
            }
            var zf = Array.isArray;
            function Af(a, b, c) {
                a = c.ref;
                if (null !== a && "function" !== typeof a && "object" !== (typeof a === "undefined" ? "undefined" : _type_of(a))) {
                    if (c._owner) {
                        c = c._owner;
                        var d = void 0;
                        c && (1 !== c.tag ? x("309") : void 0, d = c.stateNode);
                        d ? void 0 : x("147", a);
                        var e = "" + a;
                        if (null !== b && null !== b.ref && "function" === typeof b.ref && b.ref._stringRef === e) return b.ref;
                        b = function b(a2) {
                            var b2 = d.refs;
                            b2 === jf && (b2 = d.refs = {});
                            null === a2 ? delete b2[e] : b2[e] = a2;
                        };
                        b._stringRef = e;
                        return b;
                    }
                    "string" !== typeof a ? x("284") : void 0;
                    c._owner ? void 0 : x("290", a);
                }
                return a;
            }
            function Bf(a, b) {
                "textarea" !== a.type && x("31", "[object Object]" === Object.prototype.toString.call(b) ? "object with keys {" + Object.keys(b).join(", ") + "}" : b, "");
            }
            function Cf(a) {
                function b(b2, c2) {
                    if (a) {
                        var d2 = b2.lastEffect;
                        null !== d2 ? (d2.nextEffect = c2, b2.lastEffect = c2) : b2.firstEffect = b2.lastEffect = c2;
                        c2.nextEffect = null;
                        c2.effectTag = 8;
                    }
                }
                function c(c2, d2) {
                    if (!a) return null;
                    for(; null !== d2;)b(c2, d2), d2 = d2.sibling;
                    return null;
                }
                function d(a2, b2) {
                    for(a2 = /* @__PURE__ */ new Map(); null !== b2;)null !== b2.key ? a2.set(b2.key, b2) : a2.set(b2.index, b2), b2 = b2.sibling;
                    return a2;
                }
                function e(a2, b2, c2) {
                    a2 = Xe(a2, b2, c2);
                    a2.index = 0;
                    a2.sibling = null;
                    return a2;
                }
                function f(b2, c2, d2) {
                    b2.index = d2;
                    if (!a) return c2;
                    d2 = b2.alternate;
                    if (null !== d2) return d2 = d2.index, d2 < c2 ? (b2.effectTag = 2, c2) : d2;
                    b2.effectTag = 2;
                    return c2;
                }
                function g(b2) {
                    a && null === b2.alternate && (b2.effectTag = 2);
                    return b2;
                }
                function h(a2, b2, c2, d2) {
                    if (null === b2 || 6 !== b2.tag) return b2 = af(c2, a2.mode, d2), b2["return"] = a2, b2;
                    b2 = e(b2, c2, d2);
                    b2["return"] = a2;
                    return b2;
                }
                function l(a2, b2, c2, d2) {
                    if (null !== b2 && b2.elementType === c2.type) return d2 = e(b2, c2.props, d2), d2.ref = Af(a2, b2, c2), d2["return"] = a2, d2;
                    d2 = Ye(c2.type, c2.key, c2.props, null, a2.mode, d2);
                    d2.ref = Af(a2, b2, c2);
                    d2["return"] = a2;
                    return d2;
                }
                function k(a2, b2, c2, d2) {
                    if (null === b2 || 4 !== b2.tag || b2.stateNode.containerInfo !== c2.containerInfo || b2.stateNode.implementation !== c2.implementation) return b2 = bf(c2, a2.mode, d2), b2["return"] = a2, b2;
                    b2 = e(b2, c2.children || [], d2);
                    b2["return"] = a2;
                    return b2;
                }
                function m(a2, b2, c2, d2, f2) {
                    if (null === b2 || 7 !== b2.tag) return b2 = Ze(c2, a2.mode, d2, f2), b2["return"] = a2, b2;
                    b2 = e(b2, c2, d2);
                    b2["return"] = a2;
                    return b2;
                }
                function p(a2, b2, c2) {
                    if ("string" === typeof b2 || "number" === typeof b2) return b2 = af("" + b2, a2.mode, c2), b2["return"] = a2, b2;
                    if ("object" === (typeof b2 === "undefined" ? "undefined" : _type_of(b2)) && null !== b2) {
                        switch(b2.$$typeof){
                            case Vb:
                                return c2 = Ye(b2.type, b2.key, b2.props, null, a2.mode, c2), c2.ref = Af(a2, null, b2), c2["return"] = a2, c2;
                            case Wb:
                                return b2 = bf(b2, a2.mode, c2), b2["return"] = a2, b2;
                        }
                        if (zf(b2) || hc(b2)) return b2 = Ze(b2, a2.mode, c2, null), b2["return"] = a2, b2;
                        Bf(a2, b2);
                    }
                    return null;
                }
                function t(a2, b2, c2, d2) {
                    var e2 = null !== b2 ? b2.key : null;
                    if ("string" === typeof c2 || "number" === typeof c2) return null !== e2 ? null : h(a2, b2, "" + c2, d2);
                    if ("object" === (typeof c2 === "undefined" ? "undefined" : _type_of(c2)) && null !== c2) {
                        switch(c2.$$typeof){
                            case Vb:
                                return c2.key === e2 ? c2.type === Xb ? m(a2, b2, c2.props.children, d2, e2) : l(a2, b2, c2, d2) : null;
                            case Wb:
                                return c2.key === e2 ? k(a2, b2, c2, d2) : null;
                        }
                        if (zf(c2) || hc(c2)) return null !== e2 ? null : m(a2, b2, c2, d2, null);
                        Bf(a2, c2);
                    }
                    return null;
                }
                function A(a2, b2, c2, d2, e2) {
                    if ("string" === typeof d2 || "number" === typeof d2) return a2 = a2.get(c2) || null, h(b2, a2, "" + d2, e2);
                    if ("object" === (typeof d2 === "undefined" ? "undefined" : _type_of(d2)) && null !== d2) {
                        switch(d2.$$typeof){
                            case Vb:
                                return a2 = a2.get(null === d2.key ? c2 : d2.key) || null, d2.type === Xb ? m(b2, a2, d2.props.children, e2, d2.key) : l(b2, a2, d2, e2);
                            case Wb:
                                return a2 = a2.get(null === d2.key ? c2 : d2.key) || null, k(b2, a2, d2, e2);
                        }
                        if (zf(d2) || hc(d2)) return a2 = a2.get(c2) || null, m(b2, a2, d2, e2, null);
                        Bf(b2, d2);
                    }
                    return null;
                }
                function v(e2, g2, h2, k2) {
                    for(var l2 = null, m2 = null, q = g2, u = g2 = 0, B = null; null !== q && u < h2.length; u++){
                        q.index > u ? (B = q, q = null) : B = q.sibling;
                        var w = t(e2, q, h2[u], k2);
                        if (null === w) {
                            null === q && (q = B);
                            break;
                        }
                        a && q && null === w.alternate && b(e2, q);
                        g2 = f(w, g2, u);
                        null === m2 ? l2 = w : m2.sibling = w;
                        m2 = w;
                        q = B;
                    }
                    if (u === h2.length) return c(e2, q), l2;
                    if (null === q) {
                        for(; u < h2.length; u++)if (q = p(e2, h2[u], k2)) g2 = f(q, g2, u), null === m2 ? l2 = q : m2.sibling = q, m2 = q;
                        return l2;
                    }
                    for(q = d(e2, q); u < h2.length; u++)if (B = A(q, e2, u, h2[u], k2)) a && null !== B.alternate && q["delete"](null === B.key ? u : B.key), g2 = f(B, g2, u), null === m2 ? l2 = B : m2.sibling = B, m2 = B;
                    a && q.forEach(function(a2) {
                        return b(e2, a2);
                    });
                    return l2;
                }
                function R(e2, g2, h2, k2) {
                    var l2 = hc(h2);
                    "function" !== typeof l2 ? x("150") : void 0;
                    h2 = l2.call(h2);
                    null == h2 ? x("151") : void 0;
                    for(var m2 = l2 = null, q = g2, u = g2 = 0, B = null, w = h2.next(); null !== q && !w.done; u++, w = h2.next()){
                        q.index > u ? (B = q, q = null) : B = q.sibling;
                        var v2 = t(e2, q, w.value, k2);
                        if (null === v2) {
                            q || (q = B);
                            break;
                        }
                        a && q && null === v2.alternate && b(e2, q);
                        g2 = f(v2, g2, u);
                        null === m2 ? l2 = v2 : m2.sibling = v2;
                        m2 = v2;
                        q = B;
                    }
                    if (w.done) return c(e2, q), l2;
                    if (null === q) {
                        for(; !w.done; u++, w = h2.next())w = p(e2, w.value, k2), null !== w && (g2 = f(w, g2, u), null === m2 ? l2 = w : m2.sibling = w, m2 = w);
                        return l2;
                    }
                    for(q = d(e2, q); !w.done; u++, w = h2.next())w = A(q, e2, u, w.value, k2), null !== w && (a && null !== w.alternate && q["delete"](null === w.key ? u : w.key), g2 = f(w, g2, u), null === m2 ? l2 = w : m2.sibling = w, m2 = w);
                    a && q.forEach(function(a2) {
                        return b(e2, a2);
                    });
                    return l2;
                }
                return function(a2, d2, f2, h2) {
                    var k2 = "object" === (typeof f2 === "undefined" ? "undefined" : _type_of(f2)) && null !== f2 && f2.type === Xb && null === f2.key;
                    k2 && (f2 = f2.props.children);
                    var l2 = "object" === (typeof f2 === "undefined" ? "undefined" : _type_of(f2)) && null !== f2;
                    if (l2) switch(f2.$$typeof){
                        case Vb:
                            a: {
                                l2 = f2.key;
                                for(k2 = d2; null !== k2;){
                                    if (k2.key === l2) if (7 === k2.tag ? f2.type === Xb : k2.elementType === f2.type) {
                                        c(a2, k2.sibling);
                                        d2 = e(k2, f2.type === Xb ? f2.props.children : f2.props, h2);
                                        d2.ref = Af(a2, k2, f2);
                                        d2["return"] = a2;
                                        a2 = d2;
                                        break a;
                                    } else {
                                        c(a2, k2);
                                        break;
                                    }
                                    else b(a2, k2);
                                    k2 = k2.sibling;
                                }
                                f2.type === Xb ? (d2 = Ze(f2.props.children, a2.mode, h2, f2.key), d2["return"] = a2, a2 = d2) : (h2 = Ye(f2.type, f2.key, f2.props, null, a2.mode, h2), h2.ref = Af(a2, d2, f2), h2["return"] = a2, a2 = h2);
                            }
                            return g(a2);
                        case Wb:
                            a: {
                                for(k2 = f2.key; null !== d2;){
                                    if (d2.key === k2) if (4 === d2.tag && d2.stateNode.containerInfo === f2.containerInfo && d2.stateNode.implementation === f2.implementation) {
                                        c(a2, d2.sibling);
                                        d2 = e(d2, f2.children || [], h2);
                                        d2["return"] = a2;
                                        a2 = d2;
                                        break a;
                                    } else {
                                        c(a2, d2);
                                        break;
                                    }
                                    else b(a2, d2);
                                    d2 = d2.sibling;
                                }
                                d2 = bf(f2, a2.mode, h2);
                                d2["return"] = a2;
                                a2 = d2;
                            }
                            return g(a2);
                    }
                    if ("string" === typeof f2 || "number" === typeof f2) return f2 = "" + f2, null !== d2 && 6 === d2.tag ? (c(a2, d2.sibling), d2 = e(d2, f2, h2), d2["return"] = a2, a2 = d2) : (c(a2, d2), d2 = af(f2, a2.mode, h2), d2["return"] = a2, a2 = d2), g(a2);
                    if (zf(f2)) return v(a2, d2, f2, h2);
                    if (hc(f2)) return R(a2, d2, f2, h2);
                    l2 && Bf(a2, f2);
                    if ("undefined" === typeof f2 && !k2) switch(a2.tag){
                        case 1:
                        case 0:
                            h2 = a2.type, x("152", h2.displayName || h2.name || "Component");
                    }
                    return c(a2, d2);
                };
            }
            var Df = Cf(true);
            var Ef = Cf(false);
            var Ff = {};
            var N = {
                current: Ff
            };
            var Gf = {
                current: Ff
            };
            var Hf = {
                current: Ff
            };
            function If(a) {
                a === Ff ? x("174") : void 0;
                return a;
            }
            function Jf(a, b) {
                G(Hf, b, a);
                G(Gf, a, a);
                G(N, Ff, a);
                var c = b.nodeType;
                switch(c){
                    case 9:
                    case 11:
                        b = (b = b.documentElement) ? b.namespaceURI : he(null, "");
                        break;
                    default:
                        c = 8 === c ? b.parentNode : b, b = c.namespaceURI || null, c = c.tagName, b = he(b, c);
                }
                F(N, a);
                G(N, b, a);
            }
            function Kf(a) {
                F(N, a);
                F(Gf, a);
                F(Hf, a);
            }
            function Lf(a) {
                If(Hf.current);
                var b = If(N.current);
                var c = he(b, a.type);
                b !== c && (G(Gf, a, a), G(N, c, a));
            }
            function Mf(a) {
                Gf.current === a && (F(N, a), F(Gf, a));
            }
            var Nf = 0;
            var Of = 2;
            var Pf = 4;
            var Qf = 8;
            var Rf = 16;
            var Sf = 32;
            var Tf = 64;
            var Uf = 128;
            var Vf = Tb.ReactCurrentDispatcher;
            var Wf = 0;
            var Xf = null;
            var O = null;
            var P = null;
            var Yf = null;
            var Q = null;
            var Zf = null;
            var $f = 0;
            var ag = null;
            var bg = 0;
            var cg = false;
            var dg = null;
            var eg = 0;
            function fg() {
                x("321");
            }
            function gg(a, b) {
                if (null === b) return false;
                for(var c = 0; c < b.length && c < a.length; c++)if (!bd(a[c], b[c])) return false;
                return true;
            }
            function hg(a, b, c, d, e, f) {
                Wf = f;
                Xf = b;
                P = null !== a ? a.memoizedState : null;
                Vf.current = null === P ? ig : jg;
                b = c(d, e);
                if (cg) {
                    do cg = false, eg += 1, P = null !== a ? a.memoizedState : null, Zf = Yf, ag = Q = O = null, Vf.current = jg, b = c(d, e);
                    while (cg);
                    dg = null;
                    eg = 0;
                }
                Vf.current = kg;
                a = Xf;
                a.memoizedState = Yf;
                a.expirationTime = $f;
                a.updateQueue = ag;
                a.effectTag |= bg;
                a = null !== O && null !== O.next;
                Wf = 0;
                Zf = Q = Yf = P = O = Xf = null;
                $f = 0;
                ag = null;
                bg = 0;
                a ? x("300") : void 0;
                return b;
            }
            function lg() {
                Vf.current = kg;
                Wf = 0;
                Zf = Q = Yf = P = O = Xf = null;
                $f = 0;
                ag = null;
                bg = 0;
                cg = false;
                dg = null;
                eg = 0;
            }
            function mg() {
                var a = {
                    memoizedState: null,
                    baseState: null,
                    queue: null,
                    baseUpdate: null,
                    next: null
                };
                null === Q ? Yf = Q = a : Q = Q.next = a;
                return Q;
            }
            function ng() {
                if (null !== Zf) Q = Zf, Zf = Q.next, O = P, P = null !== O ? O.next : null;
                else {
                    null === P ? x("310") : void 0;
                    O = P;
                    var a = {
                        memoizedState: O.memoizedState,
                        baseState: O.baseState,
                        queue: O.queue,
                        baseUpdate: O.baseUpdate,
                        next: null
                    };
                    Q = null === Q ? Yf = a : Q.next = a;
                    P = O.next;
                }
                return Q;
            }
            function og(a, b) {
                return "function" === typeof b ? b(a) : b;
            }
            function pg(a) {
                var b = ng(), c = b.queue;
                null === c ? x("311") : void 0;
                c.lastRenderedReducer = a;
                if (0 < eg) {
                    var d = c.dispatch;
                    if (null !== dg) {
                        var e = dg.get(c);
                        if (void 0 !== e) {
                            dg["delete"](c);
                            var f = b.memoizedState;
                            do f = a(f, e.action), e = e.next;
                            while (null !== e);
                            bd(f, b.memoizedState) || (qg = true);
                            b.memoizedState = f;
                            b.baseUpdate === c.last && (b.baseState = f);
                            c.lastRenderedState = f;
                            return [
                                f,
                                d
                            ];
                        }
                    }
                    return [
                        b.memoizedState,
                        d
                    ];
                }
                d = c.last;
                var g = b.baseUpdate;
                f = b.baseState;
                null !== g ? (null !== d && (d.next = null), d = g.next) : d = null !== d ? d.next : null;
                if (null !== d) {
                    var h = e = null, l = d, k = false;
                    do {
                        var m = l.expirationTime;
                        m < Wf ? (k || (k = true, h = g, e = f), m > $f && ($f = m)) : f = l.eagerReducer === a ? l.eagerState : a(f, l.action);
                        g = l;
                        l = l.next;
                    }while (null !== l && l !== d);
                    k || (h = g, e = f);
                    bd(f, b.memoizedState) || (qg = true);
                    b.memoizedState = f;
                    b.baseUpdate = h;
                    b.baseState = e;
                    c.lastRenderedState = f;
                }
                return [
                    b.memoizedState,
                    c.dispatch
                ];
            }
            function rg(a, b, c, d) {
                a = {
                    tag: a,
                    create: b,
                    destroy: c,
                    deps: d,
                    next: null
                };
                null === ag ? (ag = {
                    lastEffect: null
                }, ag.lastEffect = a.next = a) : (b = ag.lastEffect, null === b ? ag.lastEffect = a.next = a : (c = b.next, b.next = a, a.next = c, ag.lastEffect = a));
                return a;
            }
            function sg(a, b, c, d) {
                var e = mg();
                bg |= a;
                e.memoizedState = rg(b, c, void 0, void 0 === d ? null : d);
            }
            function tg(a, b, c, d) {
                var e = ng();
                d = void 0 === d ? null : d;
                var f = void 0;
                if (null !== O) {
                    var g = O.memoizedState;
                    f = g.destroy;
                    if (null !== d && gg(d, g.deps)) {
                        rg(Nf, c, f, d);
                        return;
                    }
                }
                bg |= a;
                e.memoizedState = rg(b, c, f, d);
            }
            function ug(a, b) {
                if ("function" === typeof b) return a = a(), b(a), function() {
                    b(null);
                };
                if (null !== b && void 0 !== b) return a = a(), b.current = a, function() {
                    b.current = null;
                };
            }
            function vg() {}
            function wg(a, b, c) {
                25 > eg ? void 0 : x("301");
                var d = a.alternate;
                if (a === Xf || null !== d && d === Xf) if (cg = true, a = {
                    expirationTime: Wf,
                    action: c,
                    eagerReducer: null,
                    eagerState: null,
                    next: null
                }, null === dg && (dg = /* @__PURE__ */ new Map()), c = dg.get(b), void 0 === c) dg.set(b, a);
                else {
                    for(b = c; null !== b.next;)b = b.next;
                    b.next = a;
                }
                else {
                    of();
                    var e = lf();
                    e = mf(e, a);
                    var f = {
                        expirationTime: e,
                        action: c,
                        eagerReducer: null,
                        eagerState: null,
                        next: null
                    }, g = b.last;
                    if (null === g) f.next = f;
                    else {
                        var h = g.next;
                        null !== h && (f.next = h);
                        g.next = f;
                    }
                    b.last = f;
                    if (0 === a.expirationTime && (null === d || 0 === d.expirationTime) && (d = b.lastRenderedReducer, null !== d)) try {
                        var l = b.lastRenderedState, k = d(l, c);
                        f.eagerReducer = d;
                        f.eagerState = k;
                        if (bd(k, l)) return;
                    } catch (m) {} finally{}
                    qf(a, e);
                }
            }
            var kg = {
                readContext: M,
                useCallback: fg,
                useContext: fg,
                useEffect: fg,
                useImperativeHandle: fg,
                useLayoutEffect: fg,
                useMemo: fg,
                useReducer: fg,
                useRef: fg,
                useState: fg,
                useDebugValue: fg
            };
            var ig = {
                readContext: M,
                useCallback: function useCallback(a, b) {
                    mg().memoizedState = [
                        a,
                        void 0 === b ? null : b
                    ];
                    return a;
                },
                useContext: M,
                useEffect: function useEffect(a, b) {
                    return sg(516, Uf | Tf, a, b);
                },
                useImperativeHandle: function useImperativeHandle(a, b, c) {
                    c = null !== c && void 0 !== c ? c.concat([
                        a
                    ]) : null;
                    return sg(4, Pf | Sf, ug.bind(null, b, a), c);
                },
                useLayoutEffect: function useLayoutEffect(a, b) {
                    return sg(4, Pf | Sf, a, b);
                },
                useMemo: function useMemo(a, b) {
                    var c = mg();
                    b = void 0 === b ? null : b;
                    a = a();
                    c.memoizedState = [
                        a,
                        b
                    ];
                    return a;
                },
                useReducer: function useReducer(a, b, c) {
                    var d = mg();
                    b = void 0 !== c ? c(b) : b;
                    d.memoizedState = d.baseState = b;
                    a = d.queue = {
                        last: null,
                        dispatch: null,
                        lastRenderedReducer: a,
                        lastRenderedState: b
                    };
                    a = a.dispatch = wg.bind(null, Xf, a);
                    return [
                        d.memoizedState,
                        a
                    ];
                },
                useRef: function useRef(a) {
                    var b = mg();
                    a = {
                        current: a
                    };
                    return b.memoizedState = a;
                },
                useState: function useState(a) {
                    var b = mg();
                    "function" === typeof a && (a = a());
                    b.memoizedState = b.baseState = a;
                    a = b.queue = {
                        last: null,
                        dispatch: null,
                        lastRenderedReducer: og,
                        lastRenderedState: a
                    };
                    a = a.dispatch = wg.bind(null, Xf, a);
                    return [
                        b.memoizedState,
                        a
                    ];
                },
                useDebugValue: vg
            };
            var jg = {
                readContext: M,
                useCallback: function useCallback(a, b) {
                    var c = ng();
                    b = void 0 === b ? null : b;
                    var d = c.memoizedState;
                    if (null !== d && null !== b && gg(b, d[1])) return d[0];
                    c.memoizedState = [
                        a,
                        b
                    ];
                    return a;
                },
                useContext: M,
                useEffect: function useEffect(a, b) {
                    return tg(516, Uf | Tf, a, b);
                },
                useImperativeHandle: function useImperativeHandle(a, b, c) {
                    c = null !== c && void 0 !== c ? c.concat([
                        a
                    ]) : null;
                    return tg(4, Pf | Sf, ug.bind(null, b, a), c);
                },
                useLayoutEffect: function useLayoutEffect(a, b) {
                    return tg(4, Pf | Sf, a, b);
                },
                useMemo: function useMemo(a, b) {
                    var c = ng();
                    b = void 0 === b ? null : b;
                    var d = c.memoizedState;
                    if (null !== d && null !== b && gg(b, d[1])) return d[0];
                    a = a();
                    c.memoizedState = [
                        a,
                        b
                    ];
                    return a;
                },
                useReducer: pg,
                useRef: function useRef() {
                    return ng().memoizedState;
                },
                useState: function useState(a) {
                    return pg(og, a);
                },
                useDebugValue: vg
            };
            var xg = null;
            var yg = null;
            var zg = false;
            function Ag(a, b) {
                var c = K(5, null, null, 0);
                c.elementType = "DELETED";
                c.type = "DELETED";
                c.stateNode = b;
                c["return"] = a;
                c.effectTag = 8;
                null !== a.lastEffect ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;
            }
            function Bg(a, b) {
                switch(a.tag){
                    case 5:
                        var c = a.type;
                        b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;
                        return null !== b ? (a.stateNode = b, true) : false;
                    case 6:
                        return b = "" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, true) : false;
                    case 13:
                        return false;
                    default:
                        return false;
                }
            }
            function Cg(a) {
                if (zg) {
                    var b = yg;
                    if (b) {
                        var c = b;
                        if (!Bg(a, b)) {
                            b = De(c);
                            if (!b || !Bg(a, b)) {
                                a.effectTag |= 2;
                                zg = false;
                                xg = a;
                                return;
                            }
                            Ag(xg, c);
                        }
                        xg = a;
                        yg = Ee(b);
                    } else a.effectTag |= 2, zg = false, xg = a;
                }
            }
            function Dg(a) {
                for(a = a["return"]; null !== a && 5 !== a.tag && 3 !== a.tag && 18 !== a.tag;)a = a["return"];
                xg = a;
            }
            function Eg(a) {
                if (a !== xg) return false;
                if (!zg) return Dg(a), zg = true, false;
                var b = a.type;
                if (5 !== a.tag || "head" !== b && "body" !== b && !xe(b, a.memoizedProps)) for(b = yg; b;)Ag(a, b), b = De(b);
                Dg(a);
                yg = xg ? De(a.stateNode) : null;
                return true;
            }
            function Fg() {
                yg = xg = null;
                zg = false;
            }
            var Gg = Tb.ReactCurrentOwner;
            var qg = false;
            function S(a, b, c, d) {
                b.child = null === a ? Ef(b, null, c, d) : Df(b, a.child, c, d);
            }
            function Hg(a, b, c, d, e) {
                c = c.render;
                var f = b.ref;
                Ig(b, e);
                d = hg(a, b, c, d, f, e);
                if (null !== a && !qg) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), Jg(a, b, e);
                b.effectTag |= 1;
                S(a, b, d, e);
                return b.child;
            }
            function Kg(a, b, c, d, e, f) {
                if (null === a) {
                    var g = c.type;
                    if ("function" === typeof g && !Ve(g) && void 0 === g.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = g, Lg(a, b, g, d, e, f);
                    a = Ye(c.type, null, d, null, b.mode, f);
                    a.ref = b.ref;
                    a["return"] = b;
                    return b.child = a;
                }
                g = a.child;
                if (e < f && (e = g.memoizedProps, c = c.compare, c = null !== c ? c : dd, c(e, d) && a.ref === b.ref)) return Jg(a, b, f);
                b.effectTag |= 1;
                a = Xe(g, d, f);
                a.ref = b.ref;
                a["return"] = b;
                return b.child = a;
            }
            function Lg(a, b, c, d, e, f) {
                return null !== a && dd(a.memoizedProps, d) && a.ref === b.ref && (qg = false, e < f) ? Jg(a, b, f) : Mg(a, b, c, d, f);
            }
            function Ng(a, b) {
                var c = b.ref;
                if (null === a && null !== c || null !== a && a.ref !== c) b.effectTag |= 128;
            }
            function Mg(a, b, c, d, e) {
                var f = J(c) ? Ie : H.current;
                f = Je(b, f);
                Ig(b, e);
                c = hg(a, b, c, d, f, e);
                if (null !== a && !qg) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), Jg(a, b, e);
                b.effectTag |= 1;
                S(a, b, c, e);
                return b.child;
            }
            function Og(a, b, c, d, e) {
                if (J(c)) {
                    var f = true;
                    Oe(b);
                } else f = false;
                Ig(b, e);
                if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), vf(b, c, d, e), xf(b, c, d, e), d = true;
                else if (null === a) {
                    var g = b.stateNode, h = b.memoizedProps;
                    g.props = h;
                    var l = g.context, k = c.contextType;
                    "object" === (typeof k === "undefined" ? "undefined" : _type_of(k)) && null !== k ? k = M(k) : (k = J(c) ? Ie : H.current, k = Je(b, k));
                    var m = c.getDerivedStateFromProps, p = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate;
                    p || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || l !== k) && wf(b, g, d, k);
                    Pg = false;
                    var t = b.memoizedState;
                    l = g.state = t;
                    var A = b.updateQueue;
                    null !== A && (yf(b, A, d, g, e), l = b.memoizedState);
                    h !== d || t !== l || I.current || Pg ? ("function" === typeof m && (kf(b, c, m, d), l = b.memoizedState), (h = Pg || uf(b, c, h, d, t, l, k)) ? (p || "function" !== typeof g.UNSAFE_componentWillMount && "function" !== typeof g.componentWillMount || ("function" === typeof g.componentWillMount && g.componentWillMount(), "function" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), "function" === typeof g.componentDidMount && (b.effectTag |= 4)) : ("function" === typeof g.componentDidMount && (b.effectTag |= 4), b.memoizedProps = d, b.memoizedState = l), g.props = d, g.state = l, g.context = k, d = h) : ("function" === typeof g.componentDidMount && (b.effectTag |= 4), d = false);
                } else g = b.stateNode, h = b.memoizedProps, g.props = b.type === b.elementType ? h : L(b.type, h), l = g.context, k = c.contextType, "object" === (typeof k === "undefined" ? "undefined" : _type_of(k)) && null !== k ? k = M(k) : (k = J(c) ? Ie : H.current, k = Je(b, k)), m = c.getDerivedStateFromProps, (p = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate) || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || l !== k) && wf(b, g, d, k), Pg = false, l = b.memoizedState, t = g.state = l, A = b.updateQueue, null !== A && (yf(b, A, d, g, e), t = b.memoizedState), h !== d || l !== t || I.current || Pg ? ("function" === typeof m && (kf(b, c, m, d), t = b.memoizedState), (m = Pg || uf(b, c, h, d, l, t, k)) ? (p || "function" !== typeof g.UNSAFE_componentWillUpdate && "function" !== typeof g.componentWillUpdate || ("function" === typeof g.componentWillUpdate && g.componentWillUpdate(d, t, k), "function" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, t, k)), "function" === typeof g.componentDidUpdate && (b.effectTag |= 4), "function" === typeof g.getSnapshotBeforeUpdate && (b.effectTag |= 256)) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && l === a.memoizedState || (b.effectTag |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && l === a.memoizedState || (b.effectTag |= 256), b.memoizedProps = d, b.memoizedState = t), g.props = d, g.state = t, g.context = k, d = m) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && l === a.memoizedState || (b.effectTag |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && l === a.memoizedState || (b.effectTag |= 256), d = false);
                return Qg(a, b, c, d, f, e);
            }
            function Qg(a, b, c, d, e, f) {
                Ng(a, b);
                var g = 0 !== (b.effectTag & 64);
                if (!d && !g) return e && Pe(b, c, false), Jg(a, b, f);
                d = b.stateNode;
                Gg.current = b;
                var h = g && "function" !== typeof c.getDerivedStateFromError ? null : d.render();
                b.effectTag |= 1;
                null !== a && g ? (b.child = Df(b, a.child, null, f), b.child = Df(b, null, h, f)) : S(a, b, h, f);
                b.memoizedState = d.state;
                e && Pe(b, c, true);
                return b.child;
            }
            function Rg(a) {
                var b = a.stateNode;
                b.pendingContext ? Me(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Me(a, b.context, false);
                Jf(a, b.containerInfo);
            }
            function Sg(a, b, c) {
                var d = b.mode, e = b.pendingProps, f = b.memoizedState;
                if (0 === (b.effectTag & 64)) {
                    f = null;
                    var g = false;
                } else f = {
                    timedOutAt: null !== f ? f.timedOutAt : 0
                }, g = true, b.effectTag &= -65;
                if (null === a) if (g) {
                    var h = e.fallback;
                    a = Ze(null, d, 0, null);
                    0 === (b.mode & 1) && (a.child = null !== b.memoizedState ? b.child.child : b.child);
                    d = Ze(h, d, c, null);
                    a.sibling = d;
                    c = a;
                    c["return"] = d["return"] = b;
                } else c = d = Ef(b, null, e.children, c);
                else null !== a.memoizedState ? (d = a.child, h = d.sibling, g ? (c = e.fallback, e = Xe(d, d.pendingProps, 0), 0 === (b.mode & 1) && (g = null !== b.memoizedState ? b.child.child : b.child, g !== d.child && (e.child = g)), d = e.sibling = Xe(h, c, h.expirationTime), c = e, e.childExpirationTime = 0, c["return"] = d["return"] = b) : c = d = Df(b, d.child, e.children, c)) : (h = a.child, g ? (g = e.fallback, e = Ze(null, d, 0, null), e.child = h, 0 === (b.mode & 1) && (e.child = null !== b.memoizedState ? b.child.child : b.child), d = e.sibling = Ze(g, d, c, null), d.effectTag |= 2, c = e, e.childExpirationTime = 0, c["return"] = d["return"] = b) : d = c = Df(b, h, e.children, c)), b.stateNode = a.stateNode;
                b.memoizedState = f;
                b.child = c;
                return d;
            }
            function Jg(a, b, c) {
                null !== a && (b.contextDependencies = a.contextDependencies);
                if (b.childExpirationTime < c) return null;
                null !== a && b.child !== a.child ? x("153") : void 0;
                if (null !== b.child) {
                    a = b.child;
                    c = Xe(a, a.pendingProps, a.expirationTime);
                    b.child = c;
                    for(c["return"] = b; null !== a.sibling;)a = a.sibling, c = c.sibling = Xe(a, a.pendingProps, a.expirationTime), c["return"] = b;
                    c.sibling = null;
                }
                return b.child;
            }
            function Tg(a, b, c) {
                var d = b.expirationTime;
                if (null !== a) if (a.memoizedProps !== b.pendingProps || I.current) qg = true;
                else {
                    if (d < c) {
                        qg = false;
                        switch(b.tag){
                            case 3:
                                Rg(b);
                                Fg();
                                break;
                            case 5:
                                Lf(b);
                                break;
                            case 1:
                                J(b.type) && Oe(b);
                                break;
                            case 4:
                                Jf(b, b.stateNode.containerInfo);
                                break;
                            case 10:
                                Ug(b, b.memoizedProps.value);
                                break;
                            case 13:
                                if (null !== b.memoizedState) {
                                    d = b.child.childExpirationTime;
                                    if (0 !== d && d >= c) return Sg(a, b, c);
                                    b = Jg(a, b, c);
                                    return null !== b ? b.sibling : null;
                                }
                        }
                        return Jg(a, b, c);
                    }
                }
                else qg = false;
                b.expirationTime = 0;
                switch(b.tag){
                    case 2:
                        d = b.elementType;
                        null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2);
                        a = b.pendingProps;
                        var e = Je(b, H.current);
                        Ig(b, c);
                        e = hg(null, b, d, a, e, c);
                        b.effectTag |= 1;
                        if ("object" === (typeof e === "undefined" ? "undefined" : _type_of(e)) && null !== e && "function" === typeof e.render && void 0 === e.$$typeof) {
                            b.tag = 1;
                            lg();
                            if (J(d)) {
                                var f = true;
                                Oe(b);
                            } else f = false;
                            b.memoizedState = null !== e.state && void 0 !== e.state ? e.state : null;
                            var g = d.getDerivedStateFromProps;
                            "function" === typeof g && kf(b, d, g, a);
                            e.updater = tf;
                            b.stateNode = e;
                            e._reactInternalFiber = b;
                            xf(b, d, a, c);
                            b = Qg(null, b, d, true, f, c);
                        } else b.tag = 0, S(null, b, e, c), b = b.child;
                        return b;
                    case 16:
                        e = b.elementType;
                        null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2);
                        f = b.pendingProps;
                        a = hf(e);
                        b.type = a;
                        e = b.tag = We(a);
                        f = L(a, f);
                        g = void 0;
                        switch(e){
                            case 0:
                                g = Mg(null, b, a, f, c);
                                break;
                            case 1:
                                g = Og(null, b, a, f, c);
                                break;
                            case 11:
                                g = Hg(null, b, a, f, c);
                                break;
                            case 14:
                                g = Kg(null, b, a, L(a.type, f), d, c);
                                break;
                            default:
                                x("306", a, "");
                        }
                        return g;
                    case 0:
                        return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : L(d, e), Mg(a, b, d, e, c);
                    case 1:
                        return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : L(d, e), Og(a, b, d, e, c);
                    case 3:
                        Rg(b);
                        d = b.updateQueue;
                        null === d ? x("282") : void 0;
                        e = b.memoizedState;
                        e = null !== e ? e.element : null;
                        yf(b, d, b.pendingProps, null, c);
                        d = b.memoizedState.element;
                        if (d === e) Fg(), b = Jg(a, b, c);
                        else {
                            e = b.stateNode;
                            if (e = (null === a || null === a.child) && e.hydrate) yg = Ee(b.stateNode.containerInfo), xg = b, e = zg = true;
                            e ? (b.effectTag |= 2, b.child = Ef(b, null, d, c)) : (S(a, b, d, c), Fg());
                            b = b.child;
                        }
                        return b;
                    case 5:
                        return Lf(b), null === a && Cg(b), d = b.type, e = b.pendingProps, f = null !== a ? a.memoizedProps : null, g = e.children, xe(d, e) ? g = null : null !== f && xe(d, f) && (b.effectTag |= 16), Ng(a, b), 1 !== c && b.mode & 1 && e.hidden ? (b.expirationTime = b.childExpirationTime = 1, b = null) : (S(a, b, g, c), b = b.child), b;
                    case 6:
                        return null === a && Cg(b), null;
                    case 13:
                        return Sg(a, b, c);
                    case 4:
                        return Jf(b, b.stateNode.containerInfo), d = b.pendingProps, null === a ? b.child = Df(b, null, d, c) : S(a, b, d, c), b.child;
                    case 11:
                        return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : L(d, e), Hg(a, b, d, e, c);
                    case 7:
                        return S(a, b, b.pendingProps, c), b.child;
                    case 8:
                        return S(a, b, b.pendingProps.children, c), b.child;
                    case 12:
                        return S(a, b, b.pendingProps.children, c), b.child;
                    case 10:
                        a: {
                            d = b.type._context;
                            e = b.pendingProps;
                            g = b.memoizedProps;
                            f = e.value;
                            Ug(b, f);
                            if (null !== g) {
                                var h = g.value;
                                f = bd(h, f) ? 0 : ("function" === typeof d._calculateChangedBits ? d._calculateChangedBits(h, f) : 1073741823) | 0;
                                if (0 === f) {
                                    if (g.children === e.children && !I.current) {
                                        b = Jg(a, b, c);
                                        break a;
                                    }
                                } else for(h = b.child, null !== h && (h["return"] = b); null !== h;){
                                    var l = h.contextDependencies;
                                    if (null !== l) {
                                        g = h.child;
                                        for(var k = l.first; null !== k;){
                                            if (k.context === d && 0 !== (k.observedBits & f)) {
                                                1 === h.tag && (k = nf(c), k.tag = sf, pf(h, k));
                                                h.expirationTime < c && (h.expirationTime = c);
                                                k = h.alternate;
                                                null !== k && k.expirationTime < c && (k.expirationTime = c);
                                                k = c;
                                                for(var m = h["return"]; null !== m;){
                                                    var p = m.alternate;
                                                    if (m.childExpirationTime < k) m.childExpirationTime = k, null !== p && p.childExpirationTime < k && (p.childExpirationTime = k);
                                                    else if (null !== p && p.childExpirationTime < k) p.childExpirationTime = k;
                                                    else break;
                                                    m = m["return"];
                                                }
                                                l.expirationTime < c && (l.expirationTime = c);
                                                break;
                                            }
                                            k = k.next;
                                        }
                                    } else g = 10 === h.tag ? h.type === b.type ? null : h.child : h.child;
                                    if (null !== g) g["return"] = h;
                                    else for(g = h; null !== g;){
                                        if (g === b) {
                                            g = null;
                                            break;
                                        }
                                        h = g.sibling;
                                        if (null !== h) {
                                            h["return"] = g["return"];
                                            g = h;
                                            break;
                                        }
                                        g = g["return"];
                                    }
                                    h = g;
                                }
                            }
                            S(a, b, e.children, c);
                            b = b.child;
                        }
                        return b;
                    case 9:
                        return e = b.type, f = b.pendingProps, d = f.children, Ig(b, c), e = M(e, f.unstable_observedBits), d = d(e), b.effectTag |= 1, S(a, b, d, c), b.child;
                    case 14:
                        return e = b.type, f = L(e, b.pendingProps), f = L(e.type, f), Kg(a, b, e, f, d, c);
                    case 15:
                        return Lg(a, b, b.type, b.pendingProps, d, c);
                    case 17:
                        return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : L(d, e), null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), b.tag = 1, J(d) ? (a = true, Oe(b)) : a = false, Ig(b, c), vf(b, d, e, c), xf(b, d, e, c), Qg(null, b, d, true, a, c);
                }
                x("156");
            }
            var Vg = {
                current: null
            };
            var Wg = null;
            var Xg = null;
            var Yg = null;
            function Ug(a, b) {
                var c = a.type._context;
                G(Vg, c._currentValue, a);
                c._currentValue = b;
            }
            function Zg(a) {
                var b = Vg.current;
                F(Vg, a);
                a.type._context._currentValue = b;
            }
            function Ig(a, b) {
                Wg = a;
                Yg = Xg = null;
                var c = a.contextDependencies;
                null !== c && c.expirationTime >= b && (qg = true);
                a.contextDependencies = null;
            }
            function M(a, b) {
                if (Yg !== a && false !== b && 0 !== b) {
                    if ("number" !== typeof b || 1073741823 === b) Yg = a, b = 1073741823;
                    b = {
                        context: a,
                        observedBits: b,
                        next: null
                    };
                    null === Xg ? (null === Wg ? x("308") : void 0, Xg = b, Wg.contextDependencies = {
                        first: b,
                        expirationTime: 0
                    }) : Xg = Xg.next = b;
                }
                return a._currentValue;
            }
            var $g = 0;
            var rf = 1;
            var sf = 2;
            var ah = 3;
            var Pg = false;
            function bh(a) {
                return {
                    baseState: a,
                    firstUpdate: null,
                    lastUpdate: null,
                    firstCapturedUpdate: null,
                    lastCapturedUpdate: null,
                    firstEffect: null,
                    lastEffect: null,
                    firstCapturedEffect: null,
                    lastCapturedEffect: null
                };
            }
            function ch(a) {
                return {
                    baseState: a.baseState,
                    firstUpdate: a.firstUpdate,
                    lastUpdate: a.lastUpdate,
                    firstCapturedUpdate: null,
                    lastCapturedUpdate: null,
                    firstEffect: null,
                    lastEffect: null,
                    firstCapturedEffect: null,
                    lastCapturedEffect: null
                };
            }
            function nf(a) {
                return {
                    expirationTime: a,
                    tag: $g,
                    payload: null,
                    callback: null,
                    next: null,
                    nextEffect: null
                };
            }
            function dh(a, b) {
                null === a.lastUpdate ? a.firstUpdate = a.lastUpdate = b : (a.lastUpdate.next = b, a.lastUpdate = b);
            }
            function pf(a, b) {
                var c = a.alternate;
                if (null === c) {
                    var d = a.updateQueue;
                    var e = null;
                    null === d && (d = a.updateQueue = bh(a.memoizedState));
                } else d = a.updateQueue, e = c.updateQueue, null === d ? null === e ? (d = a.updateQueue = bh(a.memoizedState), e = c.updateQueue = bh(c.memoizedState)) : d = a.updateQueue = ch(e) : null === e && (e = c.updateQueue = ch(d));
                null === e || d === e ? dh(d, b) : null === d.lastUpdate || null === e.lastUpdate ? (dh(d, b), dh(e, b)) : (dh(d, b), e.lastUpdate = b);
            }
            function eh(a, b) {
                var c = a.updateQueue;
                c = null === c ? a.updateQueue = bh(a.memoizedState) : fh(a, c);
                null === c.lastCapturedUpdate ? c.firstCapturedUpdate = c.lastCapturedUpdate = b : (c.lastCapturedUpdate.next = b, c.lastCapturedUpdate = b);
            }
            function fh(a, b) {
                var c = a.alternate;
                null !== c && b === c.updateQueue && (b = a.updateQueue = ch(b));
                return b;
            }
            function gh(a, b, c, d, e, f) {
                switch(c.tag){
                    case rf:
                        return a = c.payload, "function" === typeof a ? a.call(f, d, e) : a;
                    case ah:
                        a.effectTag = a.effectTag & -2049 | 64;
                    case $g:
                        a = c.payload;
                        e = "function" === typeof a ? a.call(f, d, e) : a;
                        if (null === e || void 0 === e) break;
                        return n({}, d, e);
                    case sf:
                        Pg = true;
                }
                return d;
            }
            function yf(a, b, c, d, e) {
                Pg = false;
                b = fh(a, b);
                for(var f = b.baseState, g = null, h = 0, l = b.firstUpdate, k = f; null !== l;){
                    var m = l.expirationTime;
                    m < e ? (null === g && (g = l, f = k), h < m && (h = m)) : (k = gh(a, b, l, k, c, d), null !== l.callback && (a.effectTag |= 32, l.nextEffect = null, null === b.lastEffect ? b.firstEffect = b.lastEffect = l : (b.lastEffect.nextEffect = l, b.lastEffect = l)));
                    l = l.next;
                }
                m = null;
                for(l = b.firstCapturedUpdate; null !== l;){
                    var p = l.expirationTime;
                    p < e ? (null === m && (m = l, null === g && (f = k)), h < p && (h = p)) : (k = gh(a, b, l, k, c, d), null !== l.callback && (a.effectTag |= 32, l.nextEffect = null, null === b.lastCapturedEffect ? b.firstCapturedEffect = b.lastCapturedEffect = l : (b.lastCapturedEffect.nextEffect = l, b.lastCapturedEffect = l)));
                    l = l.next;
                }
                null === g && (b.lastUpdate = null);
                null === m ? b.lastCapturedUpdate = null : a.effectTag |= 32;
                null === g && null === m && (f = k);
                b.baseState = f;
                b.firstUpdate = g;
                b.firstCapturedUpdate = m;
                a.expirationTime = h;
                a.memoizedState = k;
            }
            function hh(a, b, c) {
                null !== b.firstCapturedUpdate && (null !== b.lastUpdate && (b.lastUpdate.next = b.firstCapturedUpdate, b.lastUpdate = b.lastCapturedUpdate), b.firstCapturedUpdate = b.lastCapturedUpdate = null);
                ih(b.firstEffect, c);
                b.firstEffect = b.lastEffect = null;
                ih(b.firstCapturedEffect, c);
                b.firstCapturedEffect = b.lastCapturedEffect = null;
            }
            function ih(a, b) {
                for(; null !== a;){
                    var c = a.callback;
                    if (null !== c) {
                        a.callback = null;
                        var d = b;
                        "function" !== typeof c ? x("191", c) : void 0;
                        c.call(d);
                    }
                    a = a.nextEffect;
                }
            }
            function jh(a, b) {
                return {
                    value: a,
                    source: b,
                    stack: jc(b)
                };
            }
            function kh(a) {
                a.effectTag |= 4;
            }
            var lh = void 0;
            var mh = void 0;
            var nh = void 0;
            var oh = void 0;
            lh = function lh(a, b) {
                for(var c = b.child; null !== c;){
                    if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);
                    else if (4 !== c.tag && null !== c.child) {
                        c.child["return"] = c;
                        c = c.child;
                        continue;
                    }
                    if (c === b) break;
                    for(; null === c.sibling;){
                        if (null === c["return"] || c["return"] === b) return;
                        c = c["return"];
                    }
                    c.sibling["return"] = c["return"];
                    c = c.sibling;
                }
            };
            mh = function mh() {};
            nh = function nh(a, b, c, d, e) {
                var f = a.memoizedProps;
                if (f !== d) {
                    var g = b.stateNode;
                    If(N.current);
                    a = null;
                    switch(c){
                        case "input":
                            f = vc(g, f);
                            d = vc(g, d);
                            a = [];
                            break;
                        case "option":
                            f = $d(g, f);
                            d = $d(g, d);
                            a = [];
                            break;
                        case "select":
                            f = n({}, f, {
                                value: void 0
                            });
                            d = n({}, d, {
                                value: void 0
                            });
                            a = [];
                            break;
                        case "textarea":
                            f = be(g, f);
                            d = be(g, d);
                            a = [];
                            break;
                        default:
                            "function" !== typeof f.onClick && "function" === typeof d.onClick && (g.onclick = te);
                    }
                    qe(c, d);
                    g = c = void 0;
                    var h = null;
                    for(c in f)if (!d.hasOwnProperty(c) && f.hasOwnProperty(c) && null != f[c]) if ("style" === c) {
                        var l = f[c];
                        for(g in l)l.hasOwnProperty(g) && (h || (h = {}), h[g] = "");
                    } else "dangerouslySetInnerHTML" !== c && "children" !== c && "suppressContentEditableWarning" !== c && "suppressHydrationWarning" !== c && "autoFocus" !== c && (ra.hasOwnProperty(c) ? a || (a = []) : (a = a || []).push(c, null));
                    for(c in d){
                        var k = d[c];
                        l = null != f ? f[c] : void 0;
                        if (d.hasOwnProperty(c) && k !== l && (null != k || null != l)) if ("style" === c) if (l) {
                            for(g in l)!l.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (h || (h = {}), h[g] = "");
                            for(g in k)k.hasOwnProperty(g) && l[g] !== k[g] && (h || (h = {}), h[g] = k[g]);
                        } else h || (a || (a = []), a.push(c, h)), h = k;
                        else "dangerouslySetInnerHTML" === c ? (k = k ? k.__html : void 0, l = l ? l.__html : void 0, null != k && l !== k && (a = a || []).push(c, "" + k)) : "children" === c ? l === k || "string" !== typeof k && "number" !== typeof k || (a = a || []).push(c, "" + k) : "suppressContentEditableWarning" !== c && "suppressHydrationWarning" !== c && (ra.hasOwnProperty(c) ? (null != k && se(e, c), a || l === k || (a = [])) : (a = a || []).push(c, k));
                    }
                    h && (a = a || []).push("style", h);
                    e = a;
                    (b.updateQueue = e) && kh(b);
                }
            };
            oh = function oh(a, b, c, d) {
                c !== d && kh(b);
            };
            var ph = "function" === typeof WeakSet ? WeakSet : Set;
            function qh(a, b) {
                var c = b.source, d = b.stack;
                null === d && null !== c && (d = jc(c));
                null !== c && ic(c.type);
                b = b.value;
                null !== a && 1 === a.tag && ic(a.type);
                try {
                    console.error(b);
                } catch (e) {
                    setTimeout(function() {
                        throw e;
                    });
                }
            }
            function rh(a) {
                var b = a.ref;
                if (null !== b) if ("function" === typeof b) try {
                    b(null);
                } catch (c) {
                    sh(a, c);
                }
                else b.current = null;
            }
            function th(a, b, c) {
                c = c.updateQueue;
                c = null !== c ? c.lastEffect : null;
                if (null !== c) {
                    var d = c = c.next;
                    do {
                        if ((d.tag & a) !== Nf) {
                            var e = d.destroy;
                            d.destroy = void 0;
                            void 0 !== e && e();
                        }
                        (d.tag & b) !== Nf && (e = d.create, d.destroy = e());
                        d = d.next;
                    }while (d !== c);
                }
            }
            function uh(a, b) {
                for(var c = a;;){
                    if (5 === c.tag) {
                        var d = c.stateNode;
                        if (b) d.style.display = "none";
                        else {
                            d = c.stateNode;
                            var e = c.memoizedProps.style;
                            e = void 0 !== e && null !== e && e.hasOwnProperty("display") ? e.display : null;
                            d.style.display = ne("display", e);
                        }
                    } else if (6 === c.tag) c.stateNode.nodeValue = b ? "" : c.memoizedProps;
                    else if (13 === c.tag && null !== c.memoizedState) {
                        d = c.child.sibling;
                        d["return"] = c;
                        c = d;
                        continue;
                    } else if (null !== c.child) {
                        c.child["return"] = c;
                        c = c.child;
                        continue;
                    }
                    if (c === a) break;
                    for(; null === c.sibling;){
                        if (null === c["return"] || c["return"] === a) return;
                        c = c["return"];
                    }
                    c.sibling["return"] = c["return"];
                    c = c.sibling;
                }
            }
            function vh(a) {
                "function" === typeof Re && Re(a);
                switch(a.tag){
                    case 0:
                    case 11:
                    case 14:
                    case 15:
                        var b = a.updateQueue;
                        if (null !== b && (b = b.lastEffect, null !== b)) {
                            var c = b = b.next;
                            do {
                                var d = c.destroy;
                                if (void 0 !== d) {
                                    var e = a;
                                    try {
                                        d();
                                    } catch (f) {
                                        sh(e, f);
                                    }
                                }
                                c = c.next;
                            }while (c !== b);
                        }
                        break;
                    case 1:
                        rh(a);
                        b = a.stateNode;
                        if ("function" === typeof b.componentWillUnmount) try {
                            b.props = a.memoizedProps, b.state = a.memoizedState, b.componentWillUnmount();
                        } catch (f) {
                            sh(a, f);
                        }
                        break;
                    case 5:
                        rh(a);
                        break;
                    case 4:
                        wh(a);
                }
            }
            function xh(a) {
                return 5 === a.tag || 3 === a.tag || 4 === a.tag;
            }
            function yh(a) {
                a: {
                    for(var b = a["return"]; null !== b;){
                        if (xh(b)) {
                            var c = b;
                            break a;
                        }
                        b = b["return"];
                    }
                    x("160");
                    c = void 0;
                }
                var d = b = void 0;
                switch(c.tag){
                    case 5:
                        b = c.stateNode;
                        d = false;
                        break;
                    case 3:
                        b = c.stateNode.containerInfo;
                        d = true;
                        break;
                    case 4:
                        b = c.stateNode.containerInfo;
                        d = true;
                        break;
                    default:
                        x("161");
                }
                c.effectTag & 16 && (ke(b, ""), c.effectTag &= -17);
                a: b: for(c = a;;){
                    for(; null === c.sibling;){
                        if (null === c["return"] || xh(c["return"])) {
                            c = null;
                            break a;
                        }
                        c = c["return"];
                    }
                    c.sibling["return"] = c["return"];
                    for(c = c.sibling; 5 !== c.tag && 6 !== c.tag && 18 !== c.tag;){
                        if (c.effectTag & 2) continue b;
                        if (null === c.child || 4 === c.tag) continue b;
                        else c.child["return"] = c, c = c.child;
                    }
                    if (!(c.effectTag & 2)) {
                        c = c.stateNode;
                        break a;
                    }
                }
                for(var e = a;;){
                    if (5 === e.tag || 6 === e.tag) if (c) if (d) {
                        var f = b, g = e.stateNode, h = c;
                        8 === f.nodeType ? f.parentNode.insertBefore(g, h) : f.insertBefore(g, h);
                    } else b.insertBefore(e.stateNode, c);
                    else d ? (g = b, h = e.stateNode, 8 === g.nodeType ? (f = g.parentNode, f.insertBefore(h, g)) : (f = g, f.appendChild(h)), g = g._reactRootContainer, null !== g && void 0 !== g || null !== f.onclick || (f.onclick = te)) : b.appendChild(e.stateNode);
                    else if (4 !== e.tag && null !== e.child) {
                        e.child["return"] = e;
                        e = e.child;
                        continue;
                    }
                    if (e === a) break;
                    for(; null === e.sibling;){
                        if (null === e["return"] || e["return"] === a) return;
                        e = e["return"];
                    }
                    e.sibling["return"] = e["return"];
                    e = e.sibling;
                }
            }
            function wh(a) {
                for(var b = a, c = false, d = void 0, e = void 0;;){
                    if (!c) {
                        c = b["return"];
                        a: for(;;){
                            null === c ? x("160") : void 0;
                            switch(c.tag){
                                case 5:
                                    d = c.stateNode;
                                    e = false;
                                    break a;
                                case 3:
                                    d = c.stateNode.containerInfo;
                                    e = true;
                                    break a;
                                case 4:
                                    d = c.stateNode.containerInfo;
                                    e = true;
                                    break a;
                            }
                            c = c["return"];
                        }
                        c = true;
                    }
                    if (5 === b.tag || 6 === b.tag) {
                        a: for(var f = b, g = f;;)if (vh(g), null !== g.child && 4 !== g.tag) g.child["return"] = g, g = g.child;
                        else {
                            if (g === f) break;
                            for(; null === g.sibling;){
                                if (null === g["return"] || g["return"] === f) break a;
                                g = g["return"];
                            }
                            g.sibling["return"] = g["return"];
                            g = g.sibling;
                        }
                        e ? (f = d, g = b.stateNode, 8 === f.nodeType ? f.parentNode.removeChild(g) : f.removeChild(g)) : d.removeChild(b.stateNode);
                    } else if (4 === b.tag) {
                        if (null !== b.child) {
                            d = b.stateNode.containerInfo;
                            e = true;
                            b.child["return"] = b;
                            b = b.child;
                            continue;
                        }
                    } else if (vh(b), null !== b.child) {
                        b.child["return"] = b;
                        b = b.child;
                        continue;
                    }
                    if (b === a) break;
                    for(; null === b.sibling;){
                        if (null === b["return"] || b["return"] === a) return;
                        b = b["return"];
                        4 === b.tag && (c = false);
                    }
                    b.sibling["return"] = b["return"];
                    b = b.sibling;
                }
            }
            function zh(a, b) {
                switch(b.tag){
                    case 0:
                    case 11:
                    case 14:
                    case 15:
                        th(Pf, Qf, b);
                        break;
                    case 1:
                        break;
                    case 5:
                        var c = b.stateNode;
                        if (null != c) {
                            var d = b.memoizedProps;
                            a = null !== a ? a.memoizedProps : d;
                            var e = b.type, f = b.updateQueue;
                            b.updateQueue = null;
                            null !== f && Ce(c, f, e, a, d, b);
                        }
                        break;
                    case 6:
                        null === b.stateNode ? x("162") : void 0;
                        b.stateNode.nodeValue = b.memoizedProps;
                        break;
                    case 3:
                        break;
                    case 12:
                        break;
                    case 13:
                        c = b.memoizedState;
                        d = void 0;
                        a = b;
                        null === c ? d = false : (d = true, a = b.child, 0 === c.timedOutAt && (c.timedOutAt = lf()));
                        null !== a && uh(a, d);
                        c = b.updateQueue;
                        if (null !== c) {
                            b.updateQueue = null;
                            var g = b.stateNode;
                            null === g && (g = b.stateNode = new ph());
                            c.forEach(function(a2) {
                                var c2 = Ah.bind(null, b, a2);
                                g.has(a2) || (g.add(a2), a2.then(c2, c2));
                            });
                        }
                        break;
                    case 17:
                        break;
                    default:
                        x("163");
                }
            }
            var Bh = "function" === typeof WeakMap ? WeakMap : Map;
            function Ch(a, b, c) {
                c = nf(c);
                c.tag = ah;
                c.payload = {
                    element: null
                };
                var d = b.value;
                c.callback = function() {
                    Dh(d);
                    qh(a, b);
                };
                return c;
            }
            function Eh(a, b, c) {
                c = nf(c);
                c.tag = ah;
                var d = a.type.getDerivedStateFromError;
                if ("function" === typeof d) {
                    var e = b.value;
                    c.payload = function() {
                        return d(e);
                    };
                }
                var f = a.stateNode;
                null !== f && "function" === typeof f.componentDidCatch && (c.callback = function() {
                    "function" !== typeof d && (null === Fh ? Fh = /* @__PURE__ */ new Set([
                        this
                    ]) : Fh.add(this));
                    var c2 = b.value, e2 = b.stack;
                    qh(a, b);
                    this.componentDidCatch(c2, {
                        componentStack: null !== e2 ? e2 : ""
                    });
                });
                return c;
            }
            function Gh(a) {
                switch(a.tag){
                    case 1:
                        J(a.type) && Ke(a);
                        var b = a.effectTag;
                        return b & 2048 ? (a.effectTag = b & -2049 | 64, a) : null;
                    case 3:
                        return Kf(a), Le(a), b = a.effectTag, 0 !== (b & 64) ? x("285") : void 0, a.effectTag = b & -2049 | 64, a;
                    case 5:
                        return Mf(a), null;
                    case 13:
                        return b = a.effectTag, b & 2048 ? (a.effectTag = b & -2049 | 64, a) : null;
                    case 18:
                        return null;
                    case 4:
                        return Kf(a), null;
                    case 10:
                        return Zg(a), null;
                    default:
                        return null;
                }
            }
            var Hh = Tb.ReactCurrentDispatcher;
            var Ih = Tb.ReactCurrentOwner;
            var Jh = 1073741822;
            var Kh = false;
            var T = null;
            var Lh = null;
            var U = 0;
            var Mh = -1;
            var Nh = false;
            var V = null;
            var Oh = false;
            var Ph = null;
            var Qh = null;
            var Rh = null;
            var Fh = null;
            function Sh() {
                if (null !== T) for(var a = T["return"]; null !== a;){
                    var b = a;
                    switch(b.tag){
                        case 1:
                            var c = b.type.childContextTypes;
                            null !== c && void 0 !== c && Ke(b);
                            break;
                        case 3:
                            Kf(b);
                            Le(b);
                            break;
                        case 5:
                            Mf(b);
                            break;
                        case 4:
                            Kf(b);
                            break;
                        case 10:
                            Zg(b);
                    }
                    a = a["return"];
                }
                Lh = null;
                U = 0;
                Mh = -1;
                Nh = false;
                T = null;
            }
            function Th() {
                for(; null !== V;){
                    var a = V.effectTag;
                    a & 16 && ke(V.stateNode, "");
                    if (a & 128) {
                        var b = V.alternate;
                        null !== b && (b = b.ref, null !== b && ("function" === typeof b ? b(null) : b.current = null));
                    }
                    switch(a & 14){
                        case 2:
                            yh(V);
                            V.effectTag &= -3;
                            break;
                        case 6:
                            yh(V);
                            V.effectTag &= -3;
                            zh(V.alternate, V);
                            break;
                        case 4:
                            zh(V.alternate, V);
                            break;
                        case 8:
                            a = V, wh(a), a["return"] = null, a.child = null, a.memoizedState = null, a.updateQueue = null, a = a.alternate, null !== a && (a["return"] = null, a.child = null, a.memoizedState = null, a.updateQueue = null);
                    }
                    V = V.nextEffect;
                }
            }
            function Uh() {
                for(; null !== V;){
                    if (V.effectTag & 256) a: {
                        var a = V.alternate, b = V;
                        switch(b.tag){
                            case 0:
                            case 11:
                            case 15:
                                th(Of, Nf, b);
                                break a;
                            case 1:
                                if (b.effectTag & 256 && null !== a) {
                                    var c = a.memoizedProps, d = a.memoizedState;
                                    a = b.stateNode;
                                    b = a.getSnapshotBeforeUpdate(b.elementType === b.type ? c : L(b.type, c), d);
                                    a.__reactInternalSnapshotBeforeUpdate = b;
                                }
                                break a;
                            case 3:
                            case 5:
                            case 6:
                            case 4:
                            case 17:
                                break a;
                            default:
                                x("163");
                        }
                    }
                    V = V.nextEffect;
                }
            }
            function Vh(a, b) {
                for(; null !== V;){
                    var c = V.effectTag;
                    if (c & 36) {
                        var d = V.alternate, e = V, f = b;
                        switch(e.tag){
                            case 0:
                            case 11:
                            case 15:
                                th(Rf, Sf, e);
                                break;
                            case 1:
                                var g = e.stateNode;
                                if (e.effectTag & 4) if (null === d) g.componentDidMount();
                                else {
                                    var h = e.elementType === e.type ? d.memoizedProps : L(e.type, d.memoizedProps);
                                    g.componentDidUpdate(h, d.memoizedState, g.__reactInternalSnapshotBeforeUpdate);
                                }
                                d = e.updateQueue;
                                null !== d && hh(e, d, g, f);
                                break;
                            case 3:
                                d = e.updateQueue;
                                if (null !== d) {
                                    g = null;
                                    if (null !== e.child) switch(e.child.tag){
                                        case 5:
                                            g = e.child.stateNode;
                                            break;
                                        case 1:
                                            g = e.child.stateNode;
                                    }
                                    hh(e, d, g, f);
                                }
                                break;
                            case 5:
                                f = e.stateNode;
                                null === d && e.effectTag & 4 && we(e.type, e.memoizedProps) && f.focus();
                                break;
                            case 6:
                                break;
                            case 4:
                                break;
                            case 12:
                                break;
                            case 13:
                                break;
                            case 17:
                                break;
                            default:
                                x("163");
                        }
                    }
                    c & 128 && (e = V.ref, null !== e && (f = V.stateNode, "function" === typeof e ? e(f) : e.current = f));
                    c & 512 && (Ph = a);
                    V = V.nextEffect;
                }
            }
            function Wh(a, b) {
                Rh = Qh = Ph = null;
                var c = W;
                W = true;
                do {
                    if (b.effectTag & 512) {
                        var d = false, e = void 0;
                        try {
                            var f = b;
                            th(Uf, Nf, f);
                            th(Nf, Tf, f);
                        } catch (g) {
                            d = true, e = g;
                        }
                        d && sh(b, e);
                    }
                    b = b.nextEffect;
                }while (null !== b);
                W = c;
                c = a.expirationTime;
                0 !== c && Xh(a, c);
                X || W || Yh(1073741823, false);
            }
            function of() {
                null !== Qh && Be(Qh);
                null !== Rh && Rh();
            }
            function Zh(a, b) {
                Oh = Kh = true;
                a.current === b ? x("177") : void 0;
                var c = a.pendingCommitExpirationTime;
                0 === c ? x("261") : void 0;
                a.pendingCommitExpirationTime = 0;
                var d = b.expirationTime, e = b.childExpirationTime;
                ef(a, e > d ? e : d);
                Ih.current = null;
                d = void 0;
                1 < b.effectTag ? null !== b.lastEffect ? (b.lastEffect.nextEffect = b, d = b.firstEffect) : d = b : d = b.firstEffect;
                ue = Bd;
                ve = Pd();
                Bd = false;
                for(V = d; null !== V;){
                    e = false;
                    var f = void 0;
                    try {
                        Uh();
                    } catch (h) {
                        e = true, f = h;
                    }
                    e && (null === V ? x("178") : void 0, sh(V, f), null !== V && (V = V.nextEffect));
                }
                for(V = d; null !== V;){
                    e = false;
                    f = void 0;
                    try {
                        Th();
                    } catch (h) {
                        e = true, f = h;
                    }
                    e && (null === V ? x("178") : void 0, sh(V, f), null !== V && (V = V.nextEffect));
                }
                Qd(ve);
                ve = null;
                Bd = !!ue;
                ue = null;
                a.current = b;
                for(V = d; null !== V;){
                    e = false;
                    f = void 0;
                    try {
                        Vh(a, c);
                    } catch (h) {
                        e = true, f = h;
                    }
                    e && (null === V ? x("178") : void 0, sh(V, f), null !== V && (V = V.nextEffect));
                }
                if (null !== d && null !== Ph) {
                    var g = Wh.bind(null, a, d);
                    Qh = r.unstable_runWithPriority(r.unstable_NormalPriority, function() {
                        return Ae(g);
                    });
                    Rh = g;
                }
                Kh = Oh = false;
                "function" === typeof Qe && Qe(b.stateNode);
                c = b.expirationTime;
                b = b.childExpirationTime;
                b = b > c ? b : c;
                0 === b && (Fh = null);
                $h(a, b);
            }
            function ai(a) {
                for(;;){
                    var b = a.alternate, c = a["return"], d = a.sibling;
                    if (0 === (a.effectTag & 1024)) {
                        T = a;
                        a: {
                            var e = b;
                            b = a;
                            var f = U;
                            var g = b.pendingProps;
                            switch(b.tag){
                                case 2:
                                    break;
                                case 16:
                                    break;
                                case 15:
                                case 0:
                                    break;
                                case 1:
                                    J(b.type) && Ke(b);
                                    break;
                                case 3:
                                    Kf(b);
                                    Le(b);
                                    g = b.stateNode;
                                    g.pendingContext && (g.context = g.pendingContext, g.pendingContext = null);
                                    if (null === e || null === e.child) Eg(b), b.effectTag &= -3;
                                    mh(b);
                                    break;
                                case 5:
                                    Mf(b);
                                    var h = If(Hf.current);
                                    f = b.type;
                                    if (null !== e && null != b.stateNode) nh(e, b, f, g, h), e.ref !== b.ref && (b.effectTag |= 128);
                                    else if (g) {
                                        var l = If(N.current);
                                        if (Eg(b)) {
                                            g = b;
                                            e = g.stateNode;
                                            var k = g.type, m = g.memoizedProps, p = h;
                                            e[Fa] = g;
                                            e[Ga] = m;
                                            f = void 0;
                                            h = k;
                                            switch(h){
                                                case "iframe":
                                                case "object":
                                                    E("load", e);
                                                    break;
                                                case "video":
                                                case "audio":
                                                    for(k = 0; k < ab.length; k++)E(ab[k], e);
                                                    break;
                                                case "source":
                                                    E("error", e);
                                                    break;
                                                case "img":
                                                case "image":
                                                case "link":
                                                    E("error", e);
                                                    E("load", e);
                                                    break;
                                                case "form":
                                                    E("reset", e);
                                                    E("submit", e);
                                                    break;
                                                case "details":
                                                    E("toggle", e);
                                                    break;
                                                case "input":
                                                    wc(e, m);
                                                    E("invalid", e);
                                                    se(p, "onChange");
                                                    break;
                                                case "select":
                                                    e._wrapperState = {
                                                        wasMultiple: !!m.multiple
                                                    };
                                                    E("invalid", e);
                                                    se(p, "onChange");
                                                    break;
                                                case "textarea":
                                                    ce(e, m), E("invalid", e), se(p, "onChange");
                                            }
                                            qe(h, m);
                                            k = null;
                                            for(f in m)m.hasOwnProperty(f) && (l = m[f], "children" === f ? "string" === typeof l ? e.textContent !== l && (k = [
                                                "children",
                                                l
                                            ]) : "number" === typeof l && e.textContent !== "" + l && (k = [
                                                "children",
                                                "" + l
                                            ]) : ra.hasOwnProperty(f) && null != l && se(p, f));
                                            switch(h){
                                                case "input":
                                                    Rb(e);
                                                    Ac(e, m, true);
                                                    break;
                                                case "textarea":
                                                    Rb(e);
                                                    ee(e, m);
                                                    break;
                                                case "select":
                                                case "option":
                                                    break;
                                                default:
                                                    "function" === typeof m.onClick && (e.onclick = te);
                                            }
                                            f = k;
                                            g.updateQueue = f;
                                            g = null !== f ? true : false;
                                            g && kh(b);
                                        } else {
                                            m = b;
                                            p = f;
                                            e = g;
                                            k = 9 === h.nodeType ? h : h.ownerDocument;
                                            l === fe.html && (l = ge(p));
                                            l === fe.html ? "script" === p ? (e = k.createElement("div"), e.innerHTML = "<script><\/script>", k = e.removeChild(e.firstChild)) : "string" === typeof e.is ? k = k.createElement(p, {
                                                is: e.is
                                            }) : (k = k.createElement(p), "select" === p && (p = k, e.multiple ? p.multiple = true : e.size && (p.size = e.size))) : k = k.createElementNS(l, p);
                                            e = k;
                                            e[Fa] = m;
                                            e[Ga] = g;
                                            lh(e, b, false, false);
                                            p = e;
                                            k = f;
                                            m = g;
                                            var t = h, A = re(k, m);
                                            switch(k){
                                                case "iframe":
                                                case "object":
                                                    E("load", p);
                                                    h = m;
                                                    break;
                                                case "video":
                                                case "audio":
                                                    for(h = 0; h < ab.length; h++)E(ab[h], p);
                                                    h = m;
                                                    break;
                                                case "source":
                                                    E("error", p);
                                                    h = m;
                                                    break;
                                                case "img":
                                                case "image":
                                                case "link":
                                                    E("error", p);
                                                    E("load", p);
                                                    h = m;
                                                    break;
                                                case "form":
                                                    E("reset", p);
                                                    E("submit", p);
                                                    h = m;
                                                    break;
                                                case "details":
                                                    E("toggle", p);
                                                    h = m;
                                                    break;
                                                case "input":
                                                    wc(p, m);
                                                    h = vc(p, m);
                                                    E("invalid", p);
                                                    se(t, "onChange");
                                                    break;
                                                case "option":
                                                    h = $d(p, m);
                                                    break;
                                                case "select":
                                                    p._wrapperState = {
                                                        wasMultiple: !!m.multiple
                                                    };
                                                    h = n({}, m, {
                                                        value: void 0
                                                    });
                                                    E("invalid", p);
                                                    se(t, "onChange");
                                                    break;
                                                case "textarea":
                                                    ce(p, m);
                                                    h = be(p, m);
                                                    E("invalid", p);
                                                    se(t, "onChange");
                                                    break;
                                                default:
                                                    h = m;
                                            }
                                            qe(k, h);
                                            l = void 0;
                                            var v = k, R = p, u = h;
                                            for(l in u)if (u.hasOwnProperty(l)) {
                                                var q = u[l];
                                                "style" === l ? oe(R, q) : "dangerouslySetInnerHTML" === l ? (q = q ? q.__html : void 0, null != q && je(R, q)) : "children" === l ? "string" === typeof q ? ("textarea" !== v || "" !== q) && ke(R, q) : "number" === typeof q && ke(R, "" + q) : "suppressContentEditableWarning" !== l && "suppressHydrationWarning" !== l && "autoFocus" !== l && (ra.hasOwnProperty(l) ? null != q && se(t, l) : null != q && tc(R, l, q, A));
                                            }
                                            switch(k){
                                                case "input":
                                                    Rb(p);
                                                    Ac(p, m, false);
                                                    break;
                                                case "textarea":
                                                    Rb(p);
                                                    ee(p, m);
                                                    break;
                                                case "option":
                                                    null != m.value && p.setAttribute("value", "" + uc(m.value));
                                                    break;
                                                case "select":
                                                    h = p;
                                                    h.multiple = !!m.multiple;
                                                    p = m.value;
                                                    null != p ? ae(h, !!m.multiple, p, false) : null != m.defaultValue && ae(h, !!m.multiple, m.defaultValue, true);
                                                    break;
                                                default:
                                                    "function" === typeof h.onClick && (p.onclick = te);
                                            }
                                            (g = we(f, g)) && kh(b);
                                            b.stateNode = e;
                                        }
                                        null !== b.ref && (b.effectTag |= 128);
                                    } else null === b.stateNode ? x("166") : void 0;
                                    break;
                                case 6:
                                    e && null != b.stateNode ? oh(e, b, e.memoizedProps, g) : ("string" !== typeof g && (null === b.stateNode ? x("166") : void 0), e = If(Hf.current), If(N.current), Eg(b) ? (g = b, f = g.stateNode, e = g.memoizedProps, f[Fa] = g, (g = f.nodeValue !== e) && kh(b)) : (f = b, g = (9 === e.nodeType ? e : e.ownerDocument).createTextNode(g), g[Fa] = b, f.stateNode = g));
                                    break;
                                case 11:
                                    break;
                                case 13:
                                    g = b.memoizedState;
                                    if (0 !== (b.effectTag & 64)) {
                                        b.expirationTime = f;
                                        T = b;
                                        break a;
                                    }
                                    g = null !== g;
                                    f = null !== e && null !== e.memoizedState;
                                    null !== e && !g && f && (e = e.child.sibling, null !== e && (h = b.firstEffect, null !== h ? (b.firstEffect = e, e.nextEffect = h) : (b.firstEffect = b.lastEffect = e, e.nextEffect = null), e.effectTag = 8));
                                    if (g || f) b.effectTag |= 4;
                                    break;
                                case 7:
                                    break;
                                case 8:
                                    break;
                                case 12:
                                    break;
                                case 4:
                                    Kf(b);
                                    mh(b);
                                    break;
                                case 10:
                                    Zg(b);
                                    break;
                                case 9:
                                    break;
                                case 14:
                                    break;
                                case 17:
                                    J(b.type) && Ke(b);
                                    break;
                                case 18:
                                    break;
                                default:
                                    x("156");
                            }
                            T = null;
                        }
                        b = a;
                        if (1 === U || 1 !== b.childExpirationTime) {
                            g = 0;
                            for(f = b.child; null !== f;)e = f.expirationTime, h = f.childExpirationTime, e > g && (g = e), h > g && (g = h), f = f.sibling;
                            b.childExpirationTime = g;
                        }
                        if (null !== T) return T;
                        null !== c && 0 === (c.effectTag & 1024) && (null === c.firstEffect && (c.firstEffect = a.firstEffect), null !== a.lastEffect && (null !== c.lastEffect && (c.lastEffect.nextEffect = a.firstEffect), c.lastEffect = a.lastEffect), 1 < a.effectTag && (null !== c.lastEffect ? c.lastEffect.nextEffect = a : c.firstEffect = a, c.lastEffect = a));
                    } else {
                        a = Gh(a, U);
                        if (null !== a) return a.effectTag &= 1023, a;
                        null !== c && (c.firstEffect = c.lastEffect = null, c.effectTag |= 1024);
                    }
                    if (null !== d) return d;
                    if (null !== c) a = c;
                    else break;
                }
                return null;
            }
            function bi(a) {
                var b = Tg(a.alternate, a, U);
                a.memoizedProps = a.pendingProps;
                null === b && (b = ai(a));
                Ih.current = null;
                return b;
            }
            function ci(a, b) {
                Kh ? x("243") : void 0;
                of();
                Kh = true;
                var c = Hh.current;
                Hh.current = kg;
                var d = a.nextExpirationTimeToWorkOn;
                if (d !== U || a !== Lh || null === T) Sh(), Lh = a, U = d, T = Xe(Lh.current, null, U), a.pendingCommitExpirationTime = 0;
                var e = false;
                do {
                    try {
                        if (b) for(; null !== T && !di();)T = bi(T);
                        else for(; null !== T;)T = bi(T);
                    } catch (u) {
                        if (Yg = Xg = Wg = null, lg(), null === T) e = true, Dh(u);
                        else {
                            null === T ? x("271") : void 0;
                            var f = T, g = f["return"];
                            if (null === g) e = true, Dh(u);
                            else {
                                a: {
                                    var h = a, l = g, k = f, m = u;
                                    g = U;
                                    k.effectTag |= 1024;
                                    k.firstEffect = k.lastEffect = null;
                                    if (null !== m && "object" === (typeof m === "undefined" ? "undefined" : _type_of(m)) && "function" === typeof m.then) {
                                        var p = m;
                                        m = l;
                                        var t = -1, A = -1;
                                        do {
                                            if (13 === m.tag) {
                                                var v = m.alternate;
                                                if (null !== v && (v = v.memoizedState, null !== v)) {
                                                    A = 10 * (1073741822 - v.timedOutAt);
                                                    break;
                                                }
                                                v = m.pendingProps.maxDuration;
                                                if ("number" === typeof v) {
                                                    if (0 >= v) t = 0;
                                                    else if (-1 === t || v < t) t = v;
                                                }
                                            }
                                            m = m["return"];
                                        }while (null !== m);
                                        m = l;
                                        do {
                                            if (v = 13 === m.tag) v = void 0 === m.memoizedProps.fallback ? false : null === m.memoizedState;
                                            if (v) {
                                                l = m.updateQueue;
                                                null === l ? (l = /* @__PURE__ */ new Set(), l.add(p), m.updateQueue = l) : l.add(p);
                                                if (0 === (m.mode & 1)) {
                                                    m.effectTag |= 64;
                                                    k.effectTag &= -1957;
                                                    1 === k.tag && (null === k.alternate ? k.tag = 17 : (g = nf(1073741823), g.tag = sf, pf(k, g)));
                                                    k.expirationTime = 1073741823;
                                                    break a;
                                                }
                                                k = h;
                                                l = g;
                                                var R = k.pingCache;
                                                null === R ? (R = k.pingCache = new Bh(), v = /* @__PURE__ */ new Set(), R.set(p, v)) : (v = R.get(p), void 0 === v && (v = /* @__PURE__ */ new Set(), R.set(p, v)));
                                                v.has(l) || (v.add(l), k = ei.bind(null, k, p, l), p.then(k, k));
                                                -1 === t ? h = 1073741823 : (-1 === A && (A = 10 * (1073741822 - gf(h, g)) - 5e3), h = A + t);
                                                0 <= h && Mh < h && (Mh = h);
                                                m.effectTag |= 2048;
                                                m.expirationTime = g;
                                                break a;
                                            }
                                            m = m["return"];
                                        }while (null !== m);
                                        m = Error((ic(k.type) || "A React component") + " suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display." + jc(k));
                                    }
                                    Nh = true;
                                    m = jh(m, k);
                                    h = l;
                                    do {
                                        switch(h.tag){
                                            case 3:
                                                h.effectTag |= 2048;
                                                h.expirationTime = g;
                                                g = Ch(h, m, g);
                                                eh(h, g);
                                                break a;
                                            case 1:
                                                if (t = m, A = h.type, k = h.stateNode, 0 === (h.effectTag & 64) && ("function" === typeof A.getDerivedStateFromError || null !== k && "function" === typeof k.componentDidCatch && (null === Fh || !Fh.has(k)))) {
                                                    h.effectTag |= 2048;
                                                    h.expirationTime = g;
                                                    g = Eh(h, t, g);
                                                    eh(h, g);
                                                    break a;
                                                }
                                        }
                                        h = h["return"];
                                    }while (null !== h);
                                }
                                T = ai(f);
                                continue;
                            }
                        }
                    }
                    break;
                }while (1);
                Kh = false;
                Hh.current = c;
                Yg = Xg = Wg = null;
                lg();
                if (e) Lh = null, a.finishedWork = null;
                else if (null !== T) a.finishedWork = null;
                else {
                    c = a.current.alternate;
                    null === c ? x("281") : void 0;
                    Lh = null;
                    if (Nh) {
                        e = a.latestPendingTime;
                        f = a.latestSuspendedTime;
                        g = a.latestPingedTime;
                        if (0 !== e && e < d || 0 !== f && f < d || 0 !== g && g < d) {
                            ff(a, d);
                            fi(a, c, d, a.expirationTime, -1);
                            return;
                        }
                        if (!a.didError && b) {
                            a.didError = true;
                            d = a.nextExpirationTimeToWorkOn = d;
                            b = a.expirationTime = 1073741823;
                            fi(a, c, d, b, -1);
                            return;
                        }
                    }
                    b && -1 !== Mh ? (ff(a, d), b = 10 * (1073741822 - gf(a, d)), b < Mh && (Mh = b), b = 10 * (1073741822 - lf()), b = Mh - b, fi(a, c, d, a.expirationTime, 0 > b ? 0 : b)) : (a.pendingCommitExpirationTime = d, a.finishedWork = c);
                }
            }
            function sh(a, b) {
                for(var c = a["return"]; null !== c;){
                    switch(c.tag){
                        case 1:
                            var d = c.stateNode;
                            if ("function" === typeof c.type.getDerivedStateFromError || "function" === typeof d.componentDidCatch && (null === Fh || !Fh.has(d))) {
                                a = jh(b, a);
                                a = Eh(c, a, 1073741823);
                                pf(c, a);
                                qf(c, 1073741823);
                                return;
                            }
                            break;
                        case 3:
                            a = jh(b, a);
                            a = Ch(c, a, 1073741823);
                            pf(c, a);
                            qf(c, 1073741823);
                            return;
                    }
                    c = c["return"];
                }
                3 === a.tag && (c = jh(b, a), c = Ch(a, c, 1073741823), pf(a, c), qf(a, 1073741823));
            }
            function mf(a, b) {
                var c = r.unstable_getCurrentPriorityLevel(), d = void 0;
                if (0 === (b.mode & 1)) d = 1073741823;
                else if (Kh && !Oh) d = U;
                else {
                    switch(c){
                        case r.unstable_ImmediatePriority:
                            d = 1073741823;
                            break;
                        case r.unstable_UserBlockingPriority:
                            d = 1073741822 - 10 * (((1073741822 - a + 15) / 10 | 0) + 1);
                            break;
                        case r.unstable_NormalPriority:
                            d = 1073741822 - 25 * (((1073741822 - a + 500) / 25 | 0) + 1);
                            break;
                        case r.unstable_LowPriority:
                        case r.unstable_IdlePriority:
                            d = 1;
                            break;
                        default:
                            x("313");
                    }
                    null !== Lh && d === U && --d;
                }
                c === r.unstable_UserBlockingPriority && (0 === gi || d < gi) && (gi = d);
                return d;
            }
            function ei(a, b, c) {
                var d = a.pingCache;
                null !== d && d["delete"](b);
                if (null !== Lh && U === c) Lh = null;
                else if (b = a.earliestSuspendedTime, d = a.latestSuspendedTime, 0 !== b && c <= b && c >= d) {
                    a.didError = false;
                    b = a.latestPingedTime;
                    if (0 === b || b > c) a.latestPingedTime = c;
                    df(c, a);
                    c = a.expirationTime;
                    0 !== c && Xh(a, c);
                }
            }
            function Ah(a, b) {
                var c = a.stateNode;
                null !== c && c["delete"](b);
                b = lf();
                b = mf(b, a);
                a = hi(a, b);
                null !== a && (cf(a, b), b = a.expirationTime, 0 !== b && Xh(a, b));
            }
            function hi(a, b) {
                a.expirationTime < b && (a.expirationTime = b);
                var c = a.alternate;
                null !== c && c.expirationTime < b && (c.expirationTime = b);
                var d = a["return"], e = null;
                if (null === d && 3 === a.tag) e = a.stateNode;
                else for(; null !== d;){
                    c = d.alternate;
                    d.childExpirationTime < b && (d.childExpirationTime = b);
                    null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);
                    if (null === d["return"] && 3 === d.tag) {
                        e = d.stateNode;
                        break;
                    }
                    d = d["return"];
                }
                return e;
            }
            function qf(a, b) {
                a = hi(a, b);
                null !== a && (!Kh && 0 !== U && b > U && Sh(), cf(a, b), Kh && !Oh && Lh === a || Xh(a, a.expirationTime), ii > ji && (ii = 0, x("185")));
            }
            function ki(a, b, c, d, e) {
                return r.unstable_runWithPriority(r.unstable_ImmediatePriority, function() {
                    return a(b, c, d, e);
                });
            }
            var li = null;
            var Y = null;
            var mi = 0;
            var ni = void 0;
            var W = false;
            var oi = null;
            var Z = 0;
            var gi = 0;
            var pi = false;
            var qi = null;
            var X = false;
            var ri = false;
            var si = null;
            var ti = r.unstable_now();
            var ui = 1073741822 - (ti / 10 | 0);
            var vi = ui;
            var ji = 50;
            var ii = 0;
            var wi = null;
            function xi() {
                ui = 1073741822 - ((r.unstable_now() - ti) / 10 | 0);
            }
            function yi(a, b) {
                if (0 !== mi) {
                    if (b < mi) return;
                    null !== ni && r.unstable_cancelCallback(ni);
                }
                mi = b;
                a = r.unstable_now() - ti;
                ni = r.unstable_scheduleCallback(zi, {
                    timeout: 10 * (1073741822 - b) - a
                });
            }
            function fi(a, b, c, d, e) {
                a.expirationTime = d;
                0 !== e || di() ? 0 < e && (a.timeoutHandle = ye(Ai.bind(null, a, b, c), e)) : (a.pendingCommitExpirationTime = c, a.finishedWork = b);
            }
            function Ai(a, b, c) {
                a.pendingCommitExpirationTime = c;
                a.finishedWork = b;
                xi();
                vi = ui;
                Bi(a, c);
            }
            function $h(a, b) {
                a.expirationTime = b;
                a.finishedWork = null;
            }
            function lf() {
                if (W) return vi;
                Ci();
                if (0 === Z || 1 === Z) xi(), vi = ui;
                return vi;
            }
            function Xh(a, b) {
                null === a.nextScheduledRoot ? (a.expirationTime = b, null === Y ? (li = Y = a, a.nextScheduledRoot = a) : (Y = Y.nextScheduledRoot = a, Y.nextScheduledRoot = li)) : b > a.expirationTime && (a.expirationTime = b);
                W || (X ? ri && (oi = a, Z = 1073741823, Di(a, 1073741823, false)) : 1073741823 === b ? Yh(1073741823, false) : yi(a, b));
            }
            function Ci() {
                var a = 0, b = null;
                if (null !== Y) for(var c = Y, d = li; null !== d;){
                    var e = d.expirationTime;
                    if (0 === e) {
                        null === c || null === Y ? x("244") : void 0;
                        if (d === d.nextScheduledRoot) {
                            li = Y = d.nextScheduledRoot = null;
                            break;
                        } else if (d === li) li = e = d.nextScheduledRoot, Y.nextScheduledRoot = e, d.nextScheduledRoot = null;
                        else if (d === Y) {
                            Y = c;
                            Y.nextScheduledRoot = li;
                            d.nextScheduledRoot = null;
                            break;
                        } else c.nextScheduledRoot = d.nextScheduledRoot, d.nextScheduledRoot = null;
                        d = c.nextScheduledRoot;
                    } else {
                        e > a && (a = e, b = d);
                        if (d === Y) break;
                        if (1073741823 === a) break;
                        c = d;
                        d = d.nextScheduledRoot;
                    }
                }
                oi = b;
                Z = a;
            }
            var Ei = false;
            function di() {
                return Ei ? true : r.unstable_shouldYield() ? Ei = true : false;
            }
            function zi() {
                try {
                    if (!di() && null !== li) {
                        xi();
                        var a = li;
                        do {
                            var b = a.expirationTime;
                            0 !== b && ui <= b && (a.nextExpirationTimeToWorkOn = ui);
                            a = a.nextScheduledRoot;
                        }while (a !== li);
                    }
                    Yh(0, true);
                } finally{
                    Ei = false;
                }
            }
            function Yh(a, b) {
                Ci();
                if (b) for(xi(), vi = ui; null !== oi && 0 !== Z && a <= Z && !(Ei && ui > Z);)Di(oi, Z, ui > Z), Ci(), xi(), vi = ui;
                else for(; null !== oi && 0 !== Z && a <= Z;)Di(oi, Z, false), Ci();
                b && (mi = 0, ni = null);
                0 !== Z && yi(oi, Z);
                ii = 0;
                wi = null;
                if (null !== si) for(a = si, si = null, b = 0; b < a.length; b++){
                    var c = a[b];
                    try {
                        c._onComplete();
                    } catch (d) {
                        pi || (pi = true, qi = d);
                    }
                }
                if (pi) throw a = qi, qi = null, pi = false, a;
            }
            function Bi(a, b) {
                W ? x("253") : void 0;
                oi = a;
                Z = b;
                Di(a, b, false);
                Yh(1073741823, false);
            }
            function Di(a, b, c) {
                W ? x("245") : void 0;
                W = true;
                if (c) {
                    var d = a.finishedWork;
                    null !== d ? Fi(a, d, b) : (a.finishedWork = null, d = a.timeoutHandle, -1 !== d && (a.timeoutHandle = -1, ze(d)), ci(a, c), d = a.finishedWork, null !== d && (di() ? a.finishedWork = d : Fi(a, d, b)));
                } else d = a.finishedWork, null !== d ? Fi(a, d, b) : (a.finishedWork = null, d = a.timeoutHandle, -1 !== d && (a.timeoutHandle = -1, ze(d)), ci(a, c), d = a.finishedWork, null !== d && Fi(a, d, b));
                W = false;
            }
            function Fi(a, b, c) {
                var d = a.firstBatch;
                if (null !== d && d._expirationTime >= c && (null === si ? si = [
                    d
                ] : si.push(d), d._defer)) {
                    a.finishedWork = b;
                    a.expirationTime = 0;
                    return;
                }
                a.finishedWork = null;
                a === wi ? ii++ : (wi = a, ii = 0);
                r.unstable_runWithPriority(r.unstable_ImmediatePriority, function() {
                    Zh(a, b);
                });
            }
            function Dh(a) {
                null === oi ? x("246") : void 0;
                oi.expirationTime = 0;
                pi || (pi = true, qi = a);
            }
            function Gi(a, b) {
                var c = X;
                X = true;
                try {
                    return a(b);
                } finally{
                    (X = c) || W || Yh(1073741823, false);
                }
            }
            function Hi(a, b) {
                if (X && !ri) {
                    ri = true;
                    try {
                        return a(b);
                    } finally{
                        ri = false;
                    }
                }
                return a(b);
            }
            function Ii(a, b, c) {
                X || W || 0 === gi || (Yh(gi, false), gi = 0);
                var d = X;
                X = true;
                try {
                    return r.unstable_runWithPriority(r.unstable_UserBlockingPriority, function() {
                        return a(b, c);
                    });
                } finally{
                    (X = d) || W || Yh(1073741823, false);
                }
            }
            function Ji(a, b, c, d, e) {
                var f = b.current;
                a: if (c) {
                    c = c._reactInternalFiber;
                    b: {
                        2 === ed(c) && 1 === c.tag ? void 0 : x("170");
                        var g = c;
                        do {
                            switch(g.tag){
                                case 3:
                                    g = g.stateNode.context;
                                    break b;
                                case 1:
                                    if (J(g.type)) {
                                        g = g.stateNode.__reactInternalMemoizedMergedChildContext;
                                        break b;
                                    }
                            }
                            g = g["return"];
                        }while (null !== g);
                        x("171");
                        g = void 0;
                    }
                    if (1 === c.tag) {
                        var h = c.type;
                        if (J(h)) {
                            c = Ne(c, h, g);
                            break a;
                        }
                    }
                    c = g;
                } else c = He;
                null === b.context ? b.context = c : b.pendingContext = c;
                b = e;
                e = nf(d);
                e.payload = {
                    element: a
                };
                b = void 0 === b ? null : b;
                null !== b && (e.callback = b);
                of();
                pf(f, e);
                qf(f, d);
                return d;
            }
            function Ki(a, b, c, d) {
                var e = b.current, f = lf();
                e = mf(f, e);
                return Ji(a, b, c, e, d);
            }
            function Li(a) {
                a = a.current;
                if (!a.child) return null;
                switch(a.child.tag){
                    case 5:
                        return a.child.stateNode;
                    default:
                        return a.child.stateNode;
                }
            }
            function Mi(a, b, c) {
                var d = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
                return {
                    $$typeof: Wb,
                    key: null == d ? null : "" + d,
                    children: a,
                    containerInfo: b,
                    implementation: c
                };
            }
            Ab = function Ab(a, b, c) {
                switch(b){
                    case "input":
                        yc(a, c);
                        b = c.name;
                        if ("radio" === c.type && null != b) {
                            for(c = a; c.parentNode;)c = c.parentNode;
                            c = c.querySelectorAll("input[name=" + JSON.stringify("" + b) + '][type="radio"]');
                            for(b = 0; b < c.length; b++){
                                var d = c[b];
                                if (d !== a && d.form === a.form) {
                                    var e = Ka(d);
                                    e ? void 0 : x("90");
                                    Sb(d);
                                    yc(d, e);
                                }
                            }
                        }
                        break;
                    case "textarea":
                        de(a, c);
                        break;
                    case "select":
                        b = c.value, null != b && ae(a, !!c.multiple, b, false);
                }
            };
            function Ni(a) {
                var b = 1073741822 - 25 * (((1073741822 - lf() + 500) / 25 | 0) + 1);
                b >= Jh && (b = Jh - 1);
                this._expirationTime = Jh = b;
                this._root = a;
                this._callbacks = this._next = null;
                this._hasChildren = this._didComplete = false;
                this._children = null;
                this._defer = true;
            }
            Ni.prototype.render = function(a) {
                this._defer ? void 0 : x("250");
                this._hasChildren = true;
                this._children = a;
                var b = this._root._internalRoot, c = this._expirationTime, d = new Oi();
                Ji(a, b, null, c, d._onCommit);
                return d;
            };
            Ni.prototype.then = function(a) {
                if (this._didComplete) a();
                else {
                    var b = this._callbacks;
                    null === b && (b = this._callbacks = []);
                    b.push(a);
                }
            };
            Ni.prototype.commit = function() {
                var a = this._root._internalRoot, b = a.firstBatch;
                this._defer && null !== b ? void 0 : x("251");
                if (this._hasChildren) {
                    var c = this._expirationTime;
                    if (b !== this) {
                        this._hasChildren && (c = this._expirationTime = b._expirationTime, this.render(this._children));
                        for(var d = null, e = b; e !== this;)d = e, e = e._next;
                        null === d ? x("251") : void 0;
                        d._next = e._next;
                        this._next = b;
                        a.firstBatch = this;
                    }
                    this._defer = false;
                    Bi(a, c);
                    b = this._next;
                    this._next = null;
                    b = a.firstBatch = b;
                    null !== b && b._hasChildren && b.render(b._children);
                } else this._next = null, this._defer = false;
            };
            Ni.prototype._onComplete = function() {
                if (!this._didComplete) {
                    this._didComplete = true;
                    var a = this._callbacks;
                    if (null !== a) for(var b = 0; b < a.length; b++)(0, a[b])();
                }
            };
            function Oi() {
                this._callbacks = null;
                this._didCommit = false;
                this._onCommit = this._onCommit.bind(this);
            }
            Oi.prototype.then = function(a) {
                if (this._didCommit) a();
                else {
                    var b = this._callbacks;
                    null === b && (b = this._callbacks = []);
                    b.push(a);
                }
            };
            Oi.prototype._onCommit = function() {
                if (!this._didCommit) {
                    this._didCommit = true;
                    var a = this._callbacks;
                    if (null !== a) for(var b = 0; b < a.length; b++){
                        var c = a[b];
                        "function" !== typeof c ? x("191", c) : void 0;
                        c();
                    }
                }
            };
            function Pi(a, b, c) {
                b = K(3, null, null, b ? 3 : 0);
                a = {
                    current: b,
                    containerInfo: a,
                    pendingChildren: null,
                    pingCache: null,
                    earliestPendingTime: 0,
                    latestPendingTime: 0,
                    earliestSuspendedTime: 0,
                    latestSuspendedTime: 0,
                    latestPingedTime: 0,
                    didError: false,
                    pendingCommitExpirationTime: 0,
                    finishedWork: null,
                    timeoutHandle: -1,
                    context: null,
                    pendingContext: null,
                    hydrate: c,
                    nextExpirationTimeToWorkOn: 0,
                    expirationTime: 0,
                    firstBatch: null,
                    nextScheduledRoot: null
                };
                this._internalRoot = b.stateNode = a;
            }
            Pi.prototype.render = function(a, b) {
                var c = this._internalRoot, d = new Oi();
                b = void 0 === b ? null : b;
                null !== b && d.then(b);
                Ki(a, c, null, d._onCommit);
                return d;
            };
            Pi.prototype.unmount = function(a) {
                var b = this._internalRoot, c = new Oi();
                a = void 0 === a ? null : a;
                null !== a && c.then(a);
                Ki(null, b, null, c._onCommit);
                return c;
            };
            Pi.prototype.legacy_renderSubtreeIntoContainer = function(a, b, c) {
                var d = this._internalRoot, e = new Oi();
                c = void 0 === c ? null : c;
                null !== c && e.then(c);
                Ki(b, d, a, e._onCommit);
                return e;
            };
            Pi.prototype.createBatch = function() {
                var a = new Ni(this), b = a._expirationTime, c = this._internalRoot, d = c.firstBatch;
                if (null === d) c.firstBatch = a, a._next = null;
                else {
                    for(c = null; null !== d && d._expirationTime >= b;)c = d, d = d._next;
                    a._next = d;
                    null !== c && (c._next = a);
                }
                return a;
            };
            function Qi(a) {
                return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType && (8 !== a.nodeType || " react-mount-point-unstable " !== a.nodeValue));
            }
            Gb = Gi;
            Hb = Ii;
            Ib = function Ib() {
                W || 0 === gi || (Yh(gi, false), gi = 0);
            };
            function Ri(a, b) {
                b || (b = a ? 9 === a.nodeType ? a.documentElement : a.firstChild : null, b = !(!b || 1 !== b.nodeType || !b.hasAttribute("data-reactroot")));
                if (!b) for(var c; c = a.lastChild;)a.removeChild(c);
                return new Pi(a, false, b);
            }
            function Si(a, b, c, d, e) {
                var f = c._reactRootContainer;
                if (f) {
                    if ("function" === typeof e) {
                        var g = e;
                        e = function e() {
                            var a2 = Li(f._internalRoot);
                            g.call(a2);
                        };
                    }
                    null != a ? f.legacy_renderSubtreeIntoContainer(a, b, e) : f.render(b, e);
                } else {
                    f = c._reactRootContainer = Ri(c, d);
                    if ("function" === typeof e) {
                        var h = e;
                        e = function e() {
                            var a2 = Li(f._internalRoot);
                            h.call(a2);
                        };
                    }
                    Hi(function() {
                        null != a ? f.legacy_renderSubtreeIntoContainer(a, b, e) : f.render(b, e);
                    });
                }
                return Li(f._internalRoot);
            }
            function Ti(a, b) {
                var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
                Qi(b) ? void 0 : x("200");
                return Mi(a, b, null, c);
            }
            var Vi = {
                createPortal: Ti,
                findDOMNode: function findDOMNode(a) {
                    if (null == a) return null;
                    if (1 === a.nodeType) return a;
                    var b = a._reactInternalFiber;
                    void 0 === b && ("function" === typeof a.render ? x("188") : x("268", Object.keys(a)));
                    a = hd(b);
                    a = null === a ? null : a.stateNode;
                    return a;
                },
                hydrate: function hydrate(a, b, c) {
                    Qi(b) ? void 0 : x("200");
                    return Si(null, a, b, true, c);
                },
                render: function render(a, b, c) {
                    Qi(b) ? void 0 : x("200");
                    return Si(null, a, b, false, c);
                },
                unstable_renderSubtreeIntoContainer: function unstable_renderSubtreeIntoContainer(a, b, c, d) {
                    Qi(c) ? void 0 : x("200");
                    null == a || void 0 === a._reactInternalFiber ? x("38") : void 0;
                    return Si(a, b, c, false, d);
                },
                unmountComponentAtNode: function unmountComponentAtNode(a) {
                    Qi(a) ? void 0 : x("40");
                    return a._reactRootContainer ? (Hi(function() {
                        Si(null, null, a, false, function() {
                            a._reactRootContainer = null;
                        });
                    }), true) : false;
                },
                unstable_createPortal: function unstable_createPortal() {
                    return Ti.apply(void 0, arguments);
                },
                unstable_batchedUpdates: Gi,
                unstable_interactiveUpdates: Ii,
                flushSync: function flushSync(a, b) {
                    W ? x("187") : void 0;
                    var c = X;
                    X = true;
                    try {
                        return ki(a, b);
                    } finally{
                        X = c, Yh(1073741823, false);
                    }
                },
                unstable_createRoot: Ui,
                unstable_flushControlled: function unstable_flushControlled(a) {
                    var b = X;
                    X = true;
                    try {
                        ki(a);
                    } finally{
                        (X = b) || W || Yh(1073741823, false);
                    }
                },
                __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
                    Events: [
                        Ia,
                        Ja,
                        Ka,
                        Ba.injectEventPluginsByName,
                        pa,
                        Qa,
                        function(a) {
                            ya(a, Pa);
                        },
                        Eb,
                        Fb,
                        Dd,
                        Da
                    ]
                }
            };
            function Ui(a, b) {
                Qi(a) ? void 0 : x("299", "unstable_createRoot");
                return new Pi(a, true, null != b && true === b.hydrate);
            }
            (function(a) {
                var b = a.findFiberByHostInstance;
                return Te(n({}, a, {
                    overrideProps: null,
                    currentDispatcherRef: Tb.ReactCurrentDispatcher,
                    findHostInstanceByFiber: function findHostInstanceByFiber(a2) {
                        a2 = hd(a2);
                        return null === a2 ? null : a2.stateNode;
                    },
                    findFiberByHostInstance: function findFiberByHostInstance(a2) {
                        return b ? b(a2) : null;
                    }
                }));
            })({
                findFiberByHostInstance: Ha,
                bundleType: 0,
                version: "16.8.6",
                rendererPackageName: "react-dom"
            });
            var Wi = {
                "default": Vi
            };
            var Xi = Wi && Vi || Wi;
            module.exports = Xi["default"] || Xi;
        }
    });
    // node_modules/react-dom/index.js
    var require_react_dom = __commonJS({
        "node_modules/react-dom/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function checkDCE() {
                if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
                    return;
                }
                if (false) {
                    throw new Error("^_^");
                }
                try {
                    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
                } catch (err) {
                    console.error(err);
                }
            }
            if (true) {
                checkDCE();
                module.exports = require_react_dom_production_min();
            } else {
                module.exports = null;
            }
        }
    });
    // node_modules/prop-types/lib/ReactPropTypesSecret.js
    var require_ReactPropTypesSecret = __commonJS({
        "node_modules/prop-types/lib/ReactPropTypesSecret.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
            module.exports = ReactPropTypesSecret;
        }
    });
    // node_modules/prop-types/factoryWithThrowingShims.js
    var require_factoryWithThrowingShims = __commonJS({
        "node_modules/prop-types/factoryWithThrowingShims.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ReactPropTypesSecret = require_ReactPropTypesSecret();
            function emptyFunction() {}
            function emptyFunctionWithReset() {}
            emptyFunctionWithReset.resetWarningCache = emptyFunction;
            module.exports = function() {
                function shim(props, propName, componentName, location2, propFullName, secret) {
                    if (secret === ReactPropTypesSecret) {
                        return;
                    }
                    var err = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");
                    err.name = "Invariant Violation";
                    throw err;
                }
                ;
                shim.isRequired = shim;
                function getShim() {
                    return shim;
                }
                ;
                var ReactPropTypes = {
                    array: shim,
                    bigint: shim,
                    bool: shim,
                    func: shim,
                    number: shim,
                    object: shim,
                    string: shim,
                    symbol: shim,
                    any: shim,
                    arrayOf: getShim,
                    element: shim,
                    elementType: shim,
                    instanceOf: getShim,
                    node: shim,
                    objectOf: getShim,
                    oneOf: getShim,
                    oneOfType: getShim,
                    shape: getShim,
                    exact: getShim,
                    checkPropTypes: emptyFunctionWithReset,
                    resetWarningCache: emptyFunction
                };
                ReactPropTypes.PropTypes = ReactPropTypes;
                return ReactPropTypes;
            };
        }
    });
    // node_modules/prop-types/index.js
    var require_prop_types = __commonJS({
        "node_modules/prop-types/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            if (false) {
                ReactIs = null;
                throwOnDirectAccess = true;
                module.exports = (null)(ReactIs.isElement, throwOnDirectAccess);
            } else {
                module.exports = require_factoryWithThrowingShims()();
            }
            var ReactIs;
            var throwOnDirectAccess;
        }
    });
    // node_modules/react-redux/lib/utils/storeShape.js
    var require_storeShape = __commonJS({
        "node_modules/react-redux/lib/utils/storeShape.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            var _propTypes = require_prop_types();
            var _propTypes2 = _interopRequireDefault(_propTypes);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            exports["default"] = _propTypes2["default"].shape({
                subscribe: _propTypes2["default"].func.isRequired,
                dispatch: _propTypes2["default"].func.isRequired,
                getState: _propTypes2["default"].func.isRequired
            });
        }
    });
    // node_modules/react-redux/lib/utils/warning.js
    var require_warning = __commonJS({
        "node_modules/react-redux/lib/utils/warning.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = warning;
            function warning(message2) {
                if (typeof console !== "undefined" && typeof console.error === "function") {
                    console.error(message2);
                }
                try {
                    throw new Error(message2);
                } catch (e) {}
            }
        }
    });
    // node_modules/react-redux/lib/components/Provider.js
    var require_Provider = __commonJS({
        "node_modules/react-redux/lib/components/Provider.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = void 0;
            var _react = require_react();
            var _propTypes = require_prop_types();
            var _propTypes2 = _interopRequireDefault(_propTypes);
            var _storeShape = require_storeShape();
            var _storeShape2 = _interopRequireDefault(_storeShape);
            var _warning = require_warning();
            var _warning2 = _interopRequireDefault(_warning);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            function _classCallCheck(instance, Constructor) {
                if (!(instance instanceof Constructor)) {
                    throw new TypeError("Cannot call a class as a function");
                }
            }
            function _possibleConstructorReturn(self2, call2) {
                if (!self2) {
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                }
                return call2 && ((typeof call2 === "undefined" ? "undefined" : _type_of(call2)) === "object" || typeof call2 === "function") ? call2 : self2;
            }
            function _inherits(subClass, superClass) {
                if (typeof superClass !== "function" && superClass !== null) {
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : _type_of(superClass)));
                }
                subClass.prototype = Object.create(superClass && superClass.prototype, {
                    constructor: {
                        value: subClass,
                        enumerable: false,
                        writable: true,
                        configurable: true
                    }
                });
                if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
            }
            var Provider = function(_Component) {
                _inherits(Provider2, _Component);
                Provider2.prototype.getChildContext = function getChildContext() {
                    return {
                        store: this.store
                    };
                };
                function Provider2(props, context) {
                    _classCallCheck(this, Provider2);
                    var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
                    _this.store = props.store;
                    return _this;
                }
                Provider2.prototype.render = function render() {
                    return _react.Children.only(this.props.children);
                };
                return Provider2;
            }(_react.Component);
            exports["default"] = Provider;
            if (false) {
                Provider.prototype.componentWillReceiveProps = function(nextProps) {
                    var store = this.store;
                    var nextStore = nextProps.store;
                    if (store !== nextStore) {
                        warnAboutReceivingStore();
                    }
                };
            }
            Provider.propTypes = {
                store: _storeShape2["default"].isRequired,
                children: _propTypes2["default"].element.isRequired
            };
            Provider.childContextTypes = {
                store: _storeShape2["default"].isRequired
            };
        }
    });
    // node_modules/react-redux/lib/utils/shallowEqual.js
    var require_shallowEqual = __commonJS({
        "node_modules/react-redux/lib/utils/shallowEqual.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = shallowEqual;
            function shallowEqual(objA, objB) {
                if (objA === objB) {
                    return true;
                }
                var keysA = Object.keys(objA);
                var keysB = Object.keys(objB);
                if (keysA.length !== keysB.length) {
                    return false;
                }
                var hasOwn = Object.prototype.hasOwnProperty;
                for(var i = 0; i < keysA.length; i++){
                    if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
                        return false;
                    }
                }
                return true;
            }
        }
    });
    // node_modules/lodash/_freeGlobal.js
    var require_freeGlobal = __commonJS({
        "node_modules/lodash/_freeGlobal.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var freeGlobal = (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) == "object" && globalThis && globalThis.Object === Object && globalThis;
            module.exports = freeGlobal;
        }
    });
    // node_modules/lodash/_root.js
    var require_root = __commonJS({
        "node_modules/lodash/_root.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var freeGlobal = require_freeGlobal();
            var freeSelf = (typeof self === "undefined" ? "undefined" : _type_of(self)) == "object" && self && self.Object === Object && self;
            var root = freeGlobal || freeSelf || Function("return this")();
            module.exports = root;
        }
    });
    // node_modules/lodash/_Symbol.js
    var require_Symbol = __commonJS({
        "node_modules/lodash/_Symbol.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var root = require_root();
            var Symbol2 = root.Symbol;
            module.exports = Symbol2;
        }
    });
    // node_modules/lodash/_getRawTag.js
    var require_getRawTag = __commonJS({
        "node_modules/lodash/_getRawTag.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Symbol2 = require_Symbol();
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            var nativeObjectToString = objectProto.toString;
            var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
            function getRawTag(value) {
                var isOwn = hasOwnProperty.call(value, symToStringTag), tag2 = value[symToStringTag];
                try {
                    value[symToStringTag] = void 0;
                    var unmasked = true;
                } catch (e) {}
                var result17 = nativeObjectToString.call(value);
                if (unmasked) {
                    if (isOwn) {
                        value[symToStringTag] = tag2;
                    } else {
                        delete value[symToStringTag];
                    }
                }
                return result17;
            }
            module.exports = getRawTag;
        }
    });
    // node_modules/lodash/_objectToString.js
    var require_objectToString = __commonJS({
        "node_modules/lodash/_objectToString.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var objectProto = Object.prototype;
            var nativeObjectToString = objectProto.toString;
            function objectToString(value) {
                return nativeObjectToString.call(value);
            }
            module.exports = objectToString;
        }
    });
    // node_modules/lodash/_baseGetTag.js
    var require_baseGetTag = __commonJS({
        "node_modules/lodash/_baseGetTag.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Symbol2 = require_Symbol();
            var getRawTag = require_getRawTag();
            var objectToString = require_objectToString();
            var nullTag = "[object Null]";
            var undefinedTag = "[object Undefined]";
            var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
            function baseGetTag(value) {
                if (value == null) {
                    return value === void 0 ? undefinedTag : nullTag;
                }
                return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
            }
            module.exports = baseGetTag;
        }
    });
    // node_modules/lodash/_overArg.js
    var require_overArg = __commonJS({
        "node_modules/lodash/_overArg.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function overArg(func3, transform) {
                return function(arg) {
                    return func3(transform(arg));
                };
            }
            module.exports = overArg;
        }
    });
    // node_modules/lodash/_getPrototype.js
    var require_getPrototype = __commonJS({
        "node_modules/lodash/_getPrototype.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var overArg = require_overArg();
            var getPrototype = overArg(Object.getPrototypeOf, Object);
            module.exports = getPrototype;
        }
    });
    // node_modules/lodash/isObjectLike.js
    var require_isObjectLike = __commonJS({
        "node_modules/lodash/isObjectLike.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function isObjectLike2(value) {
                return value != null && (typeof value === "undefined" ? "undefined" : _type_of(value)) == "object";
            }
            module.exports = isObjectLike2;
        }
    });
    // node_modules/lodash/isPlainObject.js
    var require_isPlainObject = __commonJS({
        "node_modules/lodash/isPlainObject.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseGetTag = require_baseGetTag();
            var getPrototype = require_getPrototype();
            var isObjectLike2 = require_isObjectLike();
            var objectTag = "[object Object]";
            var funcProto = Function.prototype;
            var objectProto = Object.prototype;
            var funcToString = funcProto.toString;
            var hasOwnProperty = objectProto.hasOwnProperty;
            var objectCtorString = funcToString.call(Object);
            function isPlainObject(value) {
                if (!isObjectLike2(value) || baseGetTag(value) != objectTag) {
                    return false;
                }
                var proto = getPrototype(value);
                if (proto === null) {
                    return true;
                }
                var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
                return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
            }
            module.exports = isPlainObject;
        }
    });
    // node_modules/symbol-observable/lib/ponyfill.js
    var require_ponyfill = __commonJS({
        "node_modules/symbol-observable/lib/ponyfill.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = symbolObservablePonyfill;
            function symbolObservablePonyfill(root) {
                var result17;
                var _Symbol = root.Symbol;
                if (typeof _Symbol === "function") {
                    if (_Symbol.observable) {
                        result17 = _Symbol.observable;
                    } else {
                        result17 = _Symbol("observable");
                        _Symbol.observable = result17;
                    }
                } else {
                    result17 = "@@observable";
                }
                return result17;
            }
        }
    });
    // node_modules/symbol-observable/lib/index.js
    var require_lib = __commonJS({
        "node_modules/symbol-observable/lib/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var _ponyfill = require_ponyfill();
            var _ponyfill2 = _interopRequireDefault(_ponyfill);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            var root;
            if (typeof self !== "undefined") {
                root = self;
            } else if (typeof window !== "undefined") {
                root = window;
            } else if (typeof globalThis !== "undefined") {
                root = globalThis;
            } else if (typeof module !== "undefined") {
                root = module;
            } else {
                root = Function("return this")();
            }
            var result17 = (0, _ponyfill2["default"])(root);
            exports["default"] = result17;
        }
    });
    // node_modules/redux/lib/createStore.js
    var require_createStore = __commonJS({
        "node_modules/redux/lib/createStore.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports.ActionTypes = void 0;
            exports["default"] = createStore;
            var _isPlainObject = require_isPlainObject();
            var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
            var _symbolObservable = require_lib();
            var _symbolObservable2 = _interopRequireDefault(_symbolObservable);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            var ActionTypes = exports.ActionTypes = {
                INIT: "@@redux/INIT"
            };
            function createStore(reducer, preloadedState, enhancer) {
                var _ref2;
                if (typeof preloadedState === "function" && typeof enhancer === "undefined") {
                    enhancer = preloadedState;
                    preloadedState = void 0;
                }
                if (typeof enhancer !== "undefined") {
                    if (typeof enhancer !== "function") {
                        throw new Error("Expected the enhancer to be a function.");
                    }
                    return enhancer(createStore)(reducer, preloadedState);
                }
                if (typeof reducer !== "function") {
                    throw new Error("Expected the reducer to be a function.");
                }
                var currentReducer = reducer;
                var currentState = preloadedState;
                var currentListeners = [];
                var nextListeners = currentListeners;
                var isDispatching = false;
                function ensureCanMutateNextListeners() {
                    if (nextListeners === currentListeners) {
                        nextListeners = currentListeners.slice();
                    }
                }
                function getState() {
                    return currentState;
                }
                function subscribe(listener) {
                    if (typeof listener !== "function") {
                        throw new Error("Expected listener to be a function.");
                    }
                    var isSubscribed = true;
                    ensureCanMutateNextListeners();
                    nextListeners.push(listener);
                    return function unsubscribe() {
                        if (!isSubscribed) {
                            return;
                        }
                        isSubscribed = false;
                        ensureCanMutateNextListeners();
                        var index = nextListeners.indexOf(listener);
                        nextListeners.splice(index, 1);
                    };
                }
                function dispatch(action) {
                    if (!(0, _isPlainObject2["default"])(action)) {
                        throw new Error("Actions must be plain objects. Use custom middleware for async actions.");
                    }
                    if (typeof action.type === "undefined") {
                        throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');
                    }
                    if (isDispatching) {
                        throw new Error("Reducers may not dispatch actions.");
                    }
                    try {
                        isDispatching = true;
                        currentState = currentReducer(currentState, action);
                    } finally{
                        isDispatching = false;
                    }
                    var listeners = currentListeners = nextListeners;
                    for(var i = 0; i < listeners.length; i++){
                        var listener = listeners[i];
                        listener();
                    }
                    return action;
                }
                function replaceReducer(nextReducer) {
                    if (typeof nextReducer !== "function") {
                        throw new Error("Expected the nextReducer to be a function.");
                    }
                    currentReducer = nextReducer;
                    dispatch({
                        type: ActionTypes.INIT
                    });
                }
                function observable() {
                    var _ref;
                    var outerSubscribe = subscribe;
                    return _ref = {
                        /**
             * The minimal observable subscription method.
             * @param {Object} observer Any object that can be used as an observer.
             * The observer object should have a `next` method.
             * @returns {subscription} An object with an `unsubscribe` method that can
             * be used to unsubscribe the observable from the store, and prevent further
             * emission of values from the observable.
             */ subscribe: function subscribe2(observer) {
                            if ((typeof observer === "undefined" ? "undefined" : _type_of(observer)) !== "object") {
                                throw new TypeError("Expected the observer to be an object.");
                            }
                            function observeState() {
                                if (observer.next) {
                                    observer.next(getState());
                                }
                            }
                            observeState();
                            var unsubscribe = outerSubscribe(observeState);
                            return {
                                unsubscribe: unsubscribe
                            };
                        }
                    }, _ref[_symbolObservable2["default"]] = function() {
                        return this;
                    }, _ref;
                }
                dispatch({
                    type: ActionTypes.INIT
                });
                return _ref2 = {
                    dispatch: dispatch,
                    subscribe: subscribe,
                    getState: getState,
                    replaceReducer: replaceReducer
                }, _ref2[_symbolObservable2["default"]] = observable, _ref2;
            }
        }
    });
    // node_modules/redux/lib/utils/warning.js
    var require_warning2 = __commonJS({
        "node_modules/redux/lib/utils/warning.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = warning;
            function warning(message2) {
                if (typeof console !== "undefined" && typeof console.error === "function") {
                    console.error(message2);
                }
                try {
                    throw new Error(message2);
                } catch (e) {}
            }
        }
    });
    // node_modules/redux/lib/combineReducers.js
    var require_combineReducers = __commonJS({
        "node_modules/redux/lib/combineReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = combineReducers;
            var _createStore = require_createStore();
            var _isPlainObject = require_isPlainObject();
            var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
            var _warning = require_warning2();
            var _warning2 = _interopRequireDefault(_warning);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            function getUndefinedStateErrorMessage(key, action) {
                var actionType = action && action.type;
                var actionName = actionType && '"' + actionType.toString() + '"' || "an action";
                return "Given action " + actionName + ', reducer "' + key + '" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.';
            }
            function assertReducerShape(reducers) {
                Object.keys(reducers).forEach(function(key) {
                    var reducer = reducers[key];
                    var initialState = reducer(void 0, {
                        type: _createStore.ActionTypes.INIT
                    });
                    if (typeof initialState === "undefined") {
                        throw new Error('Reducer "' + key + "\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");
                    }
                    var type = "@@redux/PROBE_UNKNOWN_ACTION_" + Math.random().toString(36).substring(7).split("").join(".");
                    if (typeof reducer(void 0, {
                        type: type
                    }) === "undefined") {
                        throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ("Don't try to handle " + _createStore.ActionTypes.INIT + ' or other actions in "redux/*" ') + "namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.");
                    }
                });
            }
            function combineReducers(reducers) {
                var reducerKeys = Object.keys(reducers);
                var finalReducers = {};
                for(var i = 0; i < reducerKeys.length; i++){
                    var key = reducerKeys[i];
                    if (false) {
                        if (typeof reducers[key] === "undefined") {
                            (0, _warning2["default"])('No reducer provided for key "' + key + '"');
                        }
                    }
                    if (typeof reducers[key] === "function") {
                        finalReducers[key] = reducers[key];
                    }
                }
                var finalReducerKeys = Object.keys(finalReducers);
                var unexpectedKeyCache = void 0;
                if (false) {
                    unexpectedKeyCache = {};
                }
                var shapeAssertionError = void 0;
                try {
                    assertReducerShape(finalReducers);
                } catch (e) {
                    shapeAssertionError = e;
                }
                return function combination() {
                    var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
                    var action = arguments[1];
                    if (shapeAssertionError) {
                        throw shapeAssertionError;
                    }
                    if (false) {
                        var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
                        if (warningMessage) {
                            (0, _warning2["default"])(warningMessage);
                        }
                    }
                    var hasChanged = false;
                    var nextState = {};
                    for(var _i = 0; _i < finalReducerKeys.length; _i++){
                        var _key = finalReducerKeys[_i];
                        var reducer = finalReducers[_key];
                        var previousStateForKey = state[_key];
                        var nextStateForKey = reducer(previousStateForKey, action);
                        if (typeof nextStateForKey === "undefined") {
                            var errorMessage = getUndefinedStateErrorMessage(_key, action);
                            throw new Error(errorMessage);
                        }
                        nextState[_key] = nextStateForKey;
                        hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
                    }
                    return hasChanged ? nextState : state;
                };
            }
        }
    });
    // node_modules/redux/lib/bindActionCreators.js
    var require_bindActionCreators = __commonJS({
        "node_modules/redux/lib/bindActionCreators.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = bindActionCreators;
            var _warning = require_warning2();
            var _warning2 = _interopRequireDefault(_warning);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            function bindActionCreator(actionCreator, dispatch) {
                return function() {
                    return dispatch(actionCreator.apply(void 0, arguments));
                };
            }
            function bindActionCreators(actionCreators, dispatch) {
                if (typeof actionCreators === "function") {
                    return bindActionCreator(actionCreators, dispatch);
                }
                if ((typeof actionCreators === "undefined" ? "undefined" : _type_of(actionCreators)) !== "object" || actionCreators === null) {
                    throw new Error("bindActionCreators expected an object or a function, instead received " + (actionCreators === null ? "null" : typeof actionCreators === "undefined" ? "undefined" : _type_of(actionCreators)) + '. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');
                }
                var keys = Object.keys(actionCreators);
                var boundActionCreators = {};
                for(var i = 0; i < keys.length; i++){
                    var key = keys[i];
                    var actionCreator = actionCreators[key];
                    if (typeof actionCreator === "function") {
                        boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
                    } else {
                        (0, _warning2["default"])("bindActionCreators expected a function actionCreator for key '" + key + "', instead received type '" + (typeof actionCreator === "undefined" ? "undefined" : _type_of(actionCreator)) + "'.");
                    }
                }
                return boundActionCreators;
            }
        }
    });
    // node_modules/redux/lib/compose.js
    var require_compose = __commonJS({
        "node_modules/redux/lib/compose.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = compose2;
            function compose2() {
                for(var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++){
                    funcs[_key] = arguments[_key];
                }
                if (funcs.length === 0) {
                    return function(arg) {
                        return arg;
                    };
                }
                if (funcs.length === 1) {
                    return funcs[0];
                }
                return funcs.reduce(function(a, b) {
                    return function() {
                        return a(b.apply(void 0, arguments));
                    };
                });
            }
        }
    });
    // node_modules/redux/lib/applyMiddleware.js
    var require_applyMiddleware = __commonJS({
        "node_modules/redux/lib/applyMiddleware.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            var _extends2 = Object.assign || function(target) {
                for(var i = 1; i < arguments.length; i++){
                    var source = arguments[i];
                    for(var key in source){
                        if (Object.prototype.hasOwnProperty.call(source, key)) {
                            target[key] = source[key];
                        }
                    }
                }
                return target;
            };
            exports["default"] = applyMiddleware;
            var _compose = require_compose();
            var _compose2 = _interopRequireDefault(_compose);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            function applyMiddleware() {
                for(var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++){
                    middlewares[_key] = arguments[_key];
                }
                return function(createStore) {
                    return function(reducer, preloadedState, enhancer) {
                        var store = createStore(reducer, preloadedState, enhancer);
                        var _dispatch = store.dispatch;
                        var chain = [];
                        var middlewareAPI = {
                            getState: store.getState,
                            dispatch: function dispatch(action) {
                                return _dispatch(action);
                            }
                        };
                        chain = middlewares.map(function(middleware) {
                            return middleware(middlewareAPI);
                        });
                        _dispatch = _compose2["default"].apply(void 0, chain)(store.dispatch);
                        return _extends2({}, store, {
                            dispatch: _dispatch
                        });
                    };
                };
            }
        }
    });
    // node_modules/redux/lib/index.js
    var require_lib2 = __commonJS({
        "node_modules/redux/lib/index.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = void 0;
            var _createStore = require_createStore();
            var _createStore2 = _interopRequireDefault(_createStore);
            var _combineReducers = require_combineReducers();
            var _combineReducers2 = _interopRequireDefault(_combineReducers);
            var _bindActionCreators = require_bindActionCreators();
            var _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);
            var _applyMiddleware = require_applyMiddleware();
            var _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);
            var _compose = require_compose();
            var _compose2 = _interopRequireDefault(_compose);
            var _warning = require_warning2();
            var _warning2 = _interopRequireDefault(_warning);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            if (false) {
                (0, _warning2["default"])("You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) to ensure you have the correct code for your production build.");
            }
            exports.createStore = _createStore2["default"];
            exports.combineReducers = _combineReducers2["default"];
            exports.bindActionCreators = _bindActionCreators2["default"];
            exports.applyMiddleware = _applyMiddleware2["default"];
            exports.compose = _compose2["default"];
        }
    });
    // node_modules/react-redux/lib/utils/wrapActionCreators.js
    var require_wrapActionCreators = __commonJS({
        "node_modules/react-redux/lib/utils/wrapActionCreators.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports["default"] = wrapActionCreators;
            var _redux = require_lib2();
            function wrapActionCreators(actionCreators) {
                return function(dispatch) {
                    return (0, _redux.bindActionCreators)(actionCreators, dispatch);
                };
            }
        }
    });
    // node_modules/hoist-non-react-statics/index.js
    var require_hoist_non_react_statics = __commonJS({
        "node_modules/hoist-non-react-statics/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var REACT_STATICS = {
                childContextTypes: true,
                contextTypes: true,
                defaultProps: true,
                displayName: true,
                getDefaultProps: true,
                mixins: true,
                propTypes: true,
                type: true
            };
            var KNOWN_STATICS = {
                name: true,
                length: true,
                prototype: true,
                caller: true,
                arguments: true,
                arity: true
            };
            var isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === "function";
            module.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {
                if (typeof sourceComponent !== "string") {
                    var keys = Object.getOwnPropertyNames(sourceComponent);
                    if (isGetOwnPropertySymbolsAvailable) {
                        keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));
                    }
                    for(var i = 0; i < keys.length; ++i){
                        if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {
                            try {
                                targetComponent[keys[i]] = sourceComponent[keys[i]];
                            } catch (error) {}
                        }
                    }
                }
                return targetComponent;
            };
        }
    });
    // node_modules/invariant/browser.js
    var require_browser = __commonJS({
        "node_modules/invariant/browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var invariant = function invariant(condition, format, a, b, c, d, e, f) {
                if (false) {
                    if (format === void 0) {
                        throw new Error("invariant requires an error message argument");
                    }
                }
                if (!condition) {
                    var error;
                    if (format === void 0) {
                        error = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
                    } else {
                        var args = [
                            a,
                            b,
                            c,
                            d,
                            e,
                            f
                        ];
                        var argIndex = 0;
                        error = new Error(format.replace(/%s/g, function() {
                            return args[argIndex++];
                        }));
                        error.name = "Invariant Violation";
                    }
                    error.framesToPop = 1;
                    throw error;
                }
            };
            module.exports = invariant;
        }
    });
    // node_modules/react-redux/lib/components/connect.js
    var require_connect = __commonJS({
        "node_modules/react-redux/lib/components/connect.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            var _extends2 = Object.assign || function(target) {
                for(var i = 1; i < arguments.length; i++){
                    var source = arguments[i];
                    for(var key in source){
                        if (Object.prototype.hasOwnProperty.call(source, key)) {
                            target[key] = source[key];
                        }
                    }
                }
                return target;
            };
            exports["default"] = connect;
            var _react = require_react();
            var _storeShape = require_storeShape();
            var _storeShape2 = _interopRequireDefault(_storeShape);
            var _shallowEqual = require_shallowEqual();
            var _shallowEqual2 = _interopRequireDefault(_shallowEqual);
            var _wrapActionCreators = require_wrapActionCreators();
            var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);
            var _warning = require_warning();
            var _warning2 = _interopRequireDefault(_warning);
            var _isPlainObject = require_isPlainObject();
            var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
            var _hoistNonReactStatics = require_hoist_non_react_statics();
            var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
            var _invariant = require_browser();
            var _invariant2 = _interopRequireDefault(_invariant);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            function _classCallCheck(instance, Constructor) {
                if (!(instance instanceof Constructor)) {
                    throw new TypeError("Cannot call a class as a function");
                }
            }
            function _possibleConstructorReturn(self2, call2) {
                if (!self2) {
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                }
                return call2 && ((typeof call2 === "undefined" ? "undefined" : _type_of(call2)) === "object" || typeof call2 === "function") ? call2 : self2;
            }
            function _inherits(subClass, superClass) {
                if (typeof superClass !== "function" && superClass !== null) {
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : _type_of(superClass)));
                }
                subClass.prototype = Object.create(superClass && superClass.prototype, {
                    constructor: {
                        value: subClass,
                        enumerable: false,
                        writable: true,
                        configurable: true
                    }
                });
                if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
            }
            var defaultMapStateToProps = function defaultMapStateToProps2(state) {
                return {};
            };
            var defaultMapDispatchToProps = function defaultMapDispatchToProps2(dispatch) {
                return {
                    dispatch: dispatch
                };
            };
            var defaultMergeProps = function defaultMergeProps2(stateProps, dispatchProps, parentProps) {
                return _extends2({}, parentProps, stateProps, dispatchProps);
            };
            function getDisplayName(WrappedComponent) {
                return WrappedComponent.displayName || WrappedComponent.name || "Component";
            }
            var errorObject = {
                value: null
            };
            function tryCatch(fn, ctx) {
                try {
                    return fn.apply(ctx);
                } catch (e) {
                    errorObject.value = e;
                    return errorObject;
                }
            }
            var nextVersion = 0;
            function connect(mapStateToProps, mapDispatchToProps, mergeProps) {
                var options = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
                var shouldSubscribe = Boolean(mapStateToProps);
                var mapState = mapStateToProps || defaultMapStateToProps;
                var mapDispatch = void 0;
                if (typeof mapDispatchToProps === "function") {
                    mapDispatch = mapDispatchToProps;
                } else if (!mapDispatchToProps) {
                    mapDispatch = defaultMapDispatchToProps;
                } else {
                    mapDispatch = (0, _wrapActionCreators2["default"])(mapDispatchToProps);
                }
                var finalMergeProps = mergeProps || defaultMergeProps;
                var _options$pure = options.pure, pure = _options$pure === void 0 ? true : _options$pure, _options$withRef = options.withRef, withRef = _options$withRef === void 0 ? false : _options$withRef;
                var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;
                var version = nextVersion++;
                return function wrapWithConnect(WrappedComponent) {
                    var connectDisplayName = "Connect(" + getDisplayName(WrappedComponent) + ")";
                    function checkStateShape(props, methodName) {
                        if (!(0, _isPlainObject2["default"])(props)) {
                            (0, _warning2["default"])(methodName + "() in " + connectDisplayName + " must return a plain object. " + ("Instead received " + props + "."));
                        }
                    }
                    function computeMergedProps(stateProps, dispatchProps, parentProps) {
                        var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);
                        if (false) {
                            checkStateShape(mergedProps, "mergeProps");
                        }
                        return mergedProps;
                    }
                    var Connect = function(_Component) {
                        _inherits(Connect2, _Component);
                        Connect2.prototype.shouldComponentUpdate = function shouldComponentUpdate() {
                            return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;
                        };
                        function Connect2(props, context) {
                            _classCallCheck(this, Connect2);
                            var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
                            _this.version = version;
                            _this.store = props.store || context.store;
                            (0, _invariant2["default"])(_this.store, 'Could not find "store" in either the context or ' + ('props of "' + connectDisplayName + '". ') + "Either wrap the root component in a <Provider>, " + ('or explicitly pass "store" as a prop to "' + connectDisplayName + '".'));
                            var storeState = _this.store.getState();
                            _this.state = {
                                storeState: storeState
                            };
                            _this.clearCache();
                            return _this;
                        }
                        Connect2.prototype.computeStateProps = function computeStateProps(store, props) {
                            if (!this.finalMapStateToProps) {
                                return this.configureFinalMapState(store, props);
                            }
                            var state = store.getState();
                            var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);
                            if (false) {
                                checkStateShape(stateProps, "mapStateToProps");
                            }
                            return stateProps;
                        };
                        Connect2.prototype.configureFinalMapState = function configureFinalMapState(store, props) {
                            var mappedState = mapState(store.getState(), props);
                            var isFactory = typeof mappedState === "function";
                            this.finalMapStateToProps = isFactory ? mappedState : mapState;
                            this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;
                            if (isFactory) {
                                return this.computeStateProps(store, props);
                            }
                            if (false) {
                                checkStateShape(mappedState, "mapStateToProps");
                            }
                            return mappedState;
                        };
                        Connect2.prototype.computeDispatchProps = function computeDispatchProps(store, props) {
                            if (!this.finalMapDispatchToProps) {
                                return this.configureFinalMapDispatch(store, props);
                            }
                            var dispatch = store.dispatch;
                            var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);
                            if (false) {
                                checkStateShape(dispatchProps, "mapDispatchToProps");
                            }
                            return dispatchProps;
                        };
                        Connect2.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {
                            var mappedDispatch = mapDispatch(store.dispatch, props);
                            var isFactory = typeof mappedDispatch === "function";
                            this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;
                            this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;
                            if (isFactory) {
                                return this.computeDispatchProps(store, props);
                            }
                            if (false) {
                                checkStateShape(mappedDispatch, "mapDispatchToProps");
                            }
                            return mappedDispatch;
                        };
                        Connect2.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {
                            var nextStateProps = this.computeStateProps(this.store, this.props);
                            if (this.stateProps && (0, _shallowEqual2["default"])(nextStateProps, this.stateProps)) {
                                return false;
                            }
                            this.stateProps = nextStateProps;
                            return true;
                        };
                        Connect2.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {
                            var nextDispatchProps = this.computeDispatchProps(this.store, this.props);
                            if (this.dispatchProps && (0, _shallowEqual2["default"])(nextDispatchProps, this.dispatchProps)) {
                                return false;
                            }
                            this.dispatchProps = nextDispatchProps;
                            return true;
                        };
                        Connect2.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {
                            var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);
                            if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2["default"])(nextMergedProps, this.mergedProps)) {
                                return false;
                            }
                            this.mergedProps = nextMergedProps;
                            return true;
                        };
                        Connect2.prototype.isSubscribed = function isSubscribed() {
                            return typeof this.unsubscribe === "function";
                        };
                        Connect2.prototype.trySubscribe = function trySubscribe() {
                            if (shouldSubscribe && !this.unsubscribe) {
                                this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));
                                this.handleChange();
                            }
                        };
                        Connect2.prototype.tryUnsubscribe = function tryUnsubscribe() {
                            if (this.unsubscribe) {
                                this.unsubscribe();
                                this.unsubscribe = null;
                            }
                        };
                        Connect2.prototype.componentDidMount = function componentDidMount() {
                            this.trySubscribe();
                        };
                        Connect2.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
                            if (!pure || !(0, _shallowEqual2["default"])(nextProps, this.props)) {
                                this.haveOwnPropsChanged = true;
                            }
                        };
                        Connect2.prototype.componentWillUnmount = function componentWillUnmount() {
                            this.tryUnsubscribe();
                            this.clearCache();
                        };
                        Connect2.prototype.clearCache = function clearCache() {
                            this.dispatchProps = null;
                            this.stateProps = null;
                            this.mergedProps = null;
                            this.haveOwnPropsChanged = true;
                            this.hasStoreStateChanged = true;
                            this.haveStatePropsBeenPrecalculated = false;
                            this.statePropsPrecalculationError = null;
                            this.renderedElement = null;
                            this.finalMapDispatchToProps = null;
                            this.finalMapStateToProps = null;
                        };
                        Connect2.prototype.handleChange = function handleChange() {
                            if (!this.unsubscribe) {
                                return;
                            }
                            var storeState = this.store.getState();
                            var prevStoreState = this.state.storeState;
                            if (pure && prevStoreState === storeState) {
                                return;
                            }
                            if (pure && !this.doStatePropsDependOnOwnProps) {
                                var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);
                                if (!haveStatePropsChanged) {
                                    return;
                                }
                                if (haveStatePropsChanged === errorObject) {
                                    this.statePropsPrecalculationError = errorObject.value;
                                }
                                this.haveStatePropsBeenPrecalculated = true;
                            }
                            this.hasStoreStateChanged = true;
                            this.setState({
                                storeState: storeState
                            });
                        };
                        Connect2.prototype.getWrappedInstance = function getWrappedInstance() {
                            (0, _invariant2["default"])(withRef, "To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call.");
                            return this.refs.wrappedInstance;
                        };
                        Connect2.prototype.render = function render() {
                            var haveOwnPropsChanged = this.haveOwnPropsChanged, hasStoreStateChanged = this.hasStoreStateChanged, haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated, statePropsPrecalculationError = this.statePropsPrecalculationError, renderedElement = this.renderedElement;
                            this.haveOwnPropsChanged = false;
                            this.hasStoreStateChanged = false;
                            this.haveStatePropsBeenPrecalculated = false;
                            this.statePropsPrecalculationError = null;
                            if (statePropsPrecalculationError) {
                                throw statePropsPrecalculationError;
                            }
                            var shouldUpdateStateProps = true;
                            var shouldUpdateDispatchProps = true;
                            if (pure && renderedElement) {
                                shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;
                                shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;
                            }
                            var haveStatePropsChanged = false;
                            var haveDispatchPropsChanged = false;
                            if (haveStatePropsBeenPrecalculated) {
                                haveStatePropsChanged = true;
                            } else if (shouldUpdateStateProps) {
                                haveStatePropsChanged = this.updateStatePropsIfNeeded();
                            }
                            if (shouldUpdateDispatchProps) {
                                haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();
                            }
                            var haveMergedPropsChanged = true;
                            if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {
                                haveMergedPropsChanged = this.updateMergedPropsIfNeeded();
                            } else {
                                haveMergedPropsChanged = false;
                            }
                            if (!haveMergedPropsChanged && renderedElement) {
                                return renderedElement;
                            }
                            if (withRef) {
                                this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends2({}, this.mergedProps, {
                                    ref: "wrappedInstance"
                                }));
                            } else {
                                this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);
                            }
                            return this.renderedElement;
                        };
                        return Connect2;
                    }(_react.Component);
                    Connect.displayName = connectDisplayName;
                    Connect.WrappedComponent = WrappedComponent;
                    Connect.contextTypes = {
                        store: _storeShape2["default"]
                    };
                    Connect.propTypes = {
                        store: _storeShape2["default"]
                    };
                    if (false) {
                        Connect.prototype.componentWillUpdate = function componentWillUpdate() {
                            if (this.version === version) {
                                return;
                            }
                            this.version = version;
                            this.trySubscribe();
                            this.clearCache();
                        };
                    }
                    return (0, _hoistNonReactStatics2["default"])(Connect, WrappedComponent);
                };
            }
        }
    });
    // node_modules/react-redux/lib/index.js
    var require_lib3 = __commonJS({
        "node_modules/react-redux/lib/index.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.__esModule = true;
            exports.connect = exports.Provider = void 0;
            var _Provider = require_Provider();
            var _Provider2 = _interopRequireDefault(_Provider);
            var _connect = require_connect();
            var _connect2 = _interopRequireDefault(_connect);
            function _interopRequireDefault(obj) {
                return obj && obj.__esModule ? obj : {
                    "default": obj
                };
            }
            exports.Provider = _Provider2["default"];
            exports.connect = _connect2["default"];
        }
    });
    // node_modules/classnames/index.js
    var require_classnames = __commonJS({
        "node_modules/classnames/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function() {
                "use strict";
                var hasOwn = {}.hasOwnProperty;
                function classNames() {
                    var classes = [];
                    for(var i = 0; i < arguments.length; i++){
                        var arg = arguments[i];
                        if (!arg) continue;
                        var argType = typeof arg === "undefined" ? "undefined" : _type_of(arg);
                        if (argType === "string" || argType === "number") {
                            classes.push(arg);
                        } else if (Array.isArray(arg)) {
                            classes.push(classNames.apply(null, arg));
                        } else if (argType === "object") {
                            for(var key in arg){
                                if (hasOwn.call(arg, key) && arg[key]) {
                                    classes.push(key);
                                }
                            }
                        }
                    }
                    return classes.join(" ");
                }
                if (typeof module !== "undefined" && module.exports) {
                    module.exports = classNames;
                } else if (typeof define === "function" && _type_of(define.amd) === "object" && define.amd) {
                    define("classnames", [], function() {
                        return classNames;
                    });
                } else {
                    window.classNames = classNames;
                }
            })();
        }
    });
    // node_modules/@signageos/actions/dist/Input/keyActions.js
    var require_keyActions = __commonJS({
        "node_modules/@signageos/actions/dist/Input/keyActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.HandleKeySequence = exports.HandleKeyUp = void 0;
            exports.HandleKeyUp = "Input.HandleKeyUp";
            exports.HandleKeySequence = "Input.HandleKeySequence";
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Input/KeyCode.js
    var require_KeyCode = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Input/KeyCode.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.keyboardKeyMap = exports.KeyCode = void 0;
            var KeyCode2;
            (function(KeyCode3) {
                KeyCode3[KeyCode3["UNKNOWN"] = -1] = "UNKNOWN";
                KeyCode3[KeyCode3["NUM_0"] = 0] = "NUM_0";
                KeyCode3[KeyCode3["NUM_1"] = 1] = "NUM_1";
                KeyCode3[KeyCode3["NUM_2"] = 2] = "NUM_2";
                KeyCode3[KeyCode3["NUM_3"] = 3] = "NUM_3";
                KeyCode3[KeyCode3["NUM_4"] = 4] = "NUM_4";
                KeyCode3[KeyCode3["NUM_5"] = 5] = "NUM_5";
                KeyCode3[KeyCode3["NUM_6"] = 6] = "NUM_6";
                KeyCode3[KeyCode3["NUM_7"] = 7] = "NUM_7";
                KeyCode3[KeyCode3["NUM_8"] = 8] = "NUM_8";
                KeyCode3[KeyCode3["NUM_9"] = 9] = "NUM_9";
                KeyCode3[KeyCode3["ARROW_LEFT"] = 10] = "ARROW_LEFT";
                KeyCode3[KeyCode3["ARROW_UP"] = 11] = "ARROW_UP";
                KeyCode3[KeyCode3["ARROW_RIGHT"] = 12] = "ARROW_RIGHT";
                KeyCode3[KeyCode3["ARROW_DOWN"] = 13] = "ARROW_DOWN";
                KeyCode3[KeyCode3["OK"] = 14] = "OK";
                KeyCode3[KeyCode3["YELLOW"] = 15] = "YELLOW";
                KeyCode3[KeyCode3["BLUE"] = 16] = "BLUE";
                KeyCode3[KeyCode3["RED"] = 17] = "RED";
                KeyCode3[KeyCode3["GREEN"] = 18] = "GREEN";
                KeyCode3[KeyCode3["VOLUME_DOWN"] = 19] = "VOLUME_DOWN";
                KeyCode3[KeyCode3["VOLUME_UP"] = 20] = "VOLUME_UP";
                KeyCode3[KeyCode3["POWER"] = 21] = "POWER";
                KeyCode3[KeyCode3["POWER_OFF"] = 22] = "POWER_OFF";
                KeyCode3[KeyCode3["HOME"] = 23] = "HOME";
                KeyCode3[KeyCode3["EXIT"] = 24] = "EXIT";
                KeyCode3[KeyCode3["RETURN"] = 25] = "RETURN";
                KeyCode3[KeyCode3["BACKSPACE"] = 26] = "BACKSPACE";
                KeyCode3[KeyCode3["LOCK"] = 27] = "LOCK";
                KeyCode3[KeyCode3["BACKWARD"] = 28] = "BACKWARD";
                KeyCode3[KeyCode3["FORWARD"] = 29] = "FORWARD";
                KeyCode3[KeyCode3["PLAY"] = 30] = "PLAY";
                KeyCode3[KeyCode3["PAUSE"] = 31] = "PAUSE";
                KeyCode3[KeyCode3["STOP"] = 32] = "STOP";
                KeyCode3[KeyCode3["PLAY_PAUSE"] = 33] = "PLAY_PAUSE";
                KeyCode3[KeyCode3["VOLUME_MUTE"] = 34] = "VOLUME_MUTE";
                KeyCode3[KeyCode3["CHANNEL_UP"] = 35] = "CHANNEL_UP";
                KeyCode3[KeyCode3["CHANNEL_DOWN"] = 36] = "CHANNEL_DOWN";
                KeyCode3[KeyCode3["MEDIA_TRACK_NEXT"] = 37] = "MEDIA_TRACK_NEXT";
                KeyCode3[KeyCode3["MEDIA_TRACK_PREVIOUS"] = 38] = "MEDIA_TRACK_PREVIOUS";
                KeyCode3[KeyCode3["MEDIA_RECORD"] = 40] = "MEDIA_RECORD";
                KeyCode3[KeyCode3["INFO"] = 41] = "INFO";
                KeyCode3[KeyCode3["GUIDE"] = 42] = "GUIDE";
                KeyCode3[KeyCode3["CAPTIONS"] = 43] = "CAPTIONS";
                KeyCode3[KeyCode3["MEDIA_AUDIO_TRACK"] = 44] = "MEDIA_AUDIO_TRACK";
            })(KeyCode2 || (exports.KeyCode = KeyCode2 = {}));
            exports.keyboardKeyMap = {
                "0": KeyCode2.NUM_0,
                "1": KeyCode2.NUM_1,
                "2": KeyCode2.NUM_2,
                "3": KeyCode2.NUM_3,
                "4": KeyCode2.NUM_4,
                "5": KeyCode2.NUM_5,
                "6": KeyCode2.NUM_6,
                "7": KeyCode2.NUM_7,
                "8": KeyCode2.NUM_8,
                "9": KeyCode2.NUM_9,
                Enter: KeyCode2.OK,
                Backspace: KeyCode2.RETURN,
                Escape: KeyCode2.EXIT,
                ArrowUp: KeyCode2.ARROW_UP,
                ArrowDown: KeyCode2.ARROW_DOWN,
                ArrowLeft: KeyCode2.ARROW_LEFT,
                ArrowRight: KeyCode2.ARROW_RIGHT,
                Home: KeyCode2.HOME,
                Q: KeyCode2.YELLOW,
                W: KeyCode2.YELLOW,
                E: KeyCode2.RED,
                R: KeyCode2.GREEN,
                F9: KeyCode2.POWER_OFF,
                F10: KeyCode2.POWER
            };
        }
    });
    // svgr:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Input/lock.svg
    var lock_exports = {};
    __export(lock_exports, {
        "default": function() {
            return lock_default;
        }
    });
    var React, Lock, lock_default;
    var init_lock = __esm({
        "svgr:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Input/lock.svg": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            React = __toESM(require_react());
            Lock = function(props) {
                return /* @__PURE__ */ React.createElement("svg", __spreadValues({
                    enableBackground: "new 0 0 500 500",
                    height: "1em",
                    id: "Layer_1",
                    viewBox: "0 0 500 500",
                    width: "1em",
                    xmlSpace: "preserve",
                    xmlns: "http://www.w3.org/2000/svg",
                    xmlnsXlink: "http://www.w3.org/1999/xlink"
                }, props), /* @__PURE__ */ React.createElement("path", {
                    clipRule: "evenodd",
                    d: "M131.889,150.061v63.597h-27.256  c-20.079,0-36.343,16.263-36.343,36.342v181.711c0,20.078,16.264,36.34,36.343,36.34h290.734c20.078,0,36.345-16.262,36.345-36.34  V250c0-20.079-16.267-36.342-36.345-36.342h-27.254v-63.597c0-65.232-52.882-118.111-118.112-118.111  S131.889,84.828,131.889,150.061z M177.317,213.658v-63.597c0-40.157,32.525-72.685,72.683-72.685  c40.158,0,72.685,32.528,72.685,72.685v63.597H177.317z M213.658,313.599c0-20.078,16.263-36.341,36.342-36.341  s36.341,16.263,36.341,36.341c0,12.812-6.634,24.079-16.625,30.529c0,0,3.55,21.446,7.542,46.699  c0,7.538-6.087,13.625-13.629,13.625h-27.258c-7.541,0-13.627-6.087-13.627-13.625l7.542-46.699  C220.294,337.678,213.658,326.41,213.658,313.599z",
                    fill: "#010101",
                    fillRule: "evenodd"
                }));
            };
            lock_default = Lock;
        }
    });
    // svgr:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Input/backspace.svg
    var backspace_exports = {};
    __export(backspace_exports, {
        "default": function() {
            return backspace_default;
        }
    });
    var React2, Backspace, backspace_default;
    var init_backspace = __esm({
        "svgr:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Input/backspace.svg": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            React2 = __toESM(require_react());
            Backspace = function(props) {
                return /* @__PURE__ */ React2.createElement("svg", __spreadValues({
                    height: "1em",
                    viewBox: "0 0 48 48",
                    width: "1em",
                    xmlns: "http://www.w3.org/2000/svg"
                }, props), /* @__PURE__ */ React2.createElement("path", {
                    d: "M0 0h48v48h-48z",
                    fill: "none"
                }), /* @__PURE__ */ React2.createElement("path", {
                    d: "M44 6h-30c-1.38 0-2.47.7-3.19 1.76l-10.81 16.23 10.81 16.23c.72 1.06 1.81 1.78 3.19 1.78h30c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm-6 25.17l-2.83 2.83-7.17-7.17-7.17 7.17-2.83-2.83 7.17-7.17-7.17-7.17 2.83-2.83 7.17 7.17 7.17-7.17 2.83 2.83-7.17 7.17 7.17 7.17z"
                }));
            };
            backspace_default = Backspace;
        }
    });
    // <data:text/css,.m-keyboard-713f40c7e2%7Bposition:absolute;z-index...>
    var init_css_m_keyboard_713f40c7e2_7Bposition_absolute_z_index_200_width_300px_left_50_25_top_20px_margin_left_150px_background_rgba_0_0_0_0_9_border_1px_20solid_20_FFFFFF_7D_m_row_713f40c7e2_7Bposition_relative_height_100px_7D_m_cell_713f40c7e2_7Bdisplay_inline_block_position_relative_height_100px_width_100px_text_align_center_font_size_80px_cursor_pointer_text_shadow_2px_202px_2010px_20_000000_7D_m_cell_713f40c7e2_hover_7Bcolor_lightgrey_7D_m_cell_713f40c7e2_active_7Bcolor_grey_7D_m_enteredCode_713f40c7e2_7Bdisplay_block_color_grey_position_relative_height_100px_width_300px_text_align_center_font_size_80px_7D_m_lock_713f40c7e2_20svg_7Bwidth_60px_height_60px_7D_m_lock_713f40c7e2_20svg_20path_7Bfill_FFFFFF_7D_m_lock_713f40c7e2_hover_20svg_20path_7Bfill_lightgrey_7D_m_lock_713f40c7e2_active_20svg_20path_7Bfill_grey_7D_m_backspace_713f40c7e2_20svg_20path_nth_child_2_7Bfill_FFFFFF_7D_m_backspace_713f40c7e2_hover_20svg_20path_nth_child_2_7Bfill_lightgrey_7D = __esm({
        "<data:text/css,.m-keyboard-713f40c7e2%7Bposition:absolute;z-index...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Input/NumericKeyboard.module.sass
    var NumericKeyboard_module_exports = {};
    __export(NumericKeyboard_module_exports, {
        "default": function() {
            return NumericKeyboard_module_default;
        }
    });
    var result2, NumericKeyboard_module_default;
    var init_NumericKeyboard_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Input/NumericKeyboard.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_keyboard_713f40c7e2_7Bposition_absolute_z_index_200_width_300px_left_50_25_top_20px_margin_left_150px_background_rgba_0_0_0_0_9_border_1px_20solid_20_FFFFFF_7D_m_row_713f40c7e2_7Bposition_relative_height_100px_7D_m_cell_713f40c7e2_7Bdisplay_inline_block_position_relative_height_100px_width_100px_text_align_center_font_size_80px_cursor_pointer_text_shadow_2px_202px_2010px_20_000000_7D_m_cell_713f40c7e2_hover_7Bcolor_lightgrey_7D_m_cell_713f40c7e2_active_7Bcolor_grey_7D_m_enteredCode_713f40c7e2_7Bdisplay_block_color_grey_position_relative_height_100px_width_300px_text_align_center_font_size_80px_7D_m_lock_713f40c7e2_20svg_7Bwidth_60px_height_60px_7D_m_lock_713f40c7e2_20svg_20path_7Bfill_FFFFFF_7D_m_lock_713f40c7e2_hover_20svg_20path_7Bfill_lightgrey_7D_m_lock_713f40c7e2_active_20svg_20path_7Bfill_grey_7D_m_backspace_713f40c7e2_20svg_20path_nth_child_2_7Bfill_FFFFFF_7D_m_backspace_713f40c7e2_hover_20svg_20path_nth_child_2_7Bfill_lightgrey_7D();
            result2 = {
                keyboard: "m-keyboard-713f40c7e2",
                row: "m-row-713f40c7e2",
                cell: "m-cell-713f40c7e2",
                enteredCode: "m-enteredCode-713f40c7e2",
                lock: "m-lock-713f40c7e2",
                backspace: "m-backspace-713f40c7e2"
            };
            NumericKeyboard_module_default = result2;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Input/NumericKeyboard.js
    var require_NumericKeyboard = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Input/NumericKeyboard.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NumericKeyboard = void 0;
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var classnames_1 = __importDefault(require_classnames());
            var keyActions_1 = require_keyActions();
            var KeyCode_1 = require_KeyCode();
            var lock_svg_1 = __importDefault((init_lock(), __toCommonJS(lock_exports)));
            var backspace_svg_1 = __importDefault((init_backspace(), __toCommonJS(backspace_exports)));
            var NumericKeyboard_module_sass_1 = __importDefault((init_NumericKeyboard_module(), __toCommonJS(NumericKeyboard_module_exports)));
            var NumericKeyboard = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(NumericKeyboard, _React3_PureComponent);
                var _super = _create_super(NumericKeyboard);
                function NumericKeyboard() {
                    _class_call_check(this, NumericKeyboard);
                    return _super.apply(this, arguments);
                }
                _create_class(NumericKeyboard, [
                    {
                        key: "render",
                        value: function render() {
                            var _this = this;
                            return this.props.showKeyboard ? React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].keyboard
                            }, React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].row
                            }, React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_1);
                                }
                            }, "1"), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_2);
                                }
                            }, "2"), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_3);
                                }
                            }, "3")), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].row
                            }, React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_4);
                                }
                            }, "4"), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_5);
                                }
                            }, "5"), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_6);
                                }
                            }, "6")), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].row
                            }, React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_7);
                                }
                            }, "7"), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_8);
                                }
                            }, "8"), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_9);
                                }
                            }, "9")), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].row
                            }, this.props.locked ? React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell
                            }) : React3.createElement("div", {
                                className: (0, classnames_1["default"])(NumericKeyboard_module_sass_1["default"].cell, NumericKeyboard_module_sass_1["default"].lock),
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.LOCK);
                                }
                            }, React3.createElement(lock_svg_1["default"], null)), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell,
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.NUM_0);
                                }
                            }, "0"), this.props.enteredCode.length === 0 ? React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].cell
                            }) : React3.createElement("div", {
                                className: (0, classnames_1["default"])(NumericKeyboard_module_sass_1["default"].cell, NumericKeyboard_module_sass_1["default"].backspace),
                                onClick: function() {
                                    return _this.props.handleKeyUp(KeyCode_1.KeyCode.BACKSPACE);
                                }
                            }, React3.createElement(backspace_svg_1["default"], null))), React3.createElement("div", {
                                className: NumericKeyboard_module_sass_1["default"].enteredCode
                            }, this.props.enteredCode)) : null;
                        }
                    }
                ]);
                return NumericKeyboard;
            }(React3.PureComponent);
            exports.NumericKeyboard = NumericKeyboard;
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    showKeyboard: state.keyboard.showNumericKeyboard,
                    enteredCode: state.keyboard.numericCode,
                    locked: state.deviceRemoteControl.locked
                };
            }, function(dispatch) {
                return {
                    handleKeyUp: function(keyCode) {
                        return dispatch({
                            type: keyActions_1.HandleKeyUp,
                            keyCode: KeyCode_1.KeyCode[keyCode]
                        });
                    }
                };
            })(NumericKeyboard);
        }
    });
    // <data:text/css,.m-mainInfo-5debc76d77%7Bwidth:100%25;height:auto;...>
    var init_css_m_mainInfo_5debc76d77_7Bwidth_100_25_height_auto_position_fixed_top_50_25_transform_translateY_50_25_margin_left_3em_text_align_left_7D_m_title_5debc76d77_7Bfont_size_2vw_color_72727d_7D = __esm({
        "<data:text/css,.m-mainInfo-5debc76d77%7Bwidth:100%25;height:auto;...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/MainInfo.module.sass
    var MainInfo_module_exports = {};
    __export(MainInfo_module_exports, {
        "default": function() {
            return MainInfo_module_default;
        }
    });
    var result3, MainInfo_module_default;
    var init_MainInfo_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/MainInfo.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_mainInfo_5debc76d77_7Bwidth_100_25_height_auto_position_fixed_top_50_25_transform_translateY_50_25_margin_left_3em_text_align_left_7D_m_title_5debc76d77_7Bfont_size_2vw_color_72727d_7D();
            result3 = {
                mainInfo: "m-mainInfo-5debc76d77",
                title: "m-title-5debc76d77",
                hash: "m-hash-5debc76d77"
            };
            MainInfo_module_default = result3;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Info/MainInfo.js
    var require_MainInfo = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Info/MainInfo.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var MainInfo_module_sass_1 = __importDefault((init_MainInfo_module(), __toCommonJS(MainInfo_module_exports)));
            function MainInfo(props) {
                return React3.createElement("div", {
                    className: MainInfo_module_sass_1["default"].mainInfo
                }, React3.createElement("div", {
                    className: MainInfo_module_sass_1["default"].title
                }, props.title), React3.createElement("div", {
                    className: MainInfo_module_sass_1["default"].hash
                }, props.value), React3.createElement("div", null, props.children));
            }
            exports["default"] = MainInfo;
        }
    });
    // <data:text/css,.m-deviceInfo-cd5e8fa7cf%7Bdisplay:table;margin-le...>
    var init_css_m_deviceInfo_cd5e8fa7cf_7Bdisplay_table_margin_left_0_5em_margin_right_0_5em_text_align_right_width_100_25_font_weight_600_7D_m_deviceInfoLabel_cd5e8fa7cf_7Bcolor_72727d_padding_right_0 = __esm({
        "<data:text/css,.m-deviceInfo-cd5e8fa7cf%7Bdisplay:table;margin-le...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/InfoProperty.module.sass
    var InfoProperty_module_exports = {};
    __export(InfoProperty_module_exports, {
        "default": function() {
            return InfoProperty_module_default;
        }
    });
    var result4, InfoProperty_module_default;
    var init_InfoProperty_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/InfoProperty.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_deviceInfo_cd5e8fa7cf_7Bdisplay_table_margin_left_0_5em_margin_right_0_5em_text_align_right_width_100_25_font_weight_600_7D_m_deviceInfoLabel_cd5e8fa7cf_7Bcolor_72727d_padding_right_0();
            result4 = {
                deviceInfo: "m-deviceInfo-cd5e8fa7cf",
                deviceInfoLabel: "m-deviceInfoLabel-cd5e8fa7cf"
            };
            InfoProperty_module_default = result4;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Info/InfoProperty.js
    var require_InfoProperty = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Info/InfoProperty.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var InfoProperty_module_sass_1 = __importDefault((init_InfoProperty_module(), __toCommonJS(InfoProperty_module_exports)));
            function InfoProperty(props) {
                return React3.createElement("div", {
                    className: InfoProperty_module_sass_1["default"].deviceInfo
                }, React3.createElement("span", {
                    className: InfoProperty_module_sass_1["default"].deviceInfoLabel
                }, props.title), React3.createElement("span", null, props.children));
            }
            exports["default"] = InfoProperty;
        }
    });
    // <data:text/css,@-webkit-keyframes%20pulsate%7B0%25%7B-webkit-tran...>
    var init_css_webkit_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_moz_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_o_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_webkit_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7D_moz_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7D_o_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7D_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7Dbody_7B_moz_transform_translateZ_0_ms_transform_translateZ_0_webkit_transform_translateZ_0_transform_translateZ_0_7D_m_info_5af00a0f46_7Bposition_fixed_z_index_1000_top_4_2em_right_0_2em_padding_0_2em_200_5em_border_1px_20solid_20_111111_background_color_222222_color_white_opacity_0_3_border_radius_0_2em_7D_m_loadingIcon_5af00a0f46_7Bwidth_24px_height_24px_transition_property_transform_transition_duration_1s_webkit_animation_rotate_left_202s_20linear_moz_animation_rotate_left_202s_20linear_ms_animation_rotate_left_202s_20linear_animation_rotate_left_202s_20linear_webkit_animation_iteration_count_infinite_moz_animation_iteration_count_infinite_ms_animation_iteration_count_infinite_animation_iteration_count_infinite_7D = __esm({
        "<data:text/css,@-webkit-keyframes%20pulsate%7B0%25%7B-webkit-tran...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Applet/ActiveApplet.module.sass
    var ActiveApplet_module_exports = {};
    __export(ActiveApplet_module_exports, {
        "default": function() {
            return ActiveApplet_module_default;
        }
    });
    var result5, ActiveApplet_module_default;
    var init_ActiveApplet_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Applet/ActiveApplet.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_webkit_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_moz_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_o_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_keyframes_20pulsate_7B0_25_7B_webkit_transform_translateZ_0_20scale_0_1_0_1_opacity_0_7D50_25_7Bopacity_1_7D100_25_7B_webkit_transform_translateZ_0_20scale_1_2_1_2_opacity_0_7D_7D_webkit_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7D_moz_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7D_o_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7D_keyframes_20rotate_left_7Bfrom_7Btransform_translateZ_0_20rotate_0deg_7Dto_7Btransform_translateZ_0_20rotate_360deg_7D_7Dbody_7B_moz_transform_translateZ_0_ms_transform_translateZ_0_webkit_transform_translateZ_0_transform_translateZ_0_7D_m_info_5af00a0f46_7Bposition_fixed_z_index_1000_top_4_2em_right_0_2em_padding_0_2em_200_5em_border_1px_20solid_20_111111_background_color_222222_color_white_opacity_0_3_border_radius_0_2em_7D_m_loadingIcon_5af00a0f46_7Bwidth_24px_height_24px_transition_property_transform_transition_duration_1s_webkit_animation_rotate_left_202s_20linear_moz_animation_rotate_left_202s_20linear_ms_animation_rotate_left_202s_20linear_animation_rotate_left_202s_20linear_webkit_animation_iteration_count_infinite_moz_animation_iteration_count_infinite_ms_animation_iteration_count_infinite_animation_iteration_count_infinite_7D();
            result5 = {
                info: "m-info-5af00a0f46",
                loadingIcon: "m-loadingIcon-5af00a0f46",
                appletIframe: "m-appletIframe-5af00a0f46"
            };
            ActiveApplet_module_default = result5;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Applet/GaplessApplet.js
    var require_GaplessApplet = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Applet/GaplessApplet.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var ActiveApplet_module_sass_1 = __importDefault((init_ActiveApplet_module(), __toCommonJS(ActiveApplet_module_exports)));
            var GaplessApplet = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(GaplessApplet, _React3_PureComponent);
                var _super = _create_super(GaplessApplet);
                function GaplessApplet() {
                    _class_call_check(this, GaplessApplet);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.currentIframe = null;
                    _this.nextIframe = null;
                    return _this;
                }
                _create_class(GaplessApplet, [
                    {
                        key: "componentDidMount",
                        value: function componentDidMount() {
                            this.updateIframes();
                        }
                    },
                    {
                        key: "componentDidUpdate",
                        value: function componentDidUpdate() {
                            this.updateIframes();
                        }
                    },
                    {
                        key: "render",
                        value: function render() {
                            var _this = this;
                            return React3.createElement("div", {
                                ref: function(element) {
                                    return _this.wrapper = element;
                                }
                            });
                        }
                    },
                    {
                        key: "updateIframes",
                        value: function updateIframes() {
                            if (!this.props.uniqueHash || !this.props.binaryFile) {
                                return;
                            }
                            if (!this.currentIframe) {
                                this.createCurrentIframe(this.props.appletUid, this.props.checksum, this.props.uniqueHash, this.props.binaryFile);
                            } else if (this.currentIframe.checksum === this.props.checksum && this.currentIframe.uniqueHash !== this.props.uniqueHash) {
                                this.createCurrentIframe(this.props.appletUid, this.props.checksum, this.props.uniqueHash, this.props.binaryFile);
                            } else if (this.currentIframe.checksum !== this.props.checksum) {
                                if (this.nextIframe && this.props.checksum === this.nextIframe.checksum) {
                                    this.makeNextIframeCurrent(this.props.appletUid, this.props.uniqueHash);
                                } else {
                                    this.createCurrentIframe(this.props.appletUid, this.props.checksum, this.props.uniqueHash, this.props.binaryFile);
                                }
                            }
                            if (this.props.nextAppletUid && this.props.nextChecksum && this.props.nextBinaryFile && this.currentIframe && this.currentIframe.checksum !== this.props.nextChecksum) {
                                this.createNextIframe(this.props.nextAppletUid, this.props.nextChecksum, this.props.nextBinaryFile);
                            }
                        }
                    },
                    {
                        key: "createCurrentIframe",
                        value: function createCurrentIframe(appletUid, checksum, uniqueHash, binaryFile) {
                            if (this.currentIframe) {
                                var removedId = this.currentIframe.element.id;
                                this.wrapper.removeChild(this.currentIframe.element);
                                this.props.onRemoved(removedId);
                            }
                            var iframe = document.createElement("iframe");
                            iframe.id = "applet-" + checksum;
                            iframe.src = binaryFile.localUri;
                            iframe.setAttribute("scrolling", "no");
                            iframe.setAttribute("allow", "geolocation *; microphone *; camera *; midi *; encrypted-media *; autoplay *;");
                            iframe.setAttribute("class", ActiveApplet_module_sass_1["default"].appletIframe);
                            this.wrapper.appendChild(iframe);
                            this.currentIframe = {
                                checksum: checksum,
                                uniqueHash: uniqueHash,
                                element: iframe
                            };
                            this.props.onCreated(iframe, appletUid);
                            this.props.onStart(iframe, appletUid);
                            iframe.focus();
                        }
                    },
                    {
                        key: "createNextIframe",
                        value: function createNextIframe(appletUid, checksum, binaryFile) {
                            if (this.nextIframe) {
                                var removedId = this.nextIframe.element.id;
                                this.wrapper.removeChild(this.nextIframe.element);
                                this.props.onRemoved(removedId);
                            }
                            var iframe = document.createElement("iframe");
                            iframe.id = "applet-" + checksum;
                            iframe.src = binaryFile.localUri;
                            iframe.style.display = "none";
                            iframe.setAttribute("scrolling", "no");
                            iframe.setAttribute("allow", "geolocation *; microphone *; camera *; midi *; encrypted-media *; autoplay *;");
                            iframe.setAttribute("class", ActiveApplet_module_sass_1["default"].appletIframe);
                            this.wrapper.appendChild(iframe);
                            this.nextIframe = {
                                checksum: checksum,
                                element: iframe
                            };
                            this.props.onCreated(iframe, appletUid);
                        }
                    },
                    {
                        key: "makeNextIframeCurrent",
                        value: function makeNextIframeCurrent(appletUid, uniqueHash) {
                            if (this.nextIframe) {
                                var iframe = this.nextIframe.element;
                                iframe.style.display = "block";
                                if (this.currentIframe) {
                                    var removedId = this.currentIframe.element.id;
                                    this.wrapper.removeChild(this.currentIframe.element);
                                    this.props.onRemoved(removedId);
                                }
                                this.currentIframe = {
                                    checksum: this.nextIframe.checksum,
                                    uniqueHash: uniqueHash,
                                    element: iframe
                                };
                                this.nextIframe = null;
                                this.props.onStart(iframe, appletUid);
                                iframe.focus();
                            }
                        }
                    }
                ]);
                return GaplessApplet;
            }(React3.PureComponent);
            exports["default"] = GaplessApplet;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/AppletTiming/appletTimingActions.js
    var require_appletTimingActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/AppletTiming/appletTimingActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ReevaluateActiveAppletBinary = exports.UpdateNextAppletBinaryFile = exports.PrepareNextAppletTiming = exports.RemoveAppletIframe = exports.StartAppletIframe = exports.CreateAppletIframe = exports.HideApplet = exports.HideOSD = exports.ShowOSDTime = exports.ShowOSD = exports.ShowNextAppletTiming = exports.ResumeAppletTimingTriggers = exports.PauseAppletTimingTriggers = void 0;
            exports.PauseAppletTimingTriggers = "Applet.Timing.PauseTriggers";
            exports.ResumeAppletTimingTriggers = "Applet.Timing.ResumeTriggers";
            exports.ShowNextAppletTiming = "Internal.Timing.ShowNext";
            exports.ShowOSD = "Internal.Timing.ShowOSD";
            exports.ShowOSDTime = "Internal.Timing.ShowOSDTime";
            exports.HideOSD = "Internal.Timing.HideOSD";
            exports.HideApplet = "Internal.Timing.HideApplet";
            exports.CreateAppletIframe = "Applet.Timing.CreateAppletIframe";
            exports.StartAppletIframe = "Applet.Timing.StartAppletIframe";
            exports.RemoveAppletIframe = "Applet.Timing.RemoveAppletIframe";
            exports.PrepareNextAppletTiming = "Applet.Timing.PrepareNextAppletTiming";
            exports.UpdateNextAppletBinaryFile = "Applet.Timing.UpdateNextAppletBinaryFile";
            exports.ReevaluateActiveAppletBinary = "Applet.Timing.ReevaluateActiveAppletBinary";
        }
    });
    // <data:text/css,.m-content-9797312d3f%7Btext-align:center;position...>
    var init_css_m_content_9797312d3f_7Btext_align_center_position_fixed_bottom_0_right_0_height_auto_margin_bottom_3em_margin_right_3em_7D_m_title_9797312d3f_7Bfont_size_2em_color_72727d_7D = __esm({
        "<data:text/css,.m-content-9797312d3f%7Btext-align:center;position...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/DeviceInfo.module.sass
    var DeviceInfo_module_exports = {};
    __export(DeviceInfo_module_exports, {
        "default": function() {
            return DeviceInfo_module_default;
        }
    });
    var result6, DeviceInfo_module_default;
    var init_DeviceInfo_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/DeviceInfo.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_content_9797312d3f_7Btext_align_center_position_fixed_bottom_0_right_0_height_auto_margin_bottom_3em_margin_right_3em_7D_m_title_9797312d3f_7Bfont_size_2em_color_72727d_7D();
            result6 = {
                content: "m-content-9797312d3f",
                title: "m-title-9797312d3f",
                value: "m-value-9797312d3f"
            };
            DeviceInfo_module_default = result6;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Info/DeviceInfo.js
    var require_DeviceInfo = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Info/DeviceInfo.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var DeviceInfo_module_sass_1 = __importDefault((init_DeviceInfo_module(), __toCommonJS(DeviceInfo_module_exports)));
            function Footer(props) {
                return React3.createElement("div", {
                    className: DeviceInfo_module_sass_1["default"].content
                }, React3.createElement("div", null, props.children));
            }
            exports["default"] = Footer;
        }
    });
    // <data:text/css,.m-rightTopIcon-3ec855fd0a%7Bposition:fixed;top:0;...>
    var init_css_m_rightTopIcon_3ec855fd0a_7Bposition_fixed_top_0_right_0_height_auto_margin_top_2em_margin_right_2em_width_200px_7D = __esm({
        "<data:text/css,.m-rightTopIcon-3ec855fd0a%7Bposition:fixed;top:0;...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/SuccessIcon.module.sass
    var SuccessIcon_module_exports = {};
    __export(SuccessIcon_module_exports, {
        "default": function() {
            return SuccessIcon_module_default;
        }
    });
    var result7, SuccessIcon_module_default;
    var init_SuccessIcon_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/SuccessIcon.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_rightTopIcon_3ec855fd0a_7Bposition_fixed_top_0_right_0_height_auto_margin_top_2em_margin_right_2em_width_200px_7D();
            result7 = {
                rightTopIcon: "m-rightTopIcon-3ec855fd0a",
                smallIcon: "m-smallIcon-3ec855fd0a"
            };
            SuccessIcon_module_default = result7;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/SuccessIcon.js
    var require_SuccessIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/SuccessIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var SuccessIcon_module_sass_1 = __importDefault((init_SuccessIcon_module(), __toCommonJS(SuccessIcon_module_exports)));
            function SuccessIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgY29sb3I9IiMxMDk0OGEiIHN0cm9rZS13aWR0aD0iMS4zIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEyIDEuMjVDNi4wNjI5NCAxLjI1IDEuMjUgNi4wNjI5NCAxLjI1IDEyQzEuMjUgMTcuOTM3MSA2LjA2Mjk0IDIyLjc1IDEyIDIyLjc1QzE3LjkzNzEgMjIuNzUgMjIuNzUgMTcuOTM3MSAyMi43NSAxMkMyMi43NSA2LjA2Mjk0IDE3LjkzNzEgMS4yNSAxMiAxLjI1Wk03LjUzMDQ0IDExLjk2OTdDNy4yMzc1NSAxMS42NzY4IDYuNzYyNjggMTEuNjc2OCA2LjQ2OTc4IDExLjk2OTdDNi4xNzY4OSAxMi4yNjI2IDYuMTc2ODkgMTIuNzM3NCA2LjQ2OTc4IDEzLjAzMDNMOS40Njk3OCAxNi4wMzAzQzkuNzYyNjggMTYuMzIzMiAxMC4yMzc2IDE2LjMyMzIgMTAuNTMwNCAxNi4wMzAzTDE3LjUzMDQgOS4wMzAzM0MxNy44MjMzIDguNzM3NDQgMTcuODIzMyA4LjI2MjU2IDE3LjUzMDQgNy45Njk2N0MxNy4yMzc1IDcuNjc2NzggMTYuNzYyNyA3LjY3Njc4IDE2LjQ2OTggNy45Njk2N0wxMC4wMDAxIDE0LjQzOTNMNy41MzA0NCAxMS45Njk3WiIgZmlsbD0iIzEwOTQ4YSIvPjwvc3ZnPg==";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "success icon",
                    className: SuccessIcon_module_sass_1["default"].rightTopIcon
                });
            }
            exports["default"] = SuccessIcon;
        }
    });
    // node_modules/typeface-muli/index.css
    var require_typeface_muli = __commonJS({
        "node_modules/typeface-muli/index.css": function(exports, module) {
            module.exports = {};
        }
    });
    // <data:text/css,.m-timeInfo-e4e20d7855%7Btext-align:center;positio...>
    var init_css_m_timeInfo_e4e20d7855_7Btext_align_center_position_fixed_bottom_0_left_0_height_auto_margin_bottom_3em_margin_left_3em_font_weight_600_7D_m_timeLabel_e4e20d7855_7Bcolor_72727d_padding_right_0 = __esm({
        "<data:text/css,.m-timeInfo-e4e20d7855%7Btext-align:center;positio...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/TimeInfo.module.sass
    var TimeInfo_module_exports = {};
    __export(TimeInfo_module_exports, {
        "default": function() {
            return TimeInfo_module_default;
        }
    });
    var result8, TimeInfo_module_default;
    var init_TimeInfo_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Info/TimeInfo.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_timeInfo_e4e20d7855_7Btext_align_center_position_fixed_bottom_0_left_0_height_auto_margin_bottom_3em_margin_left_3em_font_weight_600_7D_m_timeLabel_e4e20d7855_7Bcolor_72727d_padding_right_0();
            result8 = {
                timeInfo: "m-timeInfo-e4e20d7855",
                timeLabel: "m-timeLabel-e4e20d7855"
            };
            TimeInfo_module_default = result8;
        }
    });
    // node_modules/dayjs/dayjs.min.js
    var require_dayjs_min = __commonJS({
        "node_modules/dayjs/dayjs.min.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            !function(t, e) {
                "object" == (typeof exports === "undefined" ? "undefined" : _type_of(exports)) && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e();
            }(exports, function() {
                "use strict";
                var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", f = "month", h = "quarter", c = "year", d = "date", $ = "Invalid Date", l = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = {
                    name: "en",
                    weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
                    months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_")
                }, m = function m(t2, e2, n2) {
                    var r2 = String(t2);
                    return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
                }, g = {
                    s: m,
                    z: function z(t2) {
                        var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
                        return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
                    },
                    m: function t2(e2, n2) {
                        if (e2.date() < n2.date()) return -t2(n2, e2);
                        var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, f), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), f);
                        return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
                    },
                    a: function a(t2) {
                        return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
                    },
                    p: function p(t2) {
                        return ({
                            M: f,
                            y: c,
                            w: o,
                            d: a,
                            D: d,
                            h: u,
                            m: s,
                            s: i,
                            ms: r,
                            Q: h
                        })[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
                    },
                    u: function u(t2) {
                        return void 0 === t2;
                    }
                }, v = "en", D = {};
                D[v] = M;
                var p = function p(t2) {
                    return t2 instanceof _2;
                }, S = function t2(e2, n2, r2) {
                    var i2;
                    if (!e2) return v;
                    if ("string" == typeof e2) {
                        var s2 = e2.toLowerCase();
                        D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
                        var u2 = e2.split("-");
                        if (!i2 && u2.length > 1) return t2(u2[0]);
                    } else {
                        var a2 = e2.name;
                        D[a2] = e2, i2 = a2;
                    }
                    return !r2 && i2 && (v = i2), i2 || !r2 && v;
                }, w = function w(t2, e2) {
                    if (p(t2)) return t2.clone();
                    var n2 = "object" == (typeof e2 === "undefined" ? "undefined" : _type_of(e2)) ? e2 : {};
                    return n2.date = t2, n2.args = arguments, new _2(n2);
                }, O = g;
                O.l = S, O.i = p, O.w = function(t2, e2) {
                    return w(t2, {
                        locale: e2.$L,
                        utc: e2.$u,
                        x: e2.$x,
                        $offset: e2.$offset
                    });
                };
                var _2 = function() {
                    function M2(t2) {
                        this.$L = S(t2.locale, null, true), this.parse(t2);
                    }
                    var m2 = M2.prototype;
                    return m2.parse = function(t2) {
                        this.$d = function(t3) {
                            var e2 = t3.date, n2 = t3.utc;
                            if (null === e2) return /* @__PURE__ */ new Date(NaN);
                            if (O.u(e2)) return /* @__PURE__ */ new Date();
                            if (e2 instanceof Date) return new Date(e2);
                            if ("string" == typeof e2 && !/Z$/i.test(e2)) {
                                var r2 = e2.match(l);
                                if (r2) {
                                    var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
                                    return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
                                }
                            }
                            return new Date(e2);
                        }(t2), this.$x = t2.x || {}, this.init();
                    }, m2.init = function() {
                        var t2 = this.$d;
                        this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
                    }, m2.$utils = function() {
                        return O;
                    }, m2.isValid = function() {
                        return !(this.$d.toString() === $);
                    }, m2.isSame = function(t2, e2) {
                        var n2 = w(t2);
                        return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
                    }, m2.isAfter = function(t2, e2) {
                        return w(t2) < this.startOf(e2);
                    }, m2.isBefore = function(t2, e2) {
                        return this.endOf(e2) < w(t2);
                    }, m2.$g = function(t2, e2, n2) {
                        return O.u(t2) ? this[e2] : this.set(n2, t2);
                    }, m2.unix = function() {
                        return Math.floor(this.valueOf() / 1e3);
                    }, m2.valueOf = function() {
                        return this.$d.getTime();
                    }, m2.startOf = function(t2, e2) {
                        var n2 = this, r2 = !!O.u(e2) || e2, h2 = O.p(t2), $2 = function $2(t3, e3) {
                            var i2 = O.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
                            return r2 ? i2 : i2.endOf(a);
                        }, l2 = function l2(t3, e3) {
                            return O.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [
                                0,
                                0,
                                0,
                                0
                            ] : [
                                23,
                                59,
                                59,
                                999
                            ]).slice(e3)), n2);
                        }, y2 = this.$W, M3 = this.$M, m3 = this.$D, g2 = "set" + (this.$u ? "UTC" : "");
                        switch(h2){
                            case c:
                                return r2 ? $2(1, 0) : $2(31, 11);
                            case f:
                                return r2 ? $2(1, M3) : $2(0, M3 + 1);
                            case o:
                                var v2 = this.$locale().weekStart || 0, D2 = (y2 < v2 ? y2 + 7 : y2) - v2;
                                return $2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
                            case a:
                            case d:
                                return l2(g2 + "Hours", 0);
                            case u:
                                return l2(g2 + "Minutes", 1);
                            case s:
                                return l2(g2 + "Seconds", 2);
                            case i:
                                return l2(g2 + "Milliseconds", 3);
                            default:
                                return this.clone();
                        }
                    }, m2.endOf = function(t2) {
                        return this.startOf(t2, false);
                    }, m2.$set = function(t2, e2) {
                        var n2, o2 = O.p(t2), h2 = "set" + (this.$u ? "UTC" : ""), $2 = (n2 = {}, n2[a] = h2 + "Date", n2[d] = h2 + "Date", n2[f] = h2 + "Month", n2[c] = h2 + "FullYear", n2[u] = h2 + "Hours", n2[s] = h2 + "Minutes", n2[i] = h2 + "Seconds", n2[r] = h2 + "Milliseconds", n2)[o2], l2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
                        if (o2 === f || o2 === c) {
                            var y2 = this.clone().set(d, 1);
                            y2.$d[$2](l2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
                        } else $2 && this.$d[$2](l2);
                        return this.init(), this;
                    }, m2.set = function(t2, e2) {
                        return this.clone().$set(t2, e2);
                    }, m2.get = function(t2) {
                        return this[O.p(t2)]();
                    }, m2.add = function(r2, h2) {
                        var d2, $2 = this;
                        r2 = Number(r2);
                        var l2 = O.p(h2), y2 = function y2(t2) {
                            var e2 = w($2);
                            return O.w(e2.date(e2.date() + Math.round(t2 * r2)), $2);
                        };
                        if (l2 === f) return this.set(f, this.$M + r2);
                        if (l2 === c) return this.set(c, this.$y + r2);
                        if (l2 === a) return y2(1);
                        if (l2 === o) return y2(7);
                        var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[l2] || 1, m3 = this.$d.getTime() + r2 * M3;
                        return O.w(m3, this);
                    }, m2.subtract = function(t2, e2) {
                        return this.add(-1 * t2, e2);
                    }, m2.format = function(t2) {
                        var e2 = this, n2 = this.$locale();
                        if (!this.isValid()) return n2.invalidDate || $;
                        var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = O.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, f2 = n2.months, h2 = function h2(t3, n3, i3, s3) {
                            return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
                        }, c2 = function c2(t3) {
                            return O.s(s2 % 12 || 12, t3, "0");
                        }, d2 = n2.meridiem || function(t3, e3, n3) {
                            var r3 = t3 < 12 ? "AM" : "PM";
                            return n3 ? r3.toLowerCase() : r3;
                        }, l2 = {
                            YY: String(this.$y).slice(-2),
                            YYYY: this.$y,
                            M: a2 + 1,
                            MM: O.s(a2 + 1, 2, "0"),
                            MMM: h2(n2.monthsShort, a2, f2, 3),
                            MMMM: h2(f2, a2),
                            D: this.$D,
                            DD: O.s(this.$D, 2, "0"),
                            d: String(this.$W),
                            dd: h2(n2.weekdaysMin, this.$W, o2, 2),
                            ddd: h2(n2.weekdaysShort, this.$W, o2, 3),
                            dddd: o2[this.$W],
                            H: String(s2),
                            HH: O.s(s2, 2, "0"),
                            h: c2(1),
                            hh: c2(2),
                            a: d2(s2, u2, true),
                            A: d2(s2, u2, false),
                            m: String(u2),
                            mm: O.s(u2, 2, "0"),
                            s: String(this.$s),
                            ss: O.s(this.$s, 2, "0"),
                            SSS: O.s(this.$ms, 3, "0"),
                            Z: i2
                        };
                        return r2.replace(y, function(t3, e3) {
                            return e3 || l2[t3] || i2.replace(":", "");
                        });
                    }, m2.utcOffset = function() {
                        return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
                    }, m2.diff = function(r2, d2, $2) {
                        var l2, y2 = O.p(d2), M3 = w(r2), m3 = (M3.utcOffset() - this.utcOffset()) * e, g2 = this - M3, v2 = O.m(this, M3);
                        return v2 = (l2 = {}, l2[c] = v2 / 12, l2[f] = v2, l2[h] = v2 / 3, l2[o] = (g2 - m3) / 6048e5, l2[a] = (g2 - m3) / 864e5, l2[u] = g2 / n, l2[s] = g2 / e, l2[i] = g2 / t, l2)[y2] || g2, $2 ? v2 : O.a(v2);
                    }, m2.daysInMonth = function() {
                        return this.endOf(f).$D;
                    }, m2.$locale = function() {
                        return D[this.$L];
                    }, m2.locale = function(t2, e2) {
                        if (!t2) return this.$L;
                        var n2 = this.clone(), r2 = S(t2, e2, true);
                        return r2 && (n2.$L = r2), n2;
                    }, m2.clone = function() {
                        return O.w(this.$d, this);
                    }, m2.toDate = function() {
                        return new Date(this.valueOf());
                    }, m2.toJSON = function() {
                        return this.isValid() ? this.toISOString() : null;
                    }, m2.toISOString = function() {
                        return this.$d.toISOString();
                    }, m2.toString = function() {
                        return this.$d.toUTCString();
                    }, M2;
                }(), T = _2.prototype;
                return w.prototype = T, [
                    [
                        "$ms",
                        r
                    ],
                    [
                        "$s",
                        i
                    ],
                    [
                        "$m",
                        s
                    ],
                    [
                        "$H",
                        u
                    ],
                    [
                        "$W",
                        a
                    ],
                    [
                        "$M",
                        f
                    ],
                    [
                        "$y",
                        c
                    ],
                    [
                        "$D",
                        d
                    ]
                ].forEach(function(t2) {
                    T[t2[1]] = function(e2) {
                        return this.$g(e2, t2[0], t2[1]);
                    };
                }), w.extend = function(t2, e2) {
                    return t2.$i || (t2(e2, _2, w), t2.$i = true), w;
                }, w.locale = S, w.isDayjs = p, w.unix = function(t2) {
                    return w(1e3 * t2);
                }, w.en = D[v], w.Ls = D, w.p = {}, w;
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/DangerIcon.js
    var require_DangerIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/DangerIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DangerIconSmall = void 0;
            var SuccessIcon_module_sass_1 = __importDefault((init_SuccessIcon_module(), __toCommonJS(SuccessIcon_module_exports)));
            var React3 = __importStar(require_react());
            var iconUri = // eslint-disable-next-line max-len
            "data:image/svg+xml;utf8;base64,PHN2ZyBpZD0iU3ZnanNTdmcxMDI1IiB3aWR0aD0iMjg4IiBoZWlnaHQ9IjI4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpzdmdqcz0iaHR0cDovL3N2Z2pzLmNvbS9zdmdqcyI+PGRlZnMgaWQ9IlN2Z2pzRGVmczEwMjYiPjwvZGVmcz48ZyBpZD0iU3ZnanNHMTAyNyI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMiIgY29sb3I9IiMwMDAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4OCIgaGVpZ2h0PSIyODgiPjxwYXRoIGZpbGw9IiNmZjY2NjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkuNjE2MTcgMy42NDE5QzEwLjY3MzYgMS44MDI5NiAxMy4zMjY4IDEuODAyOTYgMTQuMzg0MSAzLjY0MTlMMjIuNDI3MSAxNy42Mjk2QzIzLjQ4MTMgMTkuNDYzIDIyLjE1NzkgMjEuNzUwNCAyMC4wNDMxIDIxLjc1MDRIMy45NTcyMUMxLjg0MjQyIDIxLjc1MDQgMC41MTkwNTUgMTkuNDYzIDEuNTczMjIgMTcuNjI5Nkw5LjYxNjE3IDMuNjQxOVpNMTIgOC4yNUMxMi40MTQyIDguMjUgMTIuNzUgOC41ODU3OSAxMi43NSA5VjEzQzEyLjc1IDEzLjQxNDIgMTIuNDE0MiAxMy43NSAxMiAxMy43NUMxMS41ODU4IDEzLjc1IDExLjI1IDEzLjQxNDIgMTEuMjUgMTNWOUMxMS4yNSA4LjU4NTc5IDExLjU4NTggOC4yNSAxMiA4LjI1Wk0xMi41Njc1IDE3LjUwMDhDMTIuODQ0NiAxNy4xOTI5IDEyLjgxOTYgMTYuNzE4NyAxMi41MTE3IDE2LjQ0MTZDMTIuMjAzOCAxNi4xNjQ1IDExLjcyOTYgMTYuMTg5NCAxMS40NTI1IDE2LjQ5NzNMMTEuNDQyNSAxNi41MDg0QzExLjE2NTQgMTYuODE2MyAxMS4xOTA0IDE3LjI5MDUgMTEuNDk4MyAxNy41Njc2QzExLjgwNjIgMTcuODQ0NyAxMi4yODA0IDE3LjgxOTcgMTIuNTU3NSAxNy41MTE5TDEyLjU2NzUgMTcuNTAwOFoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgY2xhc3M9ImNvbG9yMDAwIHN2Z1NoYXBlIj48L3BhdGg+PC9zdmc+PC9nPjwvc3ZnPg==";
            function DangerIcon() {
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "connecting icon",
                    className: SuccessIcon_module_sass_1["default"].rightTopIcon
                });
            }
            exports["default"] = DangerIcon;
            function DangerIconSmall() {
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "connecting icon",
                    className: SuccessIcon_module_sass_1["default"].smallIcon
                });
            }
            exports.DangerIconSmall = DangerIconSmall;
        }
    });
    // node_modules/@signageos/front-display/es6/Intervals/constants.js
    var require_constants = __commonJS({
        "node_modules/@signageos/front-display/es6/Intervals/constants.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.MAX_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL = exports.MIN_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL = exports.MAX_CENTRALIZED_TELEMETRY_INVALIDATION_INTERVAL = exports.MIN_CENTRALIZED_TELEMETRY_INVALIDATION_INTERVAL = exports.RARELY = exports.TIMEOUT = exports.SOMETIMES = exports.REGULARLY = exports.SLOWLY = exports.NORMALLY = exports.FREQUENTLY = exports.OFTEN = exports.SHORTLY = exports.CONSTANTLY = exports.DEBOUNCE = exports.QUICKLY = exports.REPETITIVELY = exports.IMMEDIATELY = void 0;
            exports.IMMEDIATELY = 0;
            exports.REPETITIVELY = 10;
            exports.QUICKLY = 100;
            exports.DEBOUNCE = 500;
            exports.CONSTANTLY = 1e3;
            exports.SHORTLY = 2e3;
            exports.OFTEN = 3e3;
            exports.FREQUENTLY = 5e3;
            exports.NORMALLY = 1e4;
            exports.SLOWLY = 2e4;
            exports.REGULARLY = 3e4;
            exports.SOMETIMES = 6e4;
            exports.TIMEOUT = 9e4;
            exports.RARELY = 2e5;
            exports.MIN_CENTRALIZED_TELEMETRY_INVALIDATION_INTERVAL = 5 * 6e4;
            exports.MAX_CENTRALIZED_TELEMETRY_INVALIDATION_INTERVAL = 30 * 6e4;
            exports.MIN_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL = 24 * 60 * 6e4;
            exports.MAX_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL = 7 * 24 * 60 * 6e4;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Info/TimeInfo.js
    var require_TimeInfo = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Info/TimeInfo.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var react_1 = require_react();
            var TimeInfo_module_sass_1 = __importDefault((init_TimeInfo_module(), __toCommonJS(TimeInfo_module_exports)));
            var dayjs_1 = __importDefault(require_dayjs_min());
            var DangerIcon_1 = require_DangerIcon();
            var constants_1 = require_constants();
            function TimeInfo(props) {
                var _ref = _sliced_to_array((0, react_1.useState)(props.timestamp), 2), currentTimestamp = _ref[0], setCurrentTimestamp = _ref[1];
                (0, react_1.useEffect)(function() {
                    var interval = setInterval(function() {
                        setCurrentTimestamp(Date.now());
                    }, constants_1.REGULARLY);
                    return function() {
                        return clearInterval(interval);
                    };
                }, []);
                function showTimezone(timezone) {
                    if (timezone) {
                        return "(".concat(timezone, ")");
                    }
                    return null;
                }
                function validateYear(timestamp) {
                    if ((0, dayjs_1["default"])(timestamp).year() < Number(2026) - 3) {
                        return React3.createElement(DangerIcon_1.DangerIconSmall, null);
                    }
                }
                if (!currentTimestamp) {
                    return null;
                }
                return React3.createElement("div", {
                    className: TimeInfo_module_sass_1["default"].timeInfo
                }, React3.createElement("span", {
                    className: TimeInfo_module_sass_1["default"].timeLabel
                }, "Time:"), React3.createElement("span", null, (0, dayjs_1["default"])(currentTimestamp).format("ddd, MMM DD, YYYY h:mm A"), " ", showTimezone(props.timezone), " ", validateYear(currentTimestamp)));
            }
            exports["default"] = TimeInfo;
        }
    });
    // node_modules/@signageos/front-display/es6/Screen/mutedMessage.js
    var require_mutedMessage = __commonJS({
        "node_modules/@signageos/front-display/es6/Screen/mutedMessage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.formatTimerOffMessage = void 0;
            var dayjs_1 = __importDefault(require_dayjs_min());
            var TIMER_OFF_DATE_FORMAT = "ddd, MMM DD, YYYY h:mm A";
            function formatTimerOffMessage(nextPowerOn, options) {
                var formatted = nextPowerOn ? (0, dayjs_1["default"])(nextPowerOn).format(TIMER_OFF_DATE_FORMAT) : null;
                if (options.playbackRunning) {
                    if (formatted) {
                        return "The display is currently powered off by its timer settings until ".concat(formatted, ", but playback is running.");
                    }
                    return "The display is currently powered off by its timer settings, but playback is running.";
                }
                if (formatted) {
                    return "The display is currently powered off by its timer settings. Playback is stopped until ".concat(formatted, ".");
                }
                return "The display is currently powered off by its timer settings. Playback is stopped.";
            }
            exports.formatTimerOffMessage = formatTimerOffMessage;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Applet/ActiveApplet.js
    var require_ActiveApplet = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Applet/ActiveApplet.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ActiveApplet = void 0;
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var MainInfo_1 = __importDefault(require_MainInfo());
            var InfoProperty_1 = __importDefault(require_InfoProperty());
            var GaplessApplet_1 = __importDefault(require_GaplessApplet());
            var appletTimingActions_1 = require_appletTimingActions();
            var DeviceInfo_1 = __importDefault(require_DeviceInfo());
            var SuccessIcon_1 = __importDefault(require_SuccessIcon());
            require_typeface_muli();
            var TimeInfo_1 = __importDefault(require_TimeInfo());
            var SuccessIcon_module_sass_1 = __importDefault((init_SuccessIcon_module(), __toCommonJS(SuccessIcon_module_exports)));
            var mutedMessage_1 = require_mutedMessage();
            var ActiveApplet = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(ActiveApplet, _React3_PureComponent);
                var _super = _create_super(ActiveApplet);
                function ActiveApplet() {
                    _class_call_check(this, ActiveApplet);
                    return _super.apply(this, arguments);
                }
                _create_class(ActiveApplet, [
                    {
                        key: "render",
                        value: function render() {
                            var _this = this;
                            if (this.props.appletIsMuted) {
                                return React3.createElement("div", null, React3.createElement("img", {
                                    src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI4NDgiIHZpZXdCb3g9IjAgMCAxMDI0IDg0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMjEyIiB5PSIxMjQiIHdpZHRoPSI2MDAiIGhlaWdodD0iNjAwIiByeD0iMzAwIiBmaWxsPSIjRDVFN0VEIi8+CjxwYXRoIGQ9Ik01NjIuMjU4IDQzMy40MjRMNTUwLjY0NiA0MjEuODEyQzU1Mi44MzMgNDA5LjA4MSA1NDkuMjI1IDM5OC4wNiA1MzkuODIxIDM4OC43NDhDNTMwLjQxNyAzNzkuNDM3IDUxOS40NDIgMzc1Ljg3NSA1MDYuODk2IDM3OC4wNjJMNDk1LjI4NCAzNjYuNDVDNDk3LjczNCAzNjUuNDQyIDUwMC4yOTEgMzY0LjY4NSA1MDIuOTU1IDM2NC4xNzlDNTA1LjYxOSAzNjMuNjc2IDUwOC42MzQgMzYzLjQyNCA1MTIgMzYzLjQyNEM1MjYuODYzIDM2My40MjQgNTM5LjQ1OSAzNjguNTg5IDU0OS43ODkgMzc4LjkxOUM1NjAuMTE5IDM4OS4yNDkgNTY1LjI4NCA0MDEuODQ1IDU2NS4yODQgNDE2LjcwOEM1NjUuMjg0IDQyMC4wNzUgNTY1LjAzMiA0MjMuMTgzIDU2NC41MjkgNDI2LjAzNEM1NjQuMDI0IDQyOC44ODUgNTYzLjI2NiA0MzEuMzQ5IDU2Mi4yNTggNDMzLjQyNFpNNjA4LjM2MyA0NzguMjM5TDU5Ny4zMTIgNDY4LjQ3OUM2MDYuNTQ5IDQ2MS40MyA2MTQuNzUyIDQ1My43MTMgNjIxLjkyMiA0NDUuMzI4QzYyOS4wOTIgNDM2Ljk0MyA2MzUuMjI5IDQyNy40MDMgNjQwLjMzMyA0MTYuNzA4QzYyOC4xODEgMzkyLjE2IDYxMC43NDEgMzcyLjY1NCA1ODguMDE2IDM1OC4xOTNDNTY1LjI5IDM0My43MzEgNTM5Ljk1MSAzMzYuNSA1MTIgMzM2LjVDNTA0Ljk1MSAzMzYuNSA0OTguMDI0IDMzNi45ODYgNDkxLjIxOSAzMzcuOTU4QzQ4NC40MTMgMzM4LjkzMSA0NzcuNzI5IDM0MC4zODkgNDcxLjE2NyAzNDIuMzMzTDQ1OS43ODEgMzMwLjk0N0M0NjguMjUxIDMyNy43NTEgNDc2Ljg3IDMyNS40NDcgNDg1LjYzNyAzMjQuMDM1QzQ5NC40MDYgMzIyLjYyMyA1MDMuMTk0IDMyMS45MTcgNTEyIDMyMS45MTdDNTQzLjY1MyAzMjEuOTE3IDU3Mi42MDUgMzMwLjYxNiA1OTguODU1IDM0OC4wMTNDNjI1LjEwNSAzNjUuNDA5IDY0NC4zOSAzODguMzA3IDY1Ni43MSA0MTYuNzA4QzY1MS40OTQgNDI4LjQzMSA2NDQuODkxIDQzOS40NDcgNjM2Ljg5OSA0NDkuNzU4QzYyOC45MDUgNDYwLjA3MSA2MTkuMzkzIDQ2OS41NjQgNjA4LjM2MyA0NzguMjM5Wk02MjQuNjI3IDU1Ny4yN0w1NjcuODY1IDUwMC42NzVDNTYxLjQxNCA1MDMuNTM2IDU1My40MDggNTA2LjA1NSA1NDMuODQ2IDUwOC4yMzNDNTM0LjI4MiA1MTAuNDExIDUyMy42NjcgNTExLjUgNTEyIDUxMS41QzQ4MC4xNiA1MTEuNSA0NTEuMjA4IDUwMi44MDEgNDI1LjE0NSA0ODUuNDAzQzM5OS4wODIgNDY4LjAwOCAzNzkuNzk3IDQ0NS4xMDkgMzY3LjI5IDQxNi43MDhDMzcyLjk1MyA0MDMuODI2IDM4MC40MjIgMzkxLjc2MiAzODkuNjk3IDM4MC41MTZDMzk4Ljk2OSAzNjkuMjcgNDA4Ljg2OSAzNTkuODMzIDQxOS4zOTYgMzUyLjIwNkwzNzguNzMgMzExLjM3M0wzODkuMDUyIDMwMS4wNTJMNjM0Ljk0OCA1NDYuOTQ4TDYyNC42MjcgNTU3LjI3Wk00MjkuNzE3IDM2Mi41MjRDNDIxLjM1OCAzNjguNDcxIDQxMi44MTQgMzc2LjI4NyA0MDQuMDgzIDM4NS45N0MzOTUuMzUzIDM5NS42NTYgMzg4LjU0NyA0MDUuOTAyIDM4My42NjcgNDE2LjcwOEMzOTUuODE5IDQ0MS4yNTcgNDEzLjI1OSA0NjAuNzYyIDQzNS45ODQgNDc1LjIyNEM0NTguNzEgNDg5LjY4NiA0ODQuMDQ5IDQ5Ni45MTcgNTEyIDQ5Ni45MTdDNTIwLjQxNSA0OTYuOTE3IDUyOC44OTQgNDk2LjA5OSA1MzcuNDM3IDQ5NC40NjNDNTQ1Ljk4IDQ5Mi44MjcgNTUyLjQwMyA0OTEuMTc3IDU1Ni43MDUgNDg5LjUxMkw1MzIuOTIgNDY1LjU2MkM1MzAuNjIgNDY2Ljg1MyA1MjcuNDE1IDQ2Ny45MTQgNTIzLjMwMiA0NjguNzQ1QzUxOS4xOSA0NjkuNTc3IDUxNS40MjIgNDY5Ljk5MiA1MTIgNDY5Ljk5MkM0OTcuMTM3IDQ2OS45OTIgNDg0LjU0MSA0NjQuODI3IDQ3NC4yMTEgNDU0LjQ5N0M0NjMuODgxIDQ0NC4xNjcgNDU4LjcxNiA0MzEuNTcxIDQ1OC43MTYgNDE2LjcwOEM0NTguNzE2IDQxMy40NzMgNDU5LjEzMiA0MDkuODQ2IDQ1OS45NjMgNDA1LjgyNUM0NjAuNzk0IDQwMS44MDggNDYxLjg1NSAzOTguNDYyIDQ2My4xNDYgMzk1Ljc4OEw0MjkuNzE3IDM2Mi41MjRaIiBmaWxsPSIjMjcyQTJEIi8+Cjwvc3ZnPgo=",
                                    alt: "eye closed icon",
                                    className: SuccessIcon_module_sass_1["default"].rightTopIcon
                                }), React3.createElement(MainInfo_1["default"], {
                                    title: "Device name:",
                                    value: this.props.deviceName || "-- No Name --"
                                }, this.getMutedMessage()));
                            } else if (this.props.appletMissing) {
                                return React3.createElement("div", null, React3.createElement(MainInfo_1["default"], {
                                    title: "Device name:",
                                    value: this.props.deviceName || "-- No Name --"
                                }), React3.createElement(TimeInfo_1["default"], {
                                    timestamp: this.props.timestamp,
                                    timezone: this.props.timezone
                                }), React3.createElement(DeviceInfo_1["default"], null, React3.createElement(InfoProperty_1["default"], {
                                    title: "Device:"
                                }, this.getDeviceModel()), React3.createElement(InfoProperty_1["default"], {
                                    title: "System:"
                                }, this.getSystemLabel()), this.props.osVersion ? React3.createElement(InfoProperty_1["default"], {
                                    title: "System Version:"
                                }, this.props.osVersion) : null, this.props.firmwareVersion ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Firmware Version:"
                                }, this.props.firmwareVersion) : null, this.props.serialNumber ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Serial Number:"
                                }, this.props.serialNumber) : null, React3.createElement(InfoProperty_1["default"], {
                                    title: "Front Display Version:"
                                }, this.props.frontDisplayVersion), React3.createElement(InfoProperty_1["default"], {
                                    title: "Application Version:"
                                }, this.props.applicationVersion), this.props.organizationTitle ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Organization:"
                                }, this.props.organizationTitle) : null, this.props.interfaceName ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Interface:"
                                }, this.props.interfaceName) : null, this.props.ipAddress ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Local IP Address:"
                                }, this.props.ipAddress) : null, this.props.wifiMacAddress ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Wifi Mac Address:"
                                }, this.props.wifiMacAddress) : null, this.props.ethernetMacAddress ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Ethernet Mac Address:"
                                }, this.props.ethernetMacAddress) : null, React3.createElement(InfoProperty_1["default"], {
                                    title: "Status:"
                                }, "No content applet configured")), React3.createElement(SuccessIcon_1["default"], null));
                            } else if (this.props.appletChecksum) {
                                return React3.createElement(GaplessApplet_1["default"], {
                                    appletUid: this.props.appletUid,
                                    checksum: this.props.appletChecksum,
                                    uniqueHash: this.props.appletUniqueHash,
                                    binaryFile: this.props.appletBinaryFile,
                                    nextAppletUid: this.props.nextAppletUid,
                                    nextChecksum: this.props.nextAppletChecksum,
                                    nextBinaryFile: this.props.nextAppletBinaryFile,
                                    onCreated: function(iframeElement, appletUid) {
                                        return _this.props.onAppletIframeCreated(appletUid, iframeElement.id);
                                    },
                                    onStart: function(iframeElement, appletUid) {
                                        return _this.props.onAppletIframeStarted(appletUid, iframeElement.id);
                                    },
                                    onRemoved: function(iframeId) {
                                        return _this.props.onAppletIframeRemoved(iframeId);
                                    }
                                });
                            } else {
                                return null;
                            }
                        }
                    },
                    {
                        key: "getMutedMessage",
                        value: function getMutedMessage() {
                            return (0, mutedMessage_1.formatTimerOffMessage)(this.props.timerNextPowerOn, {
                                playbackRunning: false
                            });
                        }
                    },
                    {
                        key: "getSystemLabel",
                        value: function getSystemLabel() {
                            return this.props.applicationType ? this.props.applicationType.toUpperCase() : "UNKNOWN";
                        }
                    },
                    {
                        key: "getDeviceModel",
                        value: function getDeviceModel() {
                            return this.props.model ? this.props.model : "Unknown";
                        }
                    }
                ]);
                return ActiveApplet;
            }(React3.PureComponent);
            exports.ActiveApplet = ActiveApplet;
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    appletUid: state.applet.activeAppletUid,
                    appletBinaryFile: state.applet.activeAppletBinaryFile,
                    appletMissing: state.applet.activeAppletMissing,
                    appletUniqueHash: state.applet.activeAppletUniqueHash,
                    appletChecksum: state.applet.activeTimingChecksum,
                    nextAppletUid: state.applet.nextApplet ? state.applet.nextApplet.uid : void 0,
                    nextAppletBinaryFile: state.applet.nextApplet ? state.applet.nextApplet.appletBinaryFile : void 0,
                    nextAppletChecksum: state.applet.nextApplet ? state.applet.nextApplet.timingChecksum : void 0,
                    deviceName: state.device.deviceName,
                    model: state.device.model,
                    organizationTitle: state.organization.organizationTitle,
                    appletIsMuted: state.applet.appletIsMuted,
                    timerNextPowerOn: state.applet.timerNextPowerOn,
                    applicationType: state.device.applicationType,
                    ethernetMacAddress: state.device.ethernetMacAddress,
                    wifiMacAddress: state.device.wifiMacAddress,
                    serialNumber: state.device.serialNumber,
                    frontDisplayVersion: state.device.frontDisplayVersion,
                    timezone: state.device.timezone,
                    timestamp: state.device.timestamp,
                    applicationVersion: state.device.applicationVersion,
                    ipAddress: state.device.ipAddress,
                    interfaceName: state.device.activeInterface,
                    osVersion: state.device.osVersion,
                    firmwareVersion: state.device.firmwareVersion
                };
            }, function(dispatch) {
                return {
                    onAppletIframeCreated: function(appletUid, appletIframeId) {
                        return dispatch({
                            type: appletTimingActions_1.CreateAppletIframe,
                            uid: appletUid,
                            id: appletIframeId
                        });
                    },
                    onAppletIframeStarted: function(appletUid, appletIframeId) {
                        return dispatch({
                            type: appletTimingActions_1.StartAppletIframe,
                            uid: appletUid,
                            id: appletIframeId
                        });
                    },
                    onAppletIframeRemoved: function(appletIframeId) {
                        return dispatch({
                            type: appletTimingActions_1.RemoveAppletIframe,
                            id: appletIframeId
                        });
                    }
                };
            })(ActiveApplet);
        }
    });
    // <data:text/css,.m-offlineIcon-b5aff8ed83%7Bwidth:24px;height:24px...>
    var init_css = __esm({
        "<data:text/css,.m-offlineIcon-b5aff8ed83%7Bwidth:24px;height:24px...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Network/NetworkIndicator.module.sass
    var NetworkIndicator_module_exports = {};
    __export(NetworkIndicator_module_exports, {
        "default": function() {
            return NetworkIndicator_module_default;
        }
    });
    var result9, NetworkIndicator_module_default;
    var init_NetworkIndicator_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Network/NetworkIndicator.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css();
            result9 = {
                offlineIcon: "m-offlineIcon-b5aff8ed83"
            };
            NetworkIndicator_module_default = result9;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Network/OfflineIcon.js
    var require_OfflineIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Network/OfflineIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var NetworkIndicator_module_sass_1 = __importDefault((init_NetworkIndicator_module(), __toCommonJS(NetworkIndicator_module_exports)));
            function OfflineIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4Ij4KICA8Zz4KICAgIDxnPgogICAgICA8cGF0aCBkPSJtNDk1LDE3Yy04LTgtMjAuOS04LTI4LjksMGwtMzkuOSwzOS45Yy0xNi44LTExLjItMzYuNC0xNy4yLTU3LTE3LjItMjcuNSwwLTUzLjQsMTAuNy03Mi45LDMwLjJsLTU4LjQsNTguNGMtOCw4LTgsMjAuOSAwLDI4LjlsMTE2LjksMTE2LjljMTIuNSwxMS4zIDI1LDMuOCAyOC45LDBsNTguNC01OC40YzM1LjItMzUuMiAzOS42LTg5LjkgMTMtMTI5LjlsMzkuOS0zOS45YzgtOCA4LTIwLjkgMC0yOC45em0tODEuOCwxNjkuOGwtNDQsNDQtODgtODggNDQtNDRjMTEuOC0xMS44IDI3LjQtMTguMiA0NC0xOC4yIDE2LjYsMCAzMi4zLDYuNSA0NCwxOC4yIDI0LjMsMjQuMiAyNC4zLDYzLjcgMCw4OHoiIGZpbGw9IiNGRkZGRkYiLz4KICAgICAgPHBhdGggZD0ibTI2OC45LDI3NC41bC0zNy42LDM3LjUtMzEuMy0zMS40IDM3LjUtMzcuNWM4LTggOC0yMC45IDAtMjguOS04LTgtMjAuOS04LTI4LjksMGwtMzcuNSwzNy41LTEzLjktMTMuOWMtMy44LTMuOC0xNi4xLTExLjItMjguOSwwbC01OC40LDU4LjRjLTM1LjIsMzUuMi0zOS42LDg5LjktMTMsMTI5LjlsLTM5LjksNDBjLTgsOC04LDIwLjkgMCwyOC45IDgsOCAyMC45LDggMjguOSwwbDM5LjktMzkuOWMxNi44LDExLjIgMzYuNCwxNy4yIDU3LDE3LjIgMjcuNSwwIDUzLjQtMTAuNyA3Mi45LTMwLjJsNTguNC01OC40YzgtOCA4LTIwLjkgMC0yOC45bC0xMy45LTEzLjkgMzcuNS0zNy41YzgtOCA4LTIwLjkgMC0yOC45LTcuOS04LTIwLjktOC0yOC44LTEuMTM2ODdlLTEzem0tODIuMSwxMzguN2MtMTEuOCwxMS44LTI3LjQsMTguMi00NCwxOC4ycy0zMi4zLTYuNS00NC0xOC4yYy0yNC4zLTI0LjMtMjQuMy02My44IDAtODhsNDQtNDQgODgsODgtNDQsNDR6IiBmaWxsPSIjRkZGRkZGIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "offline",
                    className: NetworkIndicator_module_sass_1["default"].offlineIcon
                });
            }
            exports["default"] = OfflineIcon;
        }
    });
    // <data:text/css,.m-pixel-fef525c31a%7Bposition:fixed;z-index:1200;...>
    var init_css_m_pixel_fef525c31a_7Bposition_fixed_z_index_1200_width_1px_height_1px_background_color_white_7D_m_topLeft_fef525c31a_7Btop_0_left_0_7D_m_topRight_fef525c31a_7Btop_0_right_0_7D_m_bottomLeft_fef525c31a_7Bbottom_0_left_0_7D = __esm({
        "<data:text/css,.m-pixel-fef525c31a%7Bposition:fixed;z-index:1200;...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Application/Status/CornerStatusIndicator.module.sass
    var CornerStatusIndicator_module_exports = {};
    __export(CornerStatusIndicator_module_exports, {
        "default": function() {
            return CornerStatusIndicator_module_default;
        }
    });
    var result10, CornerStatusIndicator_module_default;
    var init_CornerStatusIndicator_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Application/Status/CornerStatusIndicator.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_pixel_fef525c31a_7Bposition_fixed_z_index_1200_width_1px_height_1px_background_color_white_7D_m_topLeft_fef525c31a_7Btop_0_left_0_7D_m_topRight_fef525c31a_7Btop_0_right_0_7D_m_bottomLeft_fef525c31a_7Bbottom_0_left_0_7D();
            result10 = {
                pixel: "m-pixel-fef525c31a",
                topLeft: "m-topLeft-fef525c31a",
                topRight: "m-topRight-fef525c31a",
                bottomLeft: "m-bottomLeft-fef525c31a",
                bottomRight: "m-bottomRight-fef525c31a"
            };
            CornerStatusIndicator_module_default = result10;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Status/CornerStatusIndicator.js
    var require_CornerStatusIndicator = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Status/CornerStatusIndicator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var classnames_1 = __importDefault(require_classnames());
            var CornerStatusIndicator_module_sass_1 = __importDefault((init_CornerStatusIndicator_module(), __toCommonJS(CornerStatusIndicator_module_exports)));
            var CornerStatusIndicator = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(CornerStatusIndicator, _React3_PureComponent);
                var _super = _create_super(CornerStatusIndicator);
                function CornerStatusIndicator() {
                    _class_call_check(this, CornerStatusIndicator);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.getPosition = function() {
                        var _this_props = _this.props, top = _this_props.top, bottom = _this_props.bottom, left = _this_props.left, right = _this_props.right;
                        var positionClassName = CornerStatusIndicator_module_sass_1["default"].bottomRight;
                        if (top && left) {
                            positionClassName = CornerStatusIndicator_module_sass_1["default"].topLeft;
                        } else if (top && right) {
                            positionClassName = CornerStatusIndicator_module_sass_1["default"].topRight;
                        } else if (bottom && left) {
                            positionClassName = CornerStatusIndicator_module_sass_1["default"].bottomLeft;
                        }
                        return positionClassName;
                    };
                    _this.validateProps = function() {
                        var ERROR_MSG = "Invalid combination of props.";
                        var ERROR_TOP_BOTTOM = "Can't use top and bottom at the same time.";
                        var ERROR_LEFT_RIGHT = "Can't use left and right at the same time.";
                        var _this_props = _this.props, top = _this_props.top, bottom = _this_props.bottom, left = _this_props.left, right = _this_props.right;
                        var errorMessageArr = [
                            ERROR_MSG
                        ];
                        if (top && bottom) {
                            errorMessageArr.push(ERROR_TOP_BOTTOM);
                        }
                        if (left && right) {
                            errorMessageArr.push(ERROR_LEFT_RIGHT);
                        }
                        if (errorMessageArr.length > 1) {
                            throw new Error(errorMessageArr.join(" "));
                        }
                    };
                    return _this;
                }
                _create_class(CornerStatusIndicator, [
                    {
                        key: "render",
                        value: function render() {
                            this.validateProps();
                            var customClass = this.props.customClass;
                            var pixelClassName = [
                                CornerStatusIndicator_module_sass_1["default"].pixel,
                                this.getPosition(),
                                customClass
                            ].join(" ");
                            return React3.createElement("div", {
                                className: (0, classnames_1["default"])(pixelClassName, "global-corner-indicator", {
                                    "global-top": !!this.props.top,
                                    "global-bottom": !!this.props.bottom,
                                    "global-left": !!this.props.left,
                                    "global-right": !!this.props.right
                                })
                            });
                        }
                    }
                ]);
                return CornerStatusIndicator;
            }(React3.PureComponent);
            exports["default"] = CornerStatusIndicator;
        }
    });
    // <data:text/css,.m-container-7da5d607ed%7Bdisplay:flex;flex-direct...>
    var init_css_m_container_7da5d607ed_7Bdisplay_flex_flex_direction_column_position_fixed_justify_content_flex_start_align_items_flex_end_z_index_1000_top_0_3em_right_0_3em_7D_m_info_7da5d607ed_7Bpadding_0_2em_200_5em_border_1px_20solid_20_111111_background_color_222222_color_white_opacity_0_3_border_radius_0_2em_margin_bottom_0 = __esm({
        "<data:text/css,.m-container-7da5d607ed%7Bdisplay:flex;flex-direct...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Application/Status/StatusBar.module.sass
    var StatusBar_module_exports = {};
    __export(StatusBar_module_exports, {
        "default": function() {
            return StatusBar_module_default;
        }
    });
    var result11, StatusBar_module_default;
    var init_StatusBar_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Application/Status/StatusBar.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css_m_container_7da5d607ed_7Bdisplay_flex_flex_direction_column_position_fixed_justify_content_flex_start_align_items_flex_end_z_index_1000_top_0_3em_right_0_3em_7D_m_info_7da5d607ed_7Bpadding_0_2em_200_5em_border_1px_20solid_20_111111_background_color_222222_color_white_opacity_0_3_border_radius_0_2em_margin_bottom_0();
            result11 = {
                container: "m-container-7da5d607ed",
                info: "m-info-7da5d607ed"
            };
            StatusBar_module_default = result11;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Network/NetworkIndicator.js
    var require_NetworkIndicator = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Network/NetworkIndicator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NetworkIndicator = void 0;
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var OfflineIcon_1 = __importDefault(require_OfflineIcon());
            var CornerStatusIndicator_1 = __importDefault(require_CornerStatusIndicator());
            var StatusBar_module_sass_1 = __importDefault((init_StatusBar_module(), __toCommonJS(StatusBar_module_exports)));
            var NetworkIndicator = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(NetworkIndicator, _React3_PureComponent);
                var _super = _create_super(NetworkIndicator);
                function NetworkIndicator() {
                    _class_call_check(this, NetworkIndicator);
                    return _super.apply(this, arguments);
                }
                _create_class(NetworkIndicator, [
                    {
                        key: "render",
                        value: function render() {
                            var _this_props = this.props, isConnected = _this_props.isConnected, debug4 = _this_props.debug;
                            if (!isConnected) {
                                return React3.createElement("div", null, debug4 ? React3.createElement("div", {
                                    className: StatusBar_module_sass_1["default"].info
                                }, React3.createElement(OfflineIcon_1["default"], null)) : null, React3.createElement(CornerStatusIndicator_1["default"], {
                                    top: true,
                                    right: true
                                }));
                            } else {
                                return null;
                            }
                        }
                    }
                ]);
                return NetworkIndicator;
            }(React3.PureComponent);
            exports.NetworkIndicator = NetworkIndicator;
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    isConnected: state.network.connected,
                    debug: state.debug.debugOn
                };
            }, function(_dispatch) {
                return {};
            })(NetworkIndicator);
        }
    });
    // <data:text/css,.m-reconnectingIcon-37e145cc1c%7Bwidth:24px;height...>
    var init_css2 = __esm({
        "<data:text/css,.m-reconnectingIcon-37e145cc1c%7Bwidth:24px;height...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Socket/SocketIndicator.module.sass
    var SocketIndicator_module_exports = {};
    __export(SocketIndicator_module_exports, {
        "default": function() {
            return SocketIndicator_module_default;
        }
    });
    var result12, SocketIndicator_module_default;
    var init_SocketIndicator_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Socket/SocketIndicator.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css2();
            result12 = {
                reconnectingIcon: "m-reconnectingIcon-37e145cc1c"
            };
            SocketIndicator_module_default = result12;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Socket/ReconnectingIcon.js
    var require_ReconnectingIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Socket/ReconnectingIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var SocketIndicator_module_sass_1 = __importDefault((init_SocketIndicator_module(), __toCommonJS(SocketIndicator_module_exports)));
            function ReconnectingIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDYxMiA2MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDYxMiA2MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0iY2xvdWQtb2ZmIj4KCQk8cGF0aCBkPSJNNDk0LjcsMjI5LjVjLTE3Ljg1MS04Ni43LTk0LjM1MS0xNTMtMTg4LjctMTUzYy0zOC4yNSwwLTczLjk1LDEwLjItMTAyLDMwLjZsMzguMjUsMzguMjUgICAgYzE3Ljg1LTEyLjc1LDQwLjgtMTcuODUsNjMuNzUtMTcuODVjNzYuNSwwLDE0MC4yNSw2My43NSwxNDAuMjUsMTQwLjI1djEyLjc1aDM4LjI1YzQzLjM1LDAsNzYuNSwzMy4xNSw3Ni41LDc2LjUgICAgYzAsMjguMDUtMTUuMyw1My41NS00MC44LDY2LjNsMzguMjUsMzguMjVDNTkxLjYsNDM4LjYsNjEyLDQwMC4zNSw2MTIsMzU3QzYxMiwyOTAuNyw1NTguNDUsMjM0LjYsNDk0LjcsMjI5LjV6IE03Ni41LDEwOS42NSAgICBsNzEuNCw2OC44NUM2Ni4zLDE4My42LDAsMjQ5LjksMCwzMzEuNWMwLDg0LjE1LDY4Ljg1LDE1MywxNTMsMTUzaDI5OC4zNWw1MSw1MWwzMy4xNS0zMy4xNUwxMDkuNjUsNzYuNUw3Ni41LDEwOS42NXogICAgIE0xOTYuMzUsMjI5LjVsMjA0LDIwNEgxNTNjLTU2LjEsMC0xMDItNDUuOS0xMDItMTAyYzAtNTYuMSw0NS45LTEwMiwxMDItMTAySDE5Ni4zNXoiIGZpbGw9IiNGRkZGRkYiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "reconnecting",
                    className: SocketIndicator_module_sass_1["default"].reconnectingIcon
                });
            }
            exports["default"] = ReconnectingIcon;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Socket/SocketIndicator.js
    var require_SocketIndicator = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Socket/SocketIndicator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SocketIndicator = void 0;
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var ReconnectingIcon_1 = __importDefault(require_ReconnectingIcon());
            var CornerStatusIndicator_1 = __importDefault(require_CornerStatusIndicator());
            var StatusBar_module_sass_1 = __importDefault((init_StatusBar_module(), __toCommonJS(StatusBar_module_exports)));
            var SocketIndicator = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(SocketIndicator, _React3_PureComponent);
                var _super = _create_super(SocketIndicator);
                function SocketIndicator() {
                    _class_call_check(this, SocketIndicator);
                    return _super.apply(this, arguments);
                }
                _create_class(SocketIndicator, [
                    {
                        key: "render",
                        value: function render() {
                            var _this_props = this.props, isConnected = _this_props.isConnected, debug4 = _this_props.debug;
                            if (!isConnected) {
                                return React3.createElement("div", null, debug4 ? React3.createElement("div", {
                                    className: StatusBar_module_sass_1["default"].info
                                }, React3.createElement(ReconnectingIcon_1["default"], null)) : null, React3.createElement(CornerStatusIndicator_1["default"], {
                                    top: true,
                                    left: true
                                }));
                            } else {
                                return null;
                            }
                        }
                    }
                ]);
                return SocketIndicator;
            }(React3.PureComponent);
            exports.SocketIndicator = SocketIndicator;
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    isConnected: state.socket && state.socket.connected,
                    debug: state.debug.debugOn
                };
            }, function(_dispatch) {
                return {};
            })(SocketIndicator);
        }
    });
    // <data:text/css,.m-checkingVerificationIcon-cedbef91e1%7Bwidth:24p...>
    var init_css3 = __esm({
        "<data:text/css,.m-checkingVerificationIcon-cedbef91e1%7Bwidth:24p...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/CheckingVerificationIcon.module.sass
    var CheckingVerificationIcon_module_exports = {};
    __export(CheckingVerificationIcon_module_exports, {
        "default": function() {
            return CheckingVerificationIcon_module_default;
        }
    });
    var result13, CheckingVerificationIcon_module_default;
    var init_CheckingVerificationIcon_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/CheckingVerificationIcon.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css3();
            result13 = {
                checkingVerificationIcon: "m-checkingVerificationIcon-cedbef91e1"
            };
            CheckingVerificationIcon_module_default = result13;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/CheckingVerificationIcon.js
    var require_CheckingVerificationIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/CheckingVerificationIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var CheckingVerificationIcon_module_sass_1 = __importDefault((init_CheckingVerificationIcon_module(), __toCommonJS(CheckingVerificationIcon_module_exports)));
            function CheckingVerificationIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMCA1MTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0iY2hlY2stY2lyY2xlLW91dGxpbmUiPgoJCTxwYXRoIGQ9Ik0xNTAuNDUsMjA2LjU1bC0zNS43LDM1LjdMMjI5LjUsMzU3bDI1NS0yNTVsLTM1LjctMzUuN0wyMjkuNSwyODUuNkwxNTAuNDUsMjA2LjU1eiBNNDU5LDI1NWMwLDExMi4yLTkxLjgsMjA0LTIwNCwyMDQgICAgUzUxLDM2Ny4yLDUxLDI1NVMxNDIuOCw1MSwyNTUsNTFjMjAuNCwwLDM4LjI1LDIuNTUsNTYuMSw3LjY1bDQwLjgwMS00MC44QzMyMS4zLDcuNjUsMjg4LjE1LDAsMjU1LDBDMTE0Ljc1LDAsMCwxMTQuNzUsMCwyNTUgICAgczExNC43NSwyNTUsMjU1LDI1NXMyNTUtMTE0Ljc1LDI1NS0yNTVINDU5eiIgZmlsbD0iI0ZGRkZGRiIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "checking verification",
                    className: CheckingVerificationIcon_module_sass_1["default"].checkingVerificationIcon
                });
            }
            exports["default"] = CheckingVerificationIcon;
        }
    });
    // <data:text/css,.m-indicator-ed921dc9dd%7Bbackground-color:red%7D>
    var init_css4 = __esm({
        "<data:text/css,.m-indicator-ed921dc9dd%7Bbackground-color:red%7D>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerificationStatus.module.sass
    var DeviceVerificationStatus_module_exports = {};
    __export(DeviceVerificationStatus_module_exports, {
        "default": function() {
            return DeviceVerificationStatus_module_default;
        }
    });
    var result14, DeviceVerificationStatus_module_default;
    var init_DeviceVerificationStatus_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerificationStatus.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css4();
            result14 = {
                indicator: "m-indicator-ed921dc9dd"
            };
            DeviceVerificationStatus_module_default = result14;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerificationStatus.js
    var require_DeviceVerificationStatus = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerificationStatus.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var CheckingVerificationIcon_1 = __importDefault(require_CheckingVerificationIcon());
            var CornerStatusIndicator_1 = __importDefault(require_CornerStatusIndicator());
            var StatusBar_module_sass_1 = __importDefault((init_StatusBar_module(), __toCommonJS(StatusBar_module_exports)));
            var DeviceVerificationStatus_module_sass_1 = __importDefault((init_DeviceVerificationStatus_module(), __toCommonJS(DeviceVerificationStatus_module_exports)));
            var DeviceVerificationStatus = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(DeviceVerificationStatus, _React3_PureComponent);
                var _super = _create_super(DeviceVerificationStatus);
                function DeviceVerificationStatus() {
                    _class_call_check(this, DeviceVerificationStatus);
                    return _super.apply(this, arguments);
                }
                _create_class(DeviceVerificationStatus, [
                    {
                        key: "render",
                        value: function render() {
                            var _this_props = this.props, verified = _this_props.verified, debug4 = _this_props.debug;
                            if (verified === null) {
                                return React3.createElement("div", null, debug4 ? React3.createElement("div", {
                                    className: StatusBar_module_sass_1["default"].info
                                }, React3.createElement(CheckingVerificationIcon_1["default"], null)) : null, React3.createElement(CornerStatusIndicator_1["default"], {
                                    bottom: true,
                                    left: true,
                                    customClass: DeviceVerificationStatus_module_sass_1["default"].indicator
                                }));
                            } else {
                                return null;
                            }
                        }
                    }
                ]);
                return DeviceVerificationStatus;
            }(React3.PureComponent);
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    verified: state.deviceVerification.verified,
                    debug: state.debug.debugOn
                };
            }, function(_dispatch) {
                return {};
            })(DeviceVerificationStatus);
        }
    });
    // <data:text/css,.m-signingInIcon-d42a6ab2ca%7Bwidth:24px;height:24...>
    var init_css5 = __esm({
        "<data:text/css,.m-signingInIcon-d42a6ab2ca%7Bwidth:24px;height:24...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Authentication/DisplayAuthenticator.module.sass
    var DisplayAuthenticator_module_exports = {};
    __export(DisplayAuthenticator_module_exports, {
        "default": function() {
            return DisplayAuthenticator_module_default;
        }
    });
    var result15, DisplayAuthenticator_module_default;
    var init_DisplayAuthenticator_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Authentication/DisplayAuthenticator.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css5();
            result15 = {
                signingInIcon: "m-signingInIcon-d42a6ab2ca"
            };
            DisplayAuthenticator_module_default = result15;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Authentication/SigningInIcon.js
    var require_SigningInIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Authentication/SigningInIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var DisplayAuthenticator_module_sass_1 = __importDefault((init_DisplayAuthenticator_module(), __toCommonJS(DisplayAuthenticator_module_exports)));
            function SigningInIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDUxNi4zNzUgNTE2LjM3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTE2LjM3NSA1MTYuMzc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTM1My44MTIsMEMyNjMuOTI1LDAsMTkxLjI1LDcyLjY3NSwxOTEuMjUsMTYyLjU2MmMwLDE5LjEyNSwzLjgyNSwzOC4yNSw5LjU2Miw1Ny4zNzVMMCw0MjAuNzV2OTUuNjI1aDk1LjYyNVY0NTlIMTUzICAgdi01Ny4zNzVoNTcuMzc1bDg2LjA2Mi04Ni4wNjJjMTcuMjEzLDUuNzM3LDM2LjMzOCw5LjU2Miw1Ny4zNzUsOS41NjJjODkuODg4LDAsMTYyLjU2Mi03Mi42NzUsMTYyLjU2Mi0xNjIuNTYyUzQ0My43LDAsMzUzLjgxMiwwICAgeiBNNDAxLjYyNSwxNzIuMTI1Yy0zMi41MTMsMC01Ny4zNzUtMjQuODYyLTU3LjM3NS01Ny4zNzVzMjQuODYyLTU3LjM3NSw1Ny4zNzUtNTcuMzc1UzQ1OSw4Mi4yMzcsNDU5LDExNC43NSAgIFM0MzQuMTM4LDE3Mi4xMjUsNDAxLjYyNSwxNzIuMTI1eiIgZmlsbD0iI0ZGRkZGRiIvPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "signing in",
                    className: DisplayAuthenticator_module_sass_1["default"].signingInIcon
                });
            }
            exports["default"] = SigningInIcon;
        }
    });
    // node_modules/@signageos/actions/dist/Device/RegisterFailReason.js
    var require_RegisterFailReason = __commonJS({
        "node_modules/@signageos/actions/dist/Device/RegisterFailReason.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var RegisterFailReason;
            (function(RegisterFailReason2) {
                RegisterFailReason2[RegisterFailReason2["ALREADY_EXISTS"] = 0] = "ALREADY_EXISTS";
                RegisterFailReason2[RegisterFailReason2["INVALID_DEVICE_UID"] = 1] = "INVALID_DEVICE_UID";
                RegisterFailReason2[RegisterFailReason2["COMMAND_FAILED"] = 2] = "COMMAND_FAILED";
                RegisterFailReason2[RegisterFailReason2["INVALID_ORGANIZATION_UID"] = 3] = "INVALID_ORGANIZATION_UID";
            })(RegisterFailReason || (RegisterFailReason = {}));
            exports["default"] = RegisterFailReason;
        }
    });
    // node_modules/@signageos/actions/dist/Authentication/AuthenticationFailReason.js
    var require_AuthenticationFailReason = __commonJS({
        "node_modules/@signageos/actions/dist/Authentication/AuthenticationFailReason.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AuthenticationFailReason;
            (function(AuthenticationFailReason2) {
                AuthenticationFailReason2[AuthenticationFailReason2["MISSING_SESSION"] = 0] = "MISSING_SESSION";
                AuthenticationFailReason2[AuthenticationFailReason2["MISSING_DEVICE"] = 1] = "MISSING_DEVICE";
                AuthenticationFailReason2[AuthenticationFailReason2["MISSING_ACCOUNT"] = 2] = "MISSING_ACCOUNT";
                AuthenticationFailReason2[AuthenticationFailReason2["CREATING_SESSION"] = 3] = "CREATING_SESSION";
                AuthenticationFailReason2[AuthenticationFailReason2["COMMAND_FAILED"] = 4] = "COMMAND_FAILED";
            })(AuthenticationFailReason || (AuthenticationFailReason = {}));
            exports["default"] = AuthenticationFailReason;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Authentication/DisplayAuthenticator.js
    var require_DisplayAuthenticator = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Authentication/DisplayAuthenticator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DisplayAuthenticator = void 0;
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var SigningInIcon_1 = __importDefault(require_SigningInIcon());
            var RegisterFailReason_1 = __importDefault(require_RegisterFailReason());
            var AuthenticationFailReason_1 = __importDefault(require_AuthenticationFailReason());
            var CornerStatusIndicator_1 = __importDefault(require_CornerStatusIndicator());
            var StatusBar_module_sass_1 = __importDefault((init_StatusBar_module(), __toCommonJS(StatusBar_module_exports)));
            var DisplayAuthenticator = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(DisplayAuthenticator, _React3_PureComponent);
                var _super = _create_super(DisplayAuthenticator);
                function DisplayAuthenticator() {
                    _class_call_check(this, DisplayAuthenticator);
                    return _super.apply(this, arguments);
                }
                _create_class(DisplayAuthenticator, [
                    {
                        key: "render",
                        value: function render() {
                            var _this_props = this.props, authenticated = _this_props.authenticated, authenticating = _this_props.authenticating, debug4 = _this_props.debug;
                            if (!authenticated) {
                                return React3.createElement("div", null, debug4 ? !authenticating ? React3.createElement("div", {
                                    className: StatusBar_module_sass_1["default"].info
                                }, React3.createElement(SigningInIcon_1["default"], null)) : React3.createElement("div", {
                                    className: StatusBar_module_sass_1["default"].info
                                }, this.props.failReason !== null ? AuthenticationFailReason_1["default"][this.props.failReason] : null, this.props.deviceFailReason !== null ? RegisterFailReason_1["default"][this.props.deviceFailReason] : null) : null, React3.createElement(CornerStatusIndicator_1["default"], {
                                    bottom: true,
                                    left: true
                                }));
                            } else {
                                return null;
                            }
                        }
                    }
                ]);
                return DisplayAuthenticator;
            }(React3.PureComponent);
            exports.DisplayAuthenticator = DisplayAuthenticator;
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    authenticated: state.authentication.authenticated,
                    authenticating: state.authentication.authenticating,
                    deviceFailReason: state.device.failReason,
                    failReason: state.authentication.failReason,
                    debug: state.debug.debugOn
                };
            }, function(_dispatch) {
                return {};
            })(DisplayAuthenticator);
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Applet/LoadingIcon.js
    var require_LoadingIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Applet/LoadingIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var ActiveApplet_module_sass_1 = __importDefault((init_ActiveApplet_module(), __toCommonJS(ActiveApplet_module_exports)));
            function LoadingIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDU2MSA1NjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDU2MSA1NjE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0ibG9vcCI+CgkJPHBhdGggZD0iTTI4MC41LDc2LjVWMGwtMTAyLDEwMmwxMDIsMTAydi03Ni41Yzg0LjE1LDAsMTUzLDY4Ljg1LDE1MywxNTNjMCwyNS41LTcuNjUsNTEtMTcuODUsNzEuNGwzOC4yNSwzOC4yNSAgICBDNDcxLjc1LDM1Nyw0ODQuNSwzMjEuMyw0ODQuNSwyODAuNUM0ODQuNSwxNjguMywzOTIuNyw3Ni41LDI4MC41LDc2LjV6IE0yODAuNSw0MzMuNWMtODQuMTUsMC0xNTMtNjguODUtMTUzLTE1MyAgICBjMC0yNS41LDcuNjUtNTEsMTcuODUtNzEuNGwtMzguMjUtMzguMjVDODkuMjUsMjA0LDc2LjUsMjM5LjcsNzYuNSwyODAuNWMwLDExMi4yLDkxLjgsMjA0LDIwNCwyMDRWNTYxbDEwMi0xMDJsLTEwMi0xMDJWNDMzLjV6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "loading",
                    className: ActiveApplet_module_sass_1["default"].loadingIcon
                });
            }
            exports["default"] = LoadingIcon;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Applet/ActiveAppletStatus.js
    var require_ActiveAppletStatus = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Applet/ActiveAppletStatus.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var CornerStatusIndicator_1 = __importDefault(require_CornerStatusIndicator());
            var LoadingIcon_1 = __importDefault(require_LoadingIcon());
            var StatusBar_module_sass_1 = __importDefault((init_StatusBar_module(), __toCommonJS(StatusBar_module_exports)));
            var ActiveAppletStatus = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(ActiveAppletStatus, _React3_PureComponent);
                var _super = _create_super(ActiveAppletStatus);
                function ActiveAppletStatus() {
                    _class_call_check(this, ActiveAppletStatus);
                    return _super.apply(this, arguments);
                }
                _create_class(ActiveAppletStatus, [
                    {
                        key: "render",
                        value: function render() {
                            var _this_props = this.props, appletMissing = _this_props.appletMissing, appletChecksum = _this_props.appletChecksum, appletIsMuted = _this_props.appletIsMuted, debug4 = _this_props.debug;
                            if (!appletMissing && !appletChecksum && !appletIsMuted) {
                                return React3.createElement("div", null, debug4 ? React3.createElement("div", {
                                    className: StatusBar_module_sass_1["default"].info
                                }, React3.createElement(LoadingIcon_1["default"], null)) : null, React3.createElement(CornerStatusIndicator_1["default"], {
                                    bottom: true,
                                    right: true
                                }));
                            } else {
                                return null;
                            }
                        }
                    }
                ]);
                return ActiveAppletStatus;
            }(React3.PureComponent);
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    appletMissing: state.applet.activeAppletMissing,
                    appletChecksum: state.applet.activeTimingChecksum,
                    appletIsMuted: state.applet.appletIsMuted,
                    debug: state.debug.debugOn
                };
            }, function(_dispatch) {
                return {};
            })(ActiveAppletStatus);
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Status/StatusBar.js
    var require_StatusBar = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Status/StatusBar.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var NetworkIndicator_1 = __importDefault(require_NetworkIndicator());
            var SocketIndicator_1 = __importDefault(require_SocketIndicator());
            var DeviceVerificationStatus_1 = __importDefault(require_DeviceVerificationStatus());
            var DisplayAuthenticator_1 = __importDefault(require_DisplayAuthenticator());
            var ActiveAppletStatus_1 = __importDefault(require_ActiveAppletStatus());
            var StatusBar_module_sass_1 = __importDefault((init_StatusBar_module(), __toCommonJS(StatusBar_module_exports)));
            exports["default"] = function() {
                return React3.createElement("div", {
                    className: StatusBar_module_sass_1["default"].container
                }, React3.createElement(NetworkIndicator_1["default"], null), React3.createElement(SocketIndicator_1["default"], null), React3.createElement(DisplayAuthenticator_1["default"], null), React3.createElement(DeviceVerificationStatus_1["default"], null), React3.createElement(ActiveAppletStatus_1["default"], null));
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/HashtagIcon.js
    var require_HashtagIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/HashtagIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var SuccessIcon_module_sass_1 = __importDefault((init_SuccessIcon_module(), __toCommonJS(SuccessIcon_module_exports)));
            function HastagIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjb2xvcj0iI2U2YjMxMyI+PHBhdGggZD0iTTEwIDNMNiAyMSIgc3Ryb2tlPSIjZTZiMzEzIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0iI2U2YjMxMyIvPjxwYXRoIGQ9Ik0yMC41IDE2SDIuNSIgc3Ryb2tlPSIjZTZiMzEzIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0iI2U2YjMxMyIvPjxwYXRoIGQ9Ik0yMiA3SDQiIHN0cm9rZT0iI2U2YjMxMyIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9IiNlNmIzMTMiLz48cGF0aCBkPSJNMTggM0wxNCAyMSIgc3Ryb2tlPSIjZTZiMzEzIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0iI2U2YjMxMyIvPjwvc3ZnPg==";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "hashtag icon",
                    className: SuccessIcon_module_sass_1["default"].rightTopIcon
                });
            }
            exports["default"] = HastagIcon;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/OfflineIcon.js
    var require_OfflineIcon2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/OfflineIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var SuccessIcon_module_sass_1 = __importDefault((init_SuccessIcon_module(), __toCommonJS(SuccessIcon_module_exports)));
            function OfflineIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PHN2ZyBpZD0iU3ZnanNTdmcxMDIwIiB3aWR0aD0iMjg4IiBoZWlnaHQ9IjI4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpzdmdqcz0iaHR0cDovL3N2Z2pzLmNvbS9zdmdqcyI+PGRlZnMgaWQ9IlN2Z2pzRGVmczEwMjEiPjwvZGVmcz48ZyBpZD0iU3ZnanNHMTAyMiI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMiIgY29sb3I9IiMwMDAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4OCIgaGVpZ2h0PSIyODgiPjxwYXRoIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMTIgMTkuNTFMMTIuMDEgMTkuNDk4OU0zIDNMMjEgMjFNMiA4QzMuMTg0NzYgNy4xMTE0MyA0LjQ0NzUgNi4zOTgzMiA1Ljc1NzQyIDUuODYwNjZNMjIgOEMxOC40Mjc2IDUuMzIwNjggMTQuMTQ2MSA0LjIzNjY0IDEwIDQuNzQ3ODdNNSAxMkM2LjMzMzMgMTEgNy44ODg4IDEwLjMzMzMgOS41MTgzOCAxME0xOSAxMkMxNy43MzE0IDExLjA0ODYgMTYuMjYxNyAxMC4zOTg5IDE0LjcxODMgMTAuMDUwOU04LjUgMTUuNUMxMC43NTA0IDE0LjEgMTMuMjQ5OCAxNC4wOTk2IDE1LjUwMDEgMTUuNSIgY2xhc3M9ImNvbG9yU3Ryb2tlMDAwIHN2Z1N0cm9rZSI+PC9wYXRoPjwvc3ZnPjwvZz48L3N2Zz4=";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "offline icon",
                    className: SuccessIcon_module_sass_1["default"].rightTopIcon
                });
            }
            exports["default"] = OfflineIcon;
        }
    });
    // <data:text/css,.m-wrapper-1c03fb3714%7Banimation-name:fade-in;ani...>
    var init_css6 = __esm({
        "<data:text/css,.m-wrapper-1c03fb3714%7Banimation-name:fade-in;ani...>": function() {}
    });
    // sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerification.module.sass
    var DeviceVerification_module_exports = {};
    __export(DeviceVerification_module_exports, {
        "default": function() {
            return DeviceVerification_module_default;
        }
    });
    var result16, DeviceVerification_module_default;
    var init_DeviceVerification_module = __esm({
        "sass:/builds/signageos/display/display-webos/node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerification.module.sass": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_css6();
            result16 = {
                wrapper: "m-wrapper-1c03fb3714"
            };
            DeviceVerification_module_default = result16;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/ConnectingIcon.js
    var require_ConnectingIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/Icons/ConnectingIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var SuccessIcon_module_sass_1 = __importDefault((init_SuccessIcon_module(), __toCommonJS(SuccessIcon_module_exports)));
            var React3 = __importStar(require_react());
            function ConnectingIcon() {
                var iconUri = // eslint-disable-next-line max-len
                "data:image/svg+xml;utf8;base64,PHN2ZyBpZD0iU3ZnanNTdmcxMDEzIiB3aWR0aD0iMjg4IiBoZWlnaHQ9IjI4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpzdmdqcz0iaHR0cDovL3N2Z2pzLmNvbS9zdmdqcyI+PGRlZnMgaWQ9IlN2Z2pzRGVmczEwMTQiPjwvZGVmcz48ZyBpZD0iU3ZnanNHMTAxNSI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMiIgY29sb3I9IiMwMDAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4OCIgaGVpZ2h0PSIyODgiPjxwYXRoIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMjEuMTY3OSA4QzE5LjYyNDcgNC40NjgxOSAxNi4xMDA2IDIgMTEuOTk5OSAyQzYuODE0NTkgMiAyLjU1MTA0IDUuOTQ2NjggMi4wNDkzMiAxMSIgY2xhc3M9ImNvbG9yU3Ryb2tlMDAwIHN2Z1N0cm9rZSI+PC9wYXRoPjxwYXRoIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMTcgOEgyMS40QzIxLjczMTQgOCAyMiA3LjczMTM3IDIyIDcuNFYzTTIuODgxNDYgMTZDNC40MjQ1OCAxOS41MzE4IDcuOTQ4NzQgMjIgMTIuMDQ5NCAyMiAxNy4yMzQ3IDIyIDIxLjQ5ODMgMTguMDUzMyAyMiAxMyIgY2xhc3M9ImNvbG9yU3Ryb2tlMDAwIHN2Z1N0cm9rZSI+PC9wYXRoPjxwYXRoIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNNy4wNDkzMiAxNkgyLjY0OTMyQzIuMzE3OTUgMTYgMi4wNDkzMiAxNi4yNjg2IDIuMDQ5MzIgMTYuNlYyMSIgY2xhc3M9ImNvbG9yU3Ryb2tlMDAwIHN2Z1N0cm9rZSI+PC9wYXRoPjwvc3ZnPjwvZz48L3N2Zz4=";
                return React3.createElement("img", {
                    src: iconUri,
                    alt: "connecting icon",
                    className: SuccessIcon_module_sass_1["default"].rightTopIcon
                });
            }
            exports["default"] = ConnectingIcon;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerification.js
    var require_DeviceVerification = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Device/Verification/DeviceVerification.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceVerification = void 0;
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var MainInfo_1 = __importDefault(require_MainInfo());
            var InfoProperty_1 = __importDefault(require_InfoProperty());
            var DeviceInfo_1 = __importDefault(require_DeviceInfo());
            var HashtagIcon_1 = __importDefault(require_HashtagIcon());
            var OfflineIcon_1 = __importDefault(require_OfflineIcon2());
            var DeviceVerification_module_sass_1 = __importDefault((init_DeviceVerification_module(), __toCommonJS(DeviceVerification_module_exports)));
            var TimeInfo_1 = __importDefault(require_TimeInfo());
            var ConnectingIcon_1 = __importDefault(require_ConnectingIcon());
            var DangerIcon_1 = __importDefault(require_DangerIcon());
            var DeviceVerification = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(DeviceVerification, _React3_PureComponent);
                var _super = _create_super(DeviceVerification);
                function DeviceVerification() {
                    _class_call_check(this, DeviceVerification);
                    return _super.apply(this, arguments);
                }
                _create_class(DeviceVerification, [
                    {
                        key: "render",
                        value: function render() {
                            if (!this.props.verified) {
                                var deviceInfo = React3.createElement("div", null, React3.createElement(TimeInfo_1["default"], {
                                    timestamp: this.props.timestamp,
                                    timezone: this.props.timezone
                                }), React3.createElement(DeviceInfo_1["default"], null, React3.createElement(InfoProperty_1["default"], {
                                    title: "Device:"
                                }, this.getDeviceModel()), React3.createElement(InfoProperty_1["default"], {
                                    title: "System:"
                                }, this.getSystemLabel()), React3.createElement(InfoProperty_1["default"], {
                                    title: "System Version:"
                                }, this.getOsVersion()), React3.createElement(InfoProperty_1["default"], {
                                    title: "Firmware Version:"
                                }, this.getFirmwareVersion()), React3.createElement(InfoProperty_1["default"], {
                                    title: "Serial Number:"
                                }, this.getDeviceSerialNumber()), this.props.frontDisplayVersion ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Front Display Version:"
                                }, this.props.frontDisplayVersion) : null, this.props.applicationVersion ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Application Version:"
                                }, this.props.applicationVersion) : null, this.props.network ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Network:"
                                }, this.props.network) : null, this.props.ipAddress ? React3.createElement(InfoProperty_1["default"], {
                                    title: "Local IP Address:"
                                }, this.props.ipAddress) : null, React3.createElement(InfoProperty_1["default"], {
                                    title: "PIN:"
                                }, this.getPinCode()), React3.createElement(InfoProperty_1["default"], {
                                    title: "Setup menu:"
                                }, "PIN + OK/Enter opens OSD"), React3.createElement(InfoProperty_1["default"], {
                                    title: "Status:"
                                }, "Device is not verified")));
                                if (!this.props.isOnline) {
                                    return React3.createElement("div", {
                                        key: "offline",
                                        className: DeviceVerification_module_sass_1["default"].wrapper
                                    }, React3.createElement(MainInfo_1["default"], {
                                        title: "No internet connection",
                                        value: ""
                                    }), deviceInfo, React3.createElement(OfflineIcon_1["default"], null));
                                } else if (!this.props.isConnected) {
                                    return React3.createElement("div", {
                                        key: "serverDisconnected",
                                        className: DeviceVerification_module_sass_1["default"].wrapper
                                    }, React3.createElement(MainInfo_1["default"], {
                                        title: "Connecting to the server...",
                                        value: ""
                                    }), deviceInfo, React3.createElement(ConnectingIcon_1["default"], null));
                                } else if (this.props.verificationHash) {
                                    return React3.createElement("div", {
                                        key: "verificationHash",
                                        className: DeviceVerification_module_sass_1["default"].wrapper
                                    }, React3.createElement(MainInfo_1["default"], {
                                        title: "Verification Hash:",
                                        value: this.props.verificationHash
                                    }), deviceInfo, React3.createElement(HashtagIcon_1["default"], null));
                                } else if (this.props.isSerialNumberSupported && !this.props.serialNumber) {
                                    return React3.createElement("div", {
                                        key: "noSerialNumber",
                                        className: DeviceVerification_module_sass_1["default"].wrapper
                                    }, React3.createElement(MainInfo_1["default"], {
                                        title: "Device registration:",
                                        value: "Unable to register -\n						No serial number"
                                    }), deviceInfo, React3.createElement(DangerIcon_1["default"], null));
                                } else {
                                    return React3.createElement("div", {
                                        key: "inProgress",
                                        className: DeviceVerification_module_sass_1["default"].wrapper
                                    }, React3.createElement(MainInfo_1["default"], {
                                        title: "Device registration:",
                                        value: "in progress"
                                    }), deviceInfo, React3.createElement(HashtagIcon_1["default"], null));
                                }
                            } else {
                                return React3.createElement("div", null, this.props.children);
                            }
                        }
                    },
                    {
                        key: "getSystemLabel",
                        value: function getSystemLabel() {
                            return this.props.applicationType ? this.props.applicationType.toUpperCase() : "UNKNOWN";
                        }
                    },
                    {
                        key: "getDeviceModel",
                        value: function getDeviceModel() {
                            return this.props.model ? this.props.model : "Unknown";
                        }
                    },
                    {
                        key: "getDeviceSerialNumber",
                        value: function getDeviceSerialNumber() {
                            return this.props.serialNumber ? this.props.serialNumber : "Unknown";
                        }
                    },
                    {
                        key: "getPinCode",
                        value: function getPinCode() {
                            return this.props.pinCode ? this.props.pinCode : "####";
                        }
                    },
                    {
                        key: "getOsVersion",
                        value: function getOsVersion() {
                            return this.props.osVersion ? this.props.osVersion : "Unknown";
                        }
                    },
                    {
                        key: "getFirmwareVersion",
                        value: function getFirmwareVersion() {
                            return this.props.firmwareVersion ? this.props.firmwareVersion : "Unknown";
                        }
                    }
                ]);
                return DeviceVerification;
            }(React3.PureComponent);
            exports.DeviceVerification = DeviceVerification;
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    verificationHash: state.deviceVerification.verificationHash,
                    verified: state.deviceVerification.verified,
                    applicationType: state.device.applicationType,
                    model: state.device.model,
                    ipAddress: state.device.ipAddress,
                    isSerialNumberSupported: state.device.isSerialNumberSupported,
                    serialNumber: state.device.serialNumber,
                    pinCode: state.device.pinCode,
                    network: state.device.activeInterface,
                    isOnline: state.network.connected,
                    isConnected: state.socket.connected,
                    applicationVersion: state.device.applicationVersion,
                    timestamp: state.device.timestamp,
                    timezone: state.device.timezone,
                    firmwareVersion: state.device.firmwareVersion,
                    osVersion: state.device.osVersion,
                    frontDisplayVersion: state.device.frontDisplayVersion
                };
            }, function(_dispatch) {
                return {};
            })(DeviceVerification);
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Application/DisplayBody.js
    var require_DisplayBody = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Application/DisplayBody.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var NumericKeyboard_1 = __importDefault(require_NumericKeyboard());
            var ActiveApplet_1 = __importDefault(require_ActiveApplet());
            var StatusBar_1 = __importDefault(require_StatusBar());
            var DeviceVerification_1 = __importDefault(require_DeviceVerification());
            var react_redux_1 = require_lib3();
            var DisplayBody = /*#__PURE__*/ function(_React3_PureComponent) {
                _inherits(DisplayBody, _React3_PureComponent);
                var _super = _create_super(DisplayBody);
                function DisplayBody() {
                    _class_call_check(this, DisplayBody);
                    return _super.apply(this, arguments);
                }
                _create_class(DisplayBody, [
                    {
                        key: "render",
                        value: function render() {
                            return React3.createElement("div", null, React3.createElement(StatusBar_1["default"], null), React3.createElement(NumericKeyboard_1["default"], null), this.props.isBundledApplet || this.props.isCachedAppletReady || this.props.activeAppletLoaded ? React3.createElement(ActiveApplet_1["default"], null) : React3.createElement(DeviceVerification_1["default"], null));
                        }
                    }
                ]);
                return DisplayBody;
            }(React3.PureComponent);
            exports["default"] = (0, react_redux_1.connect)(function(state) {
                return {
                    activeAppletLoaded: state.applet.activeTimingChecksum !== null || state.applet.activeAppletMissing,
                    isCachedAppletReady: state.applet.isCachedAppletReady,
                    isBundledApplet: state.bundledApplet.bundledApplet !== null
                };
            })(DisplayBody);
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Web/Display/Main.js
    var require_Main = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Web/Display/Main.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var React3 = __importStar(require_react());
            var react_redux_1 = require_lib3();
            var DisplayBody_1 = __importDefault(require_DisplayBody());
            exports["default"] = function(props) {
                return React3.createElement(react_redux_1.Provider, {
                    store: props.store
                }, React3.createElement(DisplayBody_1["default"], null));
            };
        }
    });
    // node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js
    var createSymbol, CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE, SAGA_LOCATION;
    var init_redux_saga_symbols_esm = __esm({
        "node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            createSymbol = function createSymbol2(name) {
                return "@@redux-saga/" + name;
            };
            CANCEL = /* @__PURE__ */ createSymbol("CANCEL_PROMISE");
            CHANNEL_END_TYPE = /* @__PURE__ */ createSymbol("CHANNEL_END");
            IO = /* @__PURE__ */ createSymbol("IO");
            MATCH = /* @__PURE__ */ createSymbol("MATCH");
            MULTICAST = /* @__PURE__ */ createSymbol("MULTICAST");
            SAGA_ACTION = /* @__PURE__ */ createSymbol("SAGA_ACTION");
            SELF_CANCELLATION = /* @__PURE__ */ createSymbol("SELF_CANCELLATION");
            TASK = /* @__PURE__ */ createSymbol("TASK");
            TASK_CANCEL = /* @__PURE__ */ createSymbol("TASK_CANCEL");
            TERMINATE = /* @__PURE__ */ createSymbol("TERMINATE");
            SAGA_LOCATION = /* @__PURE__ */ createSymbol("LOCATION");
        }
    });
    // node_modules/@babel/runtime/helpers/esm/extends.js
    function _extends() {
        return _extends = Object.assign ? Object.assign.bind() : function _extends(n) {
            for(var e = 1; e < arguments.length; e++){
                var t = arguments[e];
                for(var r in t)({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
            }
            return n;
        }, _extends.apply(null, arguments);
    }
    var init_extends = __esm({
        "node_modules/@babel/runtime/helpers/esm/extends.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    var init_objectWithoutPropertiesLoose = __esm({
        "node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // node_modules/@redux-saga/is/dist/redux-saga-is.esm.js
    var undef, notUndef, func, string, array, promise, iterator, _pattern, channel, stringableFunc, symbol, multicast;
    var init_redux_saga_is_esm = __esm({
        "node_modules/@redux-saga/is/dist/redux-saga-is.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_redux_saga_symbols_esm();
            undef = function undef2(v) {
                return v === null || v === void 0;
            };
            notUndef = function notUndef2(v) {
                return v !== null && v !== void 0;
            };
            func = function func2(f) {
                return typeof f === "function";
            };
            string = function string2(s) {
                return typeof s === "string";
            };
            array = Array.isArray;
            promise = function promise2(p) {
                return p && func(p.then);
            };
            iterator = function iterator2(it) {
                return it && func(it.next) && func(it["throw"]);
            };
            _pattern = function pattern(pat) {
                return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(_pattern));
            };
            channel = function channel2(ch) {
                return ch && func(ch.take) && func(ch.close);
            };
            stringableFunc = function stringableFunc2(f) {
                return func(f) && f.hasOwnProperty("toString");
            };
            symbol = function symbol2(sym) {
                return Boolean(sym) && typeof Symbol === "function" && sym.constructor === Symbol && sym !== Symbol.prototype;
            };
            multicast = function multicast2(ch) {
                return channel(ch) && ch[MULTICAST];
            };
        }
    });
    var MAX_SIGNED_INT;
    var init_redux_saga_delay_p_esm = __esm({
        "node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_redux_saga_symbols_esm();
            MAX_SIGNED_INT = 2147483647;
        }
    });
    var konst, kTrue, noop, identity, assignWithSymbols, flatMap, kThrow, kReturn, createEmptyArray, wrapSagaDispatch, shouldTerminate, shouldCancel, shouldComplete, BUFFER_OVERFLOW, ON_OVERFLOW_THROW, ON_OVERFLOW_DROP, ON_OVERFLOW_SLIDE, ON_OVERFLOW_EXPAND, zeroBuffer, none, fixed, dropping, sliding, expanding, buffers, TAKE, PUT, ALL, RACE, CALL, CPS, FORK, JOIN, CANCEL2, SELECT, ACTION_CHANNEL, CANCELLED, FLUSH, GET_CONTEXT, SET_CONTEXT, effectTypes, makeEffect, detach, takeMaybe, putResolve, delay;
    var init_io_dec07f91_esm = __esm({
        "node_modules/@redux-saga/core/dist/io-dec07f91.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_extends();
            init_redux_saga_delay_p_esm();
            init_redux_saga_is_esm();
            init_redux_saga_symbols_esm();
            konst = function konst2(v) {
                return function() {
                    return v;
                };
            };
            kTrue = /* @__PURE__ */ konst(true);
            noop = function noop2() {};
            identity = function identity2(v) {
                return v;
            };
            assignWithSymbols = function assignWithSymbols2(target, source) {
                _extends(target, source);
                if (Object.getOwnPropertySymbols) {
                    Object.getOwnPropertySymbols(source).forEach(function(s) {
                        target[s] = source[s];
                    });
                }
            };
            flatMap = function flatMap2(mapper, arr) {
                var _ref;
                return (_ref = []).concat.apply(_ref, arr.map(mapper));
            };
            kThrow = function kThrow2(err) {
                throw err;
            };
            kReturn = function kReturn2(value) {
                return {
                    value: value,
                    done: true
                };
            };
            createEmptyArray = function createEmptyArray2(n) {
                return Array.apply(null, new Array(n));
            };
            wrapSagaDispatch = function wrapSagaDispatch2(dispatch) {
                return function(action) {
                    return dispatch(Object.defineProperty(action, SAGA_ACTION, {
                        value: true
                    }));
                };
            };
            shouldTerminate = function shouldTerminate2(res) {
                return res === TERMINATE;
            };
            shouldCancel = function shouldCancel2(res) {
                return res === TASK_CANCEL;
            };
            shouldComplete = function shouldComplete2(res) {
                return shouldTerminate(res) || shouldCancel(res);
            };
            BUFFER_OVERFLOW = "Channel's Buffer overflow!";
            ON_OVERFLOW_THROW = 1;
            ON_OVERFLOW_DROP = 2;
            ON_OVERFLOW_SLIDE = 3;
            ON_OVERFLOW_EXPAND = 4;
            zeroBuffer = {
                isEmpty: kTrue,
                put: noop,
                take: noop
            };
            none = function none2() {
                return zeroBuffer;
            };
            fixed = function fixed2(limit) {
                return ringBuffer(limit, ON_OVERFLOW_THROW);
            };
            dropping = function dropping2(limit) {
                return ringBuffer(limit, ON_OVERFLOW_DROP);
            };
            sliding = function sliding2(limit) {
                return ringBuffer(limit, ON_OVERFLOW_SLIDE);
            };
            expanding = function expanding2(initialSize) {
                return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);
            };
            buffers = /* @__PURE__ */ Object.freeze({
                __proto__: null,
                none: none,
                fixed: fixed,
                dropping: dropping,
                sliding: sliding,
                expanding: expanding
            });
            TAKE = "TAKE";
            PUT = "PUT";
            ALL = "ALL";
            RACE = "RACE";
            CALL = "CALL";
            CPS = "CPS";
            FORK = "FORK";
            JOIN = "JOIN";
            CANCEL2 = "CANCEL";
            SELECT = "SELECT";
            ACTION_CHANNEL = "ACTION_CHANNEL";
            CANCELLED = "CANCELLED";
            FLUSH = "FLUSH";
            GET_CONTEXT = "GET_CONTEXT";
            SET_CONTEXT = "SET_CONTEXT";
            effectTypes = /* @__PURE__ */ Object.freeze({
                __proto__: null,
                TAKE: TAKE,
                PUT: PUT,
                ALL: ALL,
                RACE: RACE,
                CALL: CALL,
                CPS: CPS,
                FORK: FORK,
                JOIN: JOIN,
                CANCEL: CANCEL2,
                SELECT: SELECT,
                ACTION_CHANNEL: ACTION_CHANNEL,
                CANCELLED: CANCELLED,
                FLUSH: FLUSH,
                GET_CONTEXT: GET_CONTEXT,
                SET_CONTEXT: SET_CONTEXT
            });
            makeEffect = function makeEffect2(type, payload) {
                var _ref;
                return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;
            };
            detach = function detach2(eff) {
                return makeEffect(FORK, _extends({}, eff.payload, {
                    detached: true
                }));
            };
            takeMaybe = function takeMaybe2() {
                var eff = take.apply(void 0, arguments);
                eff.payload.maybe = true;
                return eff;
            };
            putResolve = function putResolve2() {
                var eff = put.apply(void 0, arguments);
                eff.payload.resolve = true;
                return eff;
            };
            delay = /* @__PURE__ */ call.bind(null, delayP);
        }
    });
    var init_redux_saga_deferred_esm = __esm({
        "node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    var init_arrayLikeToArray = __esm({
        "node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // node_modules/@redux-saga/core/dist/redux-saga-core.esm.js
    var redux_saga_core_esm_exports = {};
    __export(redux_saga_core_esm_exports, {
        CANCEL: function() {
            return CANCEL;
        },
        END: function() {
            return END;
        },
        SAGA_LOCATION: function() {
            return SAGA_LOCATION;
        },
        buffers: function() {
            return buffers;
        },
        channel: function() {
            return channel3;
        },
        "default": function() {
            return sagaMiddlewareFactory;
        },
        detach: function() {
            return detach;
        },
        eventChannel: function() {
            return eventChannel;
        },
        isEnd: function() {
            return isEnd;
        },
        multicastChannel: function() {
            return multicastChannel;
        },
        runSaga: function() {
            return runSaga;
        },
        stdChannel: function() {
            return stdChannel;
        }
    });
    function proc(env, iterator3, parentContext, parentEffectId, meta, isRoot, cont) {
        var finalRunEffect = env.finalizeRunEffect(runEffect);
        next.cancel = noop;
        var mainTask = {
            meta: meta,
            cancel: cancelMain,
            status: RUNNING
        };
        var task = newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont);
        var executingContext = {
            task: task,
            digestEffect: digestEffect
        };
        function cancelMain() {
            if (mainTask.status === RUNNING) {
                mainTask.status = CANCELLED2;
                next(TASK_CANCEL);
            }
        }
        if (cont) {
            cont.cancel = task.cancel;
        }
        var digesting = false;
        var digestingSemaphore = 0;
        var syncResume;
        next();
        return task;
        function next(arg, isErr) {
            var shouldQueueSyncResume = digesting && (digestingSemaphore === semaphore || // `fork` enters a nested scheduler lock with `immediately`.
            digestingSemaphore > 0 && semaphore > digestingSemaphore);
            if (shouldQueueSyncResume) {
                if (shouldCancel(arg)) {
                    mainTask.status = CANCELLED2;
                    next.cancel();
                }
                syncResume = {
                    arg: arg,
                    isErr: isErr
                };
                return;
            }
            try {
                var shouldContinue;
                do {
                    shouldContinue = false;
                    var result17 = void 0;
                    if (isErr) {
                        result17 = iterator3["throw"](arg);
                        clear();
                    } else if (shouldCancel(arg)) {
                        mainTask.status = CANCELLED2;
                        next.cancel();
                        result17 = func(iterator3["return"]) ? iterator3["return"](TASK_CANCEL) : {
                            done: true,
                            value: TASK_CANCEL
                        };
                    } else if (shouldTerminate(arg)) {
                        result17 = func(iterator3["return"]) ? iterator3["return"]() : {
                            done: true
                        };
                    } else {
                        result17 = iterator3.next(arg);
                    }
                    if (!result17.done) {
                        syncResume = null;
                        var previousDigesting = digesting;
                        var previousDigestingSemaphore = digestingSemaphore;
                        try {
                            digesting = true;
                            digestingSemaphore = semaphore;
                            digestEffect(result17.value, parentEffectId, next);
                        } finally{
                            digesting = previousDigesting;
                            digestingSemaphore = previousDigestingSemaphore;
                        }
                        if (!syncResume) {
                            return;
                        }
                        arg = syncResume.arg;
                        isErr = syncResume.isErr;
                        syncResume = null;
                        shouldContinue = true;
                    } else {
                        if (mainTask.status !== CANCELLED2) {
                            mainTask.status = DONE;
                        }
                        mainTask.cont(result17.value);
                        return;
                    }
                }while (shouldContinue);
            } catch (error) {
                if (mainTask.status === CANCELLED2) {
                    throw error;
                }
                mainTask.status = ABORTED;
                mainTask.cont(error, true);
            }
        }
        function runEffect(effect, effectId, currCb) {
            if (promise(effect)) {
                resolvePromise(effect, currCb);
            } else if (iterator(effect)) {
                proc(env, effect, task.context, effectId, meta, /* isRoot */ false, currCb);
            } else if (effect && effect[IO]) {
                var effectRunner = effectRunnerMap[effect.type];
                effectRunner(env, effect.payload, currCb, executingContext);
            } else {
                currCb(effect);
            }
        }
        function digestEffect(effect, parentEffectId2, cb, label) {
            if (label === void 0) {
                label = "";
            }
            var effectId = nextSagaId();
            env.sagaMonitor && env.sagaMonitor.effectTriggered({
                effectId: effectId,
                parentEffectId: parentEffectId2,
                label: label,
                effect: effect
            });
            var effectSettled;
            function currCb(res, isErr) {
                if (effectSettled) {
                    return;
                }
                effectSettled = true;
                cb.cancel = noop;
                if (env.sagaMonitor) {
                    if (isErr) {
                        env.sagaMonitor.effectRejected(effectId, res);
                    } else {
                        env.sagaMonitor.effectResolved(effectId, res);
                    }
                }
                if (isErr) {
                    setCrashedEffect(effect);
                }
                cb(res, isErr);
            }
            currCb.cancel = noop;
            cb.cancel = function() {
                if (effectSettled) {
                    return;
                }
                effectSettled = true;
                currCb.cancel();
                currCb.cancel = noop;
                env.sagaMonitor && env.sagaMonitor.effectCancelled(effectId);
            };
            finalRunEffect(effect, effectId, currCb);
        }
    }
    var queue, semaphore, array2, predicate, string3, symbol3, wildcard, END, isEnd, RUNNING, CANCELLED2, ABORTED, DONE, current, nextSagaId, _effectRunnerMap, effectRunnerMap, crashedEffect, sagaStack, addSagaFrame, clear, setCrashedEffect, toString, _excluded;
    var init_redux_saga_core_esm = __esm({
        "node_modules/@redux-saga/core/dist/redux-saga-core.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_redux_saga_symbols_esm();
            init_redux_saga_symbols_esm();
            init_extends();
            init_objectWithoutPropertiesLoose();
            init_redux_saga_is_esm();
            init_io_dec07f91_esm();
            init_io_dec07f91_esm();
            init_redux_saga_deferred_esm();
            init_arrayLikeToArray();
            init_redux_saga_delay_p_esm();
            queue = [];
            semaphore = 0;
            array2 = function array3(patterns) {
                return function(input) {
                    return patterns.some(function(p) {
                        return matcher(p)(input);
                    });
                };
            };
            predicate = function predicate2(_predicate) {
                return function(input) {
                    return _predicate(input);
                };
            };
            string3 = function string4(pattern2) {
                return function(input) {
                    return input.type === String(pattern2);
                };
            };
            symbol3 = function symbol4(pattern2) {
                return function(input) {
                    return input.type === pattern2;
                };
            };
            wildcard = function wildcard2() {
                return kTrue;
            };
            END = {
                type: CHANNEL_END_TYPE
            };
            isEnd = function isEnd2(a) {
                return a && a.type === CHANNEL_END_TYPE;
            };
            RUNNING = 0;
            CANCELLED2 = 1;
            ABORTED = 2;
            DONE = 3;
            current = 0;
            nextSagaId = function nextSagaId() {
                return ++current;
            };
            effectRunnerMap = (_effectRunnerMap = {}, _effectRunnerMap[TAKE] = runTakeEffect, _effectRunnerMap[PUT] = runPutEffect, _effectRunnerMap[ALL] = runAllEffect, _effectRunnerMap[RACE] = runRaceEffect, _effectRunnerMap[CALL] = runCallEffect, _effectRunnerMap[CPS] = runCPSEffect, _effectRunnerMap[FORK] = runForkEffect, _effectRunnerMap[JOIN] = runJoinEffect, _effectRunnerMap[CANCEL2] = runCancelEffect, _effectRunnerMap[SELECT] = runSelectEffect, _effectRunnerMap[ACTION_CHANNEL] = runChannelEffect, _effectRunnerMap[CANCELLED] = runCancelledEffect, _effectRunnerMap[FLUSH] = runFlushEffect, _effectRunnerMap[GET_CONTEXT] = runGetContextEffect, _effectRunnerMap[SET_CONTEXT] = runSetContextEffect, _effectRunnerMap);
            crashedEffect = null;
            sagaStack = [];
            addSagaFrame = function addSagaFrame2(frame) {
                frame.crashedEffect = crashedEffect;
                sagaStack.push(frame);
            };
            clear = function clear2() {
                crashedEffect = null;
                sagaStack.length = 0;
            };
            setCrashedEffect = function setCrashedEffect2(effect) {
                crashedEffect = effect;
            };
            toString = function toString2() {
                var firstSaga = sagaStack[0], otherSagas = _arrayLikeToArray(sagaStack).slice(1);
                var crashedEffectLocation = firstSaga.crashedEffect ? effectLocationAsString(firstSaga.crashedEffect) : null;
                var errorMessage = "The above error occurred in task " + sagaLocationAsString(firstSaga.meta) + (crashedEffectLocation ? " \n when executing effect " + crashedEffectLocation : "");
                return [
                    errorMessage
                ].concat(otherSagas.map(function(s) {
                    return "    created by " + sagaLocationAsString(s.meta);
                }), [
                    cancelledTasksAsString(sagaStack)
                ]).join("\n");
            };
            _excluded = [
                "context",
                "channel",
                "sagaMonitor"
            ];
        }
    });
    // node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js
    var require_redux_saga_core_npm_proxy_cjs = __commonJS({
        "node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            function _interopDefault(ex) {
                return ex && (typeof ex === "undefined" ? "undefined" : _type_of(ex)) === "object" && "default" in ex ? ex["default"] : ex;
            }
            var createSagaMiddleware = (init_redux_saga_core_esm(), __toCommonJS(redux_saga_core_esm_exports));
            var createSagaMiddleware__default = _interopDefault(createSagaMiddleware);
            Object.keys(createSagaMiddleware).forEach(function(k) {
                if (k !== "default") Object.defineProperty(exports, k, {
                    enumerable: true,
                    get: function get() {
                        return createSagaMiddleware[k];
                    }
                });
            });
            exports["default"] = createSagaMiddleware__default;
        }
    });
    // node_modules/@signageos/front-display/es6/Application/applicationActions.js
    var require_applicationActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Application/applicationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.StopApplication = void 0;
            exports.StopApplication = "Web.Application.Exit";
        }
    });
    // node_modules/events/events.js
    var require_events = __commonJS({
        "node_modules/events/events.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var R = (typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" ? Reflect : null;
            var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {
                return Function.prototype.apply.call(target, receiver, args);
            };
            var ReflectOwnKeys;
            if (R && typeof R.ownKeys === "function") {
                ReflectOwnKeys = R.ownKeys;
            } else if (Object.getOwnPropertySymbols) {
                ReflectOwnKeys = function ReflectOwnKeys2(target) {
                    return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
                };
            } else {
                ReflectOwnKeys = function ReflectOwnKeys2(target) {
                    return Object.getOwnPropertyNames(target);
                };
            }
            function ProcessEmitWarning(warning) {
                if (console && console.warn) console.warn(warning);
            }
            var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {
                return value !== value;
            };
            function EventEmitter5() {
                EventEmitter5.init.call(this);
            }
            module.exports = EventEmitter5;
            module.exports.once = once2;
            EventEmitter5.EventEmitter = EventEmitter5;
            EventEmitter5.prototype._events = void 0;
            EventEmitter5.prototype._eventsCount = 0;
            EventEmitter5.prototype._maxListeners = void 0;
            var defaultMaxListeners = 10;
            function checkListener(listener) {
                if (typeof listener !== "function") {
                    throw new TypeError('The "listener" argument must be of type Function. Received type ' + (typeof listener === "undefined" ? "undefined" : _type_of(listener)));
                }
            }
            Object.defineProperty(EventEmitter5, "defaultMaxListeners", {
                enumerable: true,
                get: function get() {
                    return defaultMaxListeners;
                },
                set: function set(arg) {
                    if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {
                        throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + ".");
                    }
                    defaultMaxListeners = arg;
                }
            });
            EventEmitter5.init = function() {
                if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {
                    this._events = /* @__PURE__ */ Object.create(null);
                    this._eventsCount = 0;
                }
                this._maxListeners = this._maxListeners || void 0;
            };
            EventEmitter5.prototype.setMaxListeners = function setMaxListeners(n) {
                if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {
                    throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + ".");
                }
                this._maxListeners = n;
                return this;
            };
            function _getMaxListeners(that) {
                if (that._maxListeners === void 0) return EventEmitter5.defaultMaxListeners;
                return that._maxListeners;
            }
            EventEmitter5.prototype.getMaxListeners = function getMaxListeners() {
                return _getMaxListeners(this);
            };
            EventEmitter5.prototype.emit = function emit(type) {
                var args = [];
                for(var i = 1; i < arguments.length; i++)args.push(arguments[i]);
                var doError = type === "error";
                var events = this._events;
                if (events !== void 0) doError = doError && events.error === void 0;
                else if (!doError) return false;
                if (doError) {
                    var er;
                    if (args.length > 0) er = args[0];
                    if (er instanceof Error) {
                        throw er;
                    }
                    var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));
                    err.context = er;
                    throw err;
                }
                var handler = events[type];
                if (handler === void 0) return false;
                if (typeof handler === "function") {
                    ReflectApply(handler, this, args);
                } else {
                    var len = handler.length;
                    var listeners = arrayClone(handler, len);
                    for(var i = 0; i < len; ++i)ReflectApply(listeners[i], this, args);
                }
                return true;
            };
            function _addListener(target, type, listener, prepend) {
                var m;
                var events;
                var existing;
                checkListener(listener);
                events = target._events;
                if (events === void 0) {
                    events = target._events = /* @__PURE__ */ Object.create(null);
                    target._eventsCount = 0;
                } else {
                    if (events.newListener !== void 0) {
                        target.emit("newListener", type, listener.listener ? listener.listener : listener);
                        events = target._events;
                    }
                    existing = events[type];
                }
                if (existing === void 0) {
                    existing = events[type] = listener;
                    ++target._eventsCount;
                } else {
                    if (typeof existing === "function") {
                        existing = events[type] = prepend ? [
                            listener,
                            existing
                        ] : [
                            existing,
                            listener
                        ];
                    } else if (prepend) {
                        existing.unshift(listener);
                    } else {
                        existing.push(listener);
                    }
                    m = _getMaxListeners(target);
                    if (m > 0 && existing.length > m && !existing.warned) {
                        existing.warned = true;
                        var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");
                        w.name = "MaxListenersExceededWarning";
                        w.emitter = target;
                        w.type = type;
                        w.count = existing.length;
                        ProcessEmitWarning(w);
                    }
                }
                return target;
            }
            EventEmitter5.prototype.addListener = function addListener(type, listener) {
                return _addListener(this, type, listener, false);
            };
            EventEmitter5.prototype.on = EventEmitter5.prototype.addListener;
            EventEmitter5.prototype.prependListener = function prependListener(type, listener) {
                return _addListener(this, type, listener, true);
            };
            function onceWrapper() {
                if (!this.fired) {
                    this.target.removeListener(this.type, this.wrapFn);
                    this.fired = true;
                    if (arguments.length === 0) return this.listener.call(this.target);
                    return this.listener.apply(this.target, arguments);
                }
            }
            function _onceWrap(target, type, listener) {
                var state = {
                    fired: false,
                    wrapFn: void 0,
                    target: target,
                    type: type,
                    listener: listener
                };
                var wrapped = onceWrapper.bind(state);
                wrapped.listener = listener;
                state.wrapFn = wrapped;
                return wrapped;
            }
            EventEmitter5.prototype.once = function once3(type, listener) {
                checkListener(listener);
                this.on(type, _onceWrap(this, type, listener));
                return this;
            };
            EventEmitter5.prototype.prependOnceListener = function prependOnceListener(type, listener) {
                checkListener(listener);
                this.prependListener(type, _onceWrap(this, type, listener));
                return this;
            };
            EventEmitter5.prototype.removeListener = function removeListener(type, listener) {
                var list, events, position, i, originalListener;
                checkListener(listener);
                events = this._events;
                if (events === void 0) return this;
                list = events[type];
                if (list === void 0) return this;
                if (list === listener || list.listener === listener) {
                    if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null);
                    else {
                        delete events[type];
                        if (events.removeListener) this.emit("removeListener", type, list.listener || listener);
                    }
                } else if (typeof list !== "function") {
                    position = -1;
                    for(i = list.length - 1; i >= 0; i--){
                        if (list[i] === listener || list[i].listener === listener) {
                            originalListener = list[i].listener;
                            position = i;
                            break;
                        }
                    }
                    if (position < 0) return this;
                    if (position === 0) list.shift();
                    else {
                        spliceOne(list, position);
                    }
                    if (list.length === 1) events[type] = list[0];
                    if (events.removeListener !== void 0) this.emit("removeListener", type, originalListener || listener);
                }
                return this;
            };
            EventEmitter5.prototype.off = EventEmitter5.prototype.removeListener;
            EventEmitter5.prototype.removeAllListeners = function removeAllListeners(type) {
                var listeners, events, i;
                events = this._events;
                if (events === void 0) return this;
                if (events.removeListener === void 0) {
                    if (arguments.length === 0) {
                        this._events = /* @__PURE__ */ Object.create(null);
                        this._eventsCount = 0;
                    } else if (events[type] !== void 0) {
                        if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null);
                        else delete events[type];
                    }
                    return this;
                }
                if (arguments.length === 0) {
                    var keys = Object.keys(events);
                    var key;
                    for(i = 0; i < keys.length; ++i){
                        key = keys[i];
                        if (key === "removeListener") continue;
                        this.removeAllListeners(key);
                    }
                    this.removeAllListeners("removeListener");
                    this._events = /* @__PURE__ */ Object.create(null);
                    this._eventsCount = 0;
                    return this;
                }
                listeners = events[type];
                if (typeof listeners === "function") {
                    this.removeListener(type, listeners);
                } else if (listeners !== void 0) {
                    for(i = listeners.length - 1; i >= 0; i--){
                        this.removeListener(type, listeners[i]);
                    }
                }
                return this;
            };
            function _listeners(target, type, unwrap3) {
                var events = target._events;
                if (events === void 0) return [];
                var evlistener = events[type];
                if (evlistener === void 0) return [];
                if (typeof evlistener === "function") return unwrap3 ? [
                    evlistener.listener || evlistener
                ] : [
                    evlistener
                ];
                return unwrap3 ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
            }
            EventEmitter5.prototype.listeners = function listeners(type) {
                return _listeners(this, type, true);
            };
            EventEmitter5.prototype.rawListeners = function rawListeners(type) {
                return _listeners(this, type, false);
            };
            EventEmitter5.listenerCount = function(emitter, type) {
                if (typeof emitter.listenerCount === "function") {
                    return emitter.listenerCount(type);
                } else {
                    return listenerCount.call(emitter, type);
                }
            };
            EventEmitter5.prototype.listenerCount = listenerCount;
            function listenerCount(type) {
                var events = this._events;
                if (events !== void 0) {
                    var evlistener = events[type];
                    if (typeof evlistener === "function") {
                        return 1;
                    } else if (evlistener !== void 0) {
                        return evlistener.length;
                    }
                }
                return 0;
            }
            EventEmitter5.prototype.eventNames = function eventNames() {
                return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
            };
            function arrayClone(arr, n) {
                var copy = new Array(n);
                for(var i = 0; i < n; ++i)copy[i] = arr[i];
                return copy;
            }
            function spliceOne(list, index) {
                for(; index + 1 < list.length; index++)list[index] = list[index + 1];
                list.pop();
            }
            function unwrapListeners(arr) {
                var ret = new Array(arr.length);
                for(var i = 0; i < ret.length; ++i){
                    ret[i] = arr[i].listener || arr[i];
                }
                return ret;
            }
            function once2(emitter, name) {
                return new Promise(function(resolve, reject) {
                    function errorListener(err) {
                        emitter.removeListener(name, resolver);
                        reject(err);
                    }
                    function resolver() {
                        if (typeof emitter.removeListener === "function") {
                            emitter.removeListener("error", errorListener);
                        }
                        resolve([].slice.call(arguments));
                    }
                    ;
                    eventTargetAgnosticAddListener(emitter, name, resolver, {
                        once: true
                    });
                    if (name !== "error") {
                        addErrorHandlerIfEventEmitter(emitter, errorListener, {
                            once: true
                        });
                    }
                });
            }
            function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
                if (typeof emitter.on === "function") {
                    eventTargetAgnosticAddListener(emitter, "error", handler, flags);
                }
            }
            function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
                if (typeof emitter.on === "function") {
                    if (flags.once) {
                        emitter.once(name, listener);
                    } else {
                        emitter.on(name, listener);
                    }
                } else if (typeof emitter.addEventListener === "function") {
                    emitter.addEventListener(name, function wrapListener(arg) {
                        if (flags.once) {
                            emitter.removeEventListener(name, wrapListener);
                        }
                        listener(arg);
                    });
                } else {
                    throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + (typeof emitter === "undefined" ? "undefined" : _type_of(emitter)));
                }
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Object/property.js
    var require_property = __commonJS({
        "node_modules/@signageos/front-display/es6/Object/property.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.defineInvisibleProperty = void 0;
            function defineInvisibleProperty(obj, propertyName, value) {
                Object.defineProperty(obj, propertyName, {
                    enumerable: false,
                    configurable: false,
                    writable: false,
                    value: value
                });
            }
            exports.defineInvisibleProperty = defineInvisibleProperty;
        }
    });
    // node_modules/@signageos/front-display/es6/Application/applicationMiddlewares.js
    var require_applicationMiddlewares = __commonJS({
        "node_modules/@signageos/front-display/es6/Application/applicationMiddlewares.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createActionForwardMiddleware = exports.actionEmitterMiddleware = void 0;
            var property_1 = require_property();
            var events_1 = require_events();
            var actionEmitterMiddleware = function(_store) {
                return function(next) {
                    return function(action) {
                        (0, property_1.defineInvisibleProperty)(action, "__emitter", new events_1.EventEmitter());
                        return next(action);
                    };
                };
            };
            exports.actionEmitterMiddleware = actionEmitterMiddleware;
            var createActionForwardMiddleware = function(emitter) {
                return function(_store) {
                    return function(next) {
                        return function(action) {
                            emitter.emit(action.type, action);
                            return next(action);
                        };
                    };
                };
            };
            exports.createActionForwardMiddleware = createActionForwardMiddleware;
        }
    });
    // node_modules/@signageos/front-display/es6/Application/applicationFactory.js
    var require_applicationFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/Application/applicationFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createApplication = void 0;
            var redux_1 = require_lib2();
            var redux_saga_1 = __importDefault(require_redux_saga_core_npm_proxy_cjs());
            var applicationActions_1 = require_applicationActions();
            var events_1 = require_events();
            var applicationMiddlewares_1 = require_applicationMiddlewares();
            function initializeRedux(reducer, getSaga) {
                var onError = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : function(error) {
                    return console.error(error);
                }, storeEmitter = arguments.length > 3 ? arguments[3] : void 0;
                var _a2;
                var sagaMiddleware = (0, redux_saga_1["default"])({
                    onError: onError
                });
                var store = (0, redux_1.createStore)(reducer, (0, redux_1.applyMiddleware)(applicationMiddlewares_1.actionEmitterMiddleware, sagaMiddleware, (0, applicationMiddlewares_1.createActionForwardMiddleware)(storeEmitter)));
                var task = null;
                if (globalThis.__POSTPONE_SAGA_EXECUTION) {
                    (_a2 = globalThis.__runSagas) !== null && _a2 !== void 0 ? _a2 : globalThis.__runSagas = [];
                    globalThis.__runSagas.push(function() {
                        task = sagaMiddleware.run(function() {
                            return getSaga(store);
                        });
                    });
                } else {
                    task = sagaMiddleware.run(function() {
                        return getSaga(store);
                    });
                }
                return {
                    store: store,
                    stopSaga: function() {
                        if (task) {
                            task.cancel();
                            task = null;
                        }
                    }
                };
            }
            function createApplication(reducer, getSaga, getNativeDriver, onError) {
                return __awaiter(this, void 0, void 0, function() {
                    var storeEmitter, nativeDriver, _initializeRedux, store, stopSaga;
                    return _ts_generator(this, function(_state) {
                        storeEmitter = new events_1.EventEmitter();
                        nativeDriver = getNativeDriver();
                        _initializeRedux = initializeRedux(reducer, getSaga, onError, storeEmitter), store = _initializeRedux.store, stopSaga = _initializeRedux.stopSaga;
                        nativeDriver.start();
                        return [
                            2,
                            {
                                store: store,
                                storeEmitter: storeEmitter,
                                stop: function() {
                                    store.dispatch({
                                        type: applicationActions_1.StopApplication
                                    });
                                    nativeDriver.stop();
                                    stopSaga();
                                    console.warn("Application stopped and sagas cancelled. You should never see this message in production. The only way to trigger this should be a manual action by a developer. It's intended for debugging purposes.");
                                }
                            }
                        ];
                    });
                });
            }
            exports.createApplication = createApplication;
        }
    });
    // node_modules/@signageos/actions/dist/Socket/socketActions.js
    var require_socketActions = __commonJS({
        "node_modules/@signageos/actions/dist/Socket/socketActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceServerDisconnected = exports.DeviceServerConnected = exports.PlatformConnect = exports.SocketDisconnected = exports.SocketConnected = void 0;
            exports.SocketConnected = "Web.Socket.Connected";
            exports.SocketDisconnected = "Web.Socket.Disconnected";
            exports.PlatformConnect = "Web.Socket.PlatformConnect";
            exports.DeviceServerConnected = "Socket.DeviceServerConnected";
            exports.DeviceServerDisconnected = "Socket.DeviceServerDisconnected";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Socket/socketReducers.js
    var require_socketReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Socket/socketReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.socket = void 0;
            var socketActions_1 = require_socketActions();
            var initialState = {
                connected: false,
                wasDisconnected: false
            };
            function socket() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case socketActions_1.SocketDisconnected:
                        return Object.assign(Object.assign({}, state), {
                            connected: false,
                            wasDisconnected: true
                        });
                    case socketActions_1.SocketConnected:
                        return Object.assign(Object.assign({}, state), {
                            connected: true,
                            wasDisconnected: false
                        });
                    default:
                        return state;
                }
            }
            exports.socket = socket;
        }
    });
    // node_modules/@signageos/actions/dist/Device/deviceActions.js
    var require_deviceActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/deviceActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateDeviceInfo = exports.UpdateDeviceModel = exports.UpdateDeviceName = exports.DeviceRegistrationFailed = exports.DeviceRegistrationSucceeded = exports.RegisterDevice = void 0;
            exports.RegisterDevice = "Device.RegisterDevice";
            exports.DeviceRegistrationSucceeded = "Device.DeviceRegistrationSucceed";
            exports.DeviceRegistrationFailed = "Device.DeviceRegistrationFailed";
            exports.UpdateDeviceName = "Device.UpdateDevice";
            exports.UpdateDeviceModel = "Device.UpdateDeviceModel";
            exports.UpdateDeviceInfo = "Device.UpdateDeviceInfo";
        }
    });
    // node_modules/@signageos/front-display/es6/Device/deviceActions.js
    var require_deviceActions2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/deviceActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateSerialNumberSupport = void 0;
            exports.UpdateSerialNumberSupport = "Device.UpdateSerialNumberSupport";
        }
    });
    // node_modules/@signageos/actions/dist/Location/locationActions.js
    var require_locationActions = __commonJS({
        "node_modules/@signageos/actions/dist/Location/locationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateLocation = exports.GetLocation = void 0;
            exports.GetLocation = "Location.GetLocation";
            exports.UpdateLocation = "Location.UpdateLocation";
        }
    });
    // node_modules/@signageos/actions/dist/Organization/Tag/organizationTagActions.js
    var require_organizationTagActions = __commonJS({
        "node_modules/@signageos/actions/dist/Organization/Tag/organizationTagActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateOrganizationTags = exports.GetOrganizationTags = void 0;
            exports.GetOrganizationTags = "Organization.Tag.GetOrganizationTags";
            exports.UpdateOrganizationTags = "Organization.Tag.UpdateOrganizationTags";
        }
    });
    // node_modules/@signageos/actions/dist/Device/DateTime/deviceDateTimeActions.js
    var require_deviceDateTimeActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/DateTime/deviceDateTimeActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyCurrentTime = exports.UpdateDeviceTimeSettingsFailed = exports.UpdateDeviceTimeSettingsSucceed = exports.UpdateDeviceTimeSettings = void 0;
            exports.UpdateDeviceTimeSettings = "Device.DateTime.UpdateDeviceTimeSettings";
            exports.UpdateDeviceTimeSettingsSucceed = "Device.DateTime.UpdateDeviceTimeSettingsSucceed";
            exports.UpdateDeviceTimeSettingsFailed = "Device.DateTime.UpdateDeviceTimeSettingsFailed";
            exports.NotifyCurrentTime = "Device.DateTime.NotifyCurrentTime";
        }
    });
    // node_modules/@signageos/actions/dist/Device/FrontDisplay/deviceFrontDisplayActions.js
    var require_deviceFrontDisplayActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/FrontDisplay/deviceFrontDisplayActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyDeviceFrontDisplayVersion = void 0;
            exports.NotifyDeviceFrontDisplayVersion = "Device.FrontDisplay.NotifyDeviceFrontDisplayVersion";
        }
    });
    // node_modules/@signageos/actions/dist/Device/Application/deviceApplicationActions.js
    var require_deviceApplicationActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Application/deviceApplicationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyDeviceApplicationVersion = exports.SetDeviceApplicationVersionFailed = exports.SetDeviceApplicationVersionSucceeded = exports.SetDeviceApplicationVersion = void 0;
            exports.SetDeviceApplicationVersion = "Device.Application.SyncApplication";
            exports.SetDeviceApplicationVersionSucceeded = "Device.Application.SyncApplicationSucceed";
            exports.SetDeviceApplicationVersionFailed = "Device.Application.SyncApplicationFailed";
            exports.NotifyDeviceApplicationVersion = "Device.NotifyDeviceApplicationVersion";
        }
    });
    // node_modules/@signageos/actions/dist/Device/Input/deviceInputActions.js
    var require_deviceInputActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Input/deviceInputActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DevicePinChanged = void 0;
            exports.DevicePinChanged = "Input.SetupControlPin";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Network/networkActions.js
    var require_networkActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Network/networkActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NetworkStatusChanged = void 0;
            exports.NetworkStatusChanged = "Network.StatusChanged";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/deviceActions.js
    var require_deviceActions3 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/deviceActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateDisplayFirmwareVersion = void 0;
            exports.UpdateDisplayFirmwareVersion = "Device.UpdateDisplayFirmwareVersion";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/deviceReducers.js
    var require_deviceReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/deviceReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.device = void 0;
            var deviceActions_1 = require_deviceActions();
            var deviceActions_2 = require_deviceActions2();
            var locationActions_1 = require_locationActions();
            var organizationTagActions_1 = require_organizationTagActions();
            var deviceDateTimeActions_1 = require_deviceDateTimeActions();
            var deviceFrontDisplayActions_1 = require_deviceFrontDisplayActions();
            var deviceApplicationActions_1 = require_deviceApplicationActions();
            var deviceInputActions_1 = require_deviceInputActions();
            var networkActions_1 = require_networkActions();
            var deviceActions_3 = require_deviceActions3();
            var initialState = {
                failReason: null,
                applicationType: null,
                osVersion: null,
                model: null,
                deviceName: null,
                debugOn: false,
                ethernetMacAddress: null,
                wifiMacAddress: null,
                isSerialNumberSupported: false,
                serialNumber: null,
                pinCode: null,
                frontDisplayVersion: null,
                applicationVersion: null,
                timezone: null,
                timestamp: null,
                ipAddress: null,
                interfaceName: null,
                activeInterface: null,
                location: null,
                organizationTags: [],
                firmwareVersion: null
            };
            function device() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case deviceActions_1.DeviceRegistrationFailed:
                        return Object.assign(Object.assign({}, state), {
                            failReason: action.reason
                        });
                    case deviceActions_1.UpdateDeviceInfo:
                        return Object.assign(Object.assign({}, state), action);
                    case deviceActions_2.UpdateSerialNumberSupport:
                        return Object.assign(Object.assign({}, state), {
                            isSerialNumberSupported: action.supported
                        });
                    case deviceInputActions_1.DevicePinChanged:
                        return Object.assign(Object.assign({}, state), {
                            pinCode: action.pin
                        });
                    case deviceActions_1.UpdateDeviceName:
                        return Object.assign(Object.assign({}, state), {
                            deviceName: action.deviceName
                        });
                    case deviceDateTimeActions_1.NotifyCurrentTime:
                        return Object.assign(Object.assign({}, state), {
                            timezone: action.timezone,
                            timestamp: action.timestamp
                        });
                    case deviceFrontDisplayActions_1.NotifyDeviceFrontDisplayVersion:
                        return Object.assign(Object.assign({}, state), {
                            frontDisplayVersion: action.version
                        });
                    case deviceApplicationActions_1.NotifyDeviceApplicationVersion:
                        return Object.assign(Object.assign({}, state), {
                            applicationVersion: action.applicationVersion
                        });
                    case locationActions_1.UpdateLocation:
                        return Object.assign(Object.assign({}, state), {
                            location: action.location
                        });
                    case organizationTagActions_1.UpdateOrganizationTags:
                        return Object.assign(Object.assign({}, state), {
                            organizationTags: action.tags
                        });
                    case deviceActions_3.UpdateDisplayFirmwareVersion:
                        return Object.assign(Object.assign({}, state), {
                            firmwareVersion: action.version
                        });
                    case networkActions_1.NetworkStatusChanged:
                        var activeInterface = action.data.find(function(network) {
                            return network.localAddress !== void 0;
                        });
                        if (!activeInterface) {
                            return Object.assign(Object.assign({}, state), {
                                activeInterface: null,
                                ipAddress: null,
                                interfaceName: null
                            });
                        }
                        switch(activeInterface.type){
                            case "ethernet":
                                return Object.assign(Object.assign({}, state), {
                                    activeInterface: activeInterface.name || null,
                                    ipAddress: activeInterface.localAddress || null,
                                    ethernetMacAddress: activeInterface.macAddress || null
                                });
                            case "wifi":
                                return Object.assign(Object.assign({}, state), {
                                    activeInterface: activeInterface.name || null,
                                    ipAddress: activeInterface.localAddress || null,
                                    wifiMacAddress: activeInterface.macAddress || null
                                });
                            case "vpn":
                                return Object.assign(Object.assign({}, state), {
                                    activeInterface: activeInterface.name || null,
                                    ipAddress: activeInterface.localAddress || null
                                });
                            default:
                                return state;
                        }
                    default:
                        return state;
                }
            }
            exports.device = device;
        }
    });
    // node_modules/@signageos/actions/dist/Organization/organizationActions.js
    var require_organizationActions = __commonJS({
        "node_modules/@signageos/actions/dist/Organization/organizationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateOrganization = void 0;
            exports.UpdateOrganization = "Organization.UpdateOrganization";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Organization/organizationReducers.js
    var require_organizationReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Organization/organizationReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.organization = void 0;
            var organizationActions_1 = require_organizationActions();
            var initialState = {
                organizationTitle: null
            };
            function organization() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case organizationActions_1.UpdateOrganization:
                        return Object.assign(Object.assign({}, state), {
                            organizationTitle: action.title
                        });
                    default:
                        return state;
                }
            }
            exports.organization = organization;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Authentication/deviceAuthenticationActions.js
    var require_deviceAuthenticationActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Authentication/deviceAuthenticationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateAuthentication = void 0;
            exports.UpdateAuthentication = "Device.DeviceAuthentication.UpdateDeviceAuthHash";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/deviceAuthenticationReducers.js
    var require_deviceAuthenticationReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/deviceAuthenticationReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceAuthentication = void 0;
            var deviceAuthenticationActions_1 = require_deviceAuthenticationActions();
            var initialState = {
                authHash: null
            };
            function deviceAuthentication() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case deviceAuthenticationActions_1.UpdateAuthentication:
                        return Object.assign(Object.assign({}, state), {
                            authHash: action.authHash
                        });
                    default:
                        return state;
                }
            }
            exports.deviceAuthentication = deviceAuthentication;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Verification/deviceVerificationActions.js
    var require_deviceVerificationActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Verification/deviceVerificationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.VerificationSucceeded = exports.VerificationHashCreated = exports.CheckVerification = void 0;
            exports.CheckVerification = "Device.Verification.CheckVerification";
            exports.VerificationHashCreated = "Device.Verification.VerificationHashCreated";
            exports.VerificationSucceeded = "Device.Verification.VerificationSucceed";
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Verification/deviceVerificationReducers.js
    var require_deviceVerificationReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Verification/deviceVerificationReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceVerification = void 0;
            var deviceVerificationActions_1 = require_deviceVerificationActions();
            var initialState = {
                verificationHash: null,
                verified: null
            };
            function deviceVerification() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case deviceVerificationActions_1.VerificationHashCreated:
                        return Object.assign(Object.assign({}, state), {
                            verificationHash: action.verificationHash,
                            verified: false
                        });
                    case deviceVerificationActions_1.VerificationSucceeded:
                        return Object.assign(Object.assign({}, state), {
                            verified: true,
                            processDoneOnce: true
                        });
                    default:
                        return state;
                }
            }
            exports.deviceVerification = deviceVerification;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/RemoteControl/deviceRemoteControlActions.js
    var require_deviceRemoteControlActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/RemoteControl/deviceRemoteControlActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceRemoteControlSet = void 0;
            exports.DeviceRemoteControlSet = "Device.RemoteControl.Set";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/RemoteControl/deviceRemoteControlReducers.js
    var require_deviceRemoteControlReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/RemoteControl/deviceRemoteControlReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceRemoteControl = void 0;
            var deviceRemoteControlActions_1 = require_deviceRemoteControlActions();
            var initialState = {
                locked: true
            };
            function deviceRemoteControl() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case deviceRemoteControlActions_1.DeviceRemoteControlSet:
                        return {
                            locked: !action.enabled
                        };
                    default:
                        return state;
                }
            }
            exports.deviceRemoteControl = deviceRemoteControl;
        }
    });
    // node_modules/@signageos/actions/dist/Network/networkActions.js
    var require_networkActions2 = __commonJS({
        "node_modules/@signageos/actions/dist/Network/networkActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.Disconnected = exports.Connected = void 0;
            exports.Connected = "Web.Network.Connected";
            exports.Disconnected = "Web.Network.Disconnected";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Network/networkReducers.js
    var require_networkReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Network/networkReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.network = void 0;
            var networkActions_1 = require_networkActions2();
            var initialState = {
                connected: false
            };
            function network() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case networkActions_1.Connected:
                        return Object.assign(Object.assign({}, state), {
                            connected: true
                        });
                    case networkActions_1.Disconnected:
                        return Object.assign(Object.assign({}, state), {
                            connected: false
                        });
                    default:
                        return state;
                }
            }
            exports.network = network;
        }
    });
    // node_modules/@signageos/actions/dist/Input/keyboardActions.js
    var require_keyboardActions = __commonJS({
        "node_modules/@signageos/actions/dist/Input/keyboardActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.HideNumericKeyboard = exports.ShowNumericKeyboard = void 0;
            exports.ShowNumericKeyboard = "Input.ShowNumericKeyboard";
            exports.HideNumericKeyboard = "Input.HideNumericKeyboard";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Input/numericSequence.js
    var require_numericSequence = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Input/numericSequence.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getNumericCode = void 0;
            var KeyCode_1 = require_KeyCode();
            var _obj;
            var CharacterKeyMap = (_obj = {}, _define_property(_obj, KeyCode_1.KeyCode.NUM_0, 0), _define_property(_obj, KeyCode_1.KeyCode.NUM_1, 1), _define_property(_obj, KeyCode_1.KeyCode.NUM_2, 2), _define_property(_obj, KeyCode_1.KeyCode.NUM_3, 3), _define_property(_obj, KeyCode_1.KeyCode.NUM_4, 4), _define_property(_obj, KeyCode_1.KeyCode.NUM_5, 5), _define_property(_obj, KeyCode_1.KeyCode.NUM_6, 6), _define_property(_obj, KeyCode_1.KeyCode.NUM_7, 7), _define_property(_obj, KeyCode_1.KeyCode.NUM_8, 8), _define_property(_obj, KeyCode_1.KeyCode.NUM_9, 9), _obj);
            function getNumericCode(sequence) {
                return sequence.reduce(function(numericCode, keyCode) {
                    if (Object.keys(CharacterKeyMap).indexOf(KeyCode_1.KeyCode[keyCode].toString()) !== -1) {
                        return numericCode + CharacterKeyMap[KeyCode_1.KeyCode[keyCode]];
                    }
                    if (keyCode === KeyCode_1.KeyCode[KeyCode_1.KeyCode.BACKSPACE]) {
                        return numericCode.slice(0, numericCode.length - 1);
                    }
                    return numericCode;
                }, "");
            }
            exports.getNumericCode = getNumericCode;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Input/keyboardReducers.js
    var require_keyboardReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Input/keyboardReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.keyboard = void 0;
            var keyboardActions_1 = require_keyboardActions();
            var keyActions_1 = require_keyActions();
            var deviceRemoteControlActions_1 = require_deviceRemoteControlActions();
            var numericSequence_1 = require_numericSequence();
            var initialState = {
                showNumericKeyboard: false,
                numericCode: null
            };
            function keyboard() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case keyboardActions_1.ShowNumericKeyboard:
                        return Object.assign(Object.assign({}, state), {
                            showNumericKeyboard: true
                        });
                    case keyboardActions_1.HideNumericKeyboard:
                    case deviceRemoteControlActions_1.DeviceRemoteControlSet:
                        return Object.assign(Object.assign({}, state), {
                            showNumericKeyboard: false
                        });
                    case keyActions_1.HandleKeySequence:
                        return Object.assign(Object.assign({}, state), {
                            numericCode: (0, numericSequence_1.getNumericCode)(action.sequence)
                        });
                    default:
                        return state;
                }
            }
            exports.keyboard = keyboard;
        }
    });
    // node_modules/@signageos/actions/dist/Authentication/authenticationActions.js
    var require_authenticationActions = __commonJS({
        "node_modules/@signageos/actions/dist/Authentication/authenticationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.AccountAuthenticated = exports.RevokeSucceed = exports.RevokeDevice = exports.SessionCreated = exports.NewSessionStored = exports.AuthenticationFailed = exports.AuthenticationSucceed = exports.AuthenticateAccount = exports.AuthenticateDevice = void 0;
            exports.AuthenticateDevice = "Authentication.AuthenticateDevice";
            exports.AuthenticateAccount = "Authentication.AuthenticateAccount";
            exports.AuthenticationSucceed = "Authentication.AuthenticationSucceed";
            exports.AuthenticationFailed = "Authentication.AuthenticationFailed";
            exports.NewSessionStored = "Authentication.NewSessionStored";
            exports.SessionCreated = "Authentication.SessionCreated";
            exports.RevokeDevice = "Authentication.RevokeDevice";
            exports.RevokeSucceed = "Authentication.RevokeSucceed";
            exports.AccountAuthenticated = "Authentication.AccountAuthenticated";
        }
    });
    // node_modules/@signageos/front-display/es6/Authentication/authenticationReducers.js
    var require_authenticationReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Authentication/authenticationReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.authentication = void 0;
            var authenticationActions_1 = require_authenticationActions();
            var initialState = {
                authenticated: false,
                authenticating: false,
                failReason: null,
                revoking: false
            };
            function authentication() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case authenticationActions_1.AuthenticateDevice:
                        return Object.assign(Object.assign({}, state), {
                            authenticating: true,
                            failReason: null
                        });
                    case authenticationActions_1.AuthenticationSucceed:
                        return Object.assign(Object.assign({}, state), {
                            authenticated: true,
                            authenticating: false,
                            failReason: null
                        });
                    case authenticationActions_1.NewSessionStored:
                        return Object.assign(Object.assign({}, state), {
                            authenticated: true
                        });
                    case authenticationActions_1.AuthenticationFailed:
                        return Object.assign(Object.assign({}, state), {
                            authenticating: false,
                            failReason: action.reason
                        });
                    case authenticationActions_1.RevokeDevice:
                        return Object.assign(Object.assign({}, state), {
                            revoking: true
                        });
                    case authenticationActions_1.RevokeSucceed:
                        return Object.assign(Object.assign({}, state), {
                            authenticated: false,
                            revoking: false
                        });
                    default:
                        return state;
                }
            }
            exports.authentication = authentication;
        }
    });
    // node_modules/@signageos/actions/dist/Applet/appletActions.js
    var require_appletActions = __commonJS({
        "node_modules/@signageos/actions/dist/Applet/appletActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateAppletTimingsDefinition = exports.UpdateActiveAppletBinaryFile = exports.SetupAppletIframeId = exports.UpdateActiveAppletSavedContents = exports.UpdateActiveAppletSavedFiles = exports.UpdateActiveAppletUniqueHash = exports.LastActiveAppletMissed = exports.UpdateActiveAppletBinary = exports.SubscribeActiveApplet = void 0;
            exports.SubscribeActiveApplet = "Applet.SubscribeActiveApplet";
            exports.UpdateActiveAppletBinary = "Applet.UpdateActiveAppletBinary";
            exports.LastActiveAppletMissed = "Applet.LastActiveAppletMissed";
            exports.UpdateActiveAppletUniqueHash = "Applet.UpdateActiveAppletUniqueHash";
            exports.UpdateActiveAppletSavedFiles = "Applet.UpdateActiveAppletSavedFiles";
            exports.UpdateActiveAppletSavedContents = "Applet.UpdateActiveAppletSavedContents";
            exports.SetupAppletIframeId = "Applet.SetupAppletIframeId";
            exports.UpdateActiveAppletBinaryFile = "Applet.UpdateActiveAppletBinaryFile";
            exports.UpdateAppletTimingsDefinition = "Applet.UpdateAppletTimingsDefinition";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Power/devicePowerActionActions.js
    var require_devicePowerActionActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Power/devicePowerActionActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TriggerAppletOff = exports.TriggerAppletOn = exports.TriggerDisplayPowerOff = exports.TriggerDisplayPowerOn = exports.PerformScheduledPowerAction = void 0;
            exports.PerformScheduledPowerAction = "Front.Device.Power.PerformScheduledPowerAction";
            exports.TriggerDisplayPowerOn = "Front.Device.Power.TriggerDisplayPowerOn";
            exports.TriggerDisplayPowerOff = "Front.Device.Power.TriggerDisplayPowerOff";
            exports.TriggerAppletOn = "Front.Device.Power.TriggerAppletOn";
            exports.TriggerAppletOff = "Front.Device.Power.TriggerAppletOff";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/License/licenseActions.js
    var require_licenseActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/License/licenseActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ChangeLicenseState = exports.ViolationSeverity = void 0;
            var ViolationSeverity;
            (function(ViolationSeverity2) {
                ViolationSeverity2["none"] = "none";
                ViolationSeverity2["soft"] = "soft";
                ViolationSeverity2["hard"] = "hard";
            })(ViolationSeverity || (exports.ViolationSeverity = ViolationSeverity = {}));
            exports.ChangeLicenseState = "Front.License.ChangeLicenseState";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/appletReducers.js
    var require_appletReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/appletReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.applet = void 0;
            var appletActions_1 = require_appletActions();
            var appletTimingActions_1 = require_appletTimingActions();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var licenseActions_1 = require_licenseActions();
            var initialState = {
                isCachedAppletReady: false,
                activeAppletUid: null,
                activeAppletConfiguration: null,
                activeAppletMissing: false,
                activeAppletUniqueHash: null,
                activeAppletIframeId: null,
                activeAppletVersion: null,
                activeTimingChecksum: null,
                activeAppletBinaryFile: null,
                activeAppletFrontAppletJsFile: null,
                activeAppletHasBundledFrontApplet: false,
                appletIsMuted: false,
                timerNextPowerOn: null,
                nextApplet: null,
                activeAppletMetadata: {},
                lastOpenedOSDTime: 0
            };
            var OSD_UID = "osd";
            function applet() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                var _a2;
                switch(action.type){
                    case appletActions_1.UpdateActiveAppletBinary:
                        var changed = state.activeAppletUid !== action.activeAppletUid || state.activeAppletVersion !== action.activeAppletVersion || JSON.stringify(state.activeAppletConfiguration) !== JSON.stringify(action.activeConfiguration);
                        return Object.assign(Object.assign({}, state), {
                            activeAppletUid: action.activeAppletUid,
                            activeAppletConfiguration: action.activeConfiguration,
                            activeTimingChecksum: action.activeTimingChecksum,
                            activeAppletVersion: action.activeAppletVersion,
                            activeAppletMissing: false,
                            activeAppletUniqueHash: changed ? null : state.activeAppletUniqueHash,
                            activeAppletIframeId: changed ? null : state.activeAppletIframeId,
                            activeAppletBinaryFile: changed ? null : state.activeAppletBinaryFile,
                            activeAppletFrontAppletJsFile: changed ? null : state.activeAppletFrontAppletJsFile,
                            activeAppletHasBundledFrontApplet: changed ? !action.activeAppletFrontAppletVersion : state.activeAppletHasBundledFrontApplet,
                            nextApplet: null,
                            activeAppletMetadata: action.activeAppletMetadata
                        });
                    case appletTimingActions_1.ShowOSD:
                        return Object.assign(Object.assign({}, state), {
                            activeAppletUid: OSD_UID,
                            activeAppletConfiguration: {},
                            activeTimingChecksum: OSD_UID,
                            activeAppletVersion: null,
                            activeAppletMissing: false,
                            activeAppletUniqueHash: OSD_UID,
                            activeAppletIframeId: null,
                            activeAppletBinaryFile: action.appletBinaryFile,
                            activeAppletFrontAppletJsFile: null,
                            activeAppletHasBundledFrontApplet: true,
                            nextApplet: null
                        });
                    case appletTimingActions_1.ShowOSDTime:
                        return Object.assign(Object.assign({}, state), {
                            lastOpenedOSDTime: action.time
                        });
                    case appletTimingActions_1.HideApplet:
                        return Object.assign(Object.assign({}, state), {
                            activeAppletMissing: true
                        });
                    case appletActions_1.SubscribeActiveApplet:
                        return Object.assign(Object.assign({}, state), {
                            activeAppletMissing: false
                        });
                    case appletActions_1.UpdateActiveAppletUniqueHash:
                        return Object.assign(Object.assign({}, state), {
                            activeAppletUniqueHash: action.hash
                        });
                    case appletTimingActions_1.CreateAppletIframe:
                        var createAppletIframeUid = action.uid;
                        var createAppletIframeId = action.id;
                        if (state.activeAppletUid === createAppletIframeUid) {
                            return Object.assign(Object.assign({}, state), {
                                activeAppletIframeId: createAppletIframeId
                            });
                        } else if (state.nextApplet && state.nextApplet.uid === createAppletIframeUid) {
                            return Object.assign(Object.assign({}, state), {
                                nextApplet: Object.assign(Object.assign({}, state.nextApplet), {
                                    iframeId: createAppletIframeId
                                })
                            });
                        }
                        return state;
                    case appletTimingActions_1.StartAppletIframe:
                        return Object.assign(Object.assign({}, state), {
                            activeAppletIframeId: action.id
                        });
                    case appletActions_1.UpdateActiveAppletBinaryFile:
                        return Object.assign(Object.assign({}, state), {
                            activeAppletBinaryFile: action.appletBinaryFile,
                            activeAppletFrontAppletJsFile: action.appletFrontAppletJsFile
                        });
                    case devicePowerActionActions_1.TriggerAppletOn:
                        return Object.assign(Object.assign({}, state), {
                            appletIsMuted: false,
                            timerNextPowerOn: null
                        });
                    case devicePowerActionActions_1.TriggerAppletOff:
                        return Object.assign(Object.assign({}, state), {
                            appletIsMuted: true,
                            timerNextPowerOn: (_a2 = action.nextPowerOn) !== null && _a2 !== void 0 ? _a2 : null
                        });
                    case licenseActions_1.ChangeLicenseState:
                        return Object.assign(Object.assign({}, state), {
                            appletIsMuted: action.severity !== licenseActions_1.ViolationSeverity.none
                        });
                    case appletTimingActions_1.PrepareNextAppletTiming:
                        return Object.assign(Object.assign({}, state), {
                            nextApplet: {
                                uid: action.appletUid,
                                configuration: action.configuration,
                                timingChecksum: action.timingChecksum,
                                appletVersion: action.appletVersion,
                                appletFrontAppletVersion: action.appletFrontAppletVersion || null,
                                appletBinaryFile: null,
                                appletFrontAppletJsFile: null,
                                hasBundledFrontApplet: !!action.appletFrontAppletVersion,
                                iframeId: null,
                                metadata: action.appletMetadata
                            }
                        });
                    case appletTimingActions_1.UpdateNextAppletBinaryFile:
                        if (state.nextApplet && state.nextApplet.uid === action.appletUid) {
                            return Object.assign(Object.assign({}, state), {
                                nextApplet: Object.assign(Object.assign({}, state.nextApplet), {
                                    appletBinaryFile: action.appletBinaryFile,
                                    appletFrontAppletJsFile: action.appletFrontAppletJsFile
                                })
                            });
                        } else {
                            return state;
                        }
                    case appletActions_1.UpdateAppletTimingsDefinition:
                        return Object.assign(Object.assign({}, state), {
                            isCachedAppletReady: action.definitions.length > 0,
                            activeAppletMetadata: action.definitions[0].metadata
                        });
                    default:
                        return state;
                }
            }
            exports.applet = applet;
        }
    });
    // node_modules/@signageos/actions/dist/Application/applicationActions.js
    var require_applicationActions2 = __commonJS({
        "node_modules/@signageos/actions/dist/Application/applicationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateUploadBaseUrl = exports.UpdateStaticBaseUrl = exports.UpdateBaseUrl = exports.Ping = exports.StartApplication = void 0;
            exports.StartApplication = "Web.Application.Start";
            exports.Ping = "Web.Application.Ping";
            exports.UpdateBaseUrl = "Web.Application.UpdateBaseUrl";
            exports.UpdateStaticBaseUrl = "Web.Application.UpdateStaticBaseUrl";
            exports.UpdateUploadBaseUrl = "Web.Application.UpdateUploadBaseUrl";
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationActions.js
    var require_deviceConfigurationActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ConfigurationCheckFailed = exports.ConfigurationChanged = exports.ChangeSubscriptionToPlatform = exports.ChangeSubscriptionToOpen = exports.CheckDeviceConfiguration = void 0;
            exports.CheckDeviceConfiguration = "Device.Configuration.CheckDeviceConfiguration";
            exports.ChangeSubscriptionToOpen = "Device.Configuration.ChangeSubscriptionToOpen";
            exports.ChangeSubscriptionToPlatform = "Device.Configuration.ChangeSubscriptionToPlatform";
            exports.ConfigurationChanged = "Device.Configuration.ConfigurationChanged";
            exports.ConfigurationCheckFailed = "Device.Configuration.ConfigurationCheckFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Application/applicationReducers.js
    var require_applicationReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Application/applicationReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.application = void 0;
            var applicationActions_1 = require_applicationActions2();
            var deviceConfigurationActions_1 = require_deviceConfigurationActions();
            var IConfig_1 = require_IConfig();
            var initialState = {
                started: false,
                baseUrl: null,
                subscriptionType: null
            };
            function application() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case applicationActions_1.StartApplication:
                        return Object.assign(Object.assign({}, state), {
                            started: true
                        });
                    case applicationActions_1.UpdateBaseUrl:
                        return Object.assign(Object.assign({}, state), {
                            baseUrl: action.baseUrl
                        });
                    case deviceConfigurationActions_1.ChangeSubscriptionToOpen:
                        return Object.assign(Object.assign({}, state), {
                            subscriptionType: IConfig_1.SubscriptionType.open
                        });
                    case deviceConfigurationActions_1.ChangeSubscriptionToPlatform:
                        return Object.assign(Object.assign({}, state), {
                            subscriptionType: IConfig_1.SubscriptionType.platform
                        });
                    default:
                        return state;
                }
            }
            exports.application = application;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Debug/deviceDebugActions.js
    var require_deviceDebugActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Debug/deviceDebugActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceDebugSettingsFailed = exports.SetDeviceDebugSettingsSucceeded = exports.SetDeviceDebugSettings = void 0;
            exports.SetDeviceDebugSettings = "Device.Debug.PerformDebugSettings";
            exports.SetDeviceDebugSettingsSucceeded = "Device.Debug.PerformDebugSettingsSucceed";
            exports.SetDeviceDebugSettingsFailed = "Device.Debug.PerformDebugSettingsFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugLocalActions.js
    var require_deviceDebugLocalActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugLocalActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ReadDeviceDebugSettings = void 0;
            exports.ReadDeviceDebugSettings = "Device.Debug.PerformReadDebugSettingsFromPropertyStorage";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugReducers.js
    var require_deviceDebugReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.debug = void 0;
            var deviceDebugActions_1 = require_deviceDebugActions();
            var deviceDebugLocalActions_1 = require_deviceDebugLocalActions();
            var initialState = {
                debugOn: false
            };
            function debug4() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case deviceDebugActions_1.SetDeviceDebugSettings:
                        return {
                            debugOn: action.appletEnabled
                        };
                    case deviceDebugLocalActions_1.ReadDeviceDebugSettings:
                        return {
                            debugOn: action.debugOn
                        };
                    default:
                        return state;
                }
            }
            exports.debug = debug4;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/BundledApplet/bundledAppletActions.js
    var require_bundledAppletActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/BundledApplet/bundledAppletActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyBundledApplet = void 0;
            exports.NotifyBundledApplet = "Front.Applet.NotifyBundledApplet";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/BundledApplet/bundledAppletReducer.js
    var require_bundledAppletReducer = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/BundledApplet/bundledAppletReducer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.bundledApplet = void 0;
            var bundledAppletActions_1 = require_bundledAppletActions();
            var initialState = {
                bundledApplet: null
            };
            function bundledApplet() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case bundledAppletActions_1.NotifyBundledApplet:
                        return Object.assign(Object.assign({}, state), {
                            bundledApplet: action.bundledApplet
                        });
                    default:
                        return state;
                }
            }
            exports.bundledApplet = bundledApplet;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/License/licenseReducers.js
    var require_licenseReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/License/licenseReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.license = void 0;
            var licenseActions_1 = require_licenseActions();
            var initialState = {
                violationSeverity: licenseActions_1.ViolationSeverity.none
            };
            function license() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : initialState, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case licenseActions_1.ChangeLicenseState:
                        return Object.assign(Object.assign({}, state), {
                            violationSeverity: action.severity
                        });
                    default:
                        return state;
                }
            }
            exports.license = license;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Connect/deviceConnectActions.js
    var require_deviceConnectActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Connect/deviceConnectActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DisconnectDevice = exports.ConnectDevice = void 0;
            exports.ConnectDevice = "Device.Connect.ConnectDevice";
            exports.DisconnectDevice = "Device.Connect.DisconnectDevice";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Connect/deviceConnectReducers.js
    var require_deviceConnectReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Connect/deviceConnectReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceConnect = void 0;
            var deviceConnectActions_1 = require_deviceConnectActions();
            var deviceConnect = function() {
                var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
                    connectedBaseUrl: null
                }, action = arguments.length > 1 ? arguments[1] : void 0;
                switch(action.type){
                    case deviceConnectActions_1.ConnectDevice:
                        return {
                            connectedBaseUrl: action.remoteIp
                        };
                    case deviceConnectActions_1.DisconnectDevice:
                        return {
                            connectedBaseUrl: null
                        };
                    default:
                        return state;
                }
            };
            exports.deviceConnect = deviceConnect;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/frontReducers.js
    var require_frontReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/frontReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.frontReducer = void 0;
            var redux_1 = require_lib2();
            var socketReducers_1 = require_socketReducers();
            var deviceReducers_1 = require_deviceReducers();
            var organizationReducers_1 = require_organizationReducers();
            var deviceAuthenticationReducers_1 = require_deviceAuthenticationReducers();
            var deviceVerificationReducers_1 = require_deviceVerificationReducers();
            var deviceRemoteControlReducers_1 = require_deviceRemoteControlReducers();
            var networkReducers_1 = require_networkReducers();
            var keyboardReducers_1 = require_keyboardReducers();
            var authenticationReducers_1 = require_authenticationReducers();
            var appletReducers_1 = require_appletReducers();
            var applicationReducers_1 = require_applicationReducers();
            var deviceDebugReducers_1 = require_deviceDebugReducers();
            var bundledAppletReducer_1 = require_bundledAppletReducer();
            var licenseReducers_1 = require_licenseReducers();
            var deviceConnectReducers_1 = require_deviceConnectReducers();
            exports.frontReducer = (0, redux_1.combineReducers)({
                applet: appletReducers_1.applet,
                bundledApplet: bundledAppletReducer_1.bundledApplet,
                authentication: authenticationReducers_1.authentication,
                socket: socketReducers_1.socket,
                device: deviceReducers_1.device,
                debug: deviceDebugReducers_1.debug,
                organization: organizationReducers_1.organization,
                deviceAuthentication: deviceAuthenticationReducers_1.deviceAuthentication,
                deviceVerification: deviceVerificationReducers_1.deviceVerification,
                deviceRemoteControl: deviceRemoteControlReducers_1.deviceRemoteControl,
                network: networkReducers_1.network,
                keyboard: keyboardReducers_1.keyboard,
                application: applicationReducers_1.application,
                license: licenseReducers_1.license,
                deviceConnect: deviceConnectReducers_1.deviceConnect
            });
        }
    });
    // node_modules/@redux-saga/core/effects/dist/redux-saga-core-effects.esm.js
    var redux_saga_core_effects_esm_exports = {};
    __export(redux_saga_core_effects_esm_exports, {
        actionChannel: function() {
            return actionChannel;
        },
        all: function() {
            return all;
        },
        apply: function() {
            return apply;
        },
        call: function() {
            return call;
        },
        cancel: function() {
            return cancel;
        },
        cancelled: function() {
            return cancelled;
        },
        cps: function() {
            return cps;
        },
        debounce: function() {
            return debounce;
        },
        delay: function() {
            return delay;
        },
        effectTypes: function() {
            return effectTypes;
        },
        flush: function() {
            return flush;
        },
        fork: function() {
            return fork;
        },
        getContext: function() {
            return getContext;
        },
        join: function() {
            return join;
        },
        put: function() {
            return put;
        },
        putResolve: function() {
            return putResolve;
        },
        race: function() {
            return race;
        },
        retry: function() {
            return retry;
        },
        select: function() {
            return select;
        },
        setContext: function() {
            return setContext;
        },
        spawn: function() {
            return spawn;
        },
        take: function() {
            return take;
        },
        takeEvery: function() {
            return takeEvery;
        },
        takeLatest: function() {
            return takeLatest;
        },
        takeLeading: function() {
            return takeLeading;
        },
        takeMaybe: function() {
            return takeMaybe;
        },
        throttle: function() {
            return throttle;
        }
    });
    var done, qEnd;
    var init_redux_saga_core_effects_esm = __esm({
        "node_modules/@redux-saga/core/effects/dist/redux-saga-core-effects.esm.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_io_dec07f91_esm();
            init_io_dec07f91_esm();
            init_redux_saga_is_esm();
            init_extends();
            init_redux_saga_symbols_esm();
            init_redux_saga_delay_p_esm();
            done = function done2(value) {
                return {
                    done: true,
                    value: value
                };
            };
            qEnd = {};
        }
    });
    // node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js
    var require_redux_saga_effects_npm_proxy_cjs = __commonJS({
        "node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var effects = (init_redux_saga_core_effects_esm(), __toCommonJS(redux_saga_core_effects_esm_exports));
            Object.keys(effects).forEach(function(k) {
                if (k !== "default") Object.defineProperty(exports, k, {
                    enumerable: true,
                    get: function get() {
                        return effects[k];
                    }
                });
            });
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/wait.js
    var require_wait = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/wait.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = wait6;
            function wait6(timeout, _a2) {
                var _b2 = _a2 === void 0 ? {} : _a2, signal = _b2.signal;
                var timer = void 0;
                var rejectCallback = null;
                var promise3 = new Promise(function(resolve, reject) {
                    rejectCallback = reject;
                    timer = setTimeout(function() {
                        rejectCallback = null;
                        resolve();
                    }, timeout);
                });
                promise3.cancel = function(reason) {
                    if (timer) {
                        clearTimeout(timer);
                        timer = void 0;
                        if (rejectCallback) {
                            rejectCallback(reason !== null && reason !== void 0 ? reason : new Error("Wait cancelled"));
                        }
                        rejectCallback = null;
                    }
                };
                signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", function() {
                    return promise3.cancel(signal.reason);
                });
                return promise3;
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Application/startApplicationSaga.js
    var require_startApplicationSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Application/startApplicationSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var wait_1 = __importDefault(require_wait());
            var applicationActions_1 = require_applicationActions2();
            var constants_1 = require_constants();
            function startApplicationSaga() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, wait_1["default"])(constants_1.DEBOUNCE)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: applicationActions_1.StartApplication
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports["default"] = startApplicationSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/socketActions.js
    var require_socketActions2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/socketActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UnbindAction = exports.BindAction = exports.CheckSocketHealth = exports.SocketConnectionFailed = exports.SocketConnected = void 0;
            exports.SocketConnected = "Socket.Connected";
            exports.SocketConnectionFailed = "Socket.ConnectionFailed";
            exports.CheckSocketHealth = "Socket.CheckSocketHealth";
            exports.BindAction = "Front.Socket.BindAction";
            exports.UnbindAction = "Front.Socket.UnbindAction";
        }
    });
    // node_modules/@signageos/front-display/es6/DI/dependenciesActions.js
    var require_dependenciesActions = __commonJS({
        "node_modules/@signageos/front-display/es6/DI/dependenciesActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateDIContainer = exports.RequestDIContainer = exports.UpdateDIDependency = void 0;
            exports.UpdateDIDependency = "DI.UpdateDIDependency";
            exports.RequestDIContainer = "DI.RequestDIContainer";
            exports.UpdateDIContainer = "DI.UpdateDIContainer";
        }
    });
    // node_modules/@signageos/front-display/es6/DI/dependencyInjection.js
    var require_dependencyInjection = __commonJS({
        "node_modules/@signageos/front-display/es6/DI/dependencyInjection.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.awaitDependencies = exports.withDependencies = exports.injectDependencies = void 0;
            var lodash_1 = require_lodash();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependenciesActions_1 = require_dependenciesActions();
            function injectDependencies(dependencies) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: dependenciesActions_1.UpdateDIDependency,
                                    dependencies: dependencies
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.injectDependencies = injectDependencies;
            var withDependencies = function(dependencyKeys, saga) {
                return function withDependencies() {
                    var _len, args, _key, runningTask, lastContainer, action, newContainer;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                    args[_key] = _arguments[_key];
                                }
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: dependenciesActions_1.RequestDIContainer
                                    })
                                ];
                            case 1:
                                _state.sent();
                                _state.label = 2;
                            case 2:
                                return [
                                    4,
                                    (0, effects_1.take)(dependenciesActions_1.UpdateDIContainer)
                                ];
                            case 3:
                                if (!(action = _state.sent())) return [
                                    3,
                                    8
                                ];
                                newContainer = (0, lodash_1.pick)(action.container, dependencyKeys);
                                if (!(!isShallowEqual(lastContainer, newContainer) && hasAllRequiredDependencies(dependencyKeys, newContainer))) return [
                                    3,
                                    7
                                ];
                                lastContainer = newContainer;
                                if (!runningTask) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    (0, effects_1.cancel)(runningTask)
                                ];
                            case 4:
                                _state.sent();
                                _state.label = 5;
                            case 5:
                                return [
                                    4,
                                    (0, effects_1.fork).apply(this, [
                                        saga,
                                        newContainer
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 6:
                                runningTask = _state.sent();
                                _state.label = 7;
                            case 7:
                                return [
                                    3,
                                    2
                                ];
                            case 8:
                                return [
                                    2
                                ];
                        }
                    });
                };
            };
            exports.withDependencies = withDependencies;
            function awaitDependencies(dependencyKeys) {
                var action;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: dependenciesActions_1.RequestDIContainer
                                })
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            return [
                                4,
                                (0, effects_1.take)(dependenciesActions_1.UpdateDIContainer)
                            ];
                        case 3:
                            if (!(action = _state.sent())) return [
                                3,
                                4
                            ];
                            if (hasAllRequiredDependencies(dependencyKeys, action.container)) {
                                return [
                                    2,
                                    (0, lodash_1.pick)(action.container, dependencyKeys)
                                ];
                            }
                            return [
                                3,
                                2
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.awaitDependencies = awaitDependencies;
            function hasAllRequiredDependencies(dependencyKeys, container) {
                return dependencyKeys.every(function(key) {
                    return Object.keys(container).includes(key);
                });
            }
            function isShallowEqual(a, b) {
                return (0, lodash_1.isEqualWith)(a, b, function(aVal, bBal, index) {
                    return index === void 0 ? void 0 : Object.is(aVal, bBal);
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/socketActionCreator.js
    var require_socketActionCreator = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/socketActionCreator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.takeEveryAndBindWhenPlatform = exports.bindWhenPlatform = exports.bindAndTakeEveryOnlyWhenPlatform = exports.bindAndTakeEvery = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var socketActions_1 = require_socketActions2();
            var deviceConfigurationActions_1 = require_deviceConfigurationActions();
            var dependencyInjection_1 = require_dependencyInjection();
            var IConfig_1 = require_IConfig();
            var applicationActions_1 = require_applicationActions();
            var bindAndTakeEvery = function(actionNames, saga) {
                for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
                    args[_key - 2] = arguments[_key];
                }
                return (0, effects_1.fork)(function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    bindActionsUntilStopped(actionNames)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.takeEvery).apply(this, [
                                        actionNames,
                                        saga
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.bindAndTakeEvery = bindAndTakeEvery;
            var bindAndTakeEveryOnlyWhenPlatform = function(actionNames, saga) {
                for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
                    args[_key - 2] = arguments[_key];
                }
                return (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                    "subscriptionType"
                ], function(param) {
                    var subscriptionType;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                subscriptionType = param.subscriptionType;
                                if (!(subscriptionType === IConfig_1.SubscriptionType.platform)) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    (0, exports.bindAndTakeEvery).apply(this, [
                                        actionNames,
                                        saga
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 1:
                                _state.sent();
                                _state.label = 2;
                            case 2:
                                return [
                                    2
                                ];
                        }
                    });
                }));
            };
            exports.bindAndTakeEveryOnlyWhenPlatform = bindAndTakeEveryOnlyWhenPlatform;
            var bindWhenPlatform = function(actionNames) {
                return (0, effects_1.fork)(function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!true) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    (0, effects_1.take)(deviceConfigurationActions_1.ChangeSubscriptionToPlatform)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    bindActions(actionNames)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.take)(deviceConfigurationActions_1.ChangeSubscriptionToOpen)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    unbindActions(actionNames)
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    3,
                                    0
                                ];
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.bindWhenPlatform = bindWhenPlatform;
            var takeEveryAndBindWhenPlatform = function(actionNames, saga) {
                for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
                    args[_key - 2] = arguments[_key];
                }
                return (0, effects_1.fork)(function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, effects_1.takeEvery).apply(this, [
                                        actionNames,
                                        saga
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)((0, dependencyInjection_1.withDependencies)([
                                        "subscriptionType"
                                    ], function(param) {
                                        var subscriptionType;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    subscriptionType = param.subscriptionType;
                                                    if (!(subscriptionType === IConfig_1.SubscriptionType.platform)) return [
                                                        3,
                                                        2
                                                    ];
                                                    return [
                                                        4,
                                                        bindActionsUntilStopped(actionNames)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    _state.label = 2;
                                                case 2:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    }))
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.takeEveryAndBindWhenPlatform = takeEveryAndBindWhenPlatform;
            var bindActionsUntilStopped = function(actionNames) {
                return (0, effects_1.fork)(function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    ,
                                    3,
                                    5
                                ]);
                                return [
                                    5,
                                    _ts_values(__yieldStar(bindActions(actionNames)))
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.take)(applicationActions_1.StopApplication)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 3:
                                return [
                                    5,
                                    _ts_values(__yieldStar(unbindActions(actionNames)))
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    7
                                ];
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            function bindActions(actionNames) {
                var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, actionName, err;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            actionNames = Array.isArray(actionNames) ? actionNames : [
                                actionNames
                            ];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                6,
                                7,
                                8
                            ]);
                            _iterator = actionNames[Symbol.iterator]();
                            _state.label = 2;
                        case 2:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                5
                            ];
                            actionName = _step.value;
                            if (!(actionName !== "*")) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: socketActions_1.BindAction,
                                    actionName: actionName
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                2
                            ];
                        case 5:
                            return [
                                3,
                                8
                            ];
                        case 6:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                8
                            ];
                        case 7:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            function unbindActions(actionNames) {
                var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, actionName, err;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            actionNames = Array.isArray(actionNames) ? actionNames : [
                                actionNames
                            ];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                6,
                                7,
                                8
                            ]);
                            _iterator = actionNames[Symbol.iterator]();
                            _state.label = 2;
                        case 2:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                5
                            ];
                            actionName = _step.value;
                            if (!(actionName !== "*")) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: socketActions_1.UnbindAction,
                                    actionName: actionName
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                2
                            ];
                        case 5:
                            return [
                                3,
                                8
                            ];
                        case 6:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                8
                            ];
                        case 7:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/actions/dist/Authentication/AuthenticationType.js
    var require_AuthenticationType = __commonJS({
        "node_modules/@signageos/actions/dist/Authentication/AuthenticationType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AuthenticationType;
            (function(AuthenticationType2) {
                AuthenticationType2[AuthenticationType2["SESSION"] = 0] = "SESSION";
                AuthenticationType2[AuthenticationType2["DEVICE_UID"] = 1] = "DEVICE_UID";
                AuthenticationType2[AuthenticationType2["USERNAME"] = 2] = "USERNAME";
            })(AuthenticationType || (AuthenticationType = {}));
            exports["default"] = AuthenticationType;
        }
    });
    // node_modules/@signageos/front-display/es6/Authentication/authenticationSagas.js
    var require_authenticationSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Authentication/authenticationSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.storeDeviceSession = exports.afterRegistrationDeviceUidAuthentication = exports.fallbackDeviceUidAuthentication = exports.autoDeviceAuthentication = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var authenticationActions_1 = require_authenticationActions();
            var AuthenticationType_1 = __importDefault(require_AuthenticationType());
            var AuthenticationFailReason_1 = __importDefault(require_AuthenticationFailReason());
            var socketActions_1 = require_socketActions();
            var deviceActions_1 = require_deviceActions();
            var RegisterFailReason_1 = __importDefault(require_RegisterFailReason());
            function autoDeviceAuthentication(sessionIdKey, getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(socketActions_1.SocketConnected, function() {
                                    var sessionId, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    6,
                                                    ,
                                                    7
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().getSessionId(sessionIdKey)
                                                ];
                                            case 1:
                                                sessionId = _state.sent();
                                                if (!!sessionId) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: authenticationActions_1.AuthenticationFailed,
                                                        reason: AuthenticationFailReason_1["default"].MISSING_SESSION
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 3:
                                                return [
                                                    4,
                                                    putAuthenticateDevice(sessionId, AuthenticationType_1["default"].SESSION)
                                                ];
                                            case 4:
                                                _state.sent();
                                                _state.label = 5;
                                            case 5:
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 6:
                                                error = _state.sent();
                                                console.error("autoDeviceAuthentication failed", error);
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.autoDeviceAuthentication = autoDeviceAuthentication;
            function fallbackDeviceUidAuthentication(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationFailed, function(action) {
                                    var deviceUid, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().getDeviceUid()
                                                ];
                                            case 1:
                                                deviceUid = _state.sent();
                                                if (!(action.reason === AuthenticationFailReason_1["default"].MISSING_SESSION)) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    putAuthenticateDevice(deviceUid, AuthenticationType_1["default"].DEVICE_UID)
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("fallbackDeviceUidAuthentication failed", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.fallbackDeviceUidAuthentication = fallbackDeviceUidAuthentication;
            function afterRegistrationDeviceUidAuthentication(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceActions_1.DeviceRegistrationSucceeded, function() {
                                    var deviceUid, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().getDeviceUid()
                                                ];
                                            case 1:
                                                deviceUid = _state.sent();
                                                return [
                                                    4,
                                                    putAuthenticateDevice(deviceUid, AuthenticationType_1["default"].DEVICE_UID)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("afterRegistrationDeviceUidAuthentication failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceActions_1.DeviceRegistrationFailed, function(action) {
                                    var deviceUid, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                if (!(action.reason === RegisterFailReason_1["default"].ALREADY_EXISTS)) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    getNativeDriver().getDeviceUid()
                                                ];
                                            case 1:
                                                deviceUid = _state.sent();
                                                return [
                                                    4,
                                                    putAuthenticateDevice(deviceUid, AuthenticationType_1["default"].DEVICE_UID)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                console.error("Registration failed", RegisterFailReason_1["default"][action.reason]);
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("afterRegistrationFailedDeviceUidAuthentication failed", RegisterFailReason_1["default"][action.reason]);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.afterRegistrationDeviceUidAuthentication = afterRegistrationDeviceUidAuthentication;
            function storeDeviceSession(sessionIdKey, getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.SessionCreated, function(action) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().setSessionId(sessionIdKey, action.uid)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: authenticationActions_1.NewSessionStored
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("storeDeviceSession failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.storeDeviceSession = storeDeviceSession;
            function putAuthenticateDevice(identity3, authenticationType) {
                var action = {
                    type: authenticationActions_1.AuthenticateDevice,
                    credentials: {
                        identity: identity3
                    },
                    authenticationType: authenticationType
                };
                action.autheticationType = action.authenticationType;
                return (0, effects_1.put)(action);
            }
        }
    });
    // node_modules/@signageos/front-display/es6/DI/dependenciesSaga.js
    var require_dependenciesSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/DI/dependenciesSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.dependencyInjection = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependenciesActions_1 = require_dependenciesActions();
            function dependencyInjection(staticContainer) {
                var container;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            container = Object.assign({}, staticContainer);
                            return [
                                4,
                                (0, effects_1.takeEvery)(dependenciesActions_1.UpdateDIDependency, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                container = Object.assign(Object.assign({}, container), action.dependencies);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: dependenciesActions_1.UpdateDIContainer,
                                                        container: container
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(dependenciesActions_1.RequestDIContainer, function(_action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: dependenciesActions_1.UpdateDIContainer,
                                                        container: container
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: dependenciesActions_1.UpdateDIContainer,
                                    container: container
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.dependencyInjection = dependencyInjection;
        }
    });
    // node_modules/ms/index.js
    var require_ms = __commonJS({
        "node_modules/ms/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var s = 1e3;
            var m = s * 60;
            var h = m * 60;
            var d = h * 24;
            var w = d * 7;
            var y = d * 365.25;
            module.exports = function(val, options) {
                options = options || {};
                var type = typeof val === "undefined" ? "undefined" : _type_of(val);
                if (type === "string" && val.length > 0) {
                    return parse2(val);
                } else if (type === "number" && isFinite(val)) {
                    return options["long"] ? fmtLong(val) : fmtShort(val);
                }
                throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
            };
            function parse2(str) {
                str = String(str);
                if (str.length > 100) {
                    return;
                }
                var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);
                if (!match) {
                    return;
                }
                var n = parseFloat(match[1]);
                var type = (match[2] || "ms").toLowerCase();
                switch(type){
                    case "years":
                    case "year":
                    case "yrs":
                    case "yr":
                    case "y":
                        return n * y;
                    case "weeks":
                    case "week":
                    case "w":
                        return n * w;
                    case "days":
                    case "day":
                    case "d":
                        return n * d;
                    case "hours":
                    case "hour":
                    case "hrs":
                    case "hr":
                    case "h":
                        return n * h;
                    case "minutes":
                    case "minute":
                    case "mins":
                    case "min":
                    case "m":
                        return n * m;
                    case "seconds":
                    case "second":
                    case "secs":
                    case "sec":
                    case "s":
                        return n * s;
                    case "milliseconds":
                    case "millisecond":
                    case "msecs":
                    case "msec":
                    case "ms":
                        return n;
                    default:
                        return void 0;
                }
            }
            function fmtShort(ms) {
                var msAbs = Math.abs(ms);
                if (msAbs >= d) {
                    return Math.round(ms / d) + "d";
                }
                if (msAbs >= h) {
                    return Math.round(ms / h) + "h";
                }
                if (msAbs >= m) {
                    return Math.round(ms / m) + "m";
                }
                if (msAbs >= s) {
                    return Math.round(ms / s) + "s";
                }
                return ms + "ms";
            }
            function fmtLong(ms) {
                var msAbs = Math.abs(ms);
                if (msAbs >= d) {
                    return plural(ms, msAbs, d, "day");
                }
                if (msAbs >= h) {
                    return plural(ms, msAbs, h, "hour");
                }
                if (msAbs >= m) {
                    return plural(ms, msAbs, m, "minute");
                }
                if (msAbs >= s) {
                    return plural(ms, msAbs, s, "second");
                }
                return ms + " ms";
            }
            function plural(ms, msAbs, n, name) {
                var isPlural = msAbs >= n * 1.5;
                return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/debug/src/common.js
    var require_common = __commonJS({
        "node_modules/@signageos/front-display/node_modules/debug/src/common.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function setup(env) {
                createDebug.debug = createDebug;
                createDebug["default"] = createDebug;
                createDebug.coerce = coerce;
                createDebug.disable = disable;
                createDebug.enable = enable;
                createDebug.enabled = enabled;
                createDebug.humanize = require_ms();
                createDebug.destroy = destroy;
                Object.keys(env).forEach(function(key) {
                    createDebug[key] = env[key];
                });
                createDebug.names = [];
                createDebug.skips = [];
                createDebug.formatters = {};
                function selectColor(namespace) {
                    var hash = 0;
                    for(var i = 0; i < namespace.length; i++){
                        hash = (hash << 5) - hash + namespace.charCodeAt(i);
                        hash |= 0;
                    }
                    return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
                }
                createDebug.selectColor = selectColor;
                function createDebug(namespace) {
                    var prevTime;
                    var enableOverride = null;
                    var namespacesCache;
                    var enabledCache;
                    function debug4() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        if (!debug4.enabled) {
                            return;
                        }
                        var self2 = debug4;
                        var curr = Number(/* @__PURE__ */ new Date());
                        var ms = curr - (prevTime || curr);
                        self2.diff = ms;
                        self2.prev = prevTime;
                        self2.curr = curr;
                        prevTime = curr;
                        args[0] = createDebug.coerce(args[0]);
                        if (typeof args[0] !== "string") {
                            args.unshift("%O");
                        }
                        var index = 0;
                        args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
                            if (match === "%%") {
                                return "%";
                            }
                            index++;
                            var formatter = createDebug.formatters[format];
                            if (typeof formatter === "function") {
                                var val = args[index];
                                match = formatter.call(self2, val);
                                args.splice(index, 1);
                                index--;
                            }
                            return match;
                        });
                        createDebug.formatArgs.call(self2, args);
                        var logFn = self2.log || createDebug.log;
                        logFn.apply(self2, args);
                    }
                    debug4.namespace = namespace;
                    debug4.useColors = createDebug.useColors();
                    debug4.color = createDebug.selectColor(namespace);
                    debug4.extend = extend;
                    debug4.destroy = createDebug.destroy;
                    Object.defineProperty(debug4, "enabled", {
                        enumerable: true,
                        configurable: false,
                        get: function() {
                            if (enableOverride !== null) {
                                return enableOverride;
                            }
                            if (namespacesCache !== createDebug.namespaces) {
                                namespacesCache = createDebug.namespaces;
                                enabledCache = createDebug.enabled(namespace);
                            }
                            return enabledCache;
                        },
                        set: function(v) {
                            enableOverride = v;
                        }
                    });
                    if (typeof createDebug.init === "function") {
                        createDebug.init(debug4);
                    }
                    return debug4;
                }
                function extend(namespace, delimiter) {
                    var newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
                    newDebug.log = this.log;
                    return newDebug;
                }
                function enable(namespaces) {
                    createDebug.save(namespaces);
                    createDebug.namespaces = namespaces;
                    createDebug.names = [];
                    createDebug.skips = [];
                    var split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = split[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var ns = _step.value;
                            if (ns[0] === "-") {
                                createDebug.skips.push(ns.slice(1));
                            } else {
                                createDebug.names.push(ns);
                            }
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                }
                function matchesTemplate(search, template) {
                    var searchIndex = 0;
                    var templateIndex = 0;
                    var starIndex = -1;
                    var matchIndex = 0;
                    while(searchIndex < search.length){
                        if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
                            if (template[templateIndex] === "*") {
                                starIndex = templateIndex;
                                matchIndex = searchIndex;
                                templateIndex++;
                            } else {
                                searchIndex++;
                                templateIndex++;
                            }
                        } else if (starIndex !== -1) {
                            templateIndex = starIndex + 1;
                            matchIndex++;
                            searchIndex = matchIndex;
                        } else {
                            return false;
                        }
                    }
                    while(templateIndex < template.length && template[templateIndex] === "*"){
                        templateIndex++;
                    }
                    return templateIndex === template.length;
                }
                function disable() {
                    var namespaces = _to_consumable_array(createDebug.names).concat(_to_consumable_array(createDebug.skips.map(function(namespace) {
                        return "-" + namespace;
                    }))).join(",");
                    createDebug.enable("");
                    return namespaces;
                }
                function enabled(name) {
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = createDebug.skips[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var skip = _step.value;
                            if (matchesTemplate(name, skip)) {
                                return false;
                            }
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                    var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                    try {
                        for(var _iterator1 = createDebug.names[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                            var ns = _step1.value;
                            if (matchesTemplate(name, ns)) {
                                return true;
                            }
                        }
                    } catch (err) {
                        _didIteratorError1 = true;
                        _iteratorError1 = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                _iterator1["return"]();
                            }
                        } finally{
                            if (_didIteratorError1) {
                                throw _iteratorError1;
                            }
                        }
                    }
                    return false;
                }
                function coerce(val) {
                    if (val instanceof Error) {
                        return val.stack || val.message;
                    }
                    return val;
                }
                function destroy() {
                    console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
                }
                createDebug.enable(createDebug.load());
                return createDebug;
            }
            module.exports = setup;
        }
    });
    // node_modules/@signageos/front-display/node_modules/debug/src/browser.js
    var require_browser2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/debug/src/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = localstorage();
            exports.destroy = /* @__PURE__ */ function() {
                var warned = false;
                return function() {
                    if (!warned) {
                        warned = true;
                        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
                    }
                };
            }();
            exports.colors = [
                "#0000CC",
                "#0000FF",
                "#0033CC",
                "#0033FF",
                "#0066CC",
                "#0066FF",
                "#0099CC",
                "#0099FF",
                "#00CC00",
                "#00CC33",
                "#00CC66",
                "#00CC99",
                "#00CCCC",
                "#00CCFF",
                "#3300CC",
                "#3300FF",
                "#3333CC",
                "#3333FF",
                "#3366CC",
                "#3366FF",
                "#3399CC",
                "#3399FF",
                "#33CC00",
                "#33CC33",
                "#33CC66",
                "#33CC99",
                "#33CCCC",
                "#33CCFF",
                "#6600CC",
                "#6600FF",
                "#6633CC",
                "#6633FF",
                "#66CC00",
                "#66CC33",
                "#9900CC",
                "#9900FF",
                "#9933CC",
                "#9933FF",
                "#99CC00",
                "#99CC33",
                "#CC0000",
                "#CC0033",
                "#CC0066",
                "#CC0099",
                "#CC00CC",
                "#CC00FF",
                "#CC3300",
                "#CC3333",
                "#CC3366",
                "#CC3399",
                "#CC33CC",
                "#CC33FF",
                "#CC6600",
                "#CC6633",
                "#CC9900",
                "#CC9933",
                "#CCCC00",
                "#CCCC33",
                "#FF0000",
                "#FF0033",
                "#FF0066",
                "#FF0099",
                "#FF00CC",
                "#FF00FF",
                "#FF3300",
                "#FF3333",
                "#FF3366",
                "#FF3399",
                "#FF33CC",
                "#FF33FF",
                "#FF6600",
                "#FF6633",
                "#FF9900",
                "#FF9933",
                "#FFCC00",
                "#FFCC33"
            ];
            function useColors() {
                if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
                    return true;
                }
                if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
                    return false;
                }
                var m;
                return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
                typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
                typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
            }
            function formatArgs(args) {
                args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
                if (!this.useColors) {
                    return;
                }
                var c = "color: " + this.color;
                args.splice(1, 0, c, "color: inherit");
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-zA-Z%]/g, function(match) {
                    if (match === "%%") {
                        return;
                    }
                    index++;
                    if (match === "%c") {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
            }
            exports.log = console.debug || console.log || function() {};
            function save(namespaces) {
                try {
                    if (namespaces) {
                        exports.storage.setItem("debug", namespaces);
                    } else {
                        exports.storage.removeItem("debug");
                    }
                } catch (error) {}
            }
            function load() {
                var r;
                try {
                    r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
                } catch (error) {}
                if (!r && typeof process !== "undefined" && "env" in process) {
                    r = process.env.DEBUG;
                }
                return r;
            }
            function localstorage() {
                try {
                    return localStorage;
                } catch (error) {}
            }
            module.exports = require_common()(exports);
            var formatters = module.exports.formatters;
            formatters.j = function(v) {
                try {
                    return JSON.stringify(v);
                } catch (error) {
                    return "[UnexpectedJSONParseError]: " + error.message;
                }
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Debug/debugSagas.js
    var require_debugSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Debug/debugSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.debugAllActions = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Debug:debugSagas");
            function debugAllActions() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)("*", function(action) {
                                    return _ts_generator(this, function(_state) {
                                        debug4(action.type, action);
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.debugAllActions = debugAllActions;
        }
    });
    // node_modules/@signageos/front-display/es6/Debug/debugConstants.js
    var require_debugConstants = __commonJS({
        "node_modules/@signageos/front-display/es6/Debug/debugConstants.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DEBUG_CHECK_INTERVAL_MS = void 0;
            exports.DEBUG_CHECK_INTERVAL_MS = 3e4;
        }
    });
    // node_modules/@signageos/front-display/es6/Property/Property.js
    var require_Property = __commonJS({
        "node_modules/@signageos/front-display/es6/Property/Property.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Property;
            (function(Property2) {
                Property2["TIMER_SETTINGS"] = "Device.Timer.Settings";
                Property2["NATIVE_TIMER_SETTINGS"] = "Device.Timer.NativeSettings";
                Property2["POWER_ACTIONS_SCHEDULE_SETTINGS"] = "Device.Power.Schedule";
                Property2["APPLET_TIMINGS_UPDATE_DEFINITION"] = "AppletTiming.updateDefinition";
                Property2["BRIGHTNESS_SETTINGS"] = "Device.Brightness.Settings";
                Property2["LAST_DEVICE_AUTH_HASH"] = "Device.lastDeviceAuthHash";
                Property2["PIN"] = "Input.enableControlPin";
                Property2["OFFLINE_ACTIONS_LISTS_PROPS"] = "Offline.ActionsListsProps";
                Property2["DEBUG_WEINRE_ENABLED"] = "Device.Debug.WeinreEnabled";
                Property2["DEBUG_WEINRE_SERVER_URL"] = "Device.Debug.WeinreServerURL";
                Property2["CURRENT_TIMEZONE_OFFSET"] = "DateTime.currentTimezoneOffset";
                Property2["INITIAL_SUBSCRIPTION_TYPE"] = "Device.InitialSubscriptionType";
                Property2["LAST_SUCCESSFUL_PING_AT"] = "License.LastSuccessfulPingAt";
                Property2["DEVICE_POLICY"] = "Device.Policy";
                Property2["DEVICE_POLICY_FAILS_COUNT_VOLUME"] = "Device.Policy.FailsCount.volume";
                Property2["DEVICE_POLICY_FAILS_COUNT_BRIGHTNESS"] = "Device.Policy.FailsCount.brightness";
                Property2["DEVICE_POLICY_FAILS_COUNT_TIMERS"] = "Device.Policy.FailsCount.timers";
                Property2["DEVICE_POLICY_FAILS_COUNT_PROPRIETARY_TIMERS"] = "Device.Policy.FailsCount.proprietaryTimers";
                Property2["DEVICE_POLICY_FAILS_COUNT_ORIENTATION"] = "Device.Policy.FailsCount.orientation";
                Property2["DEVICE_POLICY_FAILS_COUNT_RESOLUTION"] = "Device.Policy.FailsCount.resolution";
                Property2["DEVICE_POLICY_FAILS_COUNT_REMOTE_CONTROL"] = "Device.Policy.FailsCount.remoteControl";
                Property2["DEVICE_POLICY_FAILS_COUNT_APPLICATION_VERSION"] = "Device.Policy.FailsCount.applicationVersion";
                Property2["DEVICE_POLICY_FAILS_COUNT_FIRMWARE_VERSION"] = "Device.Policy.FailsCount.firmwareVersion";
                Property2["DEVICE_POLICY_FAILS_COUNT_DEBUG"] = "Device.Policy.FailsCount.debug";
                Property2["DEVICE_POLICY_FAILS_COUNT_DATETIME"] = "Device.Policy.FailsCount.datetime";
                Property2["DEVICE_POLICY_FAILS_COUNT_POWER_ACTIONS_SCHEDULE"] = "Device.Policy.FailsCount.powerActionsSchedule";
                Property2["DEVICE_POLICY_FAILS_COUNT_TEMPERATURE"] = "Device.Policy.FailsCount.temperature";
                Property2["DEVICE_POLICY_FAILS_COUNT_EXTENDED_MANAGEMENT"] = "Device.Policy.FailsCount.extendedManagement";
                Property2["DEVICE_POLICY_FAILS_COUNT_PEER_RECOVERY"] = "Device.Policy.FailsCount.peerRecovery";
                Property2["DEVICE_POLICY_FAILS_COUNT_AUTO_RECOVERY"] = "Device.Policy.FailsCount.autoRecovery";
                Property2["DEVICE_POLICY_FAILS_COUNT_PLUGIN"] = "Device.Policy.FailsCount.plugin";
                Property2["DEVICE_POLICY_FAILS_COUNT_RUNNER"] = "Device.Policy.FailsCount.runner";
                Property2["SUPRA_SCREEN_CONFIG"] = "Supra.Screen.Config";
                Property2["LATEST_REPORTED_SETTINGS_VOLUME"] = "Device.Settings.Report.Cache.volume";
                Property2["LATEST_REPORTED_SETTINGS_BRIGHTNESS"] = "Device.Settings.Report.Cache.brightness";
                Property2["LATEST_REPORTED_SETTINGS_TIMERS"] = "Device.Settings.Report.Cache.timers";
                Property2["LATEST_REPORTED_SETTINGS_PROPRIETARY_TIMERS"] = "Device.Settings.Report.Cache.proprietaryTimers";
                Property2["LATEST_REPORTED_SETTINGS_ORIENTATION"] = "Device.Settings.Report.Cache.orientation";
                Property2["LATEST_REPORTED_SETTINGS_RESOLUTION"] = "Device.Settings.Report.Cache.resolution";
                Property2["LATEST_REPORTED_SETTINGS_REMOTE_CONTROL"] = "Device.Settings.Report.Cache.remoteControl";
                Property2["LATEST_REPORTED_SETTINGS_APPLICATION_VERSION"] = "Device.Settings.Report.Cache.applicationVersion";
                Property2["LATEST_REPORTED_SETTINGS_FIRMWARE_VERSION"] = "Device.Settings.Report.Cache.firmwareVersion";
                Property2["LATEST_REPORTED_SETTINGS_DEBUG"] = "Device.Settings.Report.Cache.debug";
                Property2["LATEST_REPORTED_SETTINGS_DATETIME"] = "Device.Settings.Report.Cache.datetime";
                Property2["LATEST_REPORTED_SETTINGS_POWER_ACTIONS_SCHEDULE"] = "Device.Settings.Report.Cache.powerActionsSchedule";
                Property2["LATEST_REPORTED_SETTINGS_TEMPERATURE"] = "Device.Settings.Report.Cache.temperature";
                Property2["LATEST_REPORTED_SETTINGS_BUNDLED_APPLET"] = "Device.Settings.Report.Cache.bundledApplet";
                Property2["POWER_ACTIONS_SCHEDULE_SETTINGS_FRONT"] = "Front.Device.Power.Schedule";
                Property2["POWER_ACTIONS_SCHEDULE_SETTINGS_MANAGEMENT"] = "Management.Device.Power.Schedule";
                Property2["DEVICE_LOCATION"] = "Device.Location";
                Property2["DEVICE_ORGANIZATION_TAGS"] = "Device.OrganizationTags";
                Property2["DEVICE_PLUGINS"] = "Device.Plugins";
                Property2["DEVICE_RUNNERS"] = "Device.Runners";
                Property2["LATEST_REPORTED_SETTINGS_AUTO_RECOVERY"] = "Device.Settings.Report.Cache.autoRecovery";
                Property2["LATEST_REPORTED_SETTINGS_PEER_RECOVERY"] = "Device.Settings.Report.Cache.peerRecovery";
                Property2["LATEST_REPORTED_SETTINGS_MANAGEMENT_CAPABILITIES"] = "Device.Settings.Report.Cache.managementCapabilities";
                Property2["LATEST_REPORTED_SETTINGS_FRONT_CAPABILITIES"] = "Device.Settings.Report.Cache.frontCapabilities";
                Property2["LATEST_REPORTED_SETTINGS_WIFI_STRENGTH"] = "Device.Settings.Report.Cache.wifiStrength";
                Property2["LATEST_REPORTED_SETTINGS_PROXY"] = "Device.Settings.Report.Cache.proxy";
                Property2["LATEST_REPORTED_SETTINGS_NETWORK_INTERFACES"] = "Device.Settings.Report.Cache.networkInterfaces";
                Property2["LATEST_REPORTED_SETTINGS_DISPLAY_POWER_ON"] = "Device.Settings.Report.Cache.displayPowerOn";
                Property2["LATEST_REPORTED_SETTINGS_APP_MODULES"] = "Device.Settings.Report.Cache.appModules";
                Property2["LATEST_REPORTED_SETTINGS_FEATURE_FLAGS"] = "Device.Settings.Report.Cache.featureFlags";
                Property2["LATEST_REPORTED_SETTINGS_CRYPTOGRAPHIC_KEY"] = "Device.Settings.Report.Cache.cryptographicPublicKey";
                Property2["LATEST_REPORTED_SETTINGS_EXTENDED_MANAGEMENT"] = "Device.Settings.Report.Cache.extendedManagement";
                Property2["LATEST_REPORTED_SETTINGS_APPLET"] = "Device.Settings.Report.Cache.applet";
                Property2["LATEST_REPORTED_SETTINGS_PLUGIN"] = "Device.Settings.Report.Cache.plugin";
                Property2["LATEST_REPORTED_SETTINGS_RUNNER"] = "Device.Settings.Report.Cache.runner";
                Property2["LATEST_REPORTED_SETTINGS_RUNNER_CUSTOM"] = "Device.Settings.Report.Cache.runnerCustom";
                Property2["LATEST_REPORTED_SETTINGS_CPU_USAGE"] = "Device.Settings.Report.Cache.cpuUsage";
                Property2["LATEST_REPORTED_SETTINGS_MEMORY_USAGE"] = "Device.Settings.Report.Cache.memoryUsage";
                Property2["LATEST_REPORTED_SETTINGS_INSTALLED_PACKAGES"] = "Device.Settings.Report.Cache.installedPackages";
                Property2["LATEST_REPORTED_SETTINGS_SUPRA"] = "Device.Settings.Report.Cache.supra";
                Property2["TELEMETRY_STACK_STORAGE"] = "Device.Telemetry.StackStorage";
                Property2["TELEMETRY_INVALIDATION"] = "Device.Telemetry.cacheInvalidationInterval";
                Property2["TELEMETRY_INVALIDATED_AT"] = "Device.Telemetry.telemetryInvalidatedAt";
                Property2["TELEMETRY_TYPE_INVALIDATION"] = "Device.Telemetry.typeInvalidation";
                Property2["TELEMETRY_NEXT_INVALIDATION_AT"] = "Device.Telemetry.nextInvalidationAt";
            })(Property || (Property = {}));
            exports["default"] = Property;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/progressiveWait.js
    var require_progressiveWait = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/progressiveWait.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __generator = exports && exports.__generator || function(thisArg, body) {
                var _2 = {
                    label: 0,
                    sent: function sent() {
                        if (t[0] & 1) throw t[1];
                        return t[1];
                    },
                    trys: [],
                    ops: []
                }, f, y, t, g;
                return g = {
                    next: verb(0),
                    "throw": verb(1),
                    "return": verb(2)
                }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                }), g;
                function verb(n) {
                    return function(v) {
                        return step([
                            n,
                            v
                        ]);
                    };
                }
                function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    while(g && (g = 0, op[0] && (_2 = 0)), _2)try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        if (y = 0, t) op = [
                            op[0] & 2,
                            t.value
                        ];
                        switch(op[0]){
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _2.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _2.label++;
                                y = op[1];
                                op = [
                                    0
                                ];
                                continue;
                            case 7:
                                op = _2.ops.pop();
                                _2.trys.pop();
                                continue;
                            default:
                                if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _2 = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                    _2.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _2.label < t[1]) {
                                    _2.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _2.label < t[2]) {
                                    _2.label = t[2];
                                    _2.ops.push(op);
                                    break;
                                }
                                if (t[2]) _2.ops.pop();
                                _2.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _2);
                    } catch (e) {
                        op = [
                            6,
                            e
                        ];
                        y = 0;
                    } finally{
                        f = t = 0;
                    }
                    if (op[0] & 5) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: true
                    };
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createProgressiveWait = void 0;
            var wait_1 = __importDefault(require_wait());
            var createProgressiveWait = function createProgressiveWait(initialTimeoutMs, progressiveMultiplier, maxTimeoutMs) {
                if (progressiveMultiplier === void 0) {
                    progressiveMultiplier = 2;
                }
                if (maxTimeoutMs === void 0) {
                    maxTimeoutMs = initialTimeoutMs * 10;
                }
                var currentTimeoutMs = initialTimeoutMs;
                return {
                    wait: function wait() {
                        return __awaiter(this, arguments, void 0, function(options) {
                            if (options === void 0) {
                                options = {};
                            }
                            return __generator(this, function(_a2) {
                                switch(_a2.label){
                                    case 0:
                                        return [
                                            4,
                                            (0, wait_1["default"])(currentTimeoutMs, options)
                                        ];
                                    case 1:
                                        _a2.sent();
                                        currentTimeoutMs = this.getNextTimeoutMs();
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    },
                    reset: function reset() {
                        currentTimeoutMs = initialTimeoutMs;
                    },
                    getCurrentTimeoutMs: function getCurrentTimeoutMs() {
                        return currentTimeoutMs;
                    },
                    getNextTimeoutMs: function getNextTimeoutMs() {
                        return Math.min(currentTimeoutMs * progressiveMultiplier, maxTimeoutMs);
                    }
                };
            };
            exports.createProgressiveWait = createProgressiveWait;
        }
    });
    // node_modules/jsrsasign/lib/jsrsasign.js
    var require_jsrsasign = __commonJS({
        "node_modules/jsrsasign/lib/jsrsasign.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var navigator2 = {};
            navigator2.userAgent = false;
            var window2 = {};
            var VERSION = "10.9.0";
            var VERSION_FULL = "jsrsasign(all) 10.9.0 (2023-11-27) (c) 2010-2023 Kenji Urushima | kjur.github.io/jsrsasign/license";
            var CryptoJS = CryptoJS || function(e, g) {
                var a = {};
                var b = a.lib = {};
                var j = b.Base = /* @__PURE__ */ function() {
                    function n() {}
                    return {
                        extend: function extend(p) {
                            n.prototype = this;
                            var o = new n();
                            if (p) {
                                o.mixIn(p);
                            }
                            if (!o.hasOwnProperty("init")) {
                                o.init = function() {
                                    o.$super.init.apply(this, arguments);
                                };
                            }
                            o.init.prototype = o;
                            o.$super = this;
                            return o;
                        },
                        create: function create() {
                            var o = this.extend();
                            o.init.apply(o, arguments);
                            return o;
                        },
                        init: function init() {},
                        mixIn: function mixIn(p) {
                            for(var o in p){
                                if (p.hasOwnProperty(o)) {
                                    this[o] = p[o];
                                }
                            }
                            if (p.hasOwnProperty("toString")) {
                                this.toString = p.toString;
                            }
                        },
                        clone: function clone() {
                            return this.init.prototype.extend(this);
                        }
                    };
                }();
                var l = b.WordArray = j.extend({
                    init: function init(o, n) {
                        o = this.words = o || [];
                        if (n != g) {
                            this.sigBytes = n;
                        } else {
                            this.sigBytes = o.length * 4;
                        }
                    },
                    toString: function toString(n) {
                        return (n || h).stringify(this);
                    },
                    concat: function concat(t2) {
                        var q = this.words;
                        var p = t2.words;
                        var n = this.sigBytes;
                        var s = t2.sigBytes;
                        this.clamp();
                        if (n % 4) {
                            for(var r = 0; r < s; r++){
                                var o = p[r >>> 2] >>> 24 - r % 4 * 8 & 255;
                                q[n + r >>> 2] |= o << 24 - (n + r) % 4 * 8;
                            }
                        } else {
                            for(var r = 0; r < s; r += 4){
                                q[n + r >>> 2] = p[r >>> 2];
                            }
                        }
                        this.sigBytes += s;
                        return this;
                    },
                    clamp: function clamp() {
                        var o = this.words;
                        var n = this.sigBytes;
                        o[n >>> 2] &= 4294967295 << 32 - n % 4 * 8;
                        o.length = e.ceil(n / 4);
                    },
                    clone: function clone() {
                        var n = j.clone.call(this);
                        n.words = this.words.slice(0);
                        return n;
                    },
                    random: function random(p) {
                        var o = [];
                        for(var n = 0; n < p; n += 4){
                            o.push(e.random() * 4294967296 | 0);
                        }
                        return new l.init(o, p);
                    }
                });
                var m = a.enc = {};
                var h = m.Hex = {
                    stringify: function stringify(p) {
                        var r = p.words;
                        var o = p.sigBytes;
                        var q = [];
                        for(var n = 0; n < o; n++){
                            var s = r[n >>> 2] >>> 24 - n % 4 * 8 & 255;
                            q.push((s >>> 4).toString(16));
                            q.push((s & 15).toString(16));
                        }
                        return q.join("");
                    },
                    parse: function parse(p) {
                        var n = p.length;
                        var q = [];
                        for(var o = 0; o < n; o += 2){
                            q[o >>> 3] |= parseInt(p.substr(o, 2), 16) << 24 - o % 8 * 4;
                        }
                        return new l.init(q, n / 2);
                    }
                };
                var d = m.Latin1 = {
                    stringify: function stringify(q) {
                        var r = q.words;
                        var p = q.sigBytes;
                        var n = [];
                        for(var o = 0; o < p; o++){
                            var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;
                            n.push(String.fromCharCode(s));
                        }
                        return n.join("");
                    },
                    parse: function parse(p) {
                        var n = p.length;
                        var q = [];
                        for(var o = 0; o < n; o++){
                            q[o >>> 2] |= (p.charCodeAt(o) & 255) << 24 - o % 4 * 8;
                        }
                        return new l.init(q, n);
                    }
                };
                var c = m.Utf8 = {
                    stringify: function stringify(n) {
                        try {
                            return decodeURIComponent(escape(d.stringify(n)));
                        } catch (o) {
                            throw new Error("Malformed UTF-8 data");
                        }
                    },
                    parse: function parse(n) {
                        return d.parse(unescape(encodeURIComponent(n)));
                    }
                };
                var i = b.BufferedBlockAlgorithm = j.extend({
                    reset: function reset() {
                        this._data = new l.init();
                        this._nDataBytes = 0;
                    },
                    _append: function _append(n) {
                        if (typeof n == "string") {
                            n = c.parse(n);
                        }
                        this._data.concat(n);
                        this._nDataBytes += n.sigBytes;
                    },
                    _process: function _process(w) {
                        var q = this._data;
                        var x = q.words;
                        var n = q.sigBytes;
                        var t2 = this.blockSize;
                        var v = t2 * 4;
                        var u = n / v;
                        if (w) {
                            u = e.ceil(u);
                        } else {
                            u = e.max((u | 0) - this._minBufferSize, 0);
                        }
                        var s = u * t2;
                        var r = e.min(s * 4, n);
                        if (s) {
                            for(var p = 0; p < s; p += t2){
                                this._doProcessBlock(x, p);
                            }
                            var o = x.splice(0, s);
                            q.sigBytes -= r;
                        }
                        return new l.init(o, r);
                    },
                    clone: function clone() {
                        var n = j.clone.call(this);
                        n._data = this._data.clone();
                        return n;
                    },
                    _minBufferSize: 0
                });
                var f = b.Hasher = i.extend({
                    cfg: j.extend(),
                    init: function init(n) {
                        this.cfg = this.cfg.extend(n);
                        this.reset();
                    },
                    reset: function reset() {
                        i.reset.call(this);
                        this._doReset();
                    },
                    update: function update(n) {
                        this._append(n);
                        this._process();
                        return this;
                    },
                    finalize: function finalize(n) {
                        if (n) {
                            this._append(n);
                        }
                        var o = this._doFinalize();
                        return o;
                    },
                    blockSize: 512 / 32,
                    _createHelper: function _createHelper(n) {
                        return function(p, o) {
                            return new n.init(o).finalize(p);
                        };
                    },
                    _createHmacHelper: function _createHmacHelper(n) {
                        return function(p, o) {
                            return new k.HMAC.init(n, o).finalize(p);
                        };
                    }
                });
                var k = a.algo = {};
                return a;
            }(Math);
            (function(g) {
                var a = CryptoJS, f = a.lib, e = f.Base, h = f.WordArray, a = a.x64 = {};
                a.Word = e.extend({
                    init: function init(b, c) {
                        this.high = b;
                        this.low = c;
                    }
                });
                a.WordArray = e.extend({
                    init: function init(b, c) {
                        b = this.words = b || [];
                        this.sigBytes = c != g ? c : 8 * b.length;
                    },
                    toX32: function toX32() {
                        for(var b = this.words, c = b.length, a2 = [], d = 0; d < c; d++){
                            var e2 = b[d];
                            a2.push(e2.high);
                            a2.push(e2.low);
                        }
                        return h.create(a2, this.sigBytes);
                    },
                    clone: function clone() {
                        for(var b = e.clone.call(this), c = b.words = this.words.slice(0), a2 = c.length, d = 0; d < a2; d++)c[d] = c[d].clone();
                        return b;
                    }
                });
            })();
            CryptoJS.lib.Cipher || function(u) {
                var g = CryptoJS, f = g.lib, k = f.Base, l = f.WordArray, q = f.BufferedBlockAlgorithm, r = g.enc.Base64, v = g.algo.EvpKDF, n = f.Cipher = q.extend({
                    cfg: k.extend(),
                    createEncryptor: function createEncryptor(a, b) {
                        return this.create(this._ENC_XFORM_MODE, a, b);
                    },
                    createDecryptor: function createDecryptor(a, b) {
                        return this.create(this._DEC_XFORM_MODE, a, b);
                    },
                    init: function init(a, b, c) {
                        this.cfg = this.cfg.extend(c);
                        this._xformMode = a;
                        this._key = b;
                        this.reset();
                    },
                    reset: function reset() {
                        q.reset.call(this);
                        this._doReset();
                    },
                    process: function process(a) {
                        this._append(a);
                        return this._process();
                    },
                    finalize: function finalize(a) {
                        a && this._append(a);
                        return this._doFinalize();
                    },
                    keySize: 4,
                    ivSize: 4,
                    _ENC_XFORM_MODE: 1,
                    _DEC_XFORM_MODE: 2,
                    _createHelper: function _createHelper(a) {
                        return {
                            encrypt: function encrypt(b, c, d) {
                                return ("string" == typeof c ? s : j).encrypt(a, b, c, d);
                            },
                            decrypt: function decrypt(b, c, d) {
                                return ("string" == typeof c ? s : j).decrypt(a, b, c, d);
                            }
                        };
                    }
                });
                f.StreamCipher = n.extend({
                    _doFinalize: function _doFinalize() {
                        return this._process(true);
                    },
                    blockSize: 1
                });
                var m = g.mode = {}, t2 = function t2(a, b, c) {
                    var d = this._iv;
                    d ? this._iv = u : d = this._prevBlock;
                    for(var e = 0; e < c; e++)a[b + e] ^= d[e];
                }, h = (f.BlockCipherMode = k.extend({
                    createEncryptor: function createEncryptor(a, b) {
                        return this.Encryptor.create(a, b);
                    },
                    createDecryptor: function createDecryptor(a, b) {
                        return this.Decryptor.create(a, b);
                    },
                    init: function init(a, b) {
                        this._cipher = a;
                        this._iv = b;
                    }
                })).extend();
                h.Encryptor = h.extend({
                    processBlock: function processBlock(a, b) {
                        var c = this._cipher, d = c.blockSize;
                        t2.call(this, a, b, d);
                        c.encryptBlock(a, b);
                        this._prevBlock = a.slice(b, b + d);
                    }
                });
                h.Decryptor = h.extend({
                    processBlock: function processBlock(a, b) {
                        var c = this._cipher, d = c.blockSize, e = a.slice(b, b + d);
                        c.decryptBlock(a, b);
                        t2.call(this, a, b, d);
                        this._prevBlock = e;
                    }
                });
                m = m.CBC = h;
                h = (g.pad = {}).Pkcs7 = {
                    pad: function pad(a, b) {
                        for(var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, e = [], f2 = 0; f2 < c; f2 += 4)e.push(d);
                        c = l.create(e, c);
                        a.concat(c);
                    },
                    unpad: function unpad(a) {
                        a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255;
                    }
                };
                f.BlockCipher = n.extend({
                    cfg: n.cfg.extend({
                        mode: m,
                        padding: h
                    }),
                    reset: function reset() {
                        n.reset.call(this);
                        var a = this.cfg, b = a.iv, a = a.mode;
                        if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor;
                        else c = a.createDecryptor, this._minBufferSize = 1;
                        this._mode = c.call(a, this, b && b.words);
                    },
                    _doProcessBlock: function _doProcessBlock(a, b) {
                        this._mode.processBlock(a, b);
                    },
                    _doFinalize: function _doFinalize() {
                        var a = this.cfg.padding;
                        if (this._xformMode == this._ENC_XFORM_MODE) {
                            a.pad(this._data, this.blockSize);
                            var b = this._process(true);
                        } else b = this._process(true), a.unpad(b);
                        return b;
                    },
                    blockSize: 4
                });
                var p = f.CipherParams = k.extend({
                    init: function init(a) {
                        this.mixIn(a);
                    },
                    toString: function toString(a) {
                        return (a || this.formatter).stringify(this);
                    }
                }), m = (g.format = {}).OpenSSL = {
                    stringify: function stringify(a) {
                        var b = a.ciphertext;
                        a = a.salt;
                        return (a ? l.create([
                            1398893684,
                            1701076831
                        ]).concat(a).concat(b) : b).toString(r);
                    },
                    parse: function parse(a) {
                        a = r.parse(a);
                        var b = a.words;
                        if (1398893684 == b[0] && 1701076831 == b[1]) {
                            var c = l.create(b.slice(2, 4));
                            b.splice(0, 4);
                            a.sigBytes -= 16;
                        }
                        return p.create({
                            ciphertext: a,
                            salt: c
                        });
                    }
                }, j = f.SerializableCipher = k.extend({
                    cfg: k.extend({
                        format: m
                    }),
                    encrypt: function encrypt(a, b, c, d) {
                        d = this.cfg.extend(d);
                        var e = a.createEncryptor(c, d);
                        b = e.finalize(b);
                        e = e.cfg;
                        return p.create({
                            ciphertext: b,
                            key: c,
                            iv: e.iv,
                            algorithm: a,
                            mode: e.mode,
                            padding: e.padding,
                            blockSize: a.blockSize,
                            formatter: d.format
                        });
                    },
                    decrypt: function decrypt(a, b, c, d) {
                        d = this.cfg.extend(d);
                        b = this._parse(b, d.format);
                        return a.createDecryptor(c, d).finalize(b.ciphertext);
                    },
                    _parse: function _parse(a, b) {
                        return "string" == typeof a ? b.parse(a, this) : a;
                    }
                }), g = (g.kdf = {}).OpenSSL = {
                    execute: function execute(a, b, c, d) {
                        d || (d = l.random(8));
                        a = v.create({
                            keySize: b + c
                        }).compute(a, d);
                        c = l.create(a.words.slice(b), 4 * c);
                        a.sigBytes = 4 * b;
                        return p.create({
                            key: a,
                            iv: c,
                            salt: d
                        });
                    }
                }, s = f.PasswordBasedCipher = j.extend({
                    cfg: j.cfg.extend({
                        kdf: g
                    }),
                    encrypt: function encrypt(a, b, c, d) {
                        d = this.cfg.extend(d);
                        c = d.kdf.execute(c, a.keySize, a.ivSize);
                        d.iv = c.iv;
                        a = j.encrypt.call(this, a, b, c.key, d);
                        a.mixIn(c);
                        return a;
                    },
                    decrypt: function decrypt(a, b, c, d) {
                        d = this.cfg.extend(d);
                        b = this._parse(b, d.format);
                        c = d.kdf.execute(c, a.keySize, a.ivSize, b.salt);
                        d.iv = c.iv;
                        return j.decrypt.call(this, a, b, c.key, d);
                    }
                });
            }();
            (function() {
                for(var q = CryptoJS, x = q.lib.BlockCipher, r = q.algo, j = [], y = [], z2 = [], A = [], B = [], C = [], s = [], u = [], v = [], w = [], g = [], k = 0; 256 > k; k++)g[k] = 128 > k ? k << 1 : k << 1 ^ 283;
                for(var n = 0, l = 0, k = 0; 256 > k; k++){
                    var f = l ^ l << 1 ^ l << 2 ^ l << 3 ^ l << 4, f = f >>> 8 ^ f & 255 ^ 99;
                    j[n] = f;
                    y[f] = n;
                    var t2 = g[n], D = g[t2], E = g[D], b = 257 * g[f] ^ 16843008 * f;
                    z2[n] = b << 24 | b >>> 8;
                    A[n] = b << 16 | b >>> 16;
                    B[n] = b << 8 | b >>> 24;
                    C[n] = b;
                    b = 16843009 * E ^ 65537 * D ^ 257 * t2 ^ 16843008 * n;
                    s[f] = b << 24 | b >>> 8;
                    u[f] = b << 16 | b >>> 16;
                    v[f] = b << 8 | b >>> 24;
                    w[f] = b;
                    n ? (n = t2 ^ g[g[g[E ^ t2]]], l ^= g[g[l]]) : n = l = 1;
                }
                var F = [
                    0,
                    1,
                    2,
                    4,
                    8,
                    16,
                    32,
                    64,
                    128,
                    27,
                    54
                ], r = r.AES = x.extend({
                    _doReset: function _doReset() {
                        for(var c = this._key, e = c.words, a = c.sigBytes / 4, c = 4 * ((this._nRounds = a + 6) + 1), b2 = this._keySchedule = [], h = 0; h < c; h++)if (h < a) b2[h] = e[h];
                        else {
                            var d = b2[h - 1];
                            h % a ? 6 < a && 4 == h % a && (d = j[d >>> 24] << 24 | j[d >>> 16 & 255] << 16 | j[d >>> 8 & 255] << 8 | j[d & 255]) : (d = d << 8 | d >>> 24, d = j[d >>> 24] << 24 | j[d >>> 16 & 255] << 16 | j[d >>> 8 & 255] << 8 | j[d & 255], d ^= F[h / a | 0] << 24);
                            b2[h] = b2[h - a] ^ d;
                        }
                        e = this._invKeySchedule = [];
                        for(a = 0; a < c; a++)h = c - a, d = a % 4 ? b2[h] : b2[h - 4], e[a] = 4 > a || 4 >= h ? d : s[j[d >>> 24]] ^ u[j[d >>> 16 & 255]] ^ v[j[d >>> 8 & 255]] ^ w[j[d & 255]];
                    },
                    encryptBlock: function encryptBlock(c, e) {
                        this._doCryptBlock(c, e, this._keySchedule, z2, A, B, C, j);
                    },
                    decryptBlock: function decryptBlock(c, e) {
                        var a = c[e + 1];
                        c[e + 1] = c[e + 3];
                        c[e + 3] = a;
                        this._doCryptBlock(c, e, this._invKeySchedule, s, u, v, w, y);
                        a = c[e + 1];
                        c[e + 1] = c[e + 3];
                        c[e + 3] = a;
                    },
                    _doCryptBlock: function _doCryptBlock(c, e, a, b2, h, d, j2, m) {
                        for(var n2 = this._nRounds, f2 = c[e] ^ a[0], g2 = c[e + 1] ^ a[1], k2 = c[e + 2] ^ a[2], p = c[e + 3] ^ a[3], l2 = 4, t3 = 1; t3 < n2; t3++)var q2 = b2[f2 >>> 24] ^ h[g2 >>> 16 & 255] ^ d[k2 >>> 8 & 255] ^ j2[p & 255] ^ a[l2++], r2 = b2[g2 >>> 24] ^ h[k2 >>> 16 & 255] ^ d[p >>> 8 & 255] ^ j2[f2 & 255] ^ a[l2++], s2 = b2[k2 >>> 24] ^ h[p >>> 16 & 255] ^ d[f2 >>> 8 & 255] ^ j2[g2 & 255] ^ a[l2++], p = b2[p >>> 24] ^ h[f2 >>> 16 & 255] ^ d[g2 >>> 8 & 255] ^ j2[k2 & 255] ^ a[l2++], f2 = q2, g2 = r2, k2 = s2;
                        q2 = (m[f2 >>> 24] << 24 | m[g2 >>> 16 & 255] << 16 | m[k2 >>> 8 & 255] << 8 | m[p & 255]) ^ a[l2++];
                        r2 = (m[g2 >>> 24] << 24 | m[k2 >>> 16 & 255] << 16 | m[p >>> 8 & 255] << 8 | m[f2 & 255]) ^ a[l2++];
                        s2 = (m[k2 >>> 24] << 24 | m[p >>> 16 & 255] << 16 | m[f2 >>> 8 & 255] << 8 | m[g2 & 255]) ^ a[l2++];
                        p = (m[p >>> 24] << 24 | m[f2 >>> 16 & 255] << 16 | m[g2 >>> 8 & 255] << 8 | m[k2 & 255]) ^ a[l2++];
                        c[e] = q2;
                        c[e + 1] = r2;
                        c[e + 2] = s2;
                        c[e + 3] = p;
                    },
                    keySize: 8
                });
                q.AES = x._createHelper(r);
            })();
            (function() {
                function j(b, c) {
                    var a = (this._lBlock >>> b ^ this._rBlock) & c;
                    this._rBlock ^= a;
                    this._lBlock ^= a << b;
                }
                function l(b, c) {
                    var a = (this._rBlock >>> b ^ this._lBlock) & c;
                    this._lBlock ^= a;
                    this._rBlock ^= a << b;
                }
                var h = CryptoJS, e = h.lib, n = e.WordArray, e = e.BlockCipher, g = h.algo, q = [
                    57,
                    49,
                    41,
                    33,
                    25,
                    17,
                    9,
                    1,
                    58,
                    50,
                    42,
                    34,
                    26,
                    18,
                    10,
                    2,
                    59,
                    51,
                    43,
                    35,
                    27,
                    19,
                    11,
                    3,
                    60,
                    52,
                    44,
                    36,
                    63,
                    55,
                    47,
                    39,
                    31,
                    23,
                    15,
                    7,
                    62,
                    54,
                    46,
                    38,
                    30,
                    22,
                    14,
                    6,
                    61,
                    53,
                    45,
                    37,
                    29,
                    21,
                    13,
                    5,
                    28,
                    20,
                    12,
                    4
                ], p = [
                    14,
                    17,
                    11,
                    24,
                    1,
                    5,
                    3,
                    28,
                    15,
                    6,
                    21,
                    10,
                    23,
                    19,
                    12,
                    4,
                    26,
                    8,
                    16,
                    7,
                    27,
                    20,
                    13,
                    2,
                    41,
                    52,
                    31,
                    37,
                    47,
                    55,
                    30,
                    40,
                    51,
                    45,
                    33,
                    48,
                    44,
                    49,
                    39,
                    56,
                    34,
                    53,
                    46,
                    42,
                    50,
                    36,
                    29,
                    32
                ], r = [
                    1,
                    2,
                    4,
                    6,
                    8,
                    10,
                    12,
                    14,
                    15,
                    17,
                    19,
                    21,
                    23,
                    25,
                    27,
                    28
                ], s = [
                    {
                        "0": 8421888,
                        268435456: 32768,
                        536870912: 8421378,
                        805306368: 2,
                        1073741824: 512,
                        1342177280: 8421890,
                        1610612736: 8389122,
                        1879048192: 8388608,
                        2147483648: 514,
                        2415919104: 8389120,
                        2684354560: 33280,
                        2952790016: 8421376,
                        3221225472: 32770,
                        3489660928: 8388610,
                        3758096384: 0,
                        4026531840: 33282,
                        134217728: 0,
                        402653184: 8421890,
                        671088640: 33282,
                        939524096: 32768,
                        1207959552: 8421888,
                        1476395008: 512,
                        1744830464: 8421378,
                        2013265920: 2,
                        2281701376: 8389120,
                        2550136832: 33280,
                        2818572288: 8421376,
                        3087007744: 8389122,
                        3355443200: 8388610,
                        3623878656: 32770,
                        3892314112: 514,
                        4160749568: 8388608,
                        1: 32768,
                        268435457: 2,
                        536870913: 8421888,
                        805306369: 8388608,
                        1073741825: 8421378,
                        1342177281: 33280,
                        1610612737: 512,
                        1879048193: 8389122,
                        2147483649: 8421890,
                        2415919105: 8421376,
                        2684354561: 8388610,
                        2952790017: 33282,
                        3221225473: 514,
                        3489660929: 8389120,
                        3758096385: 32770,
                        4026531841: 0,
                        134217729: 8421890,
                        402653185: 8421376,
                        671088641: 8388608,
                        939524097: 512,
                        1207959553: 32768,
                        1476395009: 8388610,
                        1744830465: 2,
                        2013265921: 33282,
                        2281701377: 32770,
                        2550136833: 8389122,
                        2818572289: 514,
                        3087007745: 8421888,
                        3355443201: 8389120,
                        3623878657: 0,
                        3892314113: 33280,
                        4160749569: 8421378
                    },
                    {
                        "0": 1074282512,
                        16777216: 16384,
                        33554432: 524288,
                        50331648: 1074266128,
                        67108864: 1073741840,
                        83886080: 1074282496,
                        100663296: 1073758208,
                        117440512: 16,
                        134217728: 540672,
                        150994944: 1073758224,
                        167772160: 1073741824,
                        184549376: 540688,
                        201326592: 524304,
                        218103808: 0,
                        234881024: 16400,
                        251658240: 1074266112,
                        8388608: 1073758208,
                        25165824: 540688,
                        41943040: 16,
                        58720256: 1073758224,
                        75497472: 1074282512,
                        92274688: 1073741824,
                        109051904: 524288,
                        125829120: 1074266128,
                        142606336: 524304,
                        159383552: 0,
                        176160768: 16384,
                        192937984: 1074266112,
                        209715200: 1073741840,
                        226492416: 540672,
                        243269632: 1074282496,
                        260046848: 16400,
                        268435456: 0,
                        285212672: 1074266128,
                        301989888: 1073758224,
                        318767104: 1074282496,
                        335544320: 1074266112,
                        352321536: 16,
                        369098752: 540688,
                        385875968: 16384,
                        402653184: 16400,
                        419430400: 524288,
                        436207616: 524304,
                        452984832: 1073741840,
                        469762048: 540672,
                        486539264: 1073758208,
                        503316480: 1073741824,
                        520093696: 1074282512,
                        276824064: 540688,
                        293601280: 524288,
                        310378496: 1074266112,
                        327155712: 16384,
                        343932928: 1073758208,
                        360710144: 1074282512,
                        377487360: 16,
                        394264576: 1073741824,
                        411041792: 1074282496,
                        427819008: 1073741840,
                        444596224: 1073758224,
                        461373440: 524304,
                        478150656: 0,
                        494927872: 16400,
                        511705088: 1074266128,
                        528482304: 540672
                    },
                    {
                        "0": 260,
                        1048576: 0,
                        2097152: 67109120,
                        3145728: 65796,
                        4194304: 65540,
                        5242880: 67108868,
                        6291456: 67174660,
                        7340032: 67174400,
                        8388608: 67108864,
                        9437184: 67174656,
                        10485760: 65792,
                        11534336: 67174404,
                        12582912: 67109124,
                        13631488: 65536,
                        14680064: 4,
                        15728640: 256,
                        524288: 67174656,
                        1572864: 67174404,
                        2621440: 0,
                        3670016: 67109120,
                        4718592: 67108868,
                        5767168: 65536,
                        6815744: 65540,
                        7864320: 260,
                        8912896: 4,
                        9961472: 256,
                        11010048: 67174400,
                        12058624: 65796,
                        13107200: 65792,
                        14155776: 67109124,
                        15204352: 67174660,
                        16252928: 67108864,
                        16777216: 67174656,
                        17825792: 65540,
                        18874368: 65536,
                        19922944: 67109120,
                        20971520: 256,
                        22020096: 67174660,
                        23068672: 67108868,
                        24117248: 0,
                        25165824: 67109124,
                        26214400: 67108864,
                        27262976: 4,
                        28311552: 65792,
                        29360128: 67174400,
                        30408704: 260,
                        31457280: 65796,
                        32505856: 67174404,
                        17301504: 67108864,
                        18350080: 260,
                        19398656: 67174656,
                        20447232: 0,
                        21495808: 65540,
                        22544384: 67109120,
                        23592960: 256,
                        24641536: 67174404,
                        25690112: 65536,
                        26738688: 67174660,
                        27787264: 65796,
                        28835840: 67108868,
                        29884416: 67109124,
                        30932992: 67174400,
                        31981568: 4,
                        33030144: 65792
                    },
                    {
                        "0": 2151682048,
                        65536: 2147487808,
                        131072: 4198464,
                        196608: 2151677952,
                        262144: 0,
                        327680: 4198400,
                        393216: 2147483712,
                        458752: 4194368,
                        524288: 2147483648,
                        589824: 4194304,
                        655360: 64,
                        720896: 2147487744,
                        786432: 2151678016,
                        851968: 4160,
                        917504: 4096,
                        983040: 2151682112,
                        32768: 2147487808,
                        98304: 64,
                        163840: 2151678016,
                        229376: 2147487744,
                        294912: 4198400,
                        360448: 2151682112,
                        425984: 0,
                        491520: 2151677952,
                        557056: 4096,
                        622592: 2151682048,
                        688128: 4194304,
                        753664: 4160,
                        819200: 2147483648,
                        884736: 4194368,
                        950272: 4198464,
                        1015808: 2147483712,
                        1048576: 4194368,
                        1114112: 4198400,
                        1179648: 2147483712,
                        1245184: 0,
                        1310720: 4160,
                        1376256: 2151678016,
                        1441792: 2151682048,
                        1507328: 2147487808,
                        1572864: 2151682112,
                        1638400: 2147483648,
                        1703936: 2151677952,
                        1769472: 4198464,
                        1835008: 2147487744,
                        1900544: 4194304,
                        1966080: 64,
                        2031616: 4096,
                        1081344: 2151677952,
                        1146880: 2151682112,
                        1212416: 0,
                        1277952: 4198400,
                        1343488: 4194368,
                        1409024: 2147483648,
                        1474560: 2147487808,
                        1540096: 64,
                        1605632: 2147483712,
                        1671168: 4096,
                        1736704: 2147487744,
                        1802240: 2151678016,
                        1867776: 4160,
                        1933312: 2151682048,
                        1998848: 4194304,
                        2064384: 4198464
                    },
                    {
                        "0": 128,
                        4096: 17039360,
                        8192: 262144,
                        12288: 536870912,
                        16384: 537133184,
                        20480: 16777344,
                        24576: 553648256,
                        28672: 262272,
                        32768: 16777216,
                        36864: 537133056,
                        40960: 536871040,
                        45056: 553910400,
                        49152: 553910272,
                        53248: 0,
                        57344: 17039488,
                        61440: 553648128,
                        2048: 17039488,
                        6144: 553648256,
                        10240: 128,
                        14336: 17039360,
                        18432: 262144,
                        22528: 537133184,
                        26624: 553910272,
                        30720: 536870912,
                        34816: 537133056,
                        38912: 0,
                        43008: 553910400,
                        47104: 16777344,
                        51200: 536871040,
                        55296: 553648128,
                        59392: 16777216,
                        63488: 262272,
                        65536: 262144,
                        69632: 128,
                        73728: 536870912,
                        77824: 553648256,
                        81920: 16777344,
                        86016: 553910272,
                        90112: 537133184,
                        94208: 16777216,
                        98304: 553910400,
                        102400: 553648128,
                        106496: 17039360,
                        110592: 537133056,
                        114688: 262272,
                        118784: 536871040,
                        122880: 0,
                        126976: 17039488,
                        67584: 553648256,
                        71680: 16777216,
                        75776: 17039360,
                        79872: 537133184,
                        83968: 536870912,
                        88064: 17039488,
                        92160: 128,
                        96256: 553910272,
                        100352: 262272,
                        104448: 553910400,
                        108544: 0,
                        112640: 553648128,
                        116736: 16777344,
                        120832: 262144,
                        124928: 537133056,
                        129024: 536871040
                    },
                    {
                        "0": 268435464,
                        256: 8192,
                        512: 270532608,
                        768: 270540808,
                        1024: 268443648,
                        1280: 2097152,
                        1536: 2097160,
                        1792: 268435456,
                        2048: 0,
                        2304: 268443656,
                        2560: 2105344,
                        2816: 8,
                        3072: 270532616,
                        3328: 2105352,
                        3584: 8200,
                        3840: 270540800,
                        128: 270532608,
                        384: 270540808,
                        640: 8,
                        896: 2097152,
                        1152: 2105352,
                        1408: 268435464,
                        1664: 268443648,
                        1920: 8200,
                        2176: 2097160,
                        2432: 8192,
                        2688: 268443656,
                        2944: 270532616,
                        3200: 0,
                        3456: 270540800,
                        3712: 2105344,
                        3968: 268435456,
                        4096: 268443648,
                        4352: 270532616,
                        4608: 270540808,
                        4864: 8200,
                        5120: 2097152,
                        5376: 268435456,
                        5632: 268435464,
                        5888: 2105344,
                        6144: 2105352,
                        6400: 0,
                        6656: 8,
                        6912: 270532608,
                        7168: 8192,
                        7424: 268443656,
                        7680: 270540800,
                        7936: 2097160,
                        4224: 8,
                        4480: 2105344,
                        4736: 2097152,
                        4992: 268435464,
                        5248: 268443648,
                        5504: 8200,
                        5760: 270540808,
                        6016: 270532608,
                        6272: 270540800,
                        6528: 270532616,
                        6784: 8192,
                        7040: 2105352,
                        7296: 2097160,
                        7552: 0,
                        7808: 268435456,
                        8064: 268443656
                    },
                    {
                        "0": 1048576,
                        16: 33555457,
                        32: 1024,
                        48: 1049601,
                        64: 34604033,
                        80: 0,
                        96: 1,
                        112: 34603009,
                        128: 33555456,
                        144: 1048577,
                        160: 33554433,
                        176: 34604032,
                        192: 34603008,
                        208: 1025,
                        224: 1049600,
                        240: 33554432,
                        8: 34603009,
                        24: 0,
                        40: 33555457,
                        56: 34604032,
                        72: 1048576,
                        88: 33554433,
                        104: 33554432,
                        120: 1025,
                        136: 1049601,
                        152: 33555456,
                        168: 34603008,
                        184: 1048577,
                        200: 1024,
                        216: 34604033,
                        232: 1,
                        248: 1049600,
                        256: 33554432,
                        272: 1048576,
                        288: 33555457,
                        304: 34603009,
                        320: 1048577,
                        336: 33555456,
                        352: 34604032,
                        368: 1049601,
                        384: 1025,
                        400: 34604033,
                        416: 1049600,
                        432: 1,
                        448: 0,
                        464: 34603008,
                        480: 33554433,
                        496: 1024,
                        264: 1049600,
                        280: 33555457,
                        296: 34603009,
                        312: 1,
                        328: 33554432,
                        344: 1048576,
                        360: 1025,
                        376: 34604032,
                        392: 33554433,
                        408: 34603008,
                        424: 0,
                        440: 34604033,
                        456: 1049601,
                        472: 1024,
                        488: 33555456,
                        504: 1048577
                    },
                    {
                        "0": 134219808,
                        1: 131072,
                        2: 134217728,
                        3: 32,
                        4: 131104,
                        5: 134350880,
                        6: 134350848,
                        7: 2048,
                        8: 134348800,
                        9: 134219776,
                        10: 133120,
                        11: 134348832,
                        12: 2080,
                        13: 0,
                        14: 134217760,
                        15: 133152,
                        2147483648: 2048,
                        2147483649: 134350880,
                        2147483650: 134219808,
                        2147483651: 134217728,
                        2147483652: 134348800,
                        2147483653: 133120,
                        2147483654: 133152,
                        2147483655: 32,
                        2147483656: 134217760,
                        2147483657: 2080,
                        2147483658: 131104,
                        2147483659: 134350848,
                        2147483660: 0,
                        2147483661: 134348832,
                        2147483662: 134219776,
                        2147483663: 131072,
                        16: 133152,
                        17: 134350848,
                        18: 32,
                        19: 2048,
                        20: 134219776,
                        21: 134217760,
                        22: 134348832,
                        23: 131072,
                        24: 0,
                        25: 131104,
                        26: 134348800,
                        27: 134219808,
                        28: 134350880,
                        29: 133120,
                        30: 2080,
                        31: 134217728,
                        2147483664: 131072,
                        2147483665: 2048,
                        2147483666: 134348832,
                        2147483667: 133152,
                        2147483668: 32,
                        2147483669: 134348800,
                        2147483670: 134217728,
                        2147483671: 134219808,
                        2147483672: 134350880,
                        2147483673: 134217760,
                        2147483674: 134219776,
                        2147483675: 0,
                        2147483676: 133120,
                        2147483677: 2080,
                        2147483678: 131104,
                        2147483679: 134350848
                    }
                ], t2 = [
                    4160749569,
                    528482304,
                    33030144,
                    2064384,
                    129024,
                    8064,
                    504,
                    2147483679
                ], m = g.DES = e.extend({
                    _doReset: function _doReset() {
                        for(var b = this._key.words, c = [], a = 0; 56 > a; a++){
                            var f = q[a] - 1;
                            c[a] = b[f >>> 5] >>> 31 - f % 32 & 1;
                        }
                        b = this._subKeys = [];
                        for(f = 0; 16 > f; f++){
                            for(var d = b[f] = [], e2 = r[f], a = 0; 24 > a; a++)d[a / 6 | 0] |= c[(p[a] - 1 + e2) % 28] << 31 - a % 6, d[4 + (a / 6 | 0)] |= c[28 + (p[a + 24] - 1 + e2) % 28] << 31 - a % 6;
                            d[0] = d[0] << 1 | d[0] >>> 31;
                            for(a = 1; 7 > a; a++)d[a] >>>= 4 * (a - 1) + 3;
                            d[7] = d[7] << 5 | d[7] >>> 27;
                        }
                        c = this._invSubKeys = [];
                        for(a = 0; 16 > a; a++)c[a] = b[15 - a];
                    },
                    encryptBlock: function encryptBlock(b, c) {
                        this._doCryptBlock(b, c, this._subKeys);
                    },
                    decryptBlock: function decryptBlock(b, c) {
                        this._doCryptBlock(b, c, this._invSubKeys);
                    },
                    _doCryptBlock: function _doCryptBlock(b, c, a) {
                        this._lBlock = b[c];
                        this._rBlock = b[c + 1];
                        j.call(this, 4, 252645135);
                        j.call(this, 16, 65535);
                        l.call(this, 2, 858993459);
                        l.call(this, 8, 16711935);
                        j.call(this, 1, 1431655765);
                        for(var f = 0; 16 > f; f++){
                            for(var d = a[f], e2 = this._lBlock, h2 = this._rBlock, g2 = 0, k = 0; 8 > k; k++)g2 |= s[k][((h2 ^ d[k]) & t2[k]) >>> 0];
                            this._lBlock = h2;
                            this._rBlock = e2 ^ g2;
                        }
                        a = this._lBlock;
                        this._lBlock = this._rBlock;
                        this._rBlock = a;
                        j.call(this, 1, 1431655765);
                        l.call(this, 8, 16711935);
                        l.call(this, 2, 858993459);
                        j.call(this, 16, 65535);
                        j.call(this, 4, 252645135);
                        b[c] = this._lBlock;
                        b[c + 1] = this._rBlock;
                    },
                    keySize: 2,
                    ivSize: 2,
                    blockSize: 2
                });
                h.DES = e._createHelper(m);
                g = g.TripleDES = e.extend({
                    _doReset: function _doReset() {
                        var b = this._key.words;
                        this._des1 = m.createEncryptor(n.create(b.slice(0, 2)));
                        this._des2 = m.createEncryptor(n.create(b.slice(2, 4)));
                        this._des3 = m.createEncryptor(n.create(b.slice(4, 6)));
                    },
                    encryptBlock: function encryptBlock(b, c) {
                        this._des1.encryptBlock(b, c);
                        this._des2.decryptBlock(b, c);
                        this._des3.encryptBlock(b, c);
                    },
                    decryptBlock: function decryptBlock(b, c) {
                        this._des3.decryptBlock(b, c);
                        this._des2.encryptBlock(b, c);
                        this._des1.decryptBlock(b, c);
                    },
                    keySize: 6,
                    ivSize: 2,
                    blockSize: 2
                });
                h.TripleDES = e._createHelper(g);
            })();
            (function() {
                var h = CryptoJS, j = h.lib.WordArray;
                h.enc.Base64 = {
                    stringify: function stringify(b) {
                        var e = b.words, f = b.sigBytes, c = this._map;
                        b.clamp();
                        b = [];
                        for(var a = 0; a < f; a += 3)for(var d = (e[a >>> 2] >>> 24 - 8 * (a % 4) & 255) << 16 | (e[a + 1 >>> 2] >>> 24 - 8 * ((a + 1) % 4) & 255) << 8 | e[a + 2 >>> 2] >>> 24 - 8 * ((a + 2) % 4) & 255, g = 0; 4 > g && a + 0.75 * g < f; g++)b.push(c.charAt(d >>> 6 * (3 - g) & 63));
                        if (e = c.charAt(64)) for(; b.length % 4;)b.push(e);
                        return b.join("");
                    },
                    parse: function parse(b) {
                        var e = b.length, f = this._map, c = f.charAt(64);
                        c && (c = b.indexOf(c), -1 != c && (e = c));
                        for(var c = [], a = 0, d = 0; d < e; d++)if (d % 4) {
                            var g = f.indexOf(b.charAt(d - 1)) << 2 * (d % 4), h2 = f.indexOf(b.charAt(d)) >>> 6 - 2 * (d % 4);
                            c[a >>> 2] |= (g | h2) << 24 - 8 * (a % 4);
                            a++;
                        }
                        return j.create(c, a);
                    },
                    _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
                };
            })();
            (function(E) {
                function h(a2, f, g, j, p, h2, k2) {
                    a2 = a2 + (f & g | ~f & j) + p + k2;
                    return (a2 << h2 | a2 >>> 32 - h2) + f;
                }
                function k(a2, f, g, j, p, h2, k2) {
                    a2 = a2 + (f & j | g & ~j) + p + k2;
                    return (a2 << h2 | a2 >>> 32 - h2) + f;
                }
                function l(a2, f, g, j, h2, k2, l2) {
                    a2 = a2 + (f ^ g ^ j) + h2 + l2;
                    return (a2 << k2 | a2 >>> 32 - k2) + f;
                }
                function n(a2, f, g, j, h2, k2, l2) {
                    a2 = a2 + (g ^ (f | ~j)) + h2 + l2;
                    return (a2 << k2 | a2 >>> 32 - k2) + f;
                }
                for(var r = CryptoJS, q = r.lib, F = q.WordArray, s = q.Hasher, q = r.algo, a = [], t2 = 0; 64 > t2; t2++)a[t2] = 4294967296 * E.abs(E.sin(t2 + 1)) | 0;
                q = q.MD5 = s.extend({
                    _doReset: function _doReset() {
                        this._hash = new F.init([
                            1732584193,
                            4023233417,
                            2562383102,
                            271733878
                        ]);
                    },
                    _doProcessBlock: function _doProcessBlock(m, f) {
                        for(var g = 0; 16 > g; g++){
                            var j = f + g, p = m[j];
                            m[j] = (p << 8 | p >>> 24) & 16711935 | (p << 24 | p >>> 8) & 4278255360;
                        }
                        var g = this._hash.words, j = m[f + 0], p = m[f + 1], q2 = m[f + 2], r2 = m[f + 3], s2 = m[f + 4], t3 = m[f + 5], u = m[f + 6], v = m[f + 7], w = m[f + 8], x = m[f + 9], y = m[f + 10], z2 = m[f + 11], A = m[f + 12], B = m[f + 13], C = m[f + 14], D = m[f + 15], b = g[0], c = g[1], d = g[2], e = g[3], b = h(b, c, d, e, j, 7, a[0]), e = h(e, b, c, d, p, 12, a[1]), d = h(d, e, b, c, q2, 17, a[2]), c = h(c, d, e, b, r2, 22, a[3]), b = h(b, c, d, e, s2, 7, a[4]), e = h(e, b, c, d, t3, 12, a[5]), d = h(d, e, b, c, u, 17, a[6]), c = h(c, d, e, b, v, 22, a[7]), b = h(b, c, d, e, w, 7, a[8]), e = h(e, b, c, d, x, 12, a[9]), d = h(d, e, b, c, y, 17, a[10]), c = h(c, d, e, b, z2, 22, a[11]), b = h(b, c, d, e, A, 7, a[12]), e = h(e, b, c, d, B, 12, a[13]), d = h(d, e, b, c, C, 17, a[14]), c = h(c, d, e, b, D, 22, a[15]), b = k(b, c, d, e, p, 5, a[16]), e = k(e, b, c, d, u, 9, a[17]), d = k(d, e, b, c, z2, 14, a[18]), c = k(c, d, e, b, j, 20, a[19]), b = k(b, c, d, e, t3, 5, a[20]), e = k(e, b, c, d, y, 9, a[21]), d = k(d, e, b, c, D, 14, a[22]), c = k(c, d, e, b, s2, 20, a[23]), b = k(b, c, d, e, x, 5, a[24]), e = k(e, b, c, d, C, 9, a[25]), d = k(d, e, b, c, r2, 14, a[26]), c = k(c, d, e, b, w, 20, a[27]), b = k(b, c, d, e, B, 5, a[28]), e = k(e, b, c, d, q2, 9, a[29]), d = k(d, e, b, c, v, 14, a[30]), c = k(c, d, e, b, A, 20, a[31]), b = l(b, c, d, e, t3, 4, a[32]), e = l(e, b, c, d, w, 11, a[33]), d = l(d, e, b, c, z2, 16, a[34]), c = l(c, d, e, b, C, 23, a[35]), b = l(b, c, d, e, p, 4, a[36]), e = l(e, b, c, d, s2, 11, a[37]), d = l(d, e, b, c, v, 16, a[38]), c = l(c, d, e, b, y, 23, a[39]), b = l(b, c, d, e, B, 4, a[40]), e = l(e, b, c, d, j, 11, a[41]), d = l(d, e, b, c, r2, 16, a[42]), c = l(c, d, e, b, u, 23, a[43]), b = l(b, c, d, e, x, 4, a[44]), e = l(e, b, c, d, A, 11, a[45]), d = l(d, e, b, c, D, 16, a[46]), c = l(c, d, e, b, q2, 23, a[47]), b = n(b, c, d, e, j, 6, a[48]), e = n(e, b, c, d, v, 10, a[49]), d = n(d, e, b, c, C, 15, a[50]), c = n(c, d, e, b, t3, 21, a[51]), b = n(b, c, d, e, A, 6, a[52]), e = n(e, b, c, d, r2, 10, a[53]), d = n(d, e, b, c, y, 15, a[54]), c = n(c, d, e, b, p, 21, a[55]), b = n(b, c, d, e, w, 6, a[56]), e = n(e, b, c, d, D, 10, a[57]), d = n(d, e, b, c, u, 15, a[58]), c = n(c, d, e, b, B, 21, a[59]), b = n(b, c, d, e, s2, 6, a[60]), e = n(e, b, c, d, z2, 10, a[61]), d = n(d, e, b, c, q2, 15, a[62]), c = n(c, d, e, b, x, 21, a[63]);
                        g[0] = g[0] + b | 0;
                        g[1] = g[1] + c | 0;
                        g[2] = g[2] + d | 0;
                        g[3] = g[3] + e | 0;
                    },
                    _doFinalize: function _doFinalize() {
                        var a2 = this._data, f = a2.words, g = 8 * this._nDataBytes, j = 8 * a2.sigBytes;
                        f[j >>> 5] |= 128 << 24 - j % 32;
                        var h2 = E.floor(g / 4294967296);
                        f[(j + 64 >>> 9 << 4) + 15] = (h2 << 8 | h2 >>> 24) & 16711935 | (h2 << 24 | h2 >>> 8) & 4278255360;
                        f[(j + 64 >>> 9 << 4) + 14] = (g << 8 | g >>> 24) & 16711935 | (g << 24 | g >>> 8) & 4278255360;
                        a2.sigBytes = 4 * (f.length + 1);
                        this._process();
                        a2 = this._hash;
                        f = a2.words;
                        for(g = 0; 4 > g; g++)j = f[g], f[g] = (j << 8 | j >>> 24) & 16711935 | (j << 24 | j >>> 8) & 4278255360;
                        return a2;
                    },
                    clone: function clone() {
                        var a2 = s.clone.call(this);
                        a2._hash = this._hash.clone();
                        return a2;
                    }
                });
                r.MD5 = s._createHelper(q);
                r.HmacMD5 = s._createHmacHelper(q);
            })(Math);
            (function() {
                var k = CryptoJS, b = k.lib, m = b.WordArray, l = b.Hasher, d = [], b = k.algo.SHA1 = l.extend({
                    _doReset: function _doReset() {
                        this._hash = new m.init([
                            1732584193,
                            4023233417,
                            2562383102,
                            271733878,
                            3285377520
                        ]);
                    },
                    _doProcessBlock: function _doProcessBlock(n, p) {
                        for(var a = this._hash.words, e = a[0], f = a[1], h = a[2], j = a[3], b2 = a[4], c = 0; 80 > c; c++){
                            if (16 > c) d[c] = n[p + c] | 0;
                            else {
                                var g = d[c - 3] ^ d[c - 8] ^ d[c - 14] ^ d[c - 16];
                                d[c] = g << 1 | g >>> 31;
                            }
                            g = (e << 5 | e >>> 27) + b2 + d[c];
                            g = 20 > c ? g + ((f & h | ~f & j) + 1518500249) : 40 > c ? g + ((f ^ h ^ j) + 1859775393) : 60 > c ? g + ((f & h | f & j | h & j) - 1894007588) : g + ((f ^ h ^ j) - 899497514);
                            b2 = j;
                            j = h;
                            h = f << 30 | f >>> 2;
                            f = e;
                            e = g;
                        }
                        a[0] = a[0] + e | 0;
                        a[1] = a[1] + f | 0;
                        a[2] = a[2] + h | 0;
                        a[3] = a[3] + j | 0;
                        a[4] = a[4] + b2 | 0;
                    },
                    _doFinalize: function _doFinalize() {
                        var b2 = this._data, d2 = b2.words, a = 8 * this._nDataBytes, e = 8 * b2.sigBytes;
                        d2[e >>> 5] |= 128 << 24 - e % 32;
                        d2[(e + 64 >>> 9 << 4) + 14] = Math.floor(a / 4294967296);
                        d2[(e + 64 >>> 9 << 4) + 15] = a;
                        b2.sigBytes = 4 * d2.length;
                        this._process();
                        return this._hash;
                    },
                    clone: function clone() {
                        var b2 = l.clone.call(this);
                        b2._hash = this._hash.clone();
                        return b2;
                    }
                });
                k.SHA1 = l._createHelper(b);
                k.HmacSHA1 = l._createHmacHelper(b);
            })();
            (function(k) {
                for(var g = CryptoJS, h = g.lib, v = h.WordArray, j = h.Hasher, h = g.algo, s = [], t2 = [], u = function u(q) {
                    return 4294967296 * (q - (q | 0)) | 0;
                }, l = 2, b = 0; 64 > b;){
                    var d;
                    a: {
                        d = l;
                        for(var w = k.sqrt(d), r = 2; r <= w; r++)if (!(d % r)) {
                            d = false;
                            break a;
                        }
                        d = true;
                    }
                    d && (8 > b && (s[b] = u(k.pow(l, 0.5))), t2[b] = u(k.pow(l, 1 / 3)), b++);
                    l++;
                }
                var n = [], h = h.SHA256 = j.extend({
                    _doReset: function _doReset() {
                        this._hash = new v.init(s.slice(0));
                    },
                    _doProcessBlock: function _doProcessBlock(q, h2) {
                        for(var a = this._hash.words, c = a[0], d2 = a[1], b2 = a[2], k2 = a[3], f = a[4], g2 = a[5], j2 = a[6], l2 = a[7], e = 0; 64 > e; e++){
                            if (16 > e) n[e] = q[h2 + e] | 0;
                            else {
                                var m = n[e - 15], p = n[e - 2];
                                n[e] = ((m << 25 | m >>> 7) ^ (m << 14 | m >>> 18) ^ m >>> 3) + n[e - 7] + ((p << 15 | p >>> 17) ^ (p << 13 | p >>> 19) ^ p >>> 10) + n[e - 16];
                            }
                            m = l2 + ((f << 26 | f >>> 6) ^ (f << 21 | f >>> 11) ^ (f << 7 | f >>> 25)) + (f & g2 ^ ~f & j2) + t2[e] + n[e];
                            p = ((c << 30 | c >>> 2) ^ (c << 19 | c >>> 13) ^ (c << 10 | c >>> 22)) + (c & d2 ^ c & b2 ^ d2 & b2);
                            l2 = j2;
                            j2 = g2;
                            g2 = f;
                            f = k2 + m | 0;
                            k2 = b2;
                            b2 = d2;
                            d2 = c;
                            c = m + p | 0;
                        }
                        a[0] = a[0] + c | 0;
                        a[1] = a[1] + d2 | 0;
                        a[2] = a[2] + b2 | 0;
                        a[3] = a[3] + k2 | 0;
                        a[4] = a[4] + f | 0;
                        a[5] = a[5] + g2 | 0;
                        a[6] = a[6] + j2 | 0;
                        a[7] = a[7] + l2 | 0;
                    },
                    _doFinalize: function _doFinalize() {
                        var d2 = this._data, b2 = d2.words, a = 8 * this._nDataBytes, c = 8 * d2.sigBytes;
                        b2[c >>> 5] |= 128 << 24 - c % 32;
                        b2[(c + 64 >>> 9 << 4) + 14] = k.floor(a / 4294967296);
                        b2[(c + 64 >>> 9 << 4) + 15] = a;
                        d2.sigBytes = 4 * b2.length;
                        this._process();
                        return this._hash;
                    },
                    clone: function clone() {
                        var b2 = j.clone.call(this);
                        b2._hash = this._hash.clone();
                        return b2;
                    }
                });
                g.SHA256 = j._createHelper(h);
                g.HmacSHA256 = j._createHmacHelper(h);
            })(Math);
            (function() {
                var b = CryptoJS, d = b.lib.WordArray, a = b.algo, c = a.SHA256, a = a.SHA224 = c.extend({
                    _doReset: function _doReset() {
                        this._hash = new d.init([
                            3238371032,
                            914150663,
                            812702999,
                            4144912697,
                            4290775857,
                            1750603025,
                            1694076839,
                            3204075428
                        ]);
                    },
                    _doFinalize: function _doFinalize() {
                        var a2 = c._doFinalize.call(this);
                        a2.sigBytes -= 4;
                        return a2;
                    }
                });
                b.SHA224 = c._createHelper(a);
                b.HmacSHA224 = c._createHmacHelper(a);
            })();
            (function() {
                function a() {
                    return d.create.apply(d, arguments);
                }
                for(var n = CryptoJS, r = n.lib.Hasher, e = n.x64, d = e.Word, T = e.WordArray, e = n.algo, ea = [
                    a(1116352408, 3609767458),
                    a(1899447441, 602891725),
                    a(3049323471, 3964484399),
                    a(3921009573, 2173295548),
                    a(961987163, 4081628472),
                    a(1508970993, 3053834265),
                    a(2453635748, 2937671579),
                    a(2870763221, 3664609560),
                    a(3624381080, 2734883394),
                    a(310598401, 1164996542),
                    a(607225278, 1323610764),
                    a(1426881987, 3590304994),
                    a(1925078388, 4068182383),
                    a(2162078206, 991336113),
                    a(2614888103, 633803317),
                    a(3248222580, 3479774868),
                    a(3835390401, 2666613458),
                    a(4022224774, 944711139),
                    a(264347078, 2341262773),
                    a(604807628, 2007800933),
                    a(770255983, 1495990901),
                    a(1249150122, 1856431235),
                    a(1555081692, 3175218132),
                    a(1996064986, 2198950837),
                    a(2554220882, 3999719339),
                    a(2821834349, 766784016),
                    a(2952996808, 2566594879),
                    a(3210313671, 3203337956),
                    a(3336571891, 1034457026),
                    a(3584528711, 2466948901),
                    a(113926993, 3758326383),
                    a(338241895, 168717936),
                    a(666307205, 1188179964),
                    a(773529912, 1546045734),
                    a(1294757372, 1522805485),
                    a(1396182291, 2643833823),
                    a(1695183700, 2343527390),
                    a(1986661051, 1014477480),
                    a(2177026350, 1206759142),
                    a(2456956037, 344077627),
                    a(2730485921, 1290863460),
                    a(2820302411, 3158454273),
                    a(3259730800, 3505952657),
                    a(3345764771, 106217008),
                    a(3516065817, 3606008344),
                    a(3600352804, 1432725776),
                    a(4094571909, 1467031594),
                    a(275423344, 851169720),
                    a(430227734, 3100823752),
                    a(506948616, 1363258195),
                    a(659060556, 3750685593),
                    a(883997877, 3785050280),
                    a(958139571, 3318307427),
                    a(1322822218, 3812723403),
                    a(1537002063, 2003034995),
                    a(1747873779, 3602036899),
                    a(1955562222, 1575990012),
                    a(2024104815, 1125592928),
                    a(2227730452, 2716904306),
                    a(2361852424, 442776044),
                    a(2428436474, 593698344),
                    a(2756734187, 3733110249),
                    a(3204031479, 2999351573),
                    a(3329325298, 3815920427),
                    a(3391569614, 3928383900),
                    a(3515267271, 566280711),
                    a(3940187606, 3454069534),
                    a(4118630271, 4000239992),
                    a(116418474, 1914138554),
                    a(174292421, 2731055270),
                    a(289380356, 3203993006),
                    a(460393269, 320620315),
                    a(685471733, 587496836),
                    a(852142971, 1086792851),
                    a(1017036298, 365543100),
                    a(1126000580, 2618297676),
                    a(1288033470, 3409855158),
                    a(1501505948, 4234509866),
                    a(1607167915, 987167468),
                    a(1816402316, 1246189591)
                ], v = [], w = 0; 80 > w; w++)v[w] = a();
                e = e.SHA512 = r.extend({
                    _doReset: function _doReset() {
                        this._hash = new T.init([
                            new d.init(1779033703, 4089235720),
                            new d.init(3144134277, 2227873595),
                            new d.init(1013904242, 4271175723),
                            new d.init(2773480762, 1595750129),
                            new d.init(1359893119, 2917565137),
                            new d.init(2600822924, 725511199),
                            new d.init(528734635, 4215389547),
                            new d.init(1541459225, 327033209)
                        ]);
                    },
                    _doProcessBlock: function _doProcessBlock(a2, d2) {
                        for(var f = this._hash.words, F = f[0], e2 = f[1], n2 = f[2], r2 = f[3], G = f[4], H = f[5], I = f[6], f = f[7], w2 = F.high, J = F.low, X = e2.high, K = e2.low, Y = n2.high, L = n2.low, Z = r2.high, M = r2.low, $ = G.high, N = G.low, aa = H.high, O = H.low, ba = I.high, P = I.low, ca = f.high, Q = f.low, k = w2, g = J, z2 = X, x = K, A = Y, y = L, U = Z, B = M, l = $, h = N, R = aa, C = O, S = ba, D = P, V = ca, E = Q, m = 0; 80 > m; m++){
                            var s = v[m];
                            if (16 > m) var j = s.high = a2[d2 + 2 * m] | 0, b = s.low = a2[d2 + 2 * m + 1] | 0;
                            else {
                                var j = v[m - 15], b = j.high, p = j.low, j = (b >>> 1 | p << 31) ^ (b >>> 8 | p << 24) ^ b >>> 7, p = (p >>> 1 | b << 31) ^ (p >>> 8 | b << 24) ^ (p >>> 7 | b << 25), u = v[m - 2], b = u.high, c = u.low, u = (b >>> 19 | c << 13) ^ (b << 3 | c >>> 29) ^ b >>> 6, c = (c >>> 19 | b << 13) ^ (c << 3 | b >>> 29) ^ (c >>> 6 | b << 26), b = v[m - 7], W = b.high, t2 = v[m - 16], q = t2.high, t2 = t2.low, b = p + b.low, j = j + W + (b >>> 0 < p >>> 0 ? 1 : 0), b = b + c, j = j + u + (b >>> 0 < c >>> 0 ? 1 : 0), b = b + t2, j = j + q + (b >>> 0 < t2 >>> 0 ? 1 : 0);
                                s.high = j;
                                s.low = b;
                            }
                            var W = l & R ^ ~l & S, t2 = h & C ^ ~h & D, s = k & z2 ^ k & A ^ z2 & A, T2 = g & x ^ g & y ^ x & y, p = (k >>> 28 | g << 4) ^ (k << 30 | g >>> 2) ^ (k << 25 | g >>> 7), u = (g >>> 28 | k << 4) ^ (g << 30 | k >>> 2) ^ (g << 25 | k >>> 7), c = ea[m], fa = c.high, da = c.low, c = E + ((h >>> 14 | l << 18) ^ (h >>> 18 | l << 14) ^ (h << 23 | l >>> 9)), q = V + ((l >>> 14 | h << 18) ^ (l >>> 18 | h << 14) ^ (l << 23 | h >>> 9)) + (c >>> 0 < E >>> 0 ? 1 : 0), c = c + t2, q = q + W + (c >>> 0 < t2 >>> 0 ? 1 : 0), c = c + da, q = q + fa + (c >>> 0 < da >>> 0 ? 1 : 0), c = c + b, q = q + j + (c >>> 0 < b >>> 0 ? 1 : 0), b = u + T2, s = p + s + (b >>> 0 < u >>> 0 ? 1 : 0), V = S, E = D, S = R, D = C, R = l, C = h, h = B + c | 0, l = U + q + (h >>> 0 < B >>> 0 ? 1 : 0) | 0, U = A, B = y, A = z2, y = x, z2 = k, x = g, g = c + b | 0, k = q + s + (g >>> 0 < c >>> 0 ? 1 : 0) | 0;
                        }
                        J = F.low = J + g;
                        F.high = w2 + k + (J >>> 0 < g >>> 0 ? 1 : 0);
                        K = e2.low = K + x;
                        e2.high = X + z2 + (K >>> 0 < x >>> 0 ? 1 : 0);
                        L = n2.low = L + y;
                        n2.high = Y + A + (L >>> 0 < y >>> 0 ? 1 : 0);
                        M = r2.low = M + B;
                        r2.high = Z + U + (M >>> 0 < B >>> 0 ? 1 : 0);
                        N = G.low = N + h;
                        G.high = $ + l + (N >>> 0 < h >>> 0 ? 1 : 0);
                        O = H.low = O + C;
                        H.high = aa + R + (O >>> 0 < C >>> 0 ? 1 : 0);
                        P = I.low = P + D;
                        I.high = ba + S + (P >>> 0 < D >>> 0 ? 1 : 0);
                        Q = f.low = Q + E;
                        f.high = ca + V + (Q >>> 0 < E >>> 0 ? 1 : 0);
                    },
                    _doFinalize: function _doFinalize() {
                        var a2 = this._data, d2 = a2.words, f = 8 * this._nDataBytes, e2 = 8 * a2.sigBytes;
                        d2[e2 >>> 5] |= 128 << 24 - e2 % 32;
                        d2[(e2 + 128 >>> 10 << 5) + 30] = Math.floor(f / 4294967296);
                        d2[(e2 + 128 >>> 10 << 5) + 31] = f;
                        a2.sigBytes = 4 * d2.length;
                        this._process();
                        return this._hash.toX32();
                    },
                    clone: function clone() {
                        var a2 = r.clone.call(this);
                        a2._hash = this._hash.clone();
                        return a2;
                    },
                    blockSize: 32
                });
                n.SHA512 = r._createHelper(e);
                n.HmacSHA512 = r._createHmacHelper(e);
            })();
            (function() {
                var c = CryptoJS, a = c.x64, b = a.Word, e = a.WordArray, a = c.algo, d = a.SHA512, a = a.SHA384 = d.extend({
                    _doReset: function _doReset() {
                        this._hash = new e.init([
                            new b.init(3418070365, 3238371032),
                            new b.init(1654270250, 914150663),
                            new b.init(2438529370, 812702999),
                            new b.init(355462360, 4144912697),
                            new b.init(1731405415, 4290775857),
                            new b.init(2394180231, 1750603025),
                            new b.init(3675008525, 1694076839),
                            new b.init(1203062813, 3204075428)
                        ]);
                    },
                    _doFinalize: function _doFinalize() {
                        var a2 = d._doFinalize.call(this);
                        a2.sigBytes -= 16;
                        return a2;
                    }
                });
                c.SHA384 = d._createHelper(a);
                c.HmacSHA384 = d._createHmacHelper(a);
            })();
            (function() {
                var q = CryptoJS, d = q.lib, n = d.WordArray, p = d.Hasher, d = q.algo, x = n.create([
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    7,
                    4,
                    13,
                    1,
                    10,
                    6,
                    15,
                    3,
                    12,
                    0,
                    9,
                    5,
                    2,
                    14,
                    11,
                    8,
                    3,
                    10,
                    14,
                    4,
                    9,
                    15,
                    8,
                    1,
                    2,
                    7,
                    0,
                    6,
                    13,
                    11,
                    5,
                    12,
                    1,
                    9,
                    11,
                    10,
                    0,
                    8,
                    12,
                    4,
                    13,
                    3,
                    7,
                    15,
                    14,
                    5,
                    6,
                    2,
                    4,
                    0,
                    5,
                    9,
                    7,
                    12,
                    2,
                    10,
                    14,
                    1,
                    3,
                    8,
                    11,
                    6,
                    15,
                    13
                ]), y = n.create([
                    5,
                    14,
                    7,
                    0,
                    9,
                    2,
                    11,
                    4,
                    13,
                    6,
                    15,
                    8,
                    1,
                    10,
                    3,
                    12,
                    6,
                    11,
                    3,
                    7,
                    0,
                    13,
                    5,
                    10,
                    14,
                    15,
                    8,
                    12,
                    4,
                    9,
                    1,
                    2,
                    15,
                    5,
                    1,
                    3,
                    7,
                    14,
                    6,
                    9,
                    11,
                    8,
                    12,
                    2,
                    10,
                    0,
                    4,
                    13,
                    8,
                    6,
                    4,
                    1,
                    3,
                    11,
                    15,
                    0,
                    5,
                    12,
                    2,
                    13,
                    9,
                    7,
                    10,
                    14,
                    12,
                    15,
                    10,
                    4,
                    1,
                    5,
                    8,
                    7,
                    6,
                    2,
                    13,
                    14,
                    0,
                    3,
                    9,
                    11
                ]), z2 = n.create([
                    11,
                    14,
                    15,
                    12,
                    5,
                    8,
                    7,
                    9,
                    11,
                    13,
                    14,
                    15,
                    6,
                    7,
                    9,
                    8,
                    7,
                    6,
                    8,
                    13,
                    11,
                    9,
                    7,
                    15,
                    7,
                    12,
                    15,
                    9,
                    11,
                    7,
                    13,
                    12,
                    11,
                    13,
                    6,
                    7,
                    14,
                    9,
                    13,
                    15,
                    14,
                    8,
                    13,
                    6,
                    5,
                    12,
                    7,
                    5,
                    11,
                    12,
                    14,
                    15,
                    14,
                    15,
                    9,
                    8,
                    9,
                    14,
                    5,
                    6,
                    8,
                    6,
                    5,
                    12,
                    9,
                    15,
                    5,
                    11,
                    6,
                    8,
                    13,
                    12,
                    5,
                    12,
                    13,
                    14,
                    11,
                    8,
                    5,
                    6
                ]), A = n.create([
                    8,
                    9,
                    9,
                    11,
                    13,
                    15,
                    15,
                    5,
                    7,
                    7,
                    8,
                    11,
                    14,
                    14,
                    12,
                    6,
                    9,
                    13,
                    15,
                    7,
                    12,
                    8,
                    9,
                    11,
                    7,
                    7,
                    12,
                    7,
                    6,
                    15,
                    13,
                    11,
                    9,
                    7,
                    15,
                    11,
                    8,
                    6,
                    6,
                    14,
                    12,
                    13,
                    5,
                    14,
                    13,
                    13,
                    7,
                    5,
                    15,
                    5,
                    8,
                    11,
                    14,
                    14,
                    6,
                    14,
                    6,
                    9,
                    12,
                    9,
                    12,
                    5,
                    15,
                    8,
                    8,
                    5,
                    12,
                    9,
                    12,
                    5,
                    14,
                    6,
                    8,
                    13,
                    6,
                    5,
                    15,
                    13,
                    11,
                    11
                ]), B = n.create([
                    0,
                    1518500249,
                    1859775393,
                    2400959708,
                    2840853838
                ]), C = n.create([
                    1352829926,
                    1548603684,
                    1836072691,
                    2053994217,
                    0
                ]), d = d.RIPEMD160 = p.extend({
                    _doReset: function _doReset() {
                        this._hash = n.create([
                            1732584193,
                            4023233417,
                            2562383102,
                            271733878,
                            3285377520
                        ]);
                    },
                    _doProcessBlock: function _doProcessBlock(e, v) {
                        for(var b = 0; 16 > b; b++){
                            var c = v + b, f = e[c];
                            e[c] = (f << 8 | f >>> 24) & 16711935 | (f << 24 | f >>> 8) & 4278255360;
                        }
                        var c = this._hash.words, f = B.words, d2 = C.words, n2 = x.words, q2 = y.words, p2 = z2.words, w = A.words, t2, g, h, j, r, u, k, l, m, s;
                        u = t2 = c[0];
                        k = g = c[1];
                        l = h = c[2];
                        m = j = c[3];
                        s = r = c[4];
                        for(var a, b = 0; 80 > b; b += 1)a = t2 + e[v + n2[b]] | 0, a = 16 > b ? a + ((g ^ h ^ j) + f[0]) : 32 > b ? a + ((g & h | ~g & j) + f[1]) : 48 > b ? a + (((g | ~h) ^ j) + f[2]) : 64 > b ? a + ((g & j | h & ~j) + f[3]) : a + ((g ^ (h | ~j)) + f[4]), a |= 0, a = a << p2[b] | a >>> 32 - p2[b], a = a + r | 0, t2 = r, r = j, j = h << 10 | h >>> 22, h = g, g = a, a = u + e[v + q2[b]] | 0, a = 16 > b ? a + ((k ^ (l | ~m)) + d2[0]) : 32 > b ? a + ((k & m | l & ~m) + d2[1]) : 48 > b ? a + (((k | ~l) ^ m) + d2[2]) : 64 > b ? a + ((k & l | ~k & m) + d2[3]) : a + ((k ^ l ^ m) + d2[4]), a |= 0, a = a << w[b] | a >>> 32 - w[b], a = a + s | 0, u = s, s = m, m = l << 10 | l >>> 22, l = k, k = a;
                        a = c[1] + h + m | 0;
                        c[1] = c[2] + j + s | 0;
                        c[2] = c[3] + r + u | 0;
                        c[3] = c[4] + t2 + k | 0;
                        c[4] = c[0] + g + l | 0;
                        c[0] = a;
                    },
                    _doFinalize: function _doFinalize() {
                        var e = this._data, d2 = e.words, b = 8 * this._nDataBytes, c = 8 * e.sigBytes;
                        d2[c >>> 5] |= 128 << 24 - c % 32;
                        d2[(c + 64 >>> 9 << 4) + 14] = (b << 8 | b >>> 24) & 16711935 | (b << 24 | b >>> 8) & 4278255360;
                        e.sigBytes = 4 * (d2.length + 1);
                        this._process();
                        e = this._hash;
                        d2 = e.words;
                        for(b = 0; 5 > b; b++)c = d2[b], d2[b] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360;
                        return e;
                    },
                    clone: function clone() {
                        var d2 = p.clone.call(this);
                        d2._hash = this._hash.clone();
                        return d2;
                    }
                });
                q.RIPEMD160 = p._createHelper(d);
                q.HmacRIPEMD160 = p._createHmacHelper(d);
            })(Math);
            (function() {
                var c = CryptoJS, k = c.enc.Utf8;
                c.algo.HMAC = c.lib.Base.extend({
                    init: function init(a, b) {
                        a = this._hasher = new a.init();
                        "string" == typeof b && (b = k.parse(b));
                        var c2 = a.blockSize, e = 4 * c2;
                        b.sigBytes > e && (b = a.finalize(b));
                        b.clamp();
                        for(var f = this._oKey = b.clone(), g = this._iKey = b.clone(), h = f.words, j = g.words, d = 0; d < c2; d++)h[d] ^= 1549556828, j[d] ^= 909522486;
                        f.sigBytes = g.sigBytes = e;
                        this.reset();
                    },
                    reset: function reset() {
                        var a = this._hasher;
                        a.reset();
                        a.update(this._iKey);
                    },
                    update: function update(a) {
                        this._hasher.update(a);
                        return this;
                    },
                    finalize: function finalize(a) {
                        var b = this._hasher;
                        a = b.finalize(a);
                        b.reset();
                        return b.finalize(this._oKey.clone().concat(a));
                    }
                });
            })();
            (function() {
                var b = CryptoJS, a = b.lib, d = a.Base, m = a.WordArray, a = b.algo, q = a.HMAC, l = a.PBKDF2 = d.extend({
                    cfg: d.extend({
                        keySize: 4,
                        hasher: a.SHA1,
                        iterations: 1
                    }),
                    init: function init(a2) {
                        this.cfg = this.cfg.extend(a2);
                    },
                    compute: function compute(a2, b2) {
                        for(var c = this.cfg, f = q.create(c.hasher, a2), g = m.create(), d2 = m.create([
                            1
                        ]), l2 = g.words, r = d2.words, n = c.keySize, c = c.iterations; l2.length < n;){
                            var h = f.update(b2).finalize(d2);
                            f.reset();
                            for(var j = h.words, s = j.length, k = h, p = 1; p < c; p++){
                                k = f.finalize(k);
                                f.reset();
                                for(var t2 = k.words, e = 0; e < s; e++)j[e] ^= t2[e];
                            }
                            g.concat(h);
                            r[0]++;
                        }
                        g.sigBytes = 4 * n;
                        return g;
                    }
                });
                b.PBKDF2 = function(a2, b2, c) {
                    return l.create(c).compute(a2, b2);
                };
            })();
            var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
            var b64pad = "=";
            function hex2b64(d) {
                var b;
                var e;
                var a = "";
                for(b = 0; b + 3 <= d.length; b += 3){
                    e = parseInt(d.substring(b, b + 3), 16);
                    a += b64map.charAt(e >> 6) + b64map.charAt(e & 63);
                }
                if (b + 1 == d.length) {
                    e = parseInt(d.substring(b, b + 1), 16);
                    a += b64map.charAt(e << 2);
                } else {
                    if (b + 2 == d.length) {
                        e = parseInt(d.substring(b, b + 2), 16);
                        a += b64map.charAt(e >> 2) + b64map.charAt((e & 3) << 4);
                    }
                }
                if (b64pad) {
                    while((a.length & 3) > 0){
                        a += b64pad;
                    }
                }
                return a;
            }
            function b64tohex(f) {
                var d = "";
                var e;
                var b = 0;
                var c;
                var a;
                for(e = 0; e < f.length; ++e){
                    if (f.charAt(e) == b64pad) {
                        break;
                    }
                    a = b64map.indexOf(f.charAt(e));
                    if (a < 0) {
                        continue;
                    }
                    if (b == 0) {
                        d += int2char(a >> 2);
                        c = a & 3;
                        b = 1;
                    } else {
                        if (b == 1) {
                            d += int2char(c << 2 | a >> 4);
                            c = a & 15;
                            b = 2;
                        } else {
                            if (b == 2) {
                                d += int2char(c);
                                d += int2char(a >> 2);
                                c = a & 3;
                                b = 3;
                            } else {
                                d += int2char(c << 2 | a >> 4);
                                d += int2char(a & 15);
                                b = 0;
                            }
                        }
                    }
                }
                if (b == 1) {
                    d += int2char(c << 2);
                }
                return d;
            }
            function b64toBA(e) {
                var d = b64tohex(e);
                var c;
                var b = new Array();
                for(c = 0; 2 * c < d.length; ++c){
                    b[c] = parseInt(d.substring(2 * c, 2 * c + 2), 16);
                }
                return b;
            }
            var dbits;
            var canary = 244837814094590;
            var j_lm = (canary & 16777215) == 15715070;
            function BigInteger(e, d, f) {
                if (e != null) {
                    if ("number" == typeof e) {
                        this.fromNumber(e, d, f);
                    } else {
                        if (d == null && "string" != typeof e) {
                            this.fromString(e, 256);
                        } else {
                            this.fromString(e, d);
                        }
                    }
                }
            }
            function nbi() {
                return new BigInteger(null);
            }
            function am1(f, a, b, e, h, g) {
                while(--g >= 0){
                    var d = a * this[f++] + b[e] + h;
                    h = Math.floor(d / 67108864);
                    b[e++] = d & 67108863;
                }
                return h;
            }
            function am2(f, q, r, e, o, a) {
                var k = q & 32767, p = q >> 15;
                while(--a >= 0){
                    var d = this[f] & 32767;
                    var g = this[f++] >> 15;
                    var b = p * d + g * k;
                    d = k * d + ((b & 32767) << 15) + r[e] + (o & 1073741823);
                    o = (d >>> 30) + (b >>> 15) + p * g + (o >>> 30);
                    r[e++] = d & 1073741823;
                }
                return o;
            }
            function am3(f, q, r, e, o, a) {
                var k = q & 16383, p = q >> 14;
                while(--a >= 0){
                    var d = this[f] & 16383;
                    var g = this[f++] >> 14;
                    var b = p * d + g * k;
                    d = k * d + ((b & 16383) << 14) + r[e] + o;
                    o = (d >> 28) + (b >> 14) + p * g;
                    r[e++] = d & 268435455;
                }
                return o;
            }
            if (j_lm && navigator2.appName == "Microsoft Internet Explorer") {
                BigInteger.prototype.am = am2;
                dbits = 30;
            } else {
                if (j_lm && navigator2.appName != "Netscape") {
                    BigInteger.prototype.am = am1;
                    dbits = 26;
                } else {
                    BigInteger.prototype.am = am3;
                    dbits = 28;
                }
            }
            BigInteger.prototype.DB = dbits;
            BigInteger.prototype.DM = (1 << dbits) - 1;
            BigInteger.prototype.DV = 1 << dbits;
            var BI_FP = 52;
            BigInteger.prototype.FV = Math.pow(2, BI_FP);
            BigInteger.prototype.F1 = BI_FP - dbits;
            BigInteger.prototype.F2 = 2 * dbits - BI_FP;
            var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
            var BI_RC = new Array();
            var rr;
            var vv;
            rr = "0".charCodeAt(0);
            for(vv = 0; vv <= 9; ++vv){
                BI_RC[rr++] = vv;
            }
            rr = "a".charCodeAt(0);
            for(vv = 10; vv < 36; ++vv){
                BI_RC[rr++] = vv;
            }
            rr = "A".charCodeAt(0);
            for(vv = 10; vv < 36; ++vv){
                BI_RC[rr++] = vv;
            }
            function int2char(a) {
                return BI_RM.charAt(a);
            }
            function intAt(b, a) {
                var d = BI_RC[b.charCodeAt(a)];
                return d == null ? -1 : d;
            }
            function bnpCopyTo(b) {
                for(var a = this.t - 1; a >= 0; --a){
                    b[a] = this[a];
                }
                b.t = this.t;
                b.s = this.s;
            }
            function bnpFromInt(a) {
                this.t = 1;
                this.s = a < 0 ? -1 : 0;
                if (a > 0) {
                    this[0] = a;
                } else {
                    if (a < -1) {
                        this[0] = a + this.DV;
                    } else {
                        this.t = 0;
                    }
                }
            }
            function nbv(a) {
                var b = nbi();
                b.fromInt(a);
                return b;
            }
            function bnpFromString(h, c) {
                var e;
                if (c == 16) {
                    e = 4;
                } else {
                    if (c == 8) {
                        e = 3;
                    } else {
                        if (c == 256) {
                            e = 8;
                        } else {
                            if (c == 2) {
                                e = 1;
                            } else {
                                if (c == 32) {
                                    e = 5;
                                } else {
                                    if (c == 4) {
                                        e = 2;
                                    } else {
                                        this.fromRadix(h, c);
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
                this.t = 0;
                this.s = 0;
                var g = h.length, d = false, f = 0;
                while(--g >= 0){
                    var a = e == 8 ? h[g] & 255 : intAt(h, g);
                    if (a < 0) {
                        if (h.charAt(g) == "-") {
                            d = true;
                        }
                        continue;
                    }
                    d = false;
                    if (f == 0) {
                        this[this.t++] = a;
                    } else {
                        if (f + e > this.DB) {
                            this[this.t - 1] |= (a & (1 << this.DB - f) - 1) << f;
                            this[this.t++] = a >> this.DB - f;
                        } else {
                            this[this.t - 1] |= a << f;
                        }
                    }
                    f += e;
                    if (f >= this.DB) {
                        f -= this.DB;
                    }
                }
                if (e == 8 && (h[0] & 128) != 0) {
                    this.s = -1;
                    if (f > 0) {
                        this[this.t - 1] |= (1 << this.DB - f) - 1 << f;
                    }
                }
                this.clamp();
                if (d) {
                    BigInteger.ZERO.subTo(this, this);
                }
            }
            function bnpClamp() {
                var a = this.s & this.DM;
                while(this.t > 0 && this[this.t - 1] == a){
                    --this.t;
                }
            }
            function bnToString(c) {
                if (this.s < 0) {
                    return "-" + this.negate().toString(c);
                }
                var e;
                if (c == 16) {
                    e = 4;
                } else {
                    if (c == 8) {
                        e = 3;
                    } else {
                        if (c == 2) {
                            e = 1;
                        } else {
                            if (c == 32) {
                                e = 5;
                            } else {
                                if (c == 4) {
                                    e = 2;
                                } else {
                                    return this.toRadix(c);
                                }
                            }
                        }
                    }
                }
                var g = (1 << e) - 1, l, a = false, h = "", f = this.t;
                var j = this.DB - f * this.DB % e;
                if (f-- > 0) {
                    if (j < this.DB && (l = this[f] >> j) > 0) {
                        a = true;
                        h = int2char(l);
                    }
                    while(f >= 0){
                        if (j < e) {
                            l = (this[f] & (1 << j) - 1) << e - j;
                            l |= this[--f] >> (j += this.DB - e);
                        } else {
                            l = this[f] >> (j -= e) & g;
                            if (j <= 0) {
                                j += this.DB;
                                --f;
                            }
                        }
                        if (l > 0) {
                            a = true;
                        }
                        if (a) {
                            h += int2char(l);
                        }
                    }
                }
                return a ? h : "0";
            }
            function bnNegate() {
                var a = nbi();
                BigInteger.ZERO.subTo(this, a);
                return a;
            }
            function bnAbs() {
                return this.s < 0 ? this.negate() : this;
            }
            function bnCompareTo(b) {
                var d = this.s - b.s;
                if (d != 0) {
                    return d;
                }
                var c = this.t;
                d = c - b.t;
                if (d != 0) {
                    return this.s < 0 ? -d : d;
                }
                while(--c >= 0){
                    if ((d = this[c] - b[c]) != 0) {
                        return d;
                    }
                }
                return 0;
            }
            function nbits(a) {
                var c = 1, b;
                if ((b = a >>> 16) != 0) {
                    a = b;
                    c += 16;
                }
                if ((b = a >> 8) != 0) {
                    a = b;
                    c += 8;
                }
                if ((b = a >> 4) != 0) {
                    a = b;
                    c += 4;
                }
                if ((b = a >> 2) != 0) {
                    a = b;
                    c += 2;
                }
                if ((b = a >> 1) != 0) {
                    a = b;
                    c += 1;
                }
                return c;
            }
            function bnBitLength() {
                if (this.t <= 0) {
                    return 0;
                }
                return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);
            }
            function bnpDLShiftTo(c, b) {
                var a;
                for(a = this.t - 1; a >= 0; --a){
                    b[a + c] = this[a];
                }
                for(a = c - 1; a >= 0; --a){
                    b[a] = 0;
                }
                b.t = this.t + c;
                b.s = this.s;
            }
            function bnpDRShiftTo(c, b) {
                for(var a = c; a < this.t; ++a){
                    b[a - c] = this[a];
                }
                b.t = Math.max(this.t - c, 0);
                b.s = this.s;
            }
            function bnpLShiftTo(j, e) {
                var b = j % this.DB;
                var a = this.DB - b;
                var g = (1 << a) - 1;
                var f = Math.floor(j / this.DB), h = this.s << b & this.DM, d;
                for(d = this.t - 1; d >= 0; --d){
                    e[d + f + 1] = this[d] >> a | h;
                    h = (this[d] & g) << b;
                }
                for(d = f - 1; d >= 0; --d){
                    e[d] = 0;
                }
                e[f] = h;
                e.t = this.t + f + 1;
                e.s = this.s;
                e.clamp();
            }
            function bnpRShiftTo(g, d) {
                d.s = this.s;
                var e = Math.floor(g / this.DB);
                if (e >= this.t) {
                    d.t = 0;
                    return;
                }
                var b = g % this.DB;
                var a = this.DB - b;
                var f = (1 << b) - 1;
                d[0] = this[e] >> b;
                for(var c = e + 1; c < this.t; ++c){
                    d[c - e - 1] |= (this[c] & f) << a;
                    d[c - e] = this[c] >> b;
                }
                if (b > 0) {
                    d[this.t - e - 1] |= (this.s & f) << a;
                }
                d.t = this.t - e;
                d.clamp();
            }
            function bnpSubTo(d, f) {
                var e = 0, g = 0, b = Math.min(d.t, this.t);
                while(e < b){
                    g += this[e] - d[e];
                    f[e++] = g & this.DM;
                    g >>= this.DB;
                }
                if (d.t < this.t) {
                    g -= d.s;
                    while(e < this.t){
                        g += this[e];
                        f[e++] = g & this.DM;
                        g >>= this.DB;
                    }
                    g += this.s;
                } else {
                    g += this.s;
                    while(e < d.t){
                        g -= d[e];
                        f[e++] = g & this.DM;
                        g >>= this.DB;
                    }
                    g -= d.s;
                }
                f.s = g < 0 ? -1 : 0;
                if (g < -1) {
                    f[e++] = this.DV + g;
                } else {
                    if (g > 0) {
                        f[e++] = g;
                    }
                }
                f.t = e;
                f.clamp();
            }
            function bnpMultiplyTo(c, e) {
                var b = this.abs(), f = c.abs();
                var d = b.t;
                e.t = d + f.t;
                while(--d >= 0){
                    e[d] = 0;
                }
                for(d = 0; d < f.t; ++d){
                    e[d + b.t] = b.am(0, f[d], e, d, 0, b.t);
                }
                e.s = 0;
                e.clamp();
                if (this.s != c.s) {
                    BigInteger.ZERO.subTo(e, e);
                }
            }
            function bnpSquareTo(d) {
                var a = this.abs();
                var b = d.t = 2 * a.t;
                while(--b >= 0){
                    d[b] = 0;
                }
                for(b = 0; b < a.t - 1; ++b){
                    var e = a.am(b, a[b], d, 2 * b, 0, 1);
                    if ((d[b + a.t] += a.am(b + 1, 2 * a[b], d, 2 * b + 1, e, a.t - b - 1)) >= a.DV) {
                        d[b + a.t] -= a.DV;
                        d[b + a.t + 1] = 1;
                    }
                }
                if (d.t > 0) {
                    d[d.t - 1] += a.am(b, a[b], d, 2 * b, 0, 1);
                }
                d.s = 0;
                d.clamp();
            }
            function bnpDivRemTo(n, h, g) {
                var w = n.abs();
                if (w.t <= 0) {
                    return;
                }
                var k = this.abs();
                if (k.t < w.t) {
                    if (h != null) {
                        h.fromInt(0);
                    }
                    if (g != null) {
                        this.copyTo(g);
                    }
                    return;
                }
                if (g == null) {
                    g = nbi();
                }
                var d = nbi(), a = this.s, l = n.s;
                var v = this.DB - nbits(w[w.t - 1]);
                if (v > 0) {
                    w.lShiftTo(v, d);
                    k.lShiftTo(v, g);
                } else {
                    w.copyTo(d);
                    k.copyTo(g);
                }
                var p = d.t;
                var b = d[p - 1];
                if (b == 0) {
                    return;
                }
                var o = b * (1 << this.F1) + (p > 1 ? d[p - 2] >> this.F2 : 0);
                var A = this.FV / o, z2 = (1 << this.F1) / o, x = 1 << this.F2;
                var u = g.t, s = u - p, f = h == null ? nbi() : h;
                d.dlShiftTo(s, f);
                if (g.compareTo(f) >= 0) {
                    g[g.t++] = 1;
                    g.subTo(f, g);
                }
                BigInteger.ONE.dlShiftTo(p, f);
                f.subTo(d, d);
                while(d.t < p){
                    d[d.t++] = 0;
                }
                while(--s >= 0){
                    var c = g[--u] == b ? this.DM : Math.floor(g[u] * A + (g[u - 1] + x) * z2);
                    if ((g[u] += d.am(0, c, g, s, 0, p)) < c) {
                        d.dlShiftTo(s, f);
                        g.subTo(f, g);
                        while(g[u] < --c){
                            g.subTo(f, g);
                        }
                    }
                }
                if (h != null) {
                    g.drShiftTo(p, h);
                    if (a != l) {
                        BigInteger.ZERO.subTo(h, h);
                    }
                }
                g.t = p;
                g.clamp();
                if (v > 0) {
                    g.rShiftTo(v, g);
                }
                if (a < 0) {
                    BigInteger.ZERO.subTo(g, g);
                }
            }
            function bnMod(b) {
                var c = nbi();
                this.abs().divRemTo(b, null, c);
                if (this.s < 0 && c.compareTo(BigInteger.ZERO) > 0) {
                    b.subTo(c, c);
                }
                return c;
            }
            function Classic(a) {
                this.m = a;
            }
            function cConvert(a) {
                if (a.s < 0 || a.compareTo(this.m) >= 0) {
                    return a.mod(this.m);
                } else {
                    return a;
                }
            }
            function cRevert(a) {
                return a;
            }
            function cReduce(a) {
                a.divRemTo(this.m, null, a);
            }
            function cMulTo(a, c, b) {
                a.multiplyTo(c, b);
                this.reduce(b);
            }
            function cSqrTo(a, b) {
                a.squareTo(b);
                this.reduce(b);
            }
            Classic.prototype.convert = cConvert;
            Classic.prototype.revert = cRevert;
            Classic.prototype.reduce = cReduce;
            Classic.prototype.mulTo = cMulTo;
            Classic.prototype.sqrTo = cSqrTo;
            function bnpInvDigit() {
                if (this.t < 1) {
                    return 0;
                }
                var a = this[0];
                if ((a & 1) == 0) {
                    return 0;
                }
                var b = a & 3;
                b = b * (2 - (a & 15) * b) & 15;
                b = b * (2 - (a & 255) * b) & 255;
                b = b * (2 - ((a & 65535) * b & 65535)) & 65535;
                b = b * (2 - a * b % this.DV) % this.DV;
                return b > 0 ? this.DV - b : -b;
            }
            function Montgomery(a) {
                this.m = a;
                this.mp = a.invDigit();
                this.mpl = this.mp & 32767;
                this.mph = this.mp >> 15;
                this.um = (1 << a.DB - 15) - 1;
                this.mt2 = 2 * a.t;
            }
            function montConvert(a) {
                var b = nbi();
                a.abs().dlShiftTo(this.m.t, b);
                b.divRemTo(this.m, null, b);
                if (a.s < 0 && b.compareTo(BigInteger.ZERO) > 0) {
                    this.m.subTo(b, b);
                }
                return b;
            }
            function montRevert(a) {
                var b = nbi();
                a.copyTo(b);
                this.reduce(b);
                return b;
            }
            function montReduce(a) {
                while(a.t <= this.mt2){
                    a[a.t++] = 0;
                }
                for(var c = 0; c < this.m.t; ++c){
                    var b = a[c] & 32767;
                    var d = b * this.mpl + ((b * this.mph + (a[c] >> 15) * this.mpl & this.um) << 15) & a.DM;
                    b = c + this.m.t;
                    a[b] += this.m.am(0, d, a, c, 0, this.m.t);
                    while(a[b] >= a.DV){
                        a[b] -= a.DV;
                        a[++b]++;
                    }
                }
                a.clamp();
                a.drShiftTo(this.m.t, a);
                if (a.compareTo(this.m) >= 0) {
                    a.subTo(this.m, a);
                }
            }
            function montSqrTo(a, b) {
                a.squareTo(b);
                this.reduce(b);
            }
            function montMulTo(a, c, b) {
                a.multiplyTo(c, b);
                this.reduce(b);
            }
            Montgomery.prototype.convert = montConvert;
            Montgomery.prototype.revert = montRevert;
            Montgomery.prototype.reduce = montReduce;
            Montgomery.prototype.mulTo = montMulTo;
            Montgomery.prototype.sqrTo = montSqrTo;
            function bnpIsEven() {
                return (this.t > 0 ? this[0] & 1 : this.s) == 0;
            }
            function bnpExp(h, j) {
                if (h > 4294967295 || h < 1) {
                    return BigInteger.ONE;
                }
                var f = nbi(), a = nbi(), d = j.convert(this), c = nbits(h) - 1;
                d.copyTo(f);
                while(--c >= 0){
                    j.sqrTo(f, a);
                    if ((h & 1 << c) > 0) {
                        j.mulTo(a, d, f);
                    } else {
                        var b = f;
                        f = a;
                        a = b;
                    }
                }
                return j.revert(f);
            }
            function bnModPowInt(b, a) {
                var c;
                if (b < 256 || a.isEven()) {
                    c = new Classic(a);
                } else {
                    c = new Montgomery(a);
                }
                return this.exp(b, c);
            }
            BigInteger.prototype.copyTo = bnpCopyTo;
            BigInteger.prototype.fromInt = bnpFromInt;
            BigInteger.prototype.fromString = bnpFromString;
            BigInteger.prototype.clamp = bnpClamp;
            BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
            BigInteger.prototype.drShiftTo = bnpDRShiftTo;
            BigInteger.prototype.lShiftTo = bnpLShiftTo;
            BigInteger.prototype.rShiftTo = bnpRShiftTo;
            BigInteger.prototype.subTo = bnpSubTo;
            BigInteger.prototype.multiplyTo = bnpMultiplyTo;
            BigInteger.prototype.squareTo = bnpSquareTo;
            BigInteger.prototype.divRemTo = bnpDivRemTo;
            BigInteger.prototype.invDigit = bnpInvDigit;
            BigInteger.prototype.isEven = bnpIsEven;
            BigInteger.prototype.exp = bnpExp;
            BigInteger.prototype.toString = bnToString;
            BigInteger.prototype.negate = bnNegate;
            BigInteger.prototype.abs = bnAbs;
            BigInteger.prototype.compareTo = bnCompareTo;
            BigInteger.prototype.bitLength = bnBitLength;
            BigInteger.prototype.mod = bnMod;
            BigInteger.prototype.modPowInt = bnModPowInt;
            BigInteger.ZERO = nbv(0);
            BigInteger.ONE = nbv(1);
            function bnClone() {
                var a = nbi();
                this.copyTo(a);
                return a;
            }
            function bnIntValue() {
                if (this.s < 0) {
                    if (this.t == 1) {
                        return this[0] - this.DV;
                    } else {
                        if (this.t == 0) {
                            return -1;
                        }
                    }
                } else {
                    if (this.t == 1) {
                        return this[0];
                    } else {
                        if (this.t == 0) {
                            return 0;
                        }
                    }
                }
                return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0];
            }
            function bnByteValue() {
                return this.t == 0 ? this.s : this[0] << 24 >> 24;
            }
            function bnShortValue() {
                return this.t == 0 ? this.s : this[0] << 16 >> 16;
            }
            function bnpChunkSize(a) {
                return Math.floor(Math.LN2 * this.DB / Math.log(a));
            }
            function bnSigNum() {
                if (this.s < 0) {
                    return -1;
                } else {
                    if (this.t <= 0 || this.t == 1 && this[0] <= 0) {
                        return 0;
                    } else {
                        return 1;
                    }
                }
            }
            function bnpToRadix(c) {
                if (c == null) {
                    c = 10;
                }
                if (this.signum() == 0 || c < 2 || c > 36) {
                    return "0";
                }
                var f = this.chunkSize(c);
                var e = Math.pow(c, f);
                var i = nbv(e), j = nbi(), h = nbi(), g = "";
                this.divRemTo(i, j, h);
                while(j.signum() > 0){
                    g = (e + h.intValue()).toString(c).substr(1) + g;
                    j.divRemTo(i, j, h);
                }
                return h.intValue().toString(c) + g;
            }
            function bnpFromRadix(m, h) {
                this.fromInt(0);
                if (h == null) {
                    h = 10;
                }
                var f = this.chunkSize(h);
                var g = Math.pow(h, f), e = false, a = 0, l = 0;
                for(var c = 0; c < m.length; ++c){
                    var k = intAt(m, c);
                    if (k < 0) {
                        if (m.charAt(c) == "-" && this.signum() == 0) {
                            e = true;
                        }
                        continue;
                    }
                    l = h * l + k;
                    if (++a >= f) {
                        this.dMultiply(g);
                        this.dAddOffset(l, 0);
                        a = 0;
                        l = 0;
                    }
                }
                if (a > 0) {
                    this.dMultiply(Math.pow(h, a));
                    this.dAddOffset(l, 0);
                }
                if (e) {
                    BigInteger.ZERO.subTo(this, this);
                }
            }
            function bnpFromNumber(f, e, h) {
                if ("number" == typeof e) {
                    if (f < 2) {
                        this.fromInt(1);
                    } else {
                        this.fromNumber(f, h);
                        if (!this.testBit(f - 1)) {
                            this.bitwiseTo(BigInteger.ONE.shiftLeft(f - 1), op_or, this);
                        }
                        if (this.isEven()) {
                            this.dAddOffset(1, 0);
                        }
                        while(!this.isProbablePrime(e)){
                            this.dAddOffset(2, 0);
                            if (this.bitLength() > f) {
                                this.subTo(BigInteger.ONE.shiftLeft(f - 1), this);
                            }
                        }
                    }
                } else {
                    var d = new Array(), g = f & 7;
                    d.length = (f >> 3) + 1;
                    e.nextBytes(d);
                    if (g > 0) {
                        d[0] &= (1 << g) - 1;
                    } else {
                        d[0] = 0;
                    }
                    this.fromString(d, 256);
                }
            }
            function bnToByteArray() {
                var b = this.t, c = new Array();
                c[0] = this.s;
                var e = this.DB - b * this.DB % 8, f, a = 0;
                if (b-- > 0) {
                    if (e < this.DB && (f = this[b] >> e) != (this.s & this.DM) >> e) {
                        c[a++] = f | this.s << this.DB - e;
                    }
                    while(b >= 0){
                        if (e < 8) {
                            f = (this[b] & (1 << e) - 1) << 8 - e;
                            f |= this[--b] >> (e += this.DB - 8);
                        } else {
                            f = this[b] >> (e -= 8) & 255;
                            if (e <= 0) {
                                e += this.DB;
                                --b;
                            }
                        }
                        if ((f & 128) != 0) {
                            f |= -256;
                        }
                        if (a == 0 && (this.s & 128) != (f & 128)) {
                            ++a;
                        }
                        if (a > 0 || f != this.s) {
                            c[a++] = f;
                        }
                    }
                }
                return c;
            }
            function bnEquals(b) {
                return this.compareTo(b) == 0;
            }
            function bnMin(b) {
                return this.compareTo(b) < 0 ? this : b;
            }
            function bnMax(b) {
                return this.compareTo(b) > 0 ? this : b;
            }
            function bnpBitwiseTo(c, h, e) {
                var d, g, b = Math.min(c.t, this.t);
                for(d = 0; d < b; ++d){
                    e[d] = h(this[d], c[d]);
                }
                if (c.t < this.t) {
                    g = c.s & this.DM;
                    for(d = b; d < this.t; ++d){
                        e[d] = h(this[d], g);
                    }
                    e.t = this.t;
                } else {
                    g = this.s & this.DM;
                    for(d = b; d < c.t; ++d){
                        e[d] = h(g, c[d]);
                    }
                    e.t = c.t;
                }
                e.s = h(this.s, c.s);
                e.clamp();
            }
            function op_and(a, b) {
                return a & b;
            }
            function bnAnd(b) {
                var c = nbi();
                this.bitwiseTo(b, op_and, c);
                return c;
            }
            function op_or(a, b) {
                return a | b;
            }
            function bnOr(b) {
                var c = nbi();
                this.bitwiseTo(b, op_or, c);
                return c;
            }
            function op_xor(a, b) {
                return a ^ b;
            }
            function bnXor(b) {
                var c = nbi();
                this.bitwiseTo(b, op_xor, c);
                return c;
            }
            function op_andnot(a, b) {
                return a & ~b;
            }
            function bnAndNot(b) {
                var c = nbi();
                this.bitwiseTo(b, op_andnot, c);
                return c;
            }
            function bnNot() {
                var b = nbi();
                for(var a = 0; a < this.t; ++a){
                    b[a] = this.DM & ~this[a];
                }
                b.t = this.t;
                b.s = ~this.s;
                return b;
            }
            function bnShiftLeft(b) {
                var a = nbi();
                if (b < 0) {
                    this.rShiftTo(-b, a);
                } else {
                    this.lShiftTo(b, a);
                }
                return a;
            }
            function bnShiftRight(b) {
                var a = nbi();
                if (b < 0) {
                    this.lShiftTo(-b, a);
                } else {
                    this.rShiftTo(b, a);
                }
                return a;
            }
            function lbit(a) {
                if (a == 0) {
                    return -1;
                }
                var b = 0;
                if ((a & 65535) == 0) {
                    a >>= 16;
                    b += 16;
                }
                if ((a & 255) == 0) {
                    a >>= 8;
                    b += 8;
                }
                if ((a & 15) == 0) {
                    a >>= 4;
                    b += 4;
                }
                if ((a & 3) == 0) {
                    a >>= 2;
                    b += 2;
                }
                if ((a & 1) == 0) {
                    ++b;
                }
                return b;
            }
            function bnGetLowestSetBit() {
                for(var a = 0; a < this.t; ++a){
                    if (this[a] != 0) {
                        return a * this.DB + lbit(this[a]);
                    }
                }
                if (this.s < 0) {
                    return this.t * this.DB;
                }
                return -1;
            }
            function cbit(a) {
                var b = 0;
                while(a != 0){
                    a &= a - 1;
                    ++b;
                }
                return b;
            }
            function bnBitCount() {
                var c = 0, a = this.s & this.DM;
                for(var b = 0; b < this.t; ++b){
                    c += cbit(this[b] ^ a);
                }
                return c;
            }
            function bnTestBit(b) {
                var a = Math.floor(b / this.DB);
                if (a >= this.t) {
                    return this.s != 0;
                }
                return (this[a] & 1 << b % this.DB) != 0;
            }
            function bnpChangeBit(c, b) {
                var a = BigInteger.ONE.shiftLeft(c);
                this.bitwiseTo(a, b, a);
                return a;
            }
            function bnSetBit(a) {
                return this.changeBit(a, op_or);
            }
            function bnClearBit(a) {
                return this.changeBit(a, op_andnot);
            }
            function bnFlipBit(a) {
                return this.changeBit(a, op_xor);
            }
            function bnpAddTo(d, f) {
                var e = 0, g = 0, b = Math.min(d.t, this.t);
                while(e < b){
                    g += this[e] + d[e];
                    f[e++] = g & this.DM;
                    g >>= this.DB;
                }
                if (d.t < this.t) {
                    g += d.s;
                    while(e < this.t){
                        g += this[e];
                        f[e++] = g & this.DM;
                        g >>= this.DB;
                    }
                    g += this.s;
                } else {
                    g += this.s;
                    while(e < d.t){
                        g += d[e];
                        f[e++] = g & this.DM;
                        g >>= this.DB;
                    }
                    g += d.s;
                }
                f.s = g < 0 ? -1 : 0;
                if (g > 0) {
                    f[e++] = g;
                } else {
                    if (g < -1) {
                        f[e++] = this.DV + g;
                    }
                }
                f.t = e;
                f.clamp();
            }
            function bnAdd(b) {
                var c = nbi();
                this.addTo(b, c);
                return c;
            }
            function bnSubtract(b) {
                var c = nbi();
                this.subTo(b, c);
                return c;
            }
            function bnMultiply(b) {
                var c = nbi();
                this.multiplyTo(b, c);
                return c;
            }
            function bnSquare() {
                var a = nbi();
                this.squareTo(a);
                return a;
            }
            function bnDivide(b) {
                var c = nbi();
                this.divRemTo(b, c, null);
                return c;
            }
            function bnRemainder(b) {
                var c = nbi();
                this.divRemTo(b, null, c);
                return c;
            }
            function bnDivideAndRemainder(b) {
                var d = nbi(), c = nbi();
                this.divRemTo(b, d, c);
                return new Array(d, c);
            }
            function bnpDMultiply(a) {
                this[this.t] = this.am(0, a - 1, this, 0, 0, this.t);
                ++this.t;
                this.clamp();
            }
            function bnpDAddOffset(b, a) {
                if (b == 0) {
                    return;
                }
                while(this.t <= a){
                    this[this.t++] = 0;
                }
                this[a] += b;
                while(this[a] >= this.DV){
                    this[a] -= this.DV;
                    if (++a >= this.t) {
                        this[this.t++] = 0;
                    }
                    ++this[a];
                }
            }
            function NullExp() {}
            function nNop(a) {
                return a;
            }
            function nMulTo(a, c, b) {
                a.multiplyTo(c, b);
            }
            function nSqrTo(a, b) {
                a.squareTo(b);
            }
            NullExp.prototype.convert = nNop;
            NullExp.prototype.revert = nNop;
            NullExp.prototype.mulTo = nMulTo;
            NullExp.prototype.sqrTo = nSqrTo;
            function bnPow(a) {
                return this.exp(a, new NullExp());
            }
            function bnpMultiplyLowerTo(b, f, e) {
                var d = Math.min(this.t + b.t, f);
                e.s = 0;
                e.t = d;
                while(d > 0){
                    e[--d] = 0;
                }
                var c;
                for(c = e.t - this.t; d < c; ++d){
                    e[d + this.t] = this.am(0, b[d], e, d, 0, this.t);
                }
                for(c = Math.min(b.t, f); d < c; ++d){
                    this.am(0, b[d], e, d, 0, f - d);
                }
                e.clamp();
            }
            function bnpMultiplyUpperTo(b, e, d) {
                --e;
                var c = d.t = this.t + b.t - e;
                d.s = 0;
                while(--c >= 0){
                    d[c] = 0;
                }
                for(c = Math.max(e - this.t, 0); c < b.t; ++c){
                    d[this.t + c - e] = this.am(e - c, b[c], d, 0, 0, this.t + c - e);
                }
                d.clamp();
                d.drShiftTo(1, d);
            }
            function Barrett(a) {
                this.r2 = nbi();
                this.q3 = nbi();
                BigInteger.ONE.dlShiftTo(2 * a.t, this.r2);
                this.mu = this.r2.divide(a);
                this.m = a;
            }
            function barrettConvert(a) {
                if (a.s < 0 || a.t > 2 * this.m.t) {
                    return a.mod(this.m);
                } else {
                    if (a.compareTo(this.m) < 0) {
                        return a;
                    } else {
                        var b = nbi();
                        a.copyTo(b);
                        this.reduce(b);
                        return b;
                    }
                }
            }
            function barrettRevert(a) {
                return a;
            }
            function barrettReduce(a) {
                a.drShiftTo(this.m.t - 1, this.r2);
                if (a.t > this.m.t + 1) {
                    a.t = this.m.t + 1;
                    a.clamp();
                }
                this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);
                this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);
                while(a.compareTo(this.r2) < 0){
                    a.dAddOffset(1, this.m.t + 1);
                }
                a.subTo(this.r2, a);
                while(a.compareTo(this.m) >= 0){
                    a.subTo(this.m, a);
                }
            }
            function barrettSqrTo(a, b) {
                a.squareTo(b);
                this.reduce(b);
            }
            function barrettMulTo(a, c, b) {
                a.multiplyTo(c, b);
                this.reduce(b);
            }
            Barrett.prototype.convert = barrettConvert;
            Barrett.prototype.revert = barrettRevert;
            Barrett.prototype.reduce = barrettReduce;
            Barrett.prototype.mulTo = barrettMulTo;
            Barrett.prototype.sqrTo = barrettSqrTo;
            function bnModPow(q, f) {
                var o = q.bitLength(), h, b = nbv(1), v;
                if (o <= 0) {
                    return b;
                } else {
                    if (o < 18) {
                        h = 1;
                    } else {
                        if (o < 48) {
                            h = 3;
                        } else {
                            if (o < 144) {
                                h = 4;
                            } else {
                                if (o < 768) {
                                    h = 5;
                                } else {
                                    h = 6;
                                }
                            }
                        }
                    }
                }
                if (o < 8) {
                    v = new Classic(f);
                } else {
                    if (f.isEven()) {
                        v = new Barrett(f);
                    } else {
                        v = new Montgomery(f);
                    }
                }
                var p = new Array(), d = 3, s = h - 1, a = (1 << h) - 1;
                p[1] = v.convert(this);
                if (h > 1) {
                    var A = nbi();
                    v.sqrTo(p[1], A);
                    while(d <= a){
                        p[d] = nbi();
                        v.mulTo(A, p[d - 2], p[d]);
                        d += 2;
                    }
                }
                var l = q.t - 1, x, u = true, c = nbi(), y;
                o = nbits(q[l]) - 1;
                while(l >= 0){
                    if (o >= s) {
                        x = q[l] >> o - s & a;
                    } else {
                        x = (q[l] & (1 << o + 1) - 1) << s - o;
                        if (l > 0) {
                            x |= q[l - 1] >> this.DB + o - s;
                        }
                    }
                    d = h;
                    while((x & 1) == 0){
                        x >>= 1;
                        --d;
                    }
                    if ((o -= d) < 0) {
                        o += this.DB;
                        --l;
                    }
                    if (u) {
                        p[x].copyTo(b);
                        u = false;
                    } else {
                        while(d > 1){
                            v.sqrTo(b, c);
                            v.sqrTo(c, b);
                            d -= 2;
                        }
                        if (d > 0) {
                            v.sqrTo(b, c);
                        } else {
                            y = b;
                            b = c;
                            c = y;
                        }
                        v.mulTo(c, p[x], b);
                    }
                    while(l >= 0 && (q[l] & 1 << o) == 0){
                        v.sqrTo(b, c);
                        y = b;
                        b = c;
                        c = y;
                        if (--o < 0) {
                            o = this.DB - 1;
                            --l;
                        }
                    }
                }
                return v.revert(b);
            }
            function bnGCD(c) {
                var b = this.s < 0 ? this.negate() : this.clone();
                var h = c.s < 0 ? c.negate() : c.clone();
                if (b.compareTo(h) < 0) {
                    var e = b;
                    b = h;
                    h = e;
                }
                var d = b.getLowestSetBit(), f = h.getLowestSetBit();
                if (f < 0) {
                    return b;
                }
                if (d < f) {
                    f = d;
                }
                if (f > 0) {
                    b.rShiftTo(f, b);
                    h.rShiftTo(f, h);
                }
                while(b.signum() > 0){
                    if ((d = b.getLowestSetBit()) > 0) {
                        b.rShiftTo(d, b);
                    }
                    if ((d = h.getLowestSetBit()) > 0) {
                        h.rShiftTo(d, h);
                    }
                    if (b.compareTo(h) >= 0) {
                        b.subTo(h, b);
                        b.rShiftTo(1, b);
                    } else {
                        h.subTo(b, h);
                        h.rShiftTo(1, h);
                    }
                }
                if (f > 0) {
                    h.lShiftTo(f, h);
                }
                return h;
            }
            function bnpModInt(e) {
                if (e <= 0) {
                    return 0;
                }
                var c = this.DV % e, b = this.s < 0 ? e - 1 : 0;
                if (this.t > 0) {
                    if (c == 0) {
                        b = this[0] % e;
                    } else {
                        for(var a = this.t - 1; a >= 0; --a){
                            b = (c * b + this[a]) % e;
                        }
                    }
                }
                return b;
            }
            function bnModInverse(f) {
                var j = f.isEven();
                if (this.isEven() && j || f.signum() == 0) {
                    return BigInteger.ZERO;
                }
                var i = f.clone(), h = this.clone();
                var g = nbv(1), e = nbv(0), l = nbv(0), k = nbv(1);
                while(i.signum() != 0){
                    while(i.isEven()){
                        i.rShiftTo(1, i);
                        if (j) {
                            if (!g.isEven() || !e.isEven()) {
                                g.addTo(this, g);
                                e.subTo(f, e);
                            }
                            g.rShiftTo(1, g);
                        } else {
                            if (!e.isEven()) {
                                e.subTo(f, e);
                            }
                        }
                        e.rShiftTo(1, e);
                    }
                    while(h.isEven()){
                        h.rShiftTo(1, h);
                        if (j) {
                            if (!l.isEven() || !k.isEven()) {
                                l.addTo(this, l);
                                k.subTo(f, k);
                            }
                            l.rShiftTo(1, l);
                        } else {
                            if (!k.isEven()) {
                                k.subTo(f, k);
                            }
                        }
                        k.rShiftTo(1, k);
                    }
                    if (i.compareTo(h) >= 0) {
                        i.subTo(h, i);
                        if (j) {
                            g.subTo(l, g);
                        }
                        e.subTo(k, e);
                    } else {
                        h.subTo(i, h);
                        if (j) {
                            l.subTo(g, l);
                        }
                        k.subTo(e, k);
                    }
                }
                if (h.compareTo(BigInteger.ONE) != 0) {
                    return BigInteger.ZERO;
                }
                if (k.compareTo(f) >= 0) {
                    return k.subtract(f);
                }
                if (k.signum() < 0) {
                    k.addTo(f, k);
                } else {
                    return k;
                }
                if (k.signum() < 0) {
                    return k.add(f);
                } else {
                    return k;
                }
            }
            var lowprimes = [
                2,
                3,
                5,
                7,
                11,
                13,
                17,
                19,
                23,
                29,
                31,
                37,
                41,
                43,
                47,
                53,
                59,
                61,
                67,
                71,
                73,
                79,
                83,
                89,
                97,
                101,
                103,
                107,
                109,
                113,
                127,
                131,
                137,
                139,
                149,
                151,
                157,
                163,
                167,
                173,
                179,
                181,
                191,
                193,
                197,
                199,
                211,
                223,
                227,
                229,
                233,
                239,
                241,
                251,
                257,
                263,
                269,
                271,
                277,
                281,
                283,
                293,
                307,
                311,
                313,
                317,
                331,
                337,
                347,
                349,
                353,
                359,
                367,
                373,
                379,
                383,
                389,
                397,
                401,
                409,
                419,
                421,
                431,
                433,
                439,
                443,
                449,
                457,
                461,
                463,
                467,
                479,
                487,
                491,
                499,
                503,
                509,
                521,
                523,
                541,
                547,
                557,
                563,
                569,
                571,
                577,
                587,
                593,
                599,
                601,
                607,
                613,
                617,
                619,
                631,
                641,
                643,
                647,
                653,
                659,
                661,
                673,
                677,
                683,
                691,
                701,
                709,
                719,
                727,
                733,
                739,
                743,
                751,
                757,
                761,
                769,
                773,
                787,
                797,
                809,
                811,
                821,
                823,
                827,
                829,
                839,
                853,
                857,
                859,
                863,
                877,
                881,
                883,
                887,
                907,
                911,
                919,
                929,
                937,
                941,
                947,
                953,
                967,
                971,
                977,
                983,
                991,
                997
            ];
            var lplim = (1 << 26) / lowprimes[lowprimes.length - 1];
            function bnIsProbablePrime(e) {
                var d, b = this.abs();
                if (b.t == 1 && b[0] <= lowprimes[lowprimes.length - 1]) {
                    for(d = 0; d < lowprimes.length; ++d){
                        if (b[0] == lowprimes[d]) {
                            return true;
                        }
                    }
                    return false;
                }
                if (b.isEven()) {
                    return false;
                }
                d = 1;
                while(d < lowprimes.length){
                    var a = lowprimes[d], c = d + 1;
                    while(c < lowprimes.length && a < lplim){
                        a *= lowprimes[c++];
                    }
                    a = b.modInt(a);
                    while(d < c){
                        if (a % lowprimes[d++] == 0) {
                            return false;
                        }
                    }
                }
                return b.millerRabin(e);
            }
            function bnpMillerRabin(f) {
                var g = this.subtract(BigInteger.ONE);
                var c = g.getLowestSetBit();
                if (c <= 0) {
                    return false;
                }
                var h = g.shiftRight(c);
                f = f + 1 >> 1;
                if (f > lowprimes.length) {
                    f = lowprimes.length;
                }
                var b = nbi();
                for(var e = 0; e < f; ++e){
                    b.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);
                    var l = b.modPow(h, this);
                    if (l.compareTo(BigInteger.ONE) != 0 && l.compareTo(g) != 0) {
                        var d = 1;
                        while(d++ < c && l.compareTo(g) != 0){
                            l = l.modPowInt(2, this);
                            if (l.compareTo(BigInteger.ONE) == 0) {
                                return false;
                            }
                        }
                        if (l.compareTo(g) != 0) {
                            return false;
                        }
                    }
                }
                return true;
            }
            BigInteger.prototype.chunkSize = bnpChunkSize;
            BigInteger.prototype.toRadix = bnpToRadix;
            BigInteger.prototype.fromRadix = bnpFromRadix;
            BigInteger.prototype.fromNumber = bnpFromNumber;
            BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
            BigInteger.prototype.changeBit = bnpChangeBit;
            BigInteger.prototype.addTo = bnpAddTo;
            BigInteger.prototype.dMultiply = bnpDMultiply;
            BigInteger.prototype.dAddOffset = bnpDAddOffset;
            BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
            BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
            BigInteger.prototype.modInt = bnpModInt;
            BigInteger.prototype.millerRabin = bnpMillerRabin;
            BigInteger.prototype.clone = bnClone;
            BigInteger.prototype.intValue = bnIntValue;
            BigInteger.prototype.byteValue = bnByteValue;
            BigInteger.prototype.shortValue = bnShortValue;
            BigInteger.prototype.signum = bnSigNum;
            BigInteger.prototype.toByteArray = bnToByteArray;
            BigInteger.prototype.equals = bnEquals;
            BigInteger.prototype.min = bnMin;
            BigInteger.prototype.max = bnMax;
            BigInteger.prototype.and = bnAnd;
            BigInteger.prototype.or = bnOr;
            BigInteger.prototype.xor = bnXor;
            BigInteger.prototype.andNot = bnAndNot;
            BigInteger.prototype.not = bnNot;
            BigInteger.prototype.shiftLeft = bnShiftLeft;
            BigInteger.prototype.shiftRight = bnShiftRight;
            BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
            BigInteger.prototype.bitCount = bnBitCount;
            BigInteger.prototype.testBit = bnTestBit;
            BigInteger.prototype.setBit = bnSetBit;
            BigInteger.prototype.clearBit = bnClearBit;
            BigInteger.prototype.flipBit = bnFlipBit;
            BigInteger.prototype.add = bnAdd;
            BigInteger.prototype.subtract = bnSubtract;
            BigInteger.prototype.multiply = bnMultiply;
            BigInteger.prototype.divide = bnDivide;
            BigInteger.prototype.remainder = bnRemainder;
            BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
            BigInteger.prototype.modPow = bnModPow;
            BigInteger.prototype.modInverse = bnModInverse;
            BigInteger.prototype.pow = bnPow;
            BigInteger.prototype.gcd = bnGCD;
            BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
            BigInteger.prototype.square = bnSquare;
            function Arcfour() {
                this.i = 0;
                this.j = 0;
                this.S = new Array();
            }
            function ARC4init(d) {
                var c, a, b;
                for(c = 0; c < 256; ++c){
                    this.S[c] = c;
                }
                a = 0;
                for(c = 0; c < 256; ++c){
                    a = a + this.S[c] + d[c % d.length] & 255;
                    b = this.S[c];
                    this.S[c] = this.S[a];
                    this.S[a] = b;
                }
                this.i = 0;
                this.j = 0;
            }
            function ARC4next() {
                var a;
                this.i = this.i + 1 & 255;
                this.j = this.j + this.S[this.i] & 255;
                a = this.S[this.i];
                this.S[this.i] = this.S[this.j];
                this.S[this.j] = a;
                return this.S[a + this.S[this.i] & 255];
            }
            Arcfour.prototype.init = ARC4init;
            Arcfour.prototype.next = ARC4next;
            function prng_newstate() {
                return new Arcfour();
            }
            var rng_psize = 256;
            var rng_state;
            var rng_pool;
            var rng_pptr;
            function rng_seed_int(a) {
                rng_pool[rng_pptr++] ^= a & 255;
                rng_pool[rng_pptr++] ^= a >> 8 & 255;
                rng_pool[rng_pptr++] ^= a >> 16 & 255;
                rng_pool[rng_pptr++] ^= a >> 24 & 255;
                if (rng_pptr >= rng_psize) {
                    rng_pptr -= rng_psize;
                }
            }
            function rng_seed_time() {
                rng_seed_int(/* @__PURE__ */ new Date().getTime());
            }
            if (rng_pool == null) {
                rng_pool = new Array();
                rng_pptr = 0;
                if (window2 !== void 0 && (window2.crypto !== void 0 || window2.msCrypto !== void 0)) {
                    crypto2 = window2.crypto || window2.msCrypto;
                    if (crypto2.getRandomValues) {
                        ua = new Uint8Array(32);
                        crypto2.getRandomValues(ua);
                        for(t = 0; t < 32; ++t){
                            rng_pool[rng_pptr++] = ua[t];
                        }
                    } else {
                        if (navigator2.appName == "Netscape" && navigator2.appVersion < "5") {
                            z = window2.crypto.random(32);
                            for(t = 0; t < z.length; ++t){
                                rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;
                            }
                        }
                    }
                }
                while(rng_pptr < rng_psize){
                    t = Math.floor(65536 * Math.random());
                    rng_pool[rng_pptr++] = t >>> 8;
                    rng_pool[rng_pptr++] = t & 255;
                }
                rng_pptr = 0;
                rng_seed_time();
            }
            var t;
            var crypto2;
            var ua;
            var z;
            function rng_get_byte() {
                if (rng_state == null) {
                    rng_seed_time();
                    rng_state = prng_newstate();
                    rng_state.init(rng_pool);
                    for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr){
                        rng_pool[rng_pptr] = 0;
                    }
                    rng_pptr = 0;
                }
                return rng_state.next();
            }
            function rng_get_bytes(b) {
                var a;
                for(a = 0; a < b.length; ++a){
                    b[a] = rng_get_byte();
                }
            }
            function SecureRandom() {}
            SecureRandom.prototype.nextBytes = rng_get_bytes;
            function parseBigInt(b, a) {
                return new BigInteger(b, a);
            }
            function pkcs1pad2(e, h) {
                if (h < e.length + 11) {
                    throw "Message too long for RSA";
                    return null;
                }
                var g = new Array();
                var d = e.length - 1;
                while(d >= 0 && h > 0){
                    var f = e.charCodeAt(d--);
                    if (f < 128) {
                        g[--h] = f;
                    } else {
                        if (f > 127 && f < 2048) {
                            g[--h] = f & 63 | 128;
                            g[--h] = f >> 6 | 192;
                        } else {
                            g[--h] = f & 63 | 128;
                            g[--h] = f >> 6 & 63 | 128;
                            g[--h] = f >> 12 | 224;
                        }
                    }
                }
                g[--h] = 0;
                var b = new SecureRandom();
                var a = new Array();
                while(h > 2){
                    a[0] = 0;
                    while(a[0] == 0){
                        b.nextBytes(a);
                    }
                    g[--h] = a[0];
                }
                g[--h] = 2;
                g[--h] = 0;
                return new BigInteger(g);
            }
            function oaep_mgf1_arr(c, a, e) {
                var b = "", d = 0;
                while(b.length < a){
                    b += e(String.fromCharCode.apply(String, c.concat([
                        (d & 4278190080) >> 24,
                        (d & 16711680) >> 16,
                        (d & 65280) >> 8,
                        d & 255
                    ])));
                    d += 1;
                }
                return b;
            }
            function oaep_pad(q, a, f, l) {
                var c = KJUR.crypto.MessageDigest;
                var o = KJUR.crypto.Util;
                var b = null;
                if (!f) {
                    f = "sha1";
                }
                if (typeof f === "string") {
                    b = c.getCanonicalAlgName(f);
                    l = c.getHashLength(b);
                    f = function f(i) {
                        return hextorstr(o.hashHex(rstrtohex(i), b));
                    };
                }
                if (q.length + 2 * l + 2 > a) {
                    throw "Message too long for RSA";
                }
                var k = "", e;
                for(e = 0; e < a - q.length - 2 * l - 2; e += 1){
                    k += "\0";
                }
                var h = f("") + k + "" + q;
                var g = new Array(l);
                new SecureRandom().nextBytes(g);
                var j = oaep_mgf1_arr(g, h.length, f);
                var p = [];
                for(e = 0; e < h.length; e += 1){
                    p[e] = h.charCodeAt(e) ^ j.charCodeAt(e);
                }
                var m = oaep_mgf1_arr(p, g.length, f);
                var d = [
                    0
                ];
                for(e = 0; e < g.length; e += 1){
                    d[e + 1] = g[e] ^ m.charCodeAt(e);
                }
                return new BigInteger(d.concat(p));
            }
            function RSAKey() {
                this.n = null;
                this.e = 0;
                this.d = null;
                this.p = null;
                this.q = null;
                this.dmp1 = null;
                this.dmq1 = null;
                this.coeff = null;
            }
            function RSASetPublic(b, a) {
                this.isPublic = true;
                this.isPrivate = false;
                if (typeof b !== "string") {
                    this.n = b;
                    this.e = a;
                } else {
                    if (b != null && a != null && b.length > 0 && a.length > 0) {
                        this.n = parseBigInt(b, 16);
                        this.e = parseInt(a, 16);
                    } else {
                        throw "Invalid RSA public key";
                    }
                }
            }
            function RSADoPublic(a) {
                return a.modPowInt(this.e, this.n);
            }
            function RSAEncrypt(d) {
                var a = pkcs1pad2(d, this.n.bitLength() + 7 >> 3);
                if (a == null) {
                    return null;
                }
                var e = this.doPublic(a);
                if (e == null) {
                    return null;
                }
                var b = e.toString(16);
                if ((b.length & 1) == 0) {
                    return b;
                } else {
                    return "0" + b;
                }
            }
            function RSAEncryptOAEP(f, e, b) {
                var i = this.n.bitLength() + 7 >> 3;
                var a = oaep_pad(f, i, e, b);
                if (a == null) {
                    return null;
                }
                var g = this.doPublic(a);
                if (g == null) {
                    return null;
                }
                var d = g.toString(16);
                while(d.length < i * 2){
                    d = "0" + d;
                }
                return d;
            }
            RSAKey.prototype.doPublic = RSADoPublic;
            RSAKey.prototype.setPublic = RSASetPublic;
            RSAKey.prototype.encrypt = RSAEncrypt;
            RSAKey.prototype.encryptOAEP = RSAEncryptOAEP;
            RSAKey.prototype.type = "RSA";
            function pkcs1unpad2(g, j) {
                var a = g.toByteArray();
                var f = 0;
                while(f < a.length && a[f] == 0){
                    ++f;
                }
                if (a.length - f != j - 1 || a[f] != 2) {
                    return null;
                }
                ++f;
                while(a[f] != 0){
                    if (++f >= a.length) {
                        return null;
                    }
                }
                var e = "";
                while(++f < a.length){
                    var h = a[f] & 255;
                    if (h < 128) {
                        e += String.fromCharCode(h);
                    } else {
                        if (h > 191 && h < 224) {
                            e += String.fromCharCode((h & 31) << 6 | a[f + 1] & 63);
                            ++f;
                        } else {
                            e += String.fromCharCode((h & 15) << 12 | (a[f + 1] & 63) << 6 | a[f + 2] & 63);
                            f += 2;
                        }
                    }
                }
                return e;
            }
            function oaep_mgf1_str(c, a, e) {
                var b = "", d = 0;
                while(b.length < a){
                    b += e(c + String.fromCharCode.apply(String, [
                        (d & 4278190080) >> 24,
                        (d & 16711680) >> 16,
                        (d & 65280) >> 8,
                        d & 255
                    ]));
                    d += 1;
                }
                return b;
            }
            function oaep_unpad(o, b, g, p) {
                var e = KJUR.crypto.MessageDigest;
                var r = KJUR.crypto.Util;
                var c = null;
                if (!g) {
                    g = "sha1";
                }
                if (typeof g === "string") {
                    c = e.getCanonicalAlgName(g);
                    p = e.getHashLength(c);
                    g = function g(d) {
                        return hextorstr(r.hashHex(rstrtohex(d), c));
                    };
                }
                o = o.toByteArray();
                var h;
                for(h = 0; h < o.length; h += 1){
                    o[h] &= 255;
                }
                while(o.length < b){
                    o.unshift(0);
                }
                o = String.fromCharCode.apply(String, o);
                if (o.length < 2 * p + 2) {
                    throw "Cipher too short";
                }
                var f = o.substr(1, p);
                var s = o.substr(p + 1);
                var q = oaep_mgf1_str(s, p, g);
                var k = [], h;
                for(h = 0; h < f.length; h += 1){
                    k[h] = f.charCodeAt(h) ^ q.charCodeAt(h);
                }
                var l = oaep_mgf1_str(String.fromCharCode.apply(String, k), o.length - p, g);
                var j = [];
                for(h = 0; h < s.length; h += 1){
                    j[h] = s.charCodeAt(h) ^ l.charCodeAt(h);
                }
                j = String.fromCharCode.apply(String, j);
                if (j.substr(0, p) !== g("")) {
                    throw "Hash mismatch";
                }
                j = j.substr(p);
                var a = j.indexOf("");
                var m = a != -1 ? j.substr(0, a).lastIndexOf("\0") : -1;
                if (m + 1 != a) {
                    throw "Malformed data";
                }
                return j.substr(a + 1);
            }
            function RSASetPrivate(c, a, b) {
                this.isPrivate = true;
                if (typeof c !== "string") {
                    this.n = c;
                    this.e = a;
                    this.d = b;
                } else {
                    if (c != null && a != null && c.length > 0 && a.length > 0) {
                        this.n = parseBigInt(c, 16);
                        this.e = parseInt(a, 16);
                        this.d = parseBigInt(b, 16);
                    } else {
                        throw "Invalid RSA private key";
                    }
                }
            }
            function RSASetPrivateEx(g, d, e, c, b, a, h, f) {
                this.isPrivate = true;
                this.isPublic = false;
                if (g == null) {
                    throw "RSASetPrivateEx N == null";
                }
                if (d == null) {
                    throw "RSASetPrivateEx E == null";
                }
                if (g.length == 0) {
                    throw "RSASetPrivateEx N.length == 0";
                }
                if (d.length == 0) {
                    throw "RSASetPrivateEx E.length == 0";
                }
                if (g != null && d != null && g.length > 0 && d.length > 0) {
                    this.n = parseBigInt(g, 16);
                    this.e = parseInt(d, 16);
                    this.d = parseBigInt(e, 16);
                    this.p = parseBigInt(c, 16);
                    this.q = parseBigInt(b, 16);
                    this.dmp1 = parseBigInt(a, 16);
                    this.dmq1 = parseBigInt(h, 16);
                    this.coeff = parseBigInt(f, 16);
                } else {
                    throw "Invalid RSA private key in RSASetPrivateEx";
                }
            }
            function RSAGenerate(b, l) {
                var a = new SecureRandom();
                var g = b >> 1;
                this.e = parseInt(l, 16);
                var c = new BigInteger(l, 16);
                var d = b / 2 - 100;
                var k = BigInteger.ONE.shiftLeft(d);
                for(;;){
                    for(;;){
                        this.p = new BigInteger(b - g, 1, a);
                        if (this.p.subtract(BigInteger.ONE).gcd(c).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {
                            break;
                        }
                    }
                    for(;;){
                        this.q = new BigInteger(g, 1, a);
                        if (this.q.subtract(BigInteger.ONE).gcd(c).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {
                            break;
                        }
                    }
                    if (this.p.compareTo(this.q) <= 0) {
                        var j = this.p;
                        this.p = this.q;
                        this.q = j;
                    }
                    var h = this.q.subtract(this.p).abs();
                    if (h.bitLength() < d || h.compareTo(k) <= 0) {
                        continue;
                    }
                    var i = this.p.subtract(BigInteger.ONE);
                    var e = this.q.subtract(BigInteger.ONE);
                    var f = i.multiply(e);
                    if (f.gcd(c).compareTo(BigInteger.ONE) == 0) {
                        this.n = this.p.multiply(this.q);
                        if (this.n.bitLength() == b) {
                            this.d = c.modInverse(f);
                            this.dmp1 = this.d.mod(i);
                            this.dmq1 = this.d.mod(e);
                            this.coeff = this.q.modInverse(this.p);
                            break;
                        }
                    }
                }
                this.isPrivate = true;
            }
            function RSADoPrivate(a) {
                if (this.p == null || this.q == null) {
                    return a.modPow(this.d, this.n);
                }
                var c = a.mod(this.p).modPow(this.dmp1, this.p);
                var b = a.mod(this.q).modPow(this.dmq1, this.q);
                while(c.compareTo(b) < 0){
                    c = c.add(this.p);
                }
                return c.subtract(b).multiply(this.coeff).mod(this.p).multiply(this.q).add(b);
            }
            function RSADecrypt(b) {
                if (b.length != Math.ceil(this.n.bitLength() / 4)) {
                    throw new Error("wrong ctext length");
                }
                var d = parseBigInt(b, 16);
                var a = this.doPrivate(d);
                if (a == null) {
                    return null;
                }
                return pkcs1unpad2(a, this.n.bitLength() + 7 >> 3);
            }
            function RSADecryptOAEP(e, d, b) {
                if (e.length != Math.ceil(this.n.bitLength() / 4)) {
                    throw new Error("wrong ctext length");
                }
                var f = parseBigInt(e, 16);
                var a = this.doPrivate(f);
                if (a == null) {
                    return null;
                }
                return oaep_unpad(a, this.n.bitLength() + 7 >> 3, d, b);
            }
            RSAKey.prototype.doPrivate = RSADoPrivate;
            RSAKey.prototype.setPrivate = RSASetPrivate;
            RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
            RSAKey.prototype.generate = RSAGenerate;
            RSAKey.prototype.decrypt = RSADecrypt;
            RSAKey.prototype.decryptOAEP = RSADecryptOAEP;
            function ECFieldElementFp(b, a) {
                this.x = a;
                this.q = b;
            }
            function feFpEquals(a) {
                if (a == this) {
                    return true;
                }
                return this.q.equals(a.q) && this.x.equals(a.x);
            }
            function feFpToBigInteger() {
                return this.x;
            }
            function feFpNegate() {
                return new ECFieldElementFp(this.q, this.x.negate().mod(this.q));
            }
            function feFpAdd(a) {
                return new ECFieldElementFp(this.q, this.x.add(a.toBigInteger()).mod(this.q));
            }
            function feFpSubtract(a) {
                return new ECFieldElementFp(this.q, this.x.subtract(a.toBigInteger()).mod(this.q));
            }
            function feFpMultiply(a) {
                return new ECFieldElementFp(this.q, this.x.multiply(a.toBigInteger()).mod(this.q));
            }
            function feFpSquare() {
                return new ECFieldElementFp(this.q, this.x.square().mod(this.q));
            }
            function feFpDivide(a) {
                return new ECFieldElementFp(this.q, this.x.multiply(a.toBigInteger().modInverse(this.q)).mod(this.q));
            }
            ECFieldElementFp.prototype.equals = feFpEquals;
            ECFieldElementFp.prototype.toBigInteger = feFpToBigInteger;
            ECFieldElementFp.prototype.negate = feFpNegate;
            ECFieldElementFp.prototype.add = feFpAdd;
            ECFieldElementFp.prototype.subtract = feFpSubtract;
            ECFieldElementFp.prototype.multiply = feFpMultiply;
            ECFieldElementFp.prototype.square = feFpSquare;
            ECFieldElementFp.prototype.divide = feFpDivide;
            ECFieldElementFp.prototype.sqrt = function() {
                return new ECFieldElementFp(this.q, this.x.sqrt().mod(this.q));
            };
            function ECPointFp(c, a, d, b) {
                this.curve = c;
                this.x = a;
                this.y = d;
                if (b == null) {
                    this.z = BigInteger.ONE;
                } else {
                    this.z = b;
                }
                this.zinv = null;
            }
            function pointFpGetX() {
                if (this.zinv == null) {
                    this.zinv = this.z.modInverse(this.curve.q);
                }
                return this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q));
            }
            function pointFpGetY() {
                if (this.zinv == null) {
                    this.zinv = this.z.modInverse(this.curve.q);
                }
                return this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q));
            }
            function pointFpEquals(a) {
                if (a == this) {
                    return true;
                }
                if (this.isInfinity()) {
                    return a.isInfinity();
                }
                if (a.isInfinity()) {
                    return this.isInfinity();
                }
                var c, b;
                c = a.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(a.z)).mod(this.curve.q);
                if (!c.equals(BigInteger.ZERO)) {
                    return false;
                }
                b = a.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(a.z)).mod(this.curve.q);
                return b.equals(BigInteger.ZERO);
            }
            function pointFpIsInfinity() {
                if (this.x == null && this.y == null) {
                    return true;
                }
                return this.z.equals(BigInteger.ZERO) && !this.y.toBigInteger().equals(BigInteger.ZERO);
            }
            function pointFpNegate() {
                return new ECPointFp(this.curve, this.x, this.y.negate(), this.z);
            }
            function pointFpAdd(l) {
                if (this.isInfinity()) {
                    return l;
                }
                if (l.isInfinity()) {
                    return this;
                }
                var p = l.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(l.z)).mod(this.curve.q);
                var o = l.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(l.z)).mod(this.curve.q);
                if (BigInteger.ZERO.equals(o)) {
                    if (BigInteger.ZERO.equals(p)) {
                        return this.twice();
                    }
                    return this.curve.getInfinity();
                }
                var j = new BigInteger("3");
                var e = this.x.toBigInteger();
                var n = this.y.toBigInteger();
                var c = l.x.toBigInteger();
                var k = l.y.toBigInteger();
                var m = o.square();
                var i = m.multiply(o);
                var d = e.multiply(m);
                var g = p.square().multiply(this.z);
                var a = g.subtract(d.shiftLeft(1)).multiply(l.z).subtract(i).multiply(o).mod(this.curve.q);
                var h = d.multiply(j).multiply(p).subtract(n.multiply(i)).subtract(g.multiply(p)).multiply(l.z).add(p.multiply(i)).mod(this.curve.q);
                var f = i.multiply(this.z).multiply(l.z).mod(this.curve.q);
                return new ECPointFp(this.curve, this.curve.fromBigInteger(a), this.curve.fromBigInteger(h), f);
            }
            function pointFpTwice() {
                if (this.isInfinity()) {
                    return this;
                }
                if (this.y.toBigInteger().signum() == 0) {
                    return this.curve.getInfinity();
                }
                var g = new BigInteger("3");
                var c = this.x.toBigInteger();
                var h = this.y.toBigInteger();
                var e = h.multiply(this.z);
                var j = e.multiply(h).mod(this.curve.q);
                var i = this.curve.a.toBigInteger();
                var k = c.square().multiply(g);
                if (!BigInteger.ZERO.equals(i)) {
                    k = k.add(this.z.square().multiply(i));
                }
                k = k.mod(this.curve.q);
                var b = k.square().subtract(c.shiftLeft(3).multiply(j)).shiftLeft(1).multiply(e).mod(this.curve.q);
                var f = k.multiply(g).multiply(c).subtract(j.shiftLeft(1)).shiftLeft(2).multiply(j).subtract(k.square().multiply(k)).mod(this.curve.q);
                var d = e.square().multiply(e).shiftLeft(3).mod(this.curve.q);
                return new ECPointFp(this.curve, this.curve.fromBigInteger(b), this.curve.fromBigInteger(f), d);
            }
            function pointFpMultiply(d) {
                if (this.isInfinity()) {
                    return this;
                }
                if (d.signum() == 0) {
                    return this.curve.getInfinity();
                }
                var m = d;
                var l = m.multiply(new BigInteger("3"));
                var b = this.negate();
                var j = this;
                var q = this.curve.q.subtract(d);
                var o = q.multiply(new BigInteger("3"));
                var c = new ECPointFp(this.curve, this.x, this.y);
                var a = c.negate();
                var g;
                for(g = l.bitLength() - 2; g > 0; --g){
                    j = j.twice();
                    var n = l.testBit(g);
                    var f = m.testBit(g);
                    if (n != f) {
                        j = j.add(n ? this : b);
                    }
                }
                for(g = o.bitLength() - 2; g > 0; --g){
                    c = c.twice();
                    var p = o.testBit(g);
                    var r = q.testBit(g);
                    if (p != r) {
                        c = c.add(p ? c : a);
                    }
                }
                return j;
            }
            function pointFpMultiplyTwo(c, a, b) {
                var d;
                if (c.bitLength() > b.bitLength()) {
                    d = c.bitLength() - 1;
                } else {
                    d = b.bitLength() - 1;
                }
                var f = this.curve.getInfinity();
                var e = this.add(a);
                while(d >= 0){
                    f = f.twice();
                    if (c.testBit(d)) {
                        if (b.testBit(d)) {
                            f = f.add(e);
                        } else {
                            f = f.add(this);
                        }
                    } else {
                        if (b.testBit(d)) {
                            f = f.add(a);
                        }
                    }
                    --d;
                }
                return f;
            }
            ECPointFp.prototype.getX = pointFpGetX;
            ECPointFp.prototype.getY = pointFpGetY;
            ECPointFp.prototype.equals = pointFpEquals;
            ECPointFp.prototype.isInfinity = pointFpIsInfinity;
            ECPointFp.prototype.negate = pointFpNegate;
            ECPointFp.prototype.add = pointFpAdd;
            ECPointFp.prototype.twice = pointFpTwice;
            ECPointFp.prototype.multiply = pointFpMultiply;
            ECPointFp.prototype.multiplyTwo = pointFpMultiplyTwo;
            function ECCurveFp(e, d, c) {
                this.q = e;
                this.a = this.fromBigInteger(d);
                this.b = this.fromBigInteger(c);
                this.infinity = new ECPointFp(this, null, null);
            }
            function curveFpGetQ() {
                return this.q;
            }
            function curveFpGetA() {
                return this.a;
            }
            function curveFpGetB() {
                return this.b;
            }
            function curveFpEquals(a) {
                if (a == this) {
                    return true;
                }
                return this.q.equals(a.q) && this.a.equals(a.a) && this.b.equals(a.b);
            }
            function curveFpGetInfinity() {
                return this.infinity;
            }
            function curveFpFromBigInteger(a) {
                return new ECFieldElementFp(this.q, a);
            }
            function curveFpDecodePointHex(m) {
                switch(parseInt(m.substr(0, 2), 16)){
                    case 0:
                        return this.infinity;
                    case 2:
                    case 3:
                        var c = m.substr(0, 2);
                        var l = m.substr(2);
                        var j = this.fromBigInteger(new BigInteger(k, 16));
                        var i = this.getA();
                        var h = this.getB();
                        var e = j.square().add(i).multiply(j).add(h);
                        var g = e.sqrt();
                        if (c == "03") {
                            g = g.negate();
                        }
                        return new ECPointFp(this, j, g);
                    case 4:
                    case 6:
                    case 7:
                        var d = (m.length - 2) / 2;
                        var k = m.substr(2, d);
                        var f = m.substr(d + 2, d);
                        return new ECPointFp(this, this.fromBigInteger(new BigInteger(k, 16)), this.fromBigInteger(new BigInteger(f, 16)));
                    default:
                        return null;
                }
            }
            ECCurveFp.prototype.getQ = curveFpGetQ;
            ECCurveFp.prototype.getA = curveFpGetA;
            ECCurveFp.prototype.getB = curveFpGetB;
            ECCurveFp.prototype.equals = curveFpEquals;
            ECCurveFp.prototype.getInfinity = curveFpGetInfinity;
            ECCurveFp.prototype.fromBigInteger = curveFpFromBigInteger;
            ECCurveFp.prototype.decodePointHex = curveFpDecodePointHex;
            ECFieldElementFp.prototype.getByteLength = function() {
                return Math.floor((this.toBigInteger().bitLength() + 7) / 8);
            };
            ECPointFp.prototype.getEncoded = function(c) {
                var d = function d(h, f) {
                    var g = h.toByteArrayUnsigned();
                    if (f < g.length) {
                        g = g.slice(g.length - f);
                    } else {
                        while(f > g.length){
                            g.unshift(0);
                        }
                    }
                    return g;
                };
                var a = this.getX().toBigInteger();
                var e = this.getY().toBigInteger();
                var b = d(a, 32);
                if (c) {
                    if (e.isEven()) {
                        b.unshift(2);
                    } else {
                        b.unshift(3);
                    }
                } else {
                    b.unshift(4);
                    b = b.concat(d(e, 32));
                }
                return b;
            };
            ECPointFp.decodeFrom = function(g, c) {
                var f = c[0];
                var e = c.length - 1;
                var d = c.slice(1, 1 + e / 2);
                var b = c.slice(1 + e / 2, 1 + e);
                d.unshift(0);
                b.unshift(0);
                var a = new BigInteger(d);
                var h = new BigInteger(b);
                return new ECPointFp(g, g.fromBigInteger(a), g.fromBigInteger(h));
            };
            ECPointFp.decodeFromHex = function(g, c) {
                var f = c.substr(0, 2);
                var e = c.length - 2;
                var d = c.substr(2, e / 2);
                var b = c.substr(2 + e / 2, e / 2);
                var a = new BigInteger(d, 16);
                var h = new BigInteger(b, 16);
                return new ECPointFp(g, g.fromBigInteger(a), g.fromBigInteger(h));
            };
            ECPointFp.prototype.add2D = function(c) {
                if (this.isInfinity()) {
                    return c;
                }
                if (c.isInfinity()) {
                    return this;
                }
                if (this.x.equals(c.x)) {
                    if (this.y.equals(c.y)) {
                        return this.twice();
                    }
                    return this.curve.getInfinity();
                }
                var g = c.x.subtract(this.x);
                var e = c.y.subtract(this.y);
                var a = e.divide(g);
                var d = a.square().subtract(this.x).subtract(c.x);
                var f = a.multiply(this.x.subtract(d)).subtract(this.y);
                return new ECPointFp(this.curve, d, f);
            };
            ECPointFp.prototype.twice2D = function() {
                if (this.isInfinity()) {
                    return this;
                }
                if (this.y.toBigInteger().signum() == 0) {
                    return this.curve.getInfinity();
                }
                var b = this.curve.fromBigInteger(BigInteger.valueOf(2));
                var e = this.curve.fromBigInteger(BigInteger.valueOf(3));
                var a = this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(b));
                var c = a.square().subtract(this.x.multiply(b));
                var d = a.multiply(this.x.subtract(c)).subtract(this.y);
                return new ECPointFp(this.curve, c, d);
            };
            ECPointFp.prototype.multiply2D = function(b) {
                if (this.isInfinity()) {
                    return this;
                }
                if (b.signum() == 0) {
                    return this.curve.getInfinity();
                }
                var g = b;
                var f = g.multiply(new BigInteger("3"));
                var l = this.negate();
                var d = this;
                var c;
                for(c = f.bitLength() - 2; c > 0; --c){
                    d = d.twice();
                    var a = f.testBit(c);
                    var j = g.testBit(c);
                    if (a != j) {
                        d = d.add2D(a ? this : l);
                    }
                }
                return d;
            };
            ECPointFp.prototype.isOnCurve = function() {
                var d = this.getX().toBigInteger();
                var i = this.getY().toBigInteger();
                var f = this.curve.getA().toBigInteger();
                var c = this.curve.getB().toBigInteger();
                var h = this.curve.getQ();
                var e = i.multiply(i).mod(h);
                var g = d.multiply(d).multiply(d).add(f.multiply(d)).add(c).mod(h);
                return e.equals(g);
            };
            ECPointFp.prototype.toString = function() {
                return "(" + this.getX().toBigInteger().toString() + "," + this.getY().toBigInteger().toString() + ")";
            };
            ECPointFp.prototype.validate = function() {
                var c = this.curve.getQ();
                if (this.isInfinity()) {
                    throw new Error("Point is at infinity.");
                }
                var a = this.getX().toBigInteger();
                var b = this.getY().toBigInteger();
                if (a.compareTo(BigInteger.ONE) < 0 || a.compareTo(c.subtract(BigInteger.ONE)) > 0) {
                    throw new Error("x coordinate out of bounds");
                }
                if (b.compareTo(BigInteger.ONE) < 0 || b.compareTo(c.subtract(BigInteger.ONE)) > 0) {
                    throw new Error("y coordinate out of bounds");
                }
                if (!this.isOnCurve()) {
                    throw new Error("Point is not on the curve.");
                }
                if (this.multiply(c).isInfinity()) {
                    throw new Error("Point is not a scalar multiple of G.");
                }
                return true;
            };
            var jsonParse = function() {
                var e = "(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)";
                var j = '(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))';
                var i = '(?:"' + j + '*")';
                var d = new RegExp("(?:false|true|null|[\\{\\}\\[\\]]|" + e + "|" + i + ")", "g");
                var k = new RegExp("\\\\(?:([^u])|u(.{4}))", "g");
                var g = {
                    '"': '"',
                    "/": "/",
                    "\\": "\\",
                    b: "\b",
                    f: "\f",
                    n: "\n",
                    r: "\r",
                    t: "	"
                };
                function h(l, m, n) {
                    return m ? g[m] : String.fromCharCode(parseInt(n, 16));
                }
                var c = new String("");
                var a = "\\";
                var f = {
                    "{": Object,
                    "[": Array
                };
                var b = Object.hasOwnProperty;
                return function(u, q) {
                    var p = u.match(d);
                    var x;
                    var v = p[0];
                    var l = false;
                    if ("{" === v) {
                        x = {};
                    } else {
                        if ("[" === v) {
                            x = [];
                        } else {
                            x = [];
                            l = true;
                        }
                    }
                    var t2;
                    var r = [
                        x
                    ];
                    for(var o = 1 - l, m = p.length; o < m; ++o){
                        v = p[o];
                        var w;
                        switch(v.charCodeAt(0)){
                            default:
                                w = r[0];
                                w[t2 || w.length] = +v;
                                t2 = void 0;
                                break;
                            case 34:
                                v = v.substring(1, v.length - 1);
                                if (v.indexOf(a) !== -1) {
                                    v = v.replace(k, h);
                                }
                                w = r[0];
                                if (!t2) {
                                    if (w instanceof Array) {
                                        t2 = w.length;
                                    } else {
                                        t2 = v || c;
                                        break;
                                    }
                                }
                                w[t2] = v;
                                t2 = void 0;
                                break;
                            case 91:
                                w = r[0];
                                r.unshift(w[t2 || w.length] = []);
                                t2 = void 0;
                                break;
                            case 93:
                                r.shift();
                                break;
                            case 102:
                                w = r[0];
                                w[t2 || w.length] = false;
                                t2 = void 0;
                                break;
                            case 110:
                                w = r[0];
                                w[t2 || w.length] = null;
                                t2 = void 0;
                                break;
                            case 116:
                                w = r[0];
                                w[t2 || w.length] = true;
                                t2 = void 0;
                                break;
                            case 123:
                                w = r[0];
                                r.unshift(w[t2 || w.length] = {});
                                t2 = void 0;
                                break;
                            case 125:
                                r.shift();
                                break;
                        }
                    }
                    if (l) {
                        if (r.length !== 1) {
                            throw new Error();
                        }
                        x = x[0];
                    } else {
                        if (r.length) {
                            throw new Error();
                        }
                    }
                    if (q) {
                        var s = function s1(C, B) {
                            var D = C[B];
                            if (D && (typeof D === "undefined" ? "undefined" : _type_of(D)) === "object") {
                                var n = null;
                                for(var z2 in D){
                                    if (b.call(D, z2) && D !== C) {
                                        var y = s(D, z2);
                                        if (y !== void 0) {
                                            D[z2] = y;
                                        } else {
                                            if (!n) {
                                                n = [];
                                            }
                                            n.push(z2);
                                        }
                                    }
                                }
                                if (n) {
                                    for(var A = n.length; --A >= 0;){
                                        delete D[n[A]];
                                    }
                                }
                            }
                            return q.call(C, B, D);
                        };
                        x = s({
                            "": x
                        }, "");
                    }
                    return x;
                };
            }();
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) {
                KJUR.asn1 = {};
            }
            KJUR.asn1.ASN1Util = new function() {
                this.integerToByteHex = function(a) {
                    var b = a.toString(16);
                    if (b.length % 2 == 1) {
                        b = "0" + b;
                    }
                    return b;
                };
                this.bigIntToMinTwosComplementsHex = function(a) {
                    return twoscompl(a);
                };
                this.getPEMStringFromHex = function(a, b) {
                    return hextopem(a, b);
                };
                this.newObject = function(k) {
                    var F = KJUR, o = F.asn1, v = o.ASN1Object, B = o.DERBoolean, e = o.DERInteger, t2 = o.DERBitString, h = o.DEROctetString, x = o.DERNull, y = o.DERObjectIdentifier, m = o.DEREnumerated, g = o.DERUTF8String, f = o.DERNumericString, A = o.DERPrintableString, w = o.DERTeletexString, q = o.DERIA5String, E = o.DERUTCTime, j = o.DERGeneralizedTime, b = o.DERVisibleString, l = o.DERBMPString, n = o.DERSequence, c = o.DERSet, s = o.DERTaggedObject, p = o.ASN1Util.newObject;
                    if (k instanceof o.ASN1Object) {
                        return k;
                    }
                    var u = Object.keys(k);
                    if (u.length != 1) {
                        throw new Error("key of param shall be only one.");
                    }
                    var H = u[0];
                    if (":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:".indexOf(":" + H + ":") == -1) {
                        throw new Error("undefined key: " + H);
                    }
                    if (H == "bool") {
                        return new B(k[H]);
                    }
                    if (H == "int") {
                        return new e(k[H]);
                    }
                    if (H == "bitstr") {
                        return new t2(k[H]);
                    }
                    if (H == "octstr") {
                        return new h(k[H]);
                    }
                    if (H == "null") {
                        return new x(k[H]);
                    }
                    if (H == "oid") {
                        return new y(k[H]);
                    }
                    if (H == "enum") {
                        return new m(k[H]);
                    }
                    if (H == "utf8str") {
                        return new g(k[H]);
                    }
                    if (H == "numstr") {
                        return new f(k[H]);
                    }
                    if (H == "prnstr") {
                        return new A(k[H]);
                    }
                    if (H == "telstr") {
                        return new w(k[H]);
                    }
                    if (H == "ia5str") {
                        return new q(k[H]);
                    }
                    if (H == "utctime") {
                        return new E(k[H]);
                    }
                    if (H == "gentime") {
                        return new j(k[H]);
                    }
                    if (H == "visstr") {
                        return new b(k[H]);
                    }
                    if (H == "bmpstr") {
                        return new l(k[H]);
                    }
                    if (H == "asn1") {
                        return new v(k[H]);
                    }
                    if (H == "seq") {
                        var d = k[H];
                        var G = [];
                        for(var z2 = 0; z2 < d.length; z2++){
                            var D = p(d[z2]);
                            G.push(D);
                        }
                        return new n({
                            array: G
                        });
                    }
                    if (H == "set") {
                        var d = k[H];
                        var G = [];
                        for(var z2 = 0; z2 < d.length; z2++){
                            var D = p(d[z2]);
                            G.push(D);
                        }
                        return new c({
                            array: G
                        });
                    }
                    if (H == "tag") {
                        var C = k[H];
                        if (Object.prototype.toString.call(C) === "[object Array]" && C.length == 3) {
                            var r = p(C[2]);
                            return new s({
                                tag: C[0],
                                explicit: C[1],
                                obj: r
                            });
                        } else {
                            return new s(C);
                        }
                    }
                };
                this.jsonToASN1HEX = function(b) {
                    var a = this.newObject(b);
                    return a.tohex();
                };
            }();
            KJUR.asn1.ASN1Util.oidHexToInt = function(a) {
                var j = "";
                var k = parseInt(a.substr(0, 2), 16);
                var d = Math.floor(k / 40);
                var c = k % 40;
                var j = d + "." + c;
                var e = "";
                for(var f = 2; f < a.length; f += 2){
                    var g = parseInt(a.substr(f, 2), 16);
                    var h = ("00000000" + g.toString(2)).slice(-8);
                    e = e + h.substr(1, 7);
                    if (h.substr(0, 1) == "0") {
                        var b = new BigInteger(e, 2);
                        j = j + "." + b.toString(10);
                        e = "";
                    }
                }
                return j;
            };
            KJUR.asn1.ASN1Util.oidIntToHex = function(f) {
                var e = function e(a) {
                    var k = a.toString(16);
                    if (k.length == 1) {
                        k = "0" + k;
                    }
                    return k;
                };
                var d = function d(o) {
                    var n = "";
                    var k = new BigInteger(o, 10);
                    var a = k.toString(2);
                    var l = 7 - a.length % 7;
                    if (l == 7) {
                        l = 0;
                    }
                    var q = "";
                    for(var m = 0; m < l; m++){
                        q += "0";
                    }
                    a = q + a;
                    for(var m = 0; m < a.length - 1; m += 7){
                        var p = a.substr(m, 7);
                        if (m != a.length - 7) {
                            p = "1" + p;
                        }
                        n += e(parseInt(p, 2));
                    }
                    return n;
                };
                if (!f.match(/^[0-9.]+$/)) {
                    throw "malformed oid string: " + f;
                }
                var g = "";
                var b = f.split(".");
                var j = parseInt(b[0]) * 40 + parseInt(b[1]);
                g += e(j);
                b.splice(0, 2);
                for(var c = 0; c < b.length; c++){
                    g += d(b[c]);
                }
                return g;
            };
            KJUR.asn1.ASN1Object = function(e) {
                var c = true;
                var b = null;
                var d = "00";
                var f = "00";
                var a = "";
                this.params = null;
                this.getLengthHexFromValue = function() {
                    if (typeof this.hV == "undefined" || this.hV == null) {
                        throw new Error("this.hV is null or undefined");
                    }
                    if (this.hV.length % 2 == 1) {
                        throw new Error("value hex must be even length: n=" + a.length + ",v=" + this.hV);
                    }
                    var j = this.hV.length / 2;
                    var i = j.toString(16);
                    if (i.length % 2 == 1) {
                        i = "0" + i;
                    }
                    if (j < 128) {
                        return i;
                    } else {
                        var h = i.length / 2;
                        if (h > 15) {
                            throw new Error("ASN.1 length too long to represent by 8x: n = " + j.toString(16));
                        }
                        var g = 128 + h;
                        return g.toString(16) + i;
                    }
                };
                this.tohex = function() {
                    if (this.hTLV == null || this.isModified) {
                        this.hV = this.getFreshValueHex();
                        this.hL = this.getLengthHexFromValue();
                        this.hTLV = this.hT + this.hL + this.hV;
                        this.isModified = false;
                    }
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.getValueHex = function() {
                    this.tohex();
                    return this.hV;
                };
                this.getFreshValueHex = function() {
                    return "";
                };
                this.setByParam = function(g) {
                    this.params = g;
                };
                if (e != void 0) {
                    if (e.tlv != void 0) {
                        this.hTLV = e.tlv;
                        this.isModified = false;
                    }
                }
            };
            KJUR.asn1.DERAbstractString = function(c) {
                KJUR.asn1.DERAbstractString.superclass.constructor.call(this);
                var b = null;
                var a = null;
                this.getString = function() {
                    return this.s;
                };
                this.setString = function(d) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.s = d;
                    this.hV = utf8tohex(this.s).toLowerCase();
                };
                this.setStringHex = function(d) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.s = null;
                    this.hV = d;
                };
                this.getFreshValueHex = function() {
                    return this.hV;
                };
                if (typeof c != "undefined") {
                    if (typeof c == "string") {
                        this.setString(c);
                    } else {
                        if (typeof c.str != "undefined") {
                            this.setString(c.str);
                        } else {
                            if (typeof c.hex != "undefined") {
                                this.setStringHex(c.hex);
                            }
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERAbstractTime = function(c) {
                KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);
                var b = null;
                var a = null;
                this.localDateToUTC = function(g) {
                    var e = g.getTime() + g.getTimezoneOffset() * 6e4;
                    var f = new Date(e);
                    return f;
                };
                this.formatDate = function(m, o, e) {
                    var g = this.zeroPadding;
                    var n = this.localDateToUTC(m);
                    var p = String(n.getFullYear());
                    if (o == "utc") {
                        p = p.substr(2, 2);
                    }
                    var l = g(String(n.getMonth() + 1), 2);
                    var q = g(String(n.getDate()), 2);
                    var h = g(String(n.getHours()), 2);
                    var i = g(String(n.getMinutes()), 2);
                    var j = g(String(n.getSeconds()), 2);
                    var r = p + l + q + h + i + j;
                    if (e === true) {
                        var f = n.getMilliseconds();
                        if (f != 0) {
                            var k = g(String(f), 3);
                            k = k.replace(/[0]+$/, "");
                            r = r + "." + k;
                        }
                    }
                    return r + "Z";
                };
                this.zeroPadding = function(e, d) {
                    if (e.length >= d) {
                        return e;
                    }
                    return new Array(d - e.length + 1).join("0") + e;
                };
                this.setByParam = function(d) {
                    this.hV = null;
                    this.hTLV = null;
                    this.params = d;
                };
                this.getString = function() {
                    return void 0;
                };
                this.setString = function(d) {
                    this.hTLV = null;
                    this.isModified = true;
                    if (this.params == void 0) {
                        this.params = {};
                    }
                    this.params.str = d;
                };
                this.setByDate = function(d) {
                    this.hTLV = null;
                    this.isModified = true;
                    if (this.params == void 0) {
                        this.params = {};
                    }
                    this.params.date = d;
                };
                this.setByDateValue = function(h, j, e, d, f, g) {
                    var i = new Date(Date.UTC(h, j - 1, e, d, f, g, 0));
                    this.setByDate(i);
                };
                this.getFreshValueHex = function() {
                    return this.hV;
                };
            };
            extendClass(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERAbstractStructured = function(b) {
                KJUR.asn1.DERAbstractString.superclass.constructor.call(this);
                var a = null;
                this.setByASN1ObjectArray = function(c) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.asn1Array = c;
                };
                this.appendASN1Object = function(c) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.asn1Array.push(c);
                };
                this.asn1Array = new Array();
                if (typeof b != "undefined") {
                    if (typeof b.array != "undefined") {
                        this.asn1Array = b.array;
                    }
                }
            };
            extendClass(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERBoolean = function(a) {
                KJUR.asn1.DERBoolean.superclass.constructor.call(this);
                this.hT = "01";
                if (a == false) {
                    this.hTLV = "010100";
                } else {
                    this.hTLV = "0101ff";
                }
            };
            extendClass(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERInteger = function(b) {
                KJUR.asn1.DERInteger.superclass.constructor.call(this);
                this.hT = "02";
                this.params = null;
                var a = twoscompl;
                this.setByBigInteger = function(c) {
                    this.isModified = true;
                    this.params = {
                        bigint: c
                    };
                };
                this.setByInteger = function(c) {
                    this.isModified = true;
                    this.params = c;
                };
                this.setValueHex = function(c) {
                    this.isModified = true;
                    this.params = {
                        hex: c
                    };
                };
                this.getFreshValueHex = function() {
                    var d = this.params;
                    var c = null;
                    if (d == null) {
                        throw new Error("value not set");
                    }
                    if ((typeof d === "undefined" ? "undefined" : _type_of(d)) == "object" && d.hex != void 0) {
                        this.hV = d.hex;
                        return this.hV;
                    }
                    if (typeof d == "number") {
                        c = new BigInteger(String(d), 10);
                    } else {
                        if (d["int"] != void 0) {
                            c = new BigInteger(String(d["int"]), 10);
                        } else {
                            if (d.bigint != void 0) {
                                c = d.bigint;
                            } else {
                                throw new Error("wrong parameter");
                            }
                        }
                    }
                    this.hV = a(c);
                    return this.hV;
                };
                if (b != void 0) {
                    this.params = b;
                }
            };
            extendClass(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERBitString = function(b) {
                if (b !== void 0 && typeof b.obj !== "undefined") {
                    var a = KJUR.asn1.ASN1Util.newObject(b.obj);
                    b.hex = "00" + a.tohex();
                }
                KJUR.asn1.DERBitString.superclass.constructor.call(this);
                this.hT = "03";
                this.setHexValueIncludingUnusedBits = function(c) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.hV = c;
                };
                this.setUnusedBitsAndHexValue = function(c, e) {
                    if (c < 0 || 7 < c) {
                        throw "unused bits shall be from 0 to 7: u = " + c;
                    }
                    var d = "0" + c;
                    this.hTLV = null;
                    this.isModified = true;
                    this.hV = d + e;
                };
                this.setByBinaryString = function(e) {
                    e = e.replace(/0+$/, "");
                    var f = 8 - e.length % 8;
                    if (f == 8) {
                        f = 0;
                    }
                    e += "0000000".substr(0, f);
                    var j = "";
                    for(var g = 0; g < e.length - 1; g += 8){
                        var d = e.substr(g, 8);
                        var c = parseInt(d, 2).toString(16);
                        if (c.length == 1) {
                            c = "0" + c;
                        }
                        j += c;
                    }
                    this.hTLV = null;
                    this.isModified = true;
                    this.hV = "0" + f + j;
                };
                this.setByBooleanArray = function(e) {
                    var d = "";
                    for(var c = 0; c < e.length; c++){
                        if (e[c] == true) {
                            d += "1";
                        } else {
                            d += "0";
                        }
                    }
                    this.setByBinaryString(d);
                };
                this.newFalseArray = function(e) {
                    var c = new Array(e);
                    for(var d = 0; d < e; d++){
                        c[d] = false;
                    }
                    return c;
                };
                this.getFreshValueHex = function() {
                    return this.hV;
                };
                if (typeof b != "undefined") {
                    if (typeof b == "string" && b.toLowerCase().match(/^[0-9a-f]+$/)) {
                        this.setHexValueIncludingUnusedBits(b);
                    } else {
                        if (typeof b.hex != "undefined") {
                            this.setHexValueIncludingUnusedBits(b.hex);
                        } else {
                            if (typeof b.bin != "undefined") {
                                this.setByBinaryString(b.bin);
                            } else {
                                if (typeof b.array != "undefined") {
                                    this.setByBooleanArray(b.array);
                                }
                            }
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);
            KJUR.asn1.DEROctetString = function(b) {
                if (b !== void 0 && typeof b.obj !== "undefined") {
                    var a = KJUR.asn1.ASN1Util.newObject(b.obj);
                    b.hex = a.tohex();
                }
                KJUR.asn1.DEROctetString.superclass.constructor.call(this, b);
                this.hT = "04";
            };
            extendClass(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERNull = function() {
                KJUR.asn1.DERNull.superclass.constructor.call(this);
                this.hT = "05";
                this.hTLV = "0500";
            };
            extendClass(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERObjectIdentifier = function(a) {
                KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);
                this.hT = "06";
                this.setValueHex = function(b) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.s = null;
                    this.hV = b;
                };
                this.setValueOidString = function(b) {
                    var c = oidtohex(b);
                    if (c == null) {
                        throw new Error("malformed oid string: " + b);
                    }
                    this.hTLV = null;
                    this.isModified = true;
                    this.s = null;
                    this.hV = c;
                };
                this.setValueName = function(c) {
                    var b = KJUR.asn1.x509.OID.name2oid(c);
                    if (b !== "") {
                        this.setValueOidString(b);
                    } else {
                        throw new Error("DERObjectIdentifier oidName undefined: " + c);
                    }
                };
                this.setValueNameOrOid = function(b) {
                    if (b.match(/^[0-2].[0-9.]+$/)) {
                        this.setValueOidString(b);
                    } else {
                        this.setValueName(b);
                    }
                };
                this.getFreshValueHex = function() {
                    return this.hV;
                };
                this.setByParam = function(b) {
                    if (typeof b === "string") {
                        this.setValueNameOrOid(b);
                    } else {
                        if (b.oid !== void 0) {
                            this.setValueNameOrOid(b.oid);
                        } else {
                            if (b.name !== void 0) {
                                this.setValueNameOrOid(b.name);
                            } else {
                                if (b.hex !== void 0) {
                                    this.setValueHex(b.hex);
                                }
                            }
                        }
                    }
                };
                if (a !== void 0) {
                    this.setByParam(a);
                }
            };
            extendClass(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);
            KJUR.asn1.DEREnumerated = function(a) {
                KJUR.asn1.DEREnumerated.superclass.constructor.call(this);
                this.hT = "0a";
                this.setByBigInteger = function(b) {
                    this.hTLV = null;
                    this.isModified = true;
                    this.hV = twoscompl(b);
                };
                this.setByInteger = function(c) {
                    var b = new BigInteger(String(c), 10);
                    this.setByBigInteger(b);
                };
                this.setValueHex = function(b) {
                    this.hV = b;
                };
                this.getFreshValueHex = function() {
                    return this.hV;
                };
                if (typeof a != "undefined") {
                    if (typeof a["int"] != "undefined") {
                        this.setByInteger(a["int"]);
                    } else {
                        if (typeof a == "number") {
                            this.setByInteger(a);
                        } else {
                            if (typeof a.hex != "undefined") {
                                this.setValueHex(a.hex);
                            }
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);
            KJUR.asn1.DERUTF8String = function(a) {
                KJUR.asn1.DERUTF8String.superclass.constructor.call(this, a);
                this.hT = "0c";
            };
            extendClass(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERNumericString = function(a) {
                KJUR.asn1.DERNumericString.superclass.constructor.call(this, a);
                this.hT = "12";
            };
            extendClass(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERPrintableString = function(a) {
                KJUR.asn1.DERPrintableString.superclass.constructor.call(this, a);
                this.hT = "13";
            };
            extendClass(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERTeletexString = function(a) {
                KJUR.asn1.DERTeletexString.superclass.constructor.call(this, a);
                this.hT = "14";
            };
            extendClass(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERIA5String = function(a) {
                KJUR.asn1.DERIA5String.superclass.constructor.call(this, a);
                this.hT = "16";
            };
            extendClass(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERVisibleString = function(a) {
                KJUR.asn1.DERIA5String.superclass.constructor.call(this, a);
                this.hT = "1a";
            };
            extendClass(KJUR.asn1.DERVisibleString, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERBMPString = function(a) {
                KJUR.asn1.DERBMPString.superclass.constructor.call(this, a);
                this.hT = "1e";
            };
            extendClass(KJUR.asn1.DERBMPString, KJUR.asn1.DERAbstractString);
            KJUR.asn1.DERUTCTime = function(a) {
                KJUR.asn1.DERUTCTime.superclass.constructor.call(this, a);
                this.hT = "17";
                this.params = void 0;
                this.getFreshValueHex = function() {
                    var d = this.params;
                    if (this.params == void 0) {
                        d = {
                            date: /* @__PURE__ */ new Date()
                        };
                    }
                    if (typeof d == "string") {
                        if (d.match(/^[0-9]{12}Z$/) || d.match(/^[0-9]{12}\.[0-9]+Z$/)) {
                            this.hV = stohex(d);
                        } else {
                            throw new Error("malformed string for UTCTime: " + d);
                        }
                    } else {
                        if (d.str != void 0) {
                            this.hV = stohex(d.str);
                        } else {
                            if (d.date == void 0 && d.millis == true) {
                                var c = /* @__PURE__ */ new Date();
                                this.hV = stohex(this.formatDate(c, "utc", true));
                            } else {
                                if (d.date != void 0 && d.date instanceof Date) {
                                    var b = d.millis === true;
                                    this.hV = stohex(this.formatDate(d.date, "utc", b));
                                } else {
                                    if (d instanceof Date) {
                                        this.hV = stohex(this.formatDate(d, "utc"));
                                    }
                                }
                            }
                        }
                    }
                    if (this.hV == void 0) {
                        throw new Error("parameter not specified properly for UTCTime");
                    }
                    return this.hV;
                };
                if (a != void 0) {
                    this.setByParam(a);
                }
            };
            extendClass(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);
            KJUR.asn1.DERGeneralizedTime = function(a) {
                KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, a);
                this.hT = "18";
                this.params = a;
                this.getFreshValueHex = function() {
                    var d = this.params;
                    if (this.params == void 0) {
                        d = {
                            date: /* @__PURE__ */ new Date()
                        };
                    }
                    if (typeof d == "string") {
                        if (d.match(/^[0-9]{14}Z$/) || d.match(/^[0-9]{14}\.[0-9]+Z$/)) {
                            this.hV = stohex(d);
                        } else {
                            throw new Error("malformed string for GeneralizedTime: " + d);
                        }
                    } else {
                        if (d.str != void 0) {
                            this.hV = stohex(d.str);
                        } else {
                            if (d.date == void 0 && d.millis == true) {
                                var c = /* @__PURE__ */ new Date();
                                this.hV = stohex(this.formatDate(c, "gen", true));
                            } else {
                                if (d.date != void 0 && d.date instanceof Date) {
                                    var b = d.millis === true;
                                    this.hV = stohex(this.formatDate(d.date, "gen", b));
                                } else {
                                    if (d instanceof Date) {
                                        this.hV = stohex(this.formatDate(d, "gen"));
                                    }
                                }
                            }
                        }
                    }
                    if (this.hV == void 0) {
                        throw new Error("parameter not specified properly for GeneralizedTime");
                    }
                    return this.hV;
                };
                if (a != void 0) {
                    this.setByParam(a);
                }
            };
            extendClass(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);
            KJUR.asn1.DERSequence = function(a) {
                KJUR.asn1.DERSequence.superclass.constructor.call(this, a);
                this.hT = "30";
                this.getFreshValueHex = function() {
                    var c = "";
                    for(var b = 0; b < this.asn1Array.length; b++){
                        var d = this.asn1Array[b];
                        c += d.tohex();
                    }
                    this.hV = c;
                    return this.hV;
                };
            };
            extendClass(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);
            KJUR.asn1.DERSet = function(a) {
                KJUR.asn1.DERSet.superclass.constructor.call(this, a);
                this.hT = "31";
                this.sortFlag = true;
                this.getFreshValueHex = function() {
                    var b = new Array();
                    for(var c = 0; c < this.asn1Array.length; c++){
                        var d = this.asn1Array[c];
                        b.push(d.tohex());
                    }
                    if (this.sortFlag == true) {
                        b.sort();
                    }
                    this.hV = b.join("");
                    return this.hV;
                };
                if (typeof a != "undefined") {
                    if (typeof a.sortflag != "undefined" && a.sortflag == false) {
                        this.sortFlag = false;
                    }
                }
            };
            extendClass(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);
            KJUR.asn1.DERTaggedObject = function(f) {
                KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);
                var d = KJUR.asn1, e = ASN1HEX, a = e.getV, c = e.isASN1HEX, b = d.ASN1Util.newObject;
                this.hT = "a0";
                this.hV = "";
                this.isExplicit = true;
                this.asn1Object = null;
                this.params = {
                    tag: "a0",
                    explicit: true
                };
                this.setASN1Object = function(g, h, i) {
                    this.params = {
                        tag: h,
                        explicit: g,
                        obj: i
                    };
                };
                this.getFreshValueHex = function() {
                    var h = this.params;
                    if (h.explicit == void 0) {
                        h.explicit = true;
                    }
                    if (h.tage != void 0) {
                        h.tag = h.tage;
                        h.explicit = true;
                    }
                    if (h.tagi != void 0) {
                        h.tag = h.tagi;
                        h.explicit = false;
                    }
                    if (h.str != void 0) {
                        this.hV = utf8tohex(h.str);
                    } else {
                        if (h.hex != void 0) {
                            this.hV = h.hex;
                        } else {
                            if (h.obj != void 0) {
                                var g;
                                if (h.obj instanceof d.ASN1Object) {
                                    g = h.obj.tohex();
                                } else {
                                    if (_type_of(h.obj) == "object") {
                                        g = b(h.obj).tohex();
                                    }
                                }
                                if (h.explicit) {
                                    this.hV = g;
                                } else {
                                    this.hV = a(g, 0);
                                }
                            } else {
                                throw new Error("str, hex nor obj not specified");
                            }
                        }
                    }
                    if (h.tag == void 0) {
                        h.tag = "a0";
                    }
                    this.hT = h.tag;
                    this.hTLV = null;
                    this.isModified = true;
                    return this.hV;
                };
                this.setByParam = function(g) {
                    this.params = g;
                };
                if (f !== void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);
            var ASN1HEX = new function() {}();
            ASN1HEX.getLblen = function(c, a) {
                if (c.substr(a + 2, 1) != "8") {
                    return 1;
                }
                var b = parseInt(c.substr(a + 3, 1));
                if (b == 0) {
                    return -1;
                }
                if (0 < b && b < 10) {
                    return b + 1;
                }
                return -2;
            };
            ASN1HEX.getL = function(c, b) {
                var a = ASN1HEX.getLblen(c, b);
                if (a < 1) {
                    return "";
                }
                return c.substr(b + 2, a * 2);
            };
            ASN1HEX.getVblen = function(d, a) {
                var c, b;
                c = ASN1HEX.getL(d, a);
                if (c == "") {
                    return -1;
                }
                if (c.substr(0, 1) === "8") {
                    b = new BigInteger(c.substr(2), 16);
                } else {
                    b = new BigInteger(c, 16);
                }
                return b.intValue();
            };
            ASN1HEX.getVidx = function(c, b) {
                var a = ASN1HEX.getLblen(c, b);
                if (a < 0) {
                    return a;
                }
                return b + (a + 1) * 2;
            };
            ASN1HEX.getV = function(d, a) {
                var c = ASN1HEX.getVidx(d, a);
                var b = ASN1HEX.getVblen(d, a);
                return d.substr(c, b * 2);
            };
            ASN1HEX.getTLV = function(b, a) {
                return b.substr(a, 2) + ASN1HEX.getL(b, a) + ASN1HEX.getV(b, a);
            };
            ASN1HEX.getTLVblen = function(b, a) {
                return 2 + ASN1HEX.getLblen(b, a) * 2 + ASN1HEX.getVblen(b, a) * 2;
            };
            ASN1HEX.getNextSiblingIdx = function(d, a) {
                var c = ASN1HEX.getVidx(d, a);
                var b = ASN1HEX.getVblen(d, a);
                return c + b * 2;
            };
            ASN1HEX.getChildIdx = function(e, k) {
                var l = ASN1HEX;
                var j = [];
                var c, f, g;
                c = l.getVidx(e, k);
                f = l.getVblen(e, k) * 2;
                if (e.substr(k, 2) == "03") {
                    c += 2;
                    f -= 2;
                }
                g = 0;
                var d = c;
                while(g <= f){
                    var b = l.getTLVblen(e, d);
                    g += b;
                    if (g <= f) {
                        j.push(d);
                    }
                    d += b;
                    if (g >= f) {
                        break;
                    }
                }
                return j;
            };
            ASN1HEX.getNthChildIdx = function(d, b, e) {
                var c = ASN1HEX.getChildIdx(d, b);
                return c[e];
            };
            ASN1HEX.getIdxbyList = function(e, d, c, i) {
                var g = ASN1HEX;
                var f, b;
                if (c.length == 0) {
                    if (i !== void 0) {
                        if (e.substr(d, 2) !== i) {
                            return -1;
                        }
                    }
                    return d;
                }
                f = c.shift();
                b = g.getChildIdx(e, d);
                if (f >= b.length) {
                    return -1;
                }
                return g.getIdxbyList(e, b[f], c, i);
            };
            ASN1HEX.getIdxbyListEx = function(f, k, b, g) {
                var m = ASN1HEX;
                var d, l;
                if (b.length == 0) {
                    if (g !== void 0) {
                        if (f.substr(k, 2) !== g) {
                            return -1;
                        }
                    }
                    return k;
                }
                d = b.shift();
                l = m.getChildIdx(f, k);
                var j = 0;
                for(var e = 0; e < l.length; e++){
                    var c = f.substr(l[e], 2);
                    if (typeof d == "number" && !m.isContextTag(c) && j == d || typeof d == "string" && m.isContextTag(c, d)) {
                        return m.getIdxbyListEx(f, l[e], b, g);
                    }
                    if (!m.isContextTag(c)) {
                        j++;
                    }
                }
                return -1;
            };
            ASN1HEX.getTLVbyList = function(d, c, b, f) {
                var e = ASN1HEX;
                var a = e.getIdxbyList(d, c, b, f);
                if (a == -1) {
                    return null;
                }
                if (a >= d.length) {
                    return null;
                }
                return e.getTLV(d, a);
            };
            ASN1HEX.getTLVbyListEx = function(d, c, b, f) {
                var e = ASN1HEX;
                var a = e.getIdxbyListEx(d, c, b, f);
                if (a == -1) {
                    return null;
                }
                return e.getTLV(d, a);
            };
            ASN1HEX.getVbyList = function(e, c, b, g, i) {
                var f = ASN1HEX;
                var a, d;
                a = f.getIdxbyList(e, c, b, g);
                if (a == -1) {
                    return null;
                }
                if (a >= e.length) {
                    return null;
                }
                d = f.getV(e, a);
                if (i === true) {
                    d = d.substr(2);
                }
                return d;
            };
            ASN1HEX.getVbyListEx = function(b, e, a, d, f) {
                var j = ASN1HEX;
                var g, c, i;
                g = j.getIdxbyListEx(b, e, a, d);
                if (g == -1) {
                    return null;
                }
                i = j.getV(b, g);
                if (b.substr(g, 2) == "03" && f !== false) {
                    i = i.substr(2);
                }
                return i;
            };
            ASN1HEX.getInt = function(e, b, f) {
                if (f == void 0) {
                    f = -1;
                }
                try {
                    var c = e.substr(b, 2);
                    if (c != "02" && c != "03") {
                        return f;
                    }
                    var a = ASN1HEX.getV(e, b);
                    if (c == "02") {
                        return parseInt(a, 16);
                    } else {
                        return bitstrtoint(a);
                    }
                } catch (d) {
                    return f;
                }
            };
            ASN1HEX.getOID = function(c, a, d) {
                if (d == void 0) {
                    d = null;
                }
                try {
                    if (c.substr(a, 2) != "06") {
                        return d;
                    }
                    var e = ASN1HEX.getV(c, a);
                    return hextooid(e);
                } catch (b) {
                    return d;
                }
            };
            ASN1HEX.getOIDName = function(d, a, f) {
                if (f == void 0) {
                    f = null;
                }
                try {
                    var e = ASN1HEX.getOID(d, a, f);
                    if (e == f) {
                        return f;
                    }
                    var b = KJUR.asn1.x509.OID.oid2name(e);
                    if (b == "") {
                        return e;
                    }
                    return b;
                } catch (c) {
                    return f;
                }
            };
            ASN1HEX.getString = function(d, b, e) {
                if (e == void 0) {
                    e = null;
                }
                try {
                    var a = ASN1HEX.getV(d, b);
                    return hextorstr(a);
                } catch (c) {
                    return e;
                }
            };
            ASN1HEX.hextooidstr = function(e) {
                var h = function h(b, a) {
                    if (b.length >= a) {
                        return b;
                    }
                    return new Array(a - b.length + 1).join("0") + b;
                };
                var l = [];
                var o = e.substr(0, 2);
                var f = parseInt(o, 16);
                l[0] = new String(Math.floor(f / 40));
                l[1] = new String(f % 40);
                var m = e.substr(2);
                var k = [];
                for(var g = 0; g < m.length / 2; g++){
                    k.push(parseInt(m.substr(g * 2, 2), 16));
                }
                var j = [];
                var d = "";
                for(var g = 0; g < k.length; g++){
                    if (k[g] & 128) {
                        d = d + h((k[g] & 127).toString(2), 7);
                    } else {
                        d = d + h((k[g] & 127).toString(2), 7);
                        j.push(new String(parseInt(d, 2)));
                        d = "";
                    }
                }
                var n = l.join(".");
                if (j.length > 0) {
                    n = n + "." + j.join(".");
                }
                return n;
            };
            ASN1HEX.dump = function(t2, c, l, g) {
                var p = ASN1HEX;
                var j = p.getV;
                var y = p.dump;
                var w = p.getChildIdx;
                var e = t2;
                if (t2 instanceof KJUR.asn1.ASN1Object) {
                    e = t2.tohex();
                }
                var q = function q(A, i) {
                    if (A.length <= i * 2) {
                        return A;
                    } else {
                        var v = A.substr(0, i) + "..(total " + A.length / 2 + "bytes).." + A.substr(A.length - i, i);
                        return v;
                    }
                };
                if (c === void 0) {
                    c = {
                        ommit_long_octet: 32
                    };
                }
                if (l === void 0) {
                    l = 0;
                }
                if (g === void 0) {
                    g = "";
                }
                var x = c.ommit_long_octet;
                var z2 = e.substr(l, 2);
                if (z2 == "01") {
                    var h = j(e, l);
                    if (h == "00") {
                        return g + "BOOLEAN FALSE\n";
                    } else {
                        return g + "BOOLEAN TRUE\n";
                    }
                }
                if (z2 == "02") {
                    var h = j(e, l);
                    return g + "INTEGER " + q(h, x) + "\n";
                }
                if (z2 == "03") {
                    var h = j(e, l);
                    if (p.isASN1HEX(h.substr(2))) {
                        var k = g + "BITSTRING, encapsulates\n";
                        k = k + y(h.substr(2), c, 0, g + "  ");
                        return k;
                    } else {
                        return g + "BITSTRING " + q(h, x) + "\n";
                    }
                }
                if (z2 == "04") {
                    var h = j(e, l);
                    if (p.isASN1HEX(h)) {
                        var k = g + "OCTETSTRING, encapsulates\n";
                        k = k + y(h, c, 0, g + "  ");
                        return k;
                    } else {
                        return g + "OCTETSTRING " + q(h, x) + "\n";
                    }
                }
                if (z2 == "05") {
                    return g + "NULL\n";
                }
                if (z2 == "06") {
                    var m = j(e, l);
                    var b = KJUR.asn1.ASN1Util.oidHexToInt(m);
                    var o = KJUR.asn1.x509.OID.oid2name(b);
                    var a = b.replace(/\./g, " ");
                    if (o != "") {
                        return g + "ObjectIdentifier " + o + " (" + a + ")\n";
                    } else {
                        return g + "ObjectIdentifier (" + a + ")\n";
                    }
                }
                if (z2 == "0a") {
                    return g + "ENUMERATED " + parseInt(j(e, l)) + "\n";
                }
                if (z2 == "0c") {
                    return g + "UTF8String '" + hextoutf8(j(e, l)) + "'\n";
                }
                if (z2 == "13") {
                    return g + "PrintableString '" + hextoutf8(j(e, l)) + "'\n";
                }
                if (z2 == "14") {
                    return g + "TeletexString '" + hextoutf8(j(e, l)) + "'\n";
                }
                if (z2 == "16") {
                    return g + "IA5String '" + hextoutf8(j(e, l)) + "'\n";
                }
                if (z2 == "17") {
                    return g + "UTCTime " + hextoutf8(j(e, l)) + "\n";
                }
                if (z2 == "18") {
                    return g + "GeneralizedTime " + hextoutf8(j(e, l)) + "\n";
                }
                if (z2 == "1a") {
                    return g + "VisualString '" + hextoutf8(j(e, l)) + "'\n";
                }
                if (z2 == "1e") {
                    return g + "BMPString '" + ucs2hextoutf8(j(e, l)) + "'\n";
                }
                if (z2 == "30") {
                    if (e.substr(l, 4) == "3000") {
                        return g + "SEQUENCE {}\n";
                    }
                    var k = g + "SEQUENCE\n";
                    var d = w(e, l);
                    var f = c;
                    if ((d.length == 2 || d.length == 3) && e.substr(d[0], 2) == "06" && e.substr(d[d.length - 1], 2) == "04") {
                        var o = p.oidname(j(e, d[0]));
                        var r = JSON.parse(JSON.stringify(c));
                        r.x509ExtName = o;
                        f = r;
                    }
                    for(var u = 0; u < d.length; u++){
                        k = k + y(e, f, d[u], g + "  ");
                    }
                    return k;
                }
                if (z2 == "31") {
                    var k = g + "SET\n";
                    var d = w(e, l);
                    for(var u = 0; u < d.length; u++){
                        k = k + y(e, c, d[u], g + "  ");
                    }
                    return k;
                }
                var z2 = parseInt(z2, 16);
                if ((z2 & 128) != 0) {
                    var n = z2 & 31;
                    if ((z2 & 32) != 0) {
                        var k = g + "[" + n + "]\n";
                        var d = w(e, l);
                        for(var u = 0; u < d.length; u++){
                            k = k + y(e, c, d[u], g + "  ");
                        }
                        return k;
                    } else {
                        var h = j(e, l);
                        if (ASN1HEX.isASN1HEX(h)) {
                            var k = g + "[" + n + "]\n";
                            k = k + y(h, c, 0, g + "  ");
                            return k;
                        } else {
                            if (h.substr(0, 8) == "68747470") {
                                h = hextoutf8(h);
                            } else {
                                if (c.x509ExtName === "subjectAltName" && n == 2) {
                                    h = hextoutf8(h);
                                }
                            }
                        }
                        var k = g + "[" + n + "] " + h + "\n";
                        return k;
                    }
                }
                return g + "UNKNOWN(" + z2 + ") " + j(e, l) + "\n";
            };
            ASN1HEX.parse = function(x) {
                var t2 = ASN1HEX, f = t2.parse, a = t2.isASN1HEX, l = t2.getV, b = t2.getTLV, y = t2.getChildIdx, i = KJUR.asn1, e = i.ASN1Util.oidHexToInt, B = i.x509.OID.oid2name, k = hextoutf8, n = ucs2hextoutf8, q = iso88591hextoutf8;
                var c = {
                    "0c": "utf8str",
                    "12": "numstr",
                    "13": "prnstr",
                    "14": "telstr",
                    "16": "ia5str",
                    "17": "utctime",
                    "18": "gentime",
                    "1a": "visstr",
                    "1e": "bmpstr",
                    "30": "seq",
                    "31": "set"
                };
                var u = function u(H) {
                    var D = [];
                    var E = y(H, 0);
                    for(var G = 0; G < E.length; G++){
                        var s = E[G];
                        var d = b(H, s);
                        var F = f(d);
                        D.push(F);
                    }
                    return D;
                };
                var C = x.substr(0, 2);
                var j = {};
                var p = l(x, 0);
                if (C == "01") {
                    if (x == "0101ff") {
                        return {
                            bool: true
                        };
                    }
                    return {
                        bool: false
                    };
                } else {
                    if (C == "02") {
                        return {
                            int: {
                                hex: p
                            }
                        };
                    } else {
                        if (C == "03") {
                            try {
                                if (p.substr(0, 2) != "00") {
                                    throw "not encap";
                                }
                                var v = p.substr(2);
                                if (!a(v)) {
                                    throw "not encap";
                                }
                                return {
                                    bitstr: {
                                        obj: f(v)
                                    }
                                };
                            } catch (z2) {
                                var m = null;
                                if (p.length <= 10) {
                                    m = bitstrtobinstr(p);
                                }
                                if (m == null) {
                                    return {
                                        bitstr: {
                                            hex: p
                                        }
                                    };
                                } else {
                                    return {
                                        bitstr: {
                                            bin: m
                                        }
                                    };
                                }
                            }
                        } else {
                            if (C == "04") {
                                try {
                                    if (!a(p)) {
                                        throw "not encap";
                                    }
                                    return {
                                        octstr: {
                                            obj: f(p)
                                        }
                                    };
                                } catch (z2) {
                                    return {
                                        octstr: {
                                            hex: p
                                        }
                                    };
                                }
                            } else {
                                if (C == "05") {
                                    return {
                                        "null": ""
                                    };
                                } else {
                                    if (C == "06") {
                                        var g = e(p);
                                        var r = B(g);
                                        if (r == "") {
                                            return {
                                                oid: g
                                            };
                                        } else {
                                            return {
                                                oid: r
                                            };
                                        }
                                    } else {
                                        if (C == "0a") {
                                            if (p.length > 4) {
                                                return {
                                                    "enum": {
                                                        hex: p
                                                    }
                                                };
                                            } else {
                                                return {
                                                    "enum": parseInt(p, 16)
                                                };
                                            }
                                        } else {
                                            if (C == "30" || C == "31") {
                                                j[c[C]] = u(x);
                                                return j;
                                            } else {
                                                if (C == "14") {
                                                    var o = q(p);
                                                    j[c[C]] = {
                                                        str: o
                                                    };
                                                    return j;
                                                } else {
                                                    if (C == "1e") {
                                                        var o = n(p);
                                                        j[c[C]] = {
                                                            str: o
                                                        };
                                                        return j;
                                                    } else {
                                                        if (":0c:12:13:16:17:18:1a:".indexOf(C) != -1) {
                                                            var o = k(p);
                                                            j[c[C]] = {
                                                                str: o
                                                            };
                                                            return j;
                                                        } else {
                                                            if (C.match(/^8[0-9]$/)) {
                                                                var o = k(p);
                                                                if (o == null | o == "") {
                                                                    return {
                                                                        tag: {
                                                                            tag: C,
                                                                            explicit: false,
                                                                            hex: p
                                                                        }
                                                                    };
                                                                } else {
                                                                    if (o.match(/[\x00-\x1F\x7F-\x9F]/) != null || o.match(/[\u0000-\u001F\u0080–\u009F]/) != null) {
                                                                        return {
                                                                            tag: {
                                                                                tag: C,
                                                                                explicit: false,
                                                                                hex: p
                                                                            }
                                                                        };
                                                                    } else {
                                                                        return {
                                                                            tag: {
                                                                                tag: C,
                                                                                explicit: false,
                                                                                str: o
                                                                            }
                                                                        };
                                                                    }
                                                                }
                                                            } else {
                                                                if (C.match(/^a[0-9]$/)) {
                                                                    try {
                                                                        if (!a(p)) {
                                                                            throw new Error("not encap");
                                                                        }
                                                                        return {
                                                                            tag: {
                                                                                tag: C,
                                                                                explicit: true,
                                                                                obj: f(p)
                                                                            }
                                                                        };
                                                                    } catch (z2) {
                                                                        return {
                                                                            tag: {
                                                                                tag: C,
                                                                                explicit: true,
                                                                                hex: p
                                                                            }
                                                                        };
                                                                    }
                                                                } else {
                                                                    var A = new KJUR.asn1.ASN1Object();
                                                                    A.hV = p;
                                                                    var w = A.getLengthHexFromValue();
                                                                    return {
                                                                        asn1: {
                                                                            tlv: C + w + p
                                                                        }
                                                                    };
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            };
            ASN1HEX.isContextTag = function(c, b) {
                c = c.toLowerCase();
                var f, e;
                try {
                    f = parseInt(c, 16);
                } catch (d) {
                    return -1;
                }
                if (b === void 0) {
                    if ((f & 192) == 128) {
                        return true;
                    } else {
                        return false;
                    }
                }
                try {
                    var a = b.match(/^\[[0-9]+\]$/);
                    if (a == null) {
                        return false;
                    }
                    e = parseInt(b.substr(1, b.length - 1), 10);
                    if (e > 31) {
                        return false;
                    }
                    if ((f & 192) == 128 && (f & 31) == e) {
                        return true;
                    }
                    return false;
                } catch (d) {
                    return false;
                }
            };
            ASN1HEX.isASN1HEX = function(e) {
                var d = ASN1HEX;
                if (e.length % 2 == 1) {
                    return false;
                }
                var c = d.getVblen(e, 0);
                var b = e.substr(0, 2);
                var f = d.getL(e, 0);
                var a = e.length - b.length - f.length;
                if (a == c * 2) {
                    return true;
                }
                return false;
            };
            ASN1HEX.checkStrictDER = function(g, o, d, c, r) {
                var s = ASN1HEX;
                if (d === void 0) {
                    if (typeof g != "string") {
                        throw new Error("not hex string");
                    }
                    g = g.toLowerCase();
                    if (!KJUR.lang.String.isHex(g)) {
                        throw new Error("not hex string");
                    }
                    d = g.length;
                    c = g.length / 2;
                    if (c < 128) {
                        r = 1;
                    } else {
                        r = Math.ceil(c.toString(16)) + 1;
                    }
                }
                var k = s.getL(g, o);
                if (k.length > r * 2) {
                    throw new Error("L of TLV too long: idx=" + o);
                }
                var n = s.getVblen(g, o);
                if (n > c) {
                    throw new Error("value of L too long than hex: idx=" + o);
                }
                var q = s.getTLV(g, o);
                var f = q.length - 2 - s.getL(g, o).length;
                if (f !== n * 2) {
                    throw new Error("V string length and L's value not the same:" + f + "/" + n * 2);
                }
                if (o === 0) {
                    if (g.length != q.length) {
                        throw new Error("total length and TLV length unmatch:" + g.length + "!=" + q.length);
                    }
                }
                var b = g.substr(o, 2);
                if (b === "02") {
                    var a = s.getVidx(g, o);
                    if (g.substr(a, 2) == "00" && g.charCodeAt(a + 2) < 56) {
                        throw new Error("not least zeros for DER INTEGER");
                    }
                }
                if (parseInt(b, 16) & 32) {
                    var p = s.getVblen(g, o);
                    var m = 0;
                    var l = s.getChildIdx(g, o);
                    for(var e = 0; e < l.length; e++){
                        var j = s.getTLV(g, l[e]);
                        m += j.length;
                        s.checkStrictDER(g, l[e], d, c, r);
                    }
                    if (p * 2 != m) {
                        throw new Error("sum of children's TLV length and L unmatch: " + p * 2 + "!=" + m);
                    }
                }
            };
            ASN1HEX.oidname = function(a) {
                var c = KJUR.asn1;
                if (KJUR.lang.String.isHex(a)) {
                    a = c.ASN1Util.oidHexToInt(a);
                }
                var b = c.x509.OID.oid2name(a);
                if (b === "") {
                    b = a;
                }
                return b;
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) {
                KJUR.asn1 = {};
            }
            if (typeof KJUR.asn1.x509 == "undefined" || !KJUR.asn1.x509) {
                KJUR.asn1.x509 = {};
            }
            KJUR.asn1.x509.Certificate = function(h) {
                KJUR.asn1.x509.Certificate.superclass.constructor.call(this);
                var d = KJUR, c = d.asn1, f = c.DERBitString, b = c.DERSequence, g = c.x509, a = g.TBSCertificate, e = g.AlgorithmIdentifier;
                this.params = void 0;
                this.setByParam = function(i) {
                    this.params = i;
                };
                this.sign = function() {
                    var l = this.params;
                    var k = l.sigalg;
                    if (l.sigalg.name != void 0) {
                        k = l.sigalg.name;
                    }
                    var i = l.tbsobj.tohex();
                    var j = new KJUR.crypto.Signature({
                        alg: k
                    });
                    j.init(l.cakey);
                    j.updateHex(i);
                    l.sighex = j.sign();
                };
                this.getPEM = function() {
                    return hextopem(this.tohex(), "CERTIFICATE");
                };
                this.tohex = function() {
                    var k = this.params;
                    if (k.tbsobj == void 0 || k.tbsobj == null) {
                        k.tbsobj = new a(k);
                    }
                    if (k.sighex == void 0 && k.cakey != void 0) {
                        this.sign();
                    }
                    if (k.sighex == void 0) {
                        throw new Error("sighex or cakey parameter not defined");
                    }
                    var i = [];
                    i.push(k.tbsobj);
                    i.push(new e({
                        name: k.sigalg
                    }));
                    i.push(new f({
                        hex: "00" + k.sighex
                    }));
                    var j = new b({
                        array: i
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (h != void 0) {
                    this.params = h;
                }
            };
            extendClass(KJUR.asn1.x509.Certificate, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.TBSCertificate = function(f) {
                KJUR.asn1.x509.TBSCertificate.superclass.constructor.call(this);
                var b = KJUR, i = b.asn1, d = i.x509, c = i.DERTaggedObject, h = i.DERInteger, g = i.DERSequence, l = d.AlgorithmIdentifier, e = d.Time, a = d.X500Name, j = d.Extensions, k = d.SubjectPublicKeyInfo;
                this.params = null;
                this.setByParam = function(m) {
                    this.params = m;
                };
                this.tohex = function() {
                    var n = [];
                    var q = this.params;
                    if (q.version != void 0 || q.version != 1) {
                        var m = 2;
                        if (q.version != void 0) {
                            m = q.version - 1;
                        }
                        var p = new c({
                            obj: new h({
                                int: m
                            })
                        });
                        n.push(p);
                    }
                    n.push(new h(q.serial));
                    n.push(new l({
                        name: q.sigalg
                    }));
                    n.push(new a(q.issuer));
                    n.push(new g({
                        array: [
                            new e(q.notbefore),
                            new e(q.notafter)
                        ]
                    }));
                    n.push(new a(q.subject));
                    n.push(new k(KEYUTIL.getKey(q.sbjpubkey)));
                    if (q.ext !== void 0 && q.ext.length > 0) {
                        n.push(new c({
                            tag: "a3",
                            obj: new j(q.ext)
                        }));
                    }
                    var o = new KJUR.asn1.DERSequence({
                        array: n
                    });
                    return o.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f !== void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.x509.TBSCertificate, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.Extensions = function(d) {
                KJUR.asn1.x509.Extensions.superclass.constructor.call(this);
                var c = KJUR, b = c.asn1, a = b.DERSequence, e = b.x509;
                this.aParam = [];
                this.setByParam = function(f) {
                    this.aParam = f;
                };
                this.tohex = function() {
                    var f = [];
                    for(var h = 0; h < this.aParam.length; h++){
                        var l = this.aParam[h];
                        var k = l.extname;
                        var j = null;
                        if (l.extn != void 0) {
                            j = new e.PrivateExtension(l);
                        } else {
                            if (k == "subjectKeyIdentifier") {
                                j = new e.SubjectKeyIdentifier(l);
                            } else {
                                if (k == "keyUsage") {
                                    j = new e.KeyUsage(l);
                                } else {
                                    if (k == "subjectAltName") {
                                        j = new e.SubjectAltName(l);
                                    } else {
                                        if (k == "issuerAltName") {
                                            j = new e.IssuerAltName(l);
                                        } else {
                                            if (k == "basicConstraints") {
                                                j = new e.BasicConstraints(l);
                                            } else {
                                                if (k == "nameConstraints") {
                                                    j = new e.NameConstraints(l);
                                                } else {
                                                    if (k == "cRLDistributionPoints") {
                                                        j = new e.CRLDistributionPoints(l);
                                                    } else {
                                                        if (k == "certificatePolicies") {
                                                            j = new e.CertificatePolicies(l);
                                                        } else {
                                                            if (k == "policyMappings") {
                                                                j = new e.PolicyMappings(l);
                                                            } else {
                                                                if (k == "policyConstraints") {
                                                                    j = new e.PolicyConstraints(l);
                                                                } else {
                                                                    if (k == "inhibitAnyPolicy") {
                                                                        j = new e.InhibitAnyPolicy(l);
                                                                    } else {
                                                                        if (k == "authorityKeyIdentifier") {
                                                                            j = new e.AuthorityKeyIdentifier(l);
                                                                        } else {
                                                                            if (k == "extKeyUsage") {
                                                                                j = new e.ExtKeyUsage(l);
                                                                            } else {
                                                                                if (k == "authorityInfoAccess") {
                                                                                    j = new e.AuthorityInfoAccess(l);
                                                                                } else {
                                                                                    if (k == "cRLNumber") {
                                                                                        j = new e.CRLNumber(l);
                                                                                    } else {
                                                                                        if (k == "cRLReason") {
                                                                                            j = new e.CRLReason(l);
                                                                                        } else {
                                                                                            if (k == "ocspNonce") {
                                                                                                j = new e.OCSPNonce(l);
                                                                                            } else {
                                                                                                if (k == "ocspNoCheck") {
                                                                                                    j = new e.OCSPNoCheck(l);
                                                                                                } else {
                                                                                                    if (k == "adobeTimeStamp") {
                                                                                                        j = new e.AdobeTimeStamp(l);
                                                                                                    } else {
                                                                                                        if (k == "subjectDirectoryAttributes") {
                                                                                                            j = new e.SubjectDirectoryAttributes(l);
                                                                                                        } else {
                                                                                                            throw new Error("extension not supported:" + JSON.stringify(l));
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        if (j != null) {
                            f.push(j);
                        }
                    }
                    var g = new a({
                        array: f
                    });
                    return g.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (d != void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.x509.Extensions, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.Extension = function(d) {
                KJUR.asn1.x509.Extension.superclass.constructor.call(this);
                var f = null, a = KJUR, e = a.asn1, h = e.DERObjectIdentifier, i = e.DEROctetString, b = e.DERBitString, g = e.DERBoolean, c = e.DERSequence;
                this.tohex = function() {
                    var m = new h({
                        oid: this.oid
                    });
                    var l = new i({
                        hex: this.getExtnValueHex()
                    });
                    var k = new Array();
                    k.push(m);
                    if (this.critical) {
                        k.push(new g());
                    }
                    k.push(l);
                    var j = new c({
                        array: k
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.critical = false;
                if (d !== void 0) {
                    if (d.critical !== void 0) {
                        this.critical = d.critical;
                    }
                }
            };
            extendClass(KJUR.asn1.x509.Extension, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.KeyUsage = function(c) {
                KJUR.asn1.x509.KeyUsage.superclass.constructor.call(this, c);
                var b = Error;
                var a = {
                    digitalSignature: 0,
                    nonRepudiation: 1,
                    keyEncipherment: 2,
                    dataEncipherment: 3,
                    keyAgreement: 4,
                    keyCertSign: 5,
                    cRLSign: 6,
                    encipherOnly: 7,
                    decipherOnly: 8
                };
                this.getExtnValueHex = function() {
                    var d = this.getBinValue();
                    this.asn1ExtnValue = new KJUR.asn1.DERBitString({
                        bin: d
                    });
                    return this.asn1ExtnValue.tohex();
                };
                this.getBinValue = function() {
                    var d = this.params;
                    if ((typeof d === "undefined" ? "undefined" : _type_of(d)) != "object" || _type_of(d.names) != "object" && typeof d.bin != "string") {
                        throw new b("parameter not yet set");
                    }
                    if (d.names != void 0) {
                        return namearraytobinstr(d.names, a);
                    } else {
                        if (d.bin != void 0) {
                            return d.bin;
                        } else {
                            throw new b("parameter not set properly");
                        }
                    }
                };
                this.oid = "2.5.29.15";
                if (c !== void 0) {
                    this.params = c;
                }
            };
            extendClass(KJUR.asn1.x509.KeyUsage, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.BasicConstraints = function(g) {
                KJUR.asn1.x509.BasicConstraints.superclass.constructor.call(this, g);
                var c = KJUR.asn1, e = c.DERBoolean, f = c.DERInteger, b = c.DERSequence;
                var a = false;
                var d = -1;
                this.getExtnValueHex = function() {
                    var i = new Array();
                    if (this.cA) {
                        i.push(new e());
                    }
                    if (this.pathLen > -1) {
                        i.push(new f({
                            int: this.pathLen
                        }));
                    }
                    var h = new b({
                        array: i
                    });
                    this.asn1ExtnValue = h;
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.19";
                this.cA = false;
                this.pathLen = -1;
                if (g !== void 0) {
                    if (g.cA !== void 0) {
                        this.cA = g.cA;
                    }
                    if (g.pathLen !== void 0) {
                        this.pathLen = g.pathLen;
                    }
                }
            };
            extendClass(KJUR.asn1.x509.BasicConstraints, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.CRLDistributionPoints = function(d) {
                KJUR.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this, d);
                var b = KJUR, a = b.asn1, c = a.x509;
                this.getExtnValueHex = function() {
                    return this.asn1ExtnValue.tohex();
                };
                this.setByDPArray = function(e) {
                    var f = [];
                    for(var g = 0; g < e.length; g++){
                        if (e[g] instanceof KJUR.asn1.ASN1Object) {
                            f.push(e[g]);
                        } else {
                            var h = new c.DistributionPoint(e[g]);
                            f.push(h);
                        }
                    }
                    this.asn1ExtnValue = new a.DERSequence({
                        array: f
                    });
                };
                this.setByOneURI = function(f) {
                    var e = new c.DistributionPoint({
                        fulluri: f
                    });
                    this.setByDPArray([
                        e
                    ]);
                };
                this.oid = "2.5.29.31";
                if (d !== void 0) {
                    if (d.array !== void 0) {
                        this.setByDPArray(d.array);
                    } else {
                        if (d.uri !== void 0) {
                            this.setByOneURI(d.uri);
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.x509.CRLDistributionPoints, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.DistributionPoint = function(e) {
                KJUR.asn1.x509.DistributionPoint.superclass.constructor.call(this);
                var a = null, c = KJUR, b = c.asn1, d = b.x509.DistributionPointName;
                this.tohex = function() {
                    var f = new b.DERSequence();
                    if (this.asn1DP != null) {
                        var g = new b.DERTaggedObject({
                            explicit: true,
                            tag: "a0",
                            obj: this.asn1DP
                        });
                        f.appendASN1Object(g);
                    }
                    this.hTLV = f.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    if (e.dpobj !== void 0) {
                        this.asn1DP = e.dpobj;
                    } else {
                        if (e.dpname !== void 0) {
                            this.asn1DP = new d(e.dpname);
                        } else {
                            if (e.fulluri !== void 0) {
                                this.asn1DP = new d({
                                    full: [
                                        {
                                            uri: e.fulluri
                                        }
                                    ]
                                });
                            }
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.x509.DistributionPoint, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.DistributionPointName = function(h) {
                KJUR.asn1.x509.DistributionPointName.superclass.constructor.call(this);
                var g = null, d = null, a = null, f = null, c = KJUR, b = c.asn1, e = b.DERTaggedObject;
                this.tohex = function() {
                    if (this.type != "full") {
                        throw new Error("currently type shall be 'full': " + this.type);
                    }
                    this.asn1Obj = new e({
                        explicit: false,
                        tag: this.tag,
                        obj: this.asn1V
                    });
                    this.hTLV = this.asn1Obj.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (h !== void 0) {
                    if (b.x509.GeneralNames.prototype.isPrototypeOf(h)) {
                        this.type = "full";
                        this.tag = "a0";
                        this.asn1V = h;
                    } else {
                        if (h.full !== void 0) {
                            this.type = "full";
                            this.tag = "a0";
                            this.asn1V = new b.x509.GeneralNames(h.full);
                        } else {
                            throw new Error("This class supports GeneralNames only as argument");
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.x509.DistributionPointName, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.CertificatePolicies = function(f) {
                KJUR.asn1.x509.CertificatePolicies.superclass.constructor.call(this, f);
                var c = KJUR, b = c.asn1, e = b.x509, a = b.DERSequence, d = e.PolicyInformation;
                this.params = null;
                this.getExtnValueHex = function() {
                    var j = [];
                    for(var h = 0; h < this.params.array.length; h++){
                        j.push(new d(this.params.array[h]));
                    }
                    var g = new a({
                        array: j
                    });
                    this.asn1ExtnValue = g;
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.32";
                if (f !== void 0) {
                    this.params = f;
                }
            };
            extendClass(KJUR.asn1.x509.CertificatePolicies, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.PolicyInformation = function(d) {
                KJUR.asn1.x509.PolicyInformation.superclass.constructor.call(this, d);
                var c = KJUR.asn1, b = c.DERSequence, e = c.DERObjectIdentifier, a = c.x509.PolicyQualifierInfo;
                this.params = null;
                this.tohex = function() {
                    if (this.params.policyoid === void 0 && this.params.array === void 0) {
                        throw new Error("parameter oid and array missing");
                    }
                    var f = [
                        new e(this.params.policyoid)
                    ];
                    if (this.params.array !== void 0) {
                        var j = [];
                        for(var h = 0; h < this.params.array.length; h++){
                            j.push(new a(this.params.array[h]));
                        }
                        if (j.length > 0) {
                            f.push(new b({
                                array: j
                            }));
                        }
                    }
                    var g = new b({
                        array: f
                    });
                    return g.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (d !== void 0) {
                    this.params = d;
                }
            };
            extendClass(KJUR.asn1.x509.PolicyInformation, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.PolicyQualifierInfo = function(e) {
                KJUR.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this, e);
                var c = KJUR.asn1, b = c.DERSequence, d = c.DERIA5String, f = c.DERObjectIdentifier, a = c.x509.UserNotice;
                this.params = null;
                this.tohex = function() {
                    if (this.params.cps !== void 0) {
                        var g = new b({
                            array: [
                                new f({
                                    oid: "1.3.6.1.5.5.7.2.1"
                                }),
                                new d({
                                    str: this.params.cps
                                })
                            ]
                        });
                        return g.tohex();
                    }
                    if (this.params.unotice != void 0) {
                        var g = new b({
                            array: [
                                new f({
                                    oid: "1.3.6.1.5.5.7.2.2"
                                }),
                                new a(this.params.unotice)
                            ]
                        });
                        return g.tohex();
                    }
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.x509.PolicyQualifierInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.UserNotice = function(e) {
                KJUR.asn1.x509.UserNotice.superclass.constructor.call(this, e);
                var a = KJUR.asn1.DERSequence, d = KJUR.asn1.DERInteger, c = KJUR.asn1.x509.DisplayText, b = KJUR.asn1.x509.NoticeReference;
                this.params = null;
                this.tohex = function() {
                    var f = [];
                    if (this.params.noticeref !== void 0) {
                        f.push(new b(this.params.noticeref));
                    }
                    if (this.params.exptext !== void 0) {
                        f.push(new c(this.params.exptext));
                    }
                    var g = new a({
                        array: f
                    });
                    return g.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.x509.UserNotice, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.NoticeReference = function(d) {
                KJUR.asn1.x509.NoticeReference.superclass.constructor.call(this, d);
                var a = KJUR.asn1.DERSequence, c = KJUR.asn1.DERInteger, b = KJUR.asn1.x509.DisplayText;
                this.params = null;
                this.tohex = function() {
                    var f = [];
                    if (this.params.org !== void 0) {
                        f.push(new b(this.params.org));
                    }
                    if (this.params.noticenum !== void 0) {
                        var h = [];
                        var e = this.params.noticenum;
                        for(var j = 0; j < e.length; j++){
                            h.push(new c(e[j]));
                        }
                        f.push(new a({
                            array: h
                        }));
                    }
                    if (f.length == 0) {
                        throw new Error("parameter is empty");
                    }
                    var g = new a({
                        array: f
                    });
                    return g.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (d !== void 0) {
                    this.params = d;
                }
            };
            extendClass(KJUR.asn1.x509.NoticeReference, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.DisplayText = function(a) {
                KJUR.asn1.x509.DisplayText.superclass.constructor.call(this, a);
                this.hT = "0c";
                if (a !== void 0) {
                    if (a.type === "ia5") {
                        this.hT = "16";
                    } else {
                        if (a.type === "vis") {
                            this.hT = "1a";
                        } else {
                            if (a.type === "bmp") {
                                this.hT = "1e";
                            }
                        }
                    }
                }
            };
            extendClass(KJUR.asn1.x509.DisplayText, KJUR.asn1.DERAbstractString);
            KJUR.asn1.x509.PolicyMappings = function(e) {
                KJUR.asn1.x509.PolicyMappings.superclass.constructor.call(this, e);
                var c = KJUR, b = c.asn1, d = b.x509, a = b.ASN1Util.newObject;
                this.params = null;
                this.getExtnValueHex = function() {
                    var j = this.params;
                    var f = [];
                    for(var g = 0; g < j.array.length; g++){
                        var h = j.array[g];
                        f.push({
                            seq: [
                                {
                                    oid: h[0]
                                },
                                {
                                    oid: h[1]
                                }
                            ]
                        });
                    }
                    this.asn1ExtnValue = a({
                        seq: f
                    });
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.33";
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.x509.PolicyMappings, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.PolicyConstraints = function(e) {
                KJUR.asn1.x509.PolicyConstraints.superclass.constructor.call(this, e);
                var c = KJUR, b = c.asn1, d = b.x509, a = b.ASN1Util.newObject;
                this.params = null;
                this.getExtnValueHex = function() {
                    var g = this.params;
                    var f = [];
                    if (g.reqexp != void 0) {
                        f.push({
                            tag: {
                                tagi: "80",
                                obj: {
                                    int: g.reqexp
                                }
                            }
                        });
                    }
                    if (g.inhibit != void 0) {
                        f.push({
                            tag: {
                                tagi: "81",
                                obj: {
                                    int: g.inhibit
                                }
                            }
                        });
                    }
                    this.asn1ExtnValue = a({
                        seq: f
                    });
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.36";
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.x509.PolicyConstraints, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.InhibitAnyPolicy = function(e) {
                KJUR.asn1.x509.InhibitAnyPolicy.superclass.constructor.call(this, e);
                var c = KJUR, b = c.asn1, d = b.x509, a = b.ASN1Util.newObject;
                this.params = null;
                this.getExtnValueHex = function() {
                    this.asn1ExtnValue = a({
                        int: this.params.skip
                    });
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.54";
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.x509.InhibitAnyPolicy, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.NameConstraints = function(f) {
                KJUR.asn1.x509.NameConstraints.superclass.constructor.call(this, f);
                var c = KJUR, b = c.asn1, e = b.x509, a = b.ASN1Util.newObject, d = e.GeneralSubtree;
                this.params = null;
                this.getExtnValueHex = function() {
                    var l = this.params;
                    var g = [];
                    if (l.permit != void 0 && l.permit.length != void 0) {
                        var k = [];
                        for(var h = 0; h < l.permit.length; h++){
                            k.push(new d(l.permit[h]));
                        }
                        g.push({
                            tag: {
                                tagi: "a0",
                                obj: {
                                    seq: k
                                }
                            }
                        });
                    }
                    if (l.exclude != void 0 && l.exclude.length != void 0) {
                        var j = [];
                        for(var h = 0; h < l.exclude.length; h++){
                            j.push(new d(l.exclude[h]));
                        }
                        g.push({
                            tag: {
                                tagi: "a1",
                                obj: {
                                    seq: j
                                }
                            }
                        });
                    }
                    this.asn1ExtnValue = a({
                        seq: g
                    });
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.30";
                if (f !== void 0) {
                    this.params = f;
                }
            };
            extendClass(KJUR.asn1.x509.NameConstraints, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.GeneralSubtree = function(e) {
                KJUR.asn1.x509.GeneralSubtree.superclass.constructor.call(this);
                var b = KJUR.asn1, d = b.x509, c = d.GeneralName, a = b.ASN1Util.newObject;
                this.params = null;
                this.setByParam = function(f) {
                    this.params = f;
                };
                this.tohex = function() {
                    var h = this.params;
                    var f = [
                        new c(h)
                    ];
                    if (h.min != void 0) {
                        f.push({
                            tag: {
                                tagi: "80",
                                obj: {
                                    int: h.min
                                }
                            }
                        });
                    }
                    if (h.max != void 0) {
                        f.push({
                            tag: {
                                tagi: "81",
                                obj: {
                                    int: h.max
                                }
                            }
                        });
                    }
                    var g = a({
                        seq: f
                    });
                    return g.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.x509.GeneralSubtree, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.ExtKeyUsage = function(c) {
                KJUR.asn1.x509.ExtKeyUsage.superclass.constructor.call(this, c);
                var b = KJUR, a = b.asn1;
                this.setPurposeArray = function(d) {
                    this.asn1ExtnValue = new a.DERSequence();
                    for(var e = 0; e < d.length; e++){
                        var f = new a.DERObjectIdentifier(d[e]);
                        this.asn1ExtnValue.appendASN1Object(f);
                    }
                };
                this.getExtnValueHex = function() {
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.37";
                if (c !== void 0) {
                    if (c.array !== void 0) {
                        this.setPurposeArray(c.array);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.ExtKeyUsage, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.AuthorityKeyIdentifier = function(f) {
                KJUR.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this, f);
                var b = KJUR, a = b.asn1, d = a.DERTaggedObject, e = a.x509.GeneralNames, c = b.crypto.Util.isKey;
                this.asn1KID = null;
                this.asn1CertIssuer = null;
                this.asn1CertSN = null;
                this.getExtnValueHex = function() {
                    var h = new Array();
                    if (this.asn1KID) {
                        h.push(new d({
                            explicit: false,
                            tag: "80",
                            obj: this.asn1KID
                        }));
                    }
                    if (this.asn1CertIssuer) {
                        h.push(new d({
                            explicit: false,
                            tag: "a1",
                            obj: new e([
                                {
                                    dn: this.asn1CertIssuer
                                }
                            ])
                        }));
                    }
                    if (this.asn1CertSN) {
                        h.push(new d({
                            explicit: false,
                            tag: "82",
                            obj: this.asn1CertSN
                        }));
                    }
                    var g = new a.DERSequence({
                        array: h
                    });
                    this.asn1ExtnValue = g;
                    return this.asn1ExtnValue.tohex();
                };
                this.setKIDByParam = function(i) {
                    if (i.str !== void 0 || i.hex !== void 0) {
                        this.asn1KID = new KJUR.asn1.DEROctetString(i);
                    } else {
                        if ((typeof i === "undefined" ? "undefined" : _type_of(i)) === "object" && KJUR.crypto.Util.isKey(i) || typeof i === "string" && i.indexOf("BEGIN ") != -1) {
                            var h = i;
                            if (typeof i === "string") {
                                h = KEYUTIL.getKey(i);
                            }
                            var g = KEYUTIL.getKeyID(h);
                            this.asn1KID = new KJUR.asn1.DEROctetString({
                                hex: g
                            });
                        }
                    }
                };
                this.setCertIssuerByParam = function(g) {
                    if (g.str !== void 0 || g.ldapstr !== void 0 || g.hex !== void 0 || g.certsubject !== void 0 || g.certissuer !== void 0) {
                        this.asn1CertIssuer = new KJUR.asn1.x509.X500Name(g);
                    } else {
                        if (typeof g === "string" && g.indexOf("BEGIN ") != -1 && g.indexOf("CERTIFICATE") != -1) {
                            this.asn1CertIssuer = new KJUR.asn1.x509.X500Name({
                                certissuer: g
                            });
                        }
                    }
                };
                this.setCertSNByParam = function(i) {
                    if (i.str !== void 0 || i.bigint !== void 0 || i.hex !== void 0) {
                        this.asn1CertSN = new KJUR.asn1.DERInteger(i);
                    } else {
                        if (typeof i === "string" && i.indexOf("BEGIN ") != -1 && i.indexOf("CERTIFICATE")) {
                            var g = new X509();
                            g.readCertPEM(i);
                            var h = g.getSerialNumberHex();
                            this.asn1CertSN = new KJUR.asn1.DERInteger({
                                hex: h
                            });
                        }
                    }
                };
                this.oid = "2.5.29.35";
                if (f !== void 0) {
                    if (f.kid !== void 0) {
                        this.setKIDByParam(f.kid);
                    }
                    if (f.issuer !== void 0) {
                        this.setCertIssuerByParam(f.issuer);
                    }
                    if (f.sn !== void 0) {
                        this.setCertSNByParam(f.sn);
                    }
                    if (f.issuersn !== void 0 && typeof f.issuersn === "string" && f.issuersn.indexOf("BEGIN ") != -1 && f.issuersn.indexOf("CERTIFICATE")) {
                        this.setCertSNByParam(f.issuersn);
                        this.setCertIssuerByParam(f.issuersn);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.AuthorityKeyIdentifier, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.SubjectKeyIdentifier = function(d) {
                KJUR.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this, d);
                var b = KJUR, a = b.asn1, c = a.DEROctetString;
                this.asn1KID = null;
                this.getExtnValueHex = function() {
                    this.asn1ExtnValue = this.asn1KID;
                    return this.asn1ExtnValue.tohex();
                };
                this.setKIDByParam = function(g) {
                    if (g.str !== void 0 || g.hex !== void 0) {
                        this.asn1KID = new c(g);
                    } else {
                        if ((typeof g === "undefined" ? "undefined" : _type_of(g)) === "object" && KJUR.crypto.Util.isKey(g) || typeof g === "string" && g.indexOf("BEGIN") != -1) {
                            var f = g;
                            if (typeof g === "string") {
                                f = KEYUTIL.getKey(g);
                            }
                            var e = KEYUTIL.getKeyID(f);
                            this.asn1KID = new KJUR.asn1.DEROctetString({
                                hex: e
                            });
                        }
                    }
                };
                this.oid = "2.5.29.14";
                if (d !== void 0) {
                    if (d.kid !== void 0) {
                        this.setKIDByParam(d.kid);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.SubjectKeyIdentifier, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.AuthorityInfoAccess = function(a) {
                KJUR.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this, a);
                this.setAccessDescriptionArray = function(k) {
                    var d = new Array(), b = KJUR, g = b.asn1, c = g.DERSequence, j = g.DERObjectIdentifier, l = g.x509.GeneralName;
                    for(var f = 0; f < k.length; f++){
                        var e;
                        var h = k[f];
                        if (h.ocsp !== void 0) {
                            e = new c({
                                array: [
                                    new j({
                                        oid: "1.3.6.1.5.5.7.48.1"
                                    }),
                                    new l({
                                        uri: h.ocsp
                                    })
                                ]
                            });
                        } else {
                            if (h.caissuer !== void 0) {
                                e = new c({
                                    array: [
                                        new j({
                                            oid: "1.3.6.1.5.5.7.48.2"
                                        }),
                                        new l({
                                            uri: h.caissuer
                                        })
                                    ]
                                });
                            } else {
                                throw new Error("unknown AccessMethod parameter: " + JSON.stringify(h));
                            }
                        }
                        d.push(e);
                    }
                    this.asn1ExtnValue = new c({
                        array: d
                    });
                };
                this.getExtnValueHex = function() {
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "1.3.6.1.5.5.7.1.1";
                if (a !== void 0) {
                    if (a.array !== void 0) {
                        this.setAccessDescriptionArray(a.array);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.AuthorityInfoAccess, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.SubjectAltName = function(a) {
                KJUR.asn1.x509.SubjectAltName.superclass.constructor.call(this, a);
                this.setNameArray = function(b) {
                    this.asn1ExtnValue = new KJUR.asn1.x509.GeneralNames(b);
                };
                this.getExtnValueHex = function() {
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.17";
                if (a !== void 0) {
                    if (a.array !== void 0) {
                        this.setNameArray(a.array);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.SubjectAltName, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.IssuerAltName = function(a) {
                KJUR.asn1.x509.IssuerAltName.superclass.constructor.call(this, a);
                this.setNameArray = function(b) {
                    this.asn1ExtnValue = new KJUR.asn1.x509.GeneralNames(b);
                };
                this.getExtnValueHex = function() {
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.18";
                if (a !== void 0) {
                    if (a.array !== void 0) {
                        this.setNameArray(a.array);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.IssuerAltName, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.SubjectDirectoryAttributes = function(e) {
                KJUR.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this, e);
                var c = KJUR.asn1, a = c.DERSequence, b = c.ASN1Util.newObject, d = c.x509.OID.name2oid;
                this.params = null;
                this.getExtnValueHex = function() {
                    var f = [];
                    for(var j = 0; j < this.params.array.length; j++){
                        var l = this.params.array[j];
                        if (l.attr != void 0 && l.array != void 0) {
                            var k = {
                                seq: [
                                    {
                                        oid: l.attr
                                    },
                                    {
                                        set: l.array
                                    }
                                ]
                            };
                            f.push(b(k));
                            continue;
                        }
                        var h = {
                            seq: [
                                {
                                    oid: "1.2.3.4"
                                },
                                {
                                    set: [
                                        {
                                            utf8str: "DE"
                                        }
                                    ]
                                }
                            ]
                        };
                        if (l.attr == "dateOfBirth") {
                            h.seq[0].oid = d(l.attr);
                            h.seq[1].set[0] = {
                                gentime: l.str
                            };
                        } else {
                            if (l.attr == "placeOfBirth") {
                                h.seq[0].oid = d(l.attr);
                                h.seq[1].set[0] = {
                                    utf8str: l.str
                                };
                            } else {
                                if (l.attr == "gender") {
                                    h.seq[0].oid = d(l.attr);
                                    h.seq[1].set[0] = {
                                        prnstr: l.str
                                    };
                                } else {
                                    if (l.attr == "countryOfCitizenship") {
                                        h.seq[0].oid = d(l.attr);
                                        h.seq[1].set[0] = {
                                            prnstr: l.str
                                        };
                                    } else {
                                        if (l.attr == "countryOfResidence") {
                                            h.seq[0].oid = d(l.attr);
                                            h.seq[1].set[0] = {
                                                prnstr: l.str
                                            };
                                        } else {
                                            throw new Error("unsupported attribute: " + l.attr);
                                        }
                                    }
                                }
                            }
                        }
                        f.push(new b(h));
                    }
                    var g = new a({
                        array: f
                    });
                    this.asn1ExtnValue = g;
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.9";
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.x509.SubjectDirectoryAttributes, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.PrivateExtension = function(f) {
                KJUR.asn1.x509.PrivateExtension.superclass.constructor.call(this, f);
                var c = KJUR, e = c.lang.String.isHex, b = c.asn1, d = b.x509.OID.name2oid, a = b.ASN1Util.newObject;
                this.params = null;
                this.setByParam = function(g) {
                    this.oid = d(g.extname);
                    this.params = g;
                };
                this.getExtnValueHex = function() {
                    if (this.params.extname == void 0 || this.params.extn == void 0) {
                        throw new Error("extname or extnhex not specified");
                    }
                    var h = this.params.extn;
                    if (typeof h == "string" && e(h)) {
                        return h;
                    } else {
                        if ((typeof h === "undefined" ? "undefined" : _type_of(h)) == "object") {
                            try {
                                return a(h).tohex();
                            } catch (g) {}
                        }
                    }
                    throw new Error("unsupported extn value");
                };
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.x509.PrivateExtension, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.CRL = function(g) {
                KJUR.asn1.x509.CRL.superclass.constructor.call(this);
                var c = KJUR, b = c.asn1, a = b.DERSequence, e = b.DERBitString, f = b.x509, d = f.AlgorithmIdentifier, h = f.TBSCertList;
                this.params = void 0;
                this.setByParam = function(i) {
                    this.params = i;
                };
                this.sign = function() {
                    var j = new h(this.params).tohex();
                    var k = new KJUR.crypto.Signature({
                        alg: this.params.sigalg
                    });
                    k.init(this.params.cakey);
                    k.updateHex(j);
                    var i = k.sign();
                    this.params.sighex = i;
                };
                this.getPEM = function() {
                    return hextopem(this.tohex(), "X509 CRL");
                };
                this.tohex = function() {
                    var k = this.params;
                    if (k.tbsobj == void 0) {
                        k.tbsobj = new h(k);
                    }
                    if (k.sighex == void 0 && k.cakey != void 0) {
                        this.sign();
                    }
                    if (k.sighex == void 0) {
                        throw new Error("sighex or cakey parameter not defined");
                    }
                    var i = [];
                    i.push(k.tbsobj);
                    i.push(new d({
                        name: k.sigalg
                    }));
                    i.push(new e({
                        hex: "00" + k.sighex
                    }));
                    var j = new a({
                        array: i
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.params = g;
                }
            };
            extendClass(KJUR.asn1.x509.CRL, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.TBSCertList = function(f) {
                KJUR.asn1.x509.TBSCertList.superclass.constructor.call(this);
                var b = KJUR, i = b.asn1, h = i.DERInteger, g = i.DERSequence, c = i.DERTaggedObject, k = i.DERObjectIdentifier, d = i.x509, l = d.AlgorithmIdentifier, e = d.Time, j = d.Extensions, a = d.X500Name;
                this.params = null;
                this.setByParam = function(m) {
                    this.params = m;
                };
                this.getRevCertSequence = function() {
                    var m = [];
                    var n = this.params.revcert;
                    for(var o = 0; o < n.length; o++){
                        var p = [
                            new h(n[o].sn),
                            new e(n[o].date)
                        ];
                        if (n[o].ext != void 0) {
                            p.push(new j(n[o].ext));
                        }
                        m.push(new g({
                            array: p
                        }));
                    }
                    return new g({
                        array: m
                    });
                };
                this.tohex = function() {
                    var n = [];
                    var r = this.params;
                    if (r.version != void 0) {
                        var m = r.version - 1;
                        var p = new h({
                            int: m
                        });
                        n.push(p);
                    }
                    n.push(new l({
                        name: r.sigalg
                    }));
                    n.push(new a(r.issuer));
                    n.push(new e(r.thisupdate));
                    if (r.nextupdate != void 0) {
                        n.push(new e(r.nextupdate));
                    }
                    if (r.revcert != void 0) {
                        n.push(this.getRevCertSequence());
                    }
                    if (r.ext != void 0) {
                        var q = new j(r.ext);
                        n.push(new c({
                            tag: "a0",
                            explicit: true,
                            obj: q
                        }));
                    }
                    var o = new g({
                        array: n
                    });
                    return o.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f !== void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.x509.TBSCertList, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.CRLEntry = function(e) {
                KJUR.asn1.x509.CRLEntry.superclass.constructor.call(this);
                var d = null, c = null, b = KJUR, a = b.asn1;
                this.setCertSerial = function(f) {
                    this.sn = new a.DERInteger(f);
                };
                this.setRevocationDate = function(f) {
                    this.time = new a.x509.Time(f);
                };
                this.tohex = function() {
                    var f = new a.DERSequence({
                        array: [
                            this.sn,
                            this.time
                        ]
                    });
                    this.TLV = f.tohex();
                    return this.TLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    if (e.time !== void 0) {
                        this.setRevocationDate(e.time);
                    }
                    if (e.sn !== void 0) {
                        this.setCertSerial(e.sn);
                    }
                }
            };
            extendClass(KJUR.asn1.x509.CRLEntry, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.CRLNumber = function(a) {
                KJUR.asn1.x509.CRLNumber.superclass.constructor.call(this, a);
                this.params = void 0;
                this.getExtnValueHex = function() {
                    this.asn1ExtnValue = new KJUR.asn1.DERInteger(this.params.num);
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.20";
                if (a != void 0) {
                    this.params = a;
                }
            };
            extendClass(KJUR.asn1.x509.CRLNumber, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.CRLReason = function(a) {
                KJUR.asn1.x509.CRLReason.superclass.constructor.call(this, a);
                this.params = void 0;
                this.getExtnValueHex = function() {
                    this.asn1ExtnValue = new KJUR.asn1.DEREnumerated(this.params.code);
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "2.5.29.21";
                if (a != void 0) {
                    this.params = a;
                }
            };
            extendClass(KJUR.asn1.x509.CRLReason, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.OCSPNonce = function(a) {
                KJUR.asn1.x509.OCSPNonce.superclass.constructor.call(this, a);
                this.params = void 0;
                this.getExtnValueHex = function() {
                    this.asn1ExtnValue = new KJUR.asn1.DEROctetString(this.params);
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "1.3.6.1.5.5.7.48.1.2";
                if (a != void 0) {
                    this.params = a;
                }
            };
            extendClass(KJUR.asn1.x509.OCSPNonce, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.OCSPNoCheck = function(a) {
                KJUR.asn1.x509.OCSPNoCheck.superclass.constructor.call(this, a);
                this.params = void 0;
                this.getExtnValueHex = function() {
                    this.asn1ExtnValue = new KJUR.asn1.DERNull();
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "1.3.6.1.5.5.7.48.1.5";
                if (a != void 0) {
                    this.params = a;
                }
            };
            extendClass(KJUR.asn1.x509.OCSPNoCheck, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.AdobeTimeStamp = function(g) {
                KJUR.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this, g);
                var c = KJUR, b = c.asn1, f = b.DERInteger, d = b.DERBoolean, a = b.DERSequence, e = b.x509.GeneralName;
                this.params = null;
                this.getExtnValueHex = function() {
                    var i = this.params;
                    var h = [
                        new f(1)
                    ];
                    h.push(new e({
                        uri: i.uri
                    }));
                    if (i.reqauth != void 0) {
                        h.push(new d(i.reqauth));
                    }
                    this.asn1ExtnValue = new a({
                        array: h
                    });
                    return this.asn1ExtnValue.tohex();
                };
                this.oid = "1.2.840.113583.1.1.9.1";
                if (g !== void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.x509.AdobeTimeStamp, KJUR.asn1.x509.Extension);
            KJUR.asn1.x509.X500Name = function(f) {
                KJUR.asn1.x509.X500Name.superclass.constructor.call(this);
                this.asn1Array = [];
                this.paramArray = [];
                this.sRule = "utf8";
                var c = KJUR, b = c.asn1, e = b.x509, d = e.RDN, a = pemtohex;
                this.setByString = function(g, l) {
                    if (l !== void 0) {
                        this.sRule = l;
                    }
                    var k = g.split("/");
                    k.shift();
                    var j = [];
                    for(var m = 0; m < k.length; m++){
                        if (k[m].match(/^[^=]+=.+$/)) {
                            j.push(k[m]);
                        } else {
                            var h = j.length - 1;
                            j[h] = j[h] + "/" + k[m];
                        }
                    }
                    for(var m = 0; m < j.length; m++){
                        this.asn1Array.push(new d({
                            str: j[m],
                            rule: this.sRule
                        }));
                    }
                };
                this.setByLdapString = function(g, h) {
                    if (h !== void 0) {
                        this.sRule = h;
                    }
                    var i = e.X500Name.ldapToCompat(g);
                    this.setByString(i, h);
                };
                this.setByObject = function(j, i) {
                    if (i !== void 0) {
                        this.sRule = i;
                    }
                    for(var g in j){
                        if (j.hasOwnProperty(g)) {
                            var h = new d({
                                str: g + "=" + j[g],
                                rule: this.sRule
                            });
                            this.asn1Array ? this.asn1Array.push(h) : this.asn1Array = [
                                h
                            ];
                        }
                    }
                };
                this.setByParam = function(h) {
                    if (h.rule !== void 0) {
                        this.sRule = h.rule;
                    }
                    if (h.array !== void 0) {
                        this.paramArray = h.array;
                    } else {
                        if (h.str !== void 0) {
                            this.setByString(h.str);
                        } else {
                            if (h.ldapstr !== void 0) {
                                this.setByLdapString(h.ldapstr);
                            } else {
                                if (h.hex !== void 0) {
                                    this.hTLV = h.hex;
                                } else {
                                    if (h.certissuer !== void 0) {
                                        var g = new X509();
                                        g.readCertPEM(h.certissuer);
                                        this.hTLV = g.getIssuerHex();
                                    } else {
                                        if (h.certsubject !== void 0) {
                                            var g = new X509();
                                            g.readCertPEM(h.certsubject);
                                            this.hTLV = g.getSubjectHex();
                                        } else {
                                            if ((typeof h === "undefined" ? "undefined" : _type_of(h)) === "object" && h.certsubject === void 0 && h.certissuer === void 0) {
                                                this.setByObject(h);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                };
                this.tohex = function() {
                    if (typeof this.hTLV == "string") {
                        return this.hTLV;
                    }
                    if (this.asn1Array.length == 0 && this.paramArray.length > 0) {
                        for(var g = 0; g < this.paramArray.length; g++){
                            var k = {
                                array: this.paramArray[g]
                            };
                            if (this.sRule != "utf8") {
                                k.rule = this.sRule;
                            }
                            var h = new d(k);
                            this.asn1Array.push(h);
                        }
                    }
                    var j = new b.DERSequence({
                        array: this.asn1Array
                    });
                    this.hTLV = j.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f !== void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.x509.X500Name, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.X500Name.compatToLDAP = function(d) {
                if (d.substr(0, 1) !== "/") {
                    throw "malformed input";
                }
                var b = "";
                d = d.substr(1);
                var c = d.split("/");
                c.reverse();
                c = c.map(function(a) {
                    return a.replace(/,/, "\\,");
                });
                return c.join(",");
            };
            KJUR.asn1.x509.X500Name.onelineToLDAP = function(a) {
                return KJUR.asn1.x509.X500Name.compatToLDAP(a);
            };
            KJUR.asn1.x509.X500Name.ldapToCompat = function(g) {
                var c = g.split(",");
                var e = false;
                var b = [];
                for(var f = 0; c.length > 0; f++){
                    var h = c.shift();
                    if (e === true) {
                        var d = b.pop();
                        var j = (d + "," + h).replace(/\\,/g, ",");
                        b.push(j);
                        e = false;
                    } else {
                        b.push(h);
                    }
                    if (h.substr(-1, 1) === "\\") {
                        e = true;
                    }
                }
                b = b.map(function(a) {
                    return a.replace("/", "\\/");
                });
                b.reverse();
                return "/" + b.join("/");
            };
            KJUR.asn1.x509.X500Name.ldapToOneline = function(a) {
                return KJUR.asn1.x509.X500Name.ldapToCompat(a);
            };
            KJUR.asn1.x509.RDN = function(b) {
                KJUR.asn1.x509.RDN.superclass.constructor.call(this);
                this.asn1Array = [];
                this.paramArray = [];
                this.sRule = "utf8";
                var a = KJUR.asn1.x509.AttributeTypeAndValue;
                this.setByParam = function(c) {
                    if (c.rule !== void 0) {
                        this.sRule = c.rule;
                    }
                    if (c.str !== void 0) {
                        this.addByMultiValuedString(c.str);
                    }
                    if (c.array !== void 0) {
                        this.paramArray = c.array;
                    }
                };
                this.addByString = function(c) {
                    this.asn1Array.push(new KJUR.asn1.x509.AttributeTypeAndValue({
                        str: c,
                        rule: this.sRule
                    }));
                };
                this.addByMultiValuedString = function(e) {
                    var c = KJUR.asn1.x509.RDN.parseString(e);
                    for(var d = 0; d < c.length; d++){
                        this.addByString(c[d]);
                    }
                };
                this.tohex = function() {
                    if (this.asn1Array.length == 0 && this.paramArray.length > 0) {
                        for(var d = 0; d < this.paramArray.length; d++){
                            var f = this.paramArray[d];
                            if (f.rule !== void 0 && this.sRule != "utf8") {
                                f.rule = this.sRule;
                            }
                            var c = new a(f);
                            this.asn1Array.push(c);
                        }
                    }
                    var e = new KJUR.asn1.DERSet({
                        array: this.asn1Array
                    });
                    this.TLV = e.tohex();
                    return this.TLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (b !== void 0) {
                    this.setByParam(b);
                }
            };
            extendClass(KJUR.asn1.x509.RDN, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.RDN.parseString = function(m) {
                var j = m.split(/\+/);
                var h = false;
                var c = [];
                for(var g = 0; j.length > 0; g++){
                    var k = j.shift();
                    if (h === true) {
                        var f = c.pop();
                        var d = (f + "+" + k).replace(/\\\+/g, "+");
                        c.push(d);
                        h = false;
                    } else {
                        c.push(k);
                    }
                    if (k.substr(-1, 1) === "\\") {
                        h = true;
                    }
                }
                var l = false;
                var b = [];
                for(var g = 0; c.length > 0; g++){
                    var k = c.shift();
                    if (l === true) {
                        var e = b.pop();
                        if (k.match(/"$/)) {
                            var d = (e + "+" + k).replace(/^([^=]+)="(.*)"$/, "$1=$2");
                            b.push(d);
                            l = false;
                        } else {
                            b.push(e + "+" + k);
                        }
                    } else {
                        b.push(k);
                    }
                    if (k.match(/^[^=]+="/)) {
                        l = true;
                    }
                }
                return b;
            };
            KJUR.asn1.x509.AttributeTypeAndValue = function(c) {
                KJUR.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this);
                this.sRule = "utf8";
                this.sType = null;
                this.sValue = null;
                this.dsType = null;
                var a = KJUR, g = a.asn1, d = g.DERSequence, l = g.DERUTF8String, i = g.DERPrintableString, h = g.DERTeletexString, b = g.DERIA5String, e = g.DERVisibleString, k = g.DERBMPString, f = a.lang.String.isMail, j = a.lang.String.isPrintable;
                this.setByParam = function(o) {
                    if (o.rule !== void 0) {
                        this.sRule = o.rule;
                    }
                    if (o.ds !== void 0) {
                        this.dsType = o.ds;
                    }
                    if (o.value === void 0 && o.str !== void 0) {
                        var n = o.str;
                        var m = n.match(/^([^=]+)=(.+)$/);
                        if (m) {
                            this.sType = m[1];
                            this.sValue = m[2];
                        } else {
                            throw new Error("malformed attrTypeAndValueStr: " + attrTypeAndValueStr);
                        }
                    } else {
                        this.sType = o.type;
                        this.sValue = o.value;
                    }
                };
                this.setByString = function(n, o) {
                    if (o !== void 0) {
                        this.sRule = o;
                    }
                    var m = n.match(/^([^=]+)=(.+)$/);
                    if (m) {
                        this.setByAttrTypeAndValueStr(m[1], m[2]);
                    } else {
                        throw new Error("malformed attrTypeAndValueStr: " + attrTypeAndValueStr);
                    }
                };
                this._getDsType = function() {
                    var o = this.sType;
                    var n = this.sValue;
                    var m = this.sRule;
                    if (m === "prn") {
                        if (o == "CN" && f(n)) {
                            return "ia5";
                        }
                        if (j(n)) {
                            return "prn";
                        }
                        return "utf8";
                    } else {
                        if (m === "utf8") {
                            if (o == "CN" && f(n)) {
                                return "ia5";
                            }
                            if (o == "C") {
                                return "prn";
                            }
                            return "utf8";
                        }
                    }
                    return "utf8";
                };
                this.setByAttrTypeAndValueStr = function(o, n, m) {
                    if (m !== void 0) {
                        this.sRule = m;
                    }
                    this.sType = o;
                    this.sValue = n;
                };
                this.getValueObj = function(n, m) {
                    if (n == "utf8") {
                        return new l({
                            str: m
                        });
                    }
                    if (n == "prn") {
                        return new i({
                            str: m
                        });
                    }
                    if (n == "tel") {
                        return new h({
                            str: m
                        });
                    }
                    if (n == "ia5") {
                        return new b({
                            str: m
                        });
                    }
                    if (n == "vis") {
                        return new e({
                            str: m
                        });
                    }
                    if (n == "bmp") {
                        return new k({
                            str: m
                        });
                    }
                    throw new Error("unsupported directory string type: type=" + n + " value=" + m);
                };
                this.tohex = function() {
                    if (this.dsType == null) {
                        this.dsType = this._getDsType();
                    }
                    var n = KJUR.asn1.x509.OID.atype2obj(this.sType);
                    var m = this.getValueObj(this.dsType, this.sValue);
                    var p = new d({
                        array: [
                            n,
                            m
                        ]
                    });
                    this.TLV = p.tohex();
                    return this.TLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (c !== void 0) {
                    this.setByParam(c);
                }
            };
            extendClass(KJUR.asn1.x509.AttributeTypeAndValue, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.SubjectPublicKeyInfo = function(f) {
                KJUR.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);
                var l = null, k = null, a = KJUR, j = a.asn1, i = j.DERInteger, b = j.DERBitString, m = j.DERObjectIdentifier, e = j.DERSequence, h = j.ASN1Util.newObject, d = j.x509, o = d.AlgorithmIdentifier, g = a.crypto, n = g.ECDSA, c = g.DSA;
                this.getASN1Object = function() {
                    if (this.asn1AlgId == null || this.asn1SubjPKey == null) {
                        throw "algId and/or subjPubKey not set";
                    }
                    var p = new e({
                        array: [
                            this.asn1AlgId,
                            this.asn1SubjPKey
                        ]
                    });
                    return p;
                };
                this.tohex = function() {
                    var p = this.getASN1Object();
                    this.hTLV = p.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setPubKey = function(q) {
                    try {
                        if (q instanceof RSAKey) {
                            var u = h({
                                seq: [
                                    {
                                        int: {
                                            bigint: q.n
                                        }
                                    },
                                    {
                                        int: {
                                            int: q.e
                                        }
                                    }
                                ]
                            });
                            var s = u.tohex();
                            this.asn1AlgId = new o({
                                name: "rsaEncryption"
                            });
                            this.asn1SubjPKey = new b({
                                hex: "00" + s
                            });
                        }
                    } catch (p) {}
                    try {
                        if (q instanceof KJUR.crypto.ECDSA) {
                            var r = new m({
                                name: q.curveName
                            });
                            this.asn1AlgId = new o({
                                name: "ecPublicKey",
                                asn1params: r
                            });
                            this.asn1SubjPKey = new b({
                                hex: "00" + q.pubKeyHex
                            });
                        }
                    } catch (p) {}
                    try {
                        if (q instanceof KJUR.crypto.DSA) {
                            var r = new h({
                                seq: [
                                    {
                                        int: {
                                            bigint: q.p
                                        }
                                    },
                                    {
                                        int: {
                                            bigint: q.q
                                        }
                                    },
                                    {
                                        int: {
                                            bigint: q.g
                                        }
                                    }
                                ]
                            });
                            this.asn1AlgId = new o({
                                name: "dsa",
                                asn1params: r
                            });
                            var t2 = new i({
                                bigint: q.y
                            });
                            this.asn1SubjPKey = new b({
                                hex: "00" + t2.tohex()
                            });
                        }
                    } catch (p) {}
                };
                if (f !== void 0) {
                    this.setPubKey(f);
                }
            };
            extendClass(KJUR.asn1.x509.SubjectPublicKeyInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.Time = function(f) {
                KJUR.asn1.x509.Time.superclass.constructor.call(this);
                var e = null, a = null, d = KJUR, c = d.asn1, b = c.DERUTCTime, g = c.DERGeneralizedTime;
                this.params = null;
                this.type = null;
                this.setTimeParams = function(h) {
                    this.timeParams = h;
                };
                this.setByParam = function(h) {
                    this.params = h;
                };
                this.getType = function(h) {
                    if (h.match(/^[0-9]{12}Z$/)) {
                        return "utc";
                    }
                    if (h.match(/^[0-9]{14}Z$/)) {
                        return "gen";
                    }
                    if (h.match(/^[0-9]{12}\.[0-9]+Z$/)) {
                        return "utc";
                    }
                    if (h.match(/^[0-9]{14}\.[0-9]+Z$/)) {
                        return "gen";
                    }
                    return null;
                };
                this.tohex = function() {
                    var i = this.params;
                    var h = null;
                    if (typeof i == "string") {
                        i = {
                            str: i
                        };
                    }
                    if (i != null && i.str && (i.type == null || i.type == void 0)) {
                        i.type = this.getType(i.str);
                    }
                    if (i != null && i.str) {
                        if (i.type == "utc") {
                            h = new b(i.str);
                        }
                        if (i.type == "gen") {
                            h = new g(i.str);
                        }
                    } else {
                        if (this.type == "gen") {
                            h = new g();
                        } else {
                            h = new b();
                        }
                    }
                    if (h == null) {
                        throw new Error("wrong setting for Time");
                    }
                    this.TLV = h.tohex();
                    return this.TLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            KJUR.asn1.x509.Time_bak = function(f) {
                KJUR.asn1.x509.Time_bak.superclass.constructor.call(this);
                var e = null, a = null, d = KJUR, c = d.asn1, b = c.DERUTCTime, g = c.DERGeneralizedTime;
                this.setTimeParams = function(h) {
                    this.timeParams = h;
                };
                this.tohex = function() {
                    var h = null;
                    if (this.timeParams != null) {
                        if (this.type == "utc") {
                            h = new b(this.timeParams);
                        } else {
                            h = new g(this.timeParams);
                        }
                    } else {
                        if (this.type == "utc") {
                            h = new b();
                        } else {
                            h = new g();
                        }
                    }
                    this.TLV = h.tohex();
                    return this.TLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.type = "utc";
                if (f !== void 0) {
                    if (f.type !== void 0) {
                        this.type = f.type;
                    } else {
                        if (f.str !== void 0) {
                            if (f.str.match(/^[0-9]{12}Z$/)) {
                                this.type = "utc";
                            }
                            if (f.str.match(/^[0-9]{14}Z$/)) {
                                this.type = "gen";
                            }
                        }
                    }
                    this.timeParams = f;
                }
            };
            extendClass(KJUR.asn1.x509.Time, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.AlgorithmIdentifier = function(e) {
                KJUR.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this);
                this.nameAlg = null;
                this.asn1Alg = null;
                this.asn1Params = null;
                this.paramEmpty = false;
                var b = KJUR, a = b.asn1, c = a.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;
                this.tohex = function() {
                    if (this.nameAlg === null && this.asn1Alg === null) {
                        throw new Error("algorithm not specified");
                    }
                    if (this.nameAlg !== null) {
                        var f = null;
                        for(var h in c){
                            if (h === this.nameAlg) {
                                f = c[h];
                            }
                        }
                        if (f !== null) {
                            this.hTLV = f;
                            return this.hTLV;
                        }
                    }
                    if (this.nameAlg !== null && this.asn1Alg === null) {
                        this.asn1Alg = a.x509.OID.name2obj(this.nameAlg);
                    }
                    var g = [
                        this.asn1Alg
                    ];
                    if (this.asn1Params !== null) {
                        g.push(this.asn1Params);
                    }
                    var i = new a.DERSequence({
                        array: g
                    });
                    this.hTLV = i.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    if (e.name !== void 0) {
                        this.nameAlg = e.name;
                    }
                    if (e.asn1params !== void 0) {
                        this.asn1Params = e.asn1params;
                    }
                    if (e.paramempty !== void 0) {
                        this.paramEmpty = e.paramempty;
                    }
                }
                if (this.asn1Params === null && this.paramEmpty === false && this.nameAlg !== null) {
                    if (this.nameAlg.name !== void 0) {
                        this.nameAlg = this.nameAlg.name;
                    }
                    var d = this.nameAlg.toLowerCase();
                    if (d.substr(-7, 7) !== "withdsa" && d.substr(-9, 9) !== "withecdsa") {
                        this.asn1Params = new a.DERNull();
                    }
                }
            };
            extendClass(KJUR.asn1.x509.AlgorithmIdentifier, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV = {
                SHAwithRSAandMGF1: "300d06092a864886f70d01010a3000",
                SHA256withRSAandMGF1: "303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",
                SHA384withRSAandMGF1: "303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",
                SHA512withRSAandMGF1: "303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"
            };
            KJUR.asn1.x509.GeneralName = function(f) {
                KJUR.asn1.x509.GeneralName.superclass.constructor.call(this);
                var l = {
                    rfc822: "81",
                    dns: "82",
                    dn: "a4",
                    uri: "86",
                    ip: "87",
                    otherName: "a0"
                }, b = KJUR, h = b.asn1, d = h.x509, a = d.X500Name, g = d.OtherName, e = h.DERIA5String, i = h.DERPrintableString, k = h.DEROctetString, c = h.DERTaggedObject, m = h.ASN1Object, j = Error;
                this.params = null;
                this.setByParam = function(n) {
                    this.params = n;
                };
                this.tohex = function() {
                    var p = this.params;
                    var A, y, q;
                    var y = false;
                    if (p.other !== void 0) {
                        A = "a0", q = new g(p.other);
                    } else {
                        if (p.rfc822 !== void 0) {
                            A = "81";
                            q = new e({
                                str: p.rfc822
                            });
                        } else {
                            if (p.dns !== void 0) {
                                A = "82";
                                q = new e({
                                    str: p.dns
                                });
                            } else {
                                if (p.dn !== void 0) {
                                    A = "a4";
                                    y = true;
                                    if (typeof p.dn === "string") {
                                        q = new a({
                                            str: p.dn
                                        });
                                    } else {
                                        if (p.dn instanceof KJUR.asn1.x509.X500Name) {
                                            q = p.dn;
                                        } else {
                                            q = new a(p.dn);
                                        }
                                    }
                                } else {
                                    if (p.ldapdn !== void 0) {
                                        A = "a4";
                                        y = true;
                                        q = new a({
                                            ldapstr: p.ldapdn
                                        });
                                    } else {
                                        if (p.certissuer !== void 0 || p.certsubj !== void 0) {
                                            A = "a4";
                                            y = true;
                                            var n, o;
                                            var z2 = null;
                                            if (p.certsubj !== void 0) {
                                                n = false;
                                                o = p.certsubj;
                                            } else {
                                                n = true;
                                                o = p.certissuer;
                                            }
                                            if (o.match(/^[0-9A-Fa-f]+$/)) {
                                                z2 == o;
                                            }
                                            if (o.indexOf("-----BEGIN ") != -1) {
                                                z2 = pemtohex(o);
                                            }
                                            if (z2 == null) {
                                                throw new Error("certsubj/certissuer not cert");
                                            }
                                            var w = new X509();
                                            w.hex = z2;
                                            var s;
                                            if (n) {
                                                s = w.getIssuerHex();
                                            } else {
                                                s = w.getSubjectHex();
                                            }
                                            q = new m();
                                            q.hTLV = s;
                                        } else {
                                            if (p.uri !== void 0) {
                                                A = "86";
                                                q = new e({
                                                    str: p.uri
                                                });
                                            } else {
                                                if (p.ip !== void 0) {
                                                    A = "87";
                                                    var v;
                                                    var t2 = p.ip;
                                                    try {
                                                        if (t2.match(/^[0-9a-f]+$/)) {
                                                            var r = t2.length;
                                                            if (r == 8 || r == 16 || r == 32 || r == 64) {
                                                                v = t2;
                                                            } else {
                                                                throw "err";
                                                            }
                                                        } else {
                                                            v = iptohex(t2);
                                                        }
                                                    } catch (u) {
                                                        throw new j("malformed IP address: " + p.ip + ":" + u.message);
                                                    }
                                                    q = new k({
                                                        hex: v
                                                    });
                                                } else {
                                                    throw new j("improper params");
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    var B = new c({
                        tag: A,
                        explicit: y,
                        obj: q
                    });
                    return B.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f !== void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.x509.GeneralName, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.GeneralNames = function(d) {
                KJUR.asn1.x509.GeneralNames.superclass.constructor.call(this);
                var a = null, c = KJUR, b = c.asn1;
                this.setByParamArray = function(g) {
                    for(var e = 0; e < g.length; e++){
                        var f = new b.x509.GeneralName(g[e]);
                        this.asn1Array.push(f);
                    }
                };
                this.tohex = function() {
                    var e = new b.DERSequence({
                        array: this.asn1Array
                    });
                    return e.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.asn1Array = new Array();
                if (typeof d != "undefined") {
                    this.setByParamArray(d);
                }
            };
            extendClass(KJUR.asn1.x509.GeneralNames, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.OtherName = function(g) {
                KJUR.asn1.x509.OtherName.superclass.constructor.call(this);
                var f = null, e = null, d = KJUR, c = d.asn1, h = c.DERObjectIdentifier, a = c.DERSequence, b = c.ASN1Util.newObject;
                this.params = null;
                this.setByParam = function(i) {
                    this.params = i;
                };
                this.tohex = function() {
                    var k = this.params;
                    if (k.oid == void 0 || k.value == void 0) {
                        throw new Error("oid or value not specified");
                    }
                    var l = new h({
                        oid: k.oid
                    });
                    var i = b({
                        tag: {
                            tag: "a0",
                            explicit: true,
                            obj: k.value
                        }
                    });
                    var j = new a({
                        array: [
                            l,
                            i
                        ]
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g !== void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.x509.OtherName, KJUR.asn1.ASN1Object);
            KJUR.asn1.x509.OID = new function() {
                var a = KJUR.asn1.DERObjectIdentifier;
                this.name2oidList = {
                    "aes128-CBC": "2.16.840.1.101.3.4.1.2",
                    "aes256-CBC": "2.16.840.1.101.3.4.1.42",
                    sha1: "1.3.14.3.2.26",
                    sha256: "2.16.840.1.101.3.4.2.1",
                    sha384: "2.16.840.1.101.3.4.2.2",
                    sha512: "2.16.840.1.101.3.4.2.3",
                    sha224: "2.16.840.1.101.3.4.2.4",
                    md5: "1.2.840.113549.2.5",
                    md2: "1.3.14.7.2.2.1",
                    ripemd160: "1.3.36.3.2.1",
                    hmacWithSHA1: "1.2.840.113549.2.7",
                    hmacWithSHA224: "1.2.840.113549.2.8",
                    hmacWithSHA256: "1.2.840.113549.2.9",
                    hmacWithSHA384: "1.2.840.113549.2.10",
                    hmacWithSHA512: "1.2.840.113549.2.11",
                    MD2withRSA: "1.2.840.113549.1.1.2",
                    MD4withRSA: "1.2.840.113549.1.1.3",
                    MD5withRSA: "1.2.840.113549.1.1.4",
                    SHA1withRSA: "1.2.840.113549.1.1.5",
                    "pkcs1-MGF": "1.2.840.113549.1.1.8",
                    rsaPSS: "1.2.840.113549.1.1.10",
                    SHA224withRSA: "1.2.840.113549.1.1.14",
                    SHA256withRSA: "1.2.840.113549.1.1.11",
                    SHA384withRSA: "1.2.840.113549.1.1.12",
                    SHA512withRSA: "1.2.840.113549.1.1.13",
                    SHA1withECDSA: "1.2.840.10045.4.1",
                    SHA224withECDSA: "1.2.840.10045.4.3.1",
                    SHA256withECDSA: "1.2.840.10045.4.3.2",
                    SHA384withECDSA: "1.2.840.10045.4.3.3",
                    SHA512withECDSA: "1.2.840.10045.4.3.4",
                    dsa: "1.2.840.10040.4.1",
                    SHA1withDSA: "1.2.840.10040.4.3",
                    SHA224withDSA: "2.16.840.1.101.3.4.3.1",
                    SHA256withDSA: "2.16.840.1.101.3.4.3.2",
                    rsaEncryption: "1.2.840.113549.1.1.1",
                    commonName: "2.5.4.3",
                    countryName: "2.5.4.6",
                    localityName: "2.5.4.7",
                    stateOrProvinceName: "2.5.4.8",
                    streetAddress: "2.5.4.9",
                    organizationName: "2.5.4.10",
                    organizationalUnitName: "2.5.4.11",
                    domainComponent: "0.9.2342.19200300.100.1.25",
                    userId: "0.9.2342.19200300.100.1.1",
                    surname: "2.5.4.4",
                    givenName: "2.5.4.42",
                    title: "2.5.4.12",
                    distinguishedName: "2.5.4.49",
                    emailAddress: "1.2.840.113549.1.9.1",
                    description: "2.5.4.13",
                    businessCategory: "2.5.4.15",
                    postalCode: "2.5.4.17",
                    uniqueIdentifier: "2.5.4.45",
                    organizationIdentifier: "2.5.4.97",
                    jurisdictionOfIncorporationL: "1.3.6.1.4.1.311.60.2.1.1",
                    jurisdictionOfIncorporationSP: "1.3.6.1.4.1.311.60.2.1.2",
                    jurisdictionOfIncorporationC: "1.3.6.1.4.1.311.60.2.1.3",
                    subjectDirectoryAttributes: "2.5.29.9",
                    subjectKeyIdentifier: "2.5.29.14",
                    keyUsage: "2.5.29.15",
                    subjectAltName: "2.5.29.17",
                    issuerAltName: "2.5.29.18",
                    basicConstraints: "2.5.29.19",
                    cRLNumber: "2.5.29.20",
                    cRLReason: "2.5.29.21",
                    nameConstraints: "2.5.29.30",
                    cRLDistributionPoints: "2.5.29.31",
                    certificatePolicies: "2.5.29.32",
                    anyPolicy: "2.5.29.32.0",
                    policyMappings: "2.5.29.33",
                    authorityKeyIdentifier: "2.5.29.35",
                    policyConstraints: "2.5.29.36",
                    extKeyUsage: "2.5.29.37",
                    inhibitAnyPolicy: "2.5.29.54",
                    authorityInfoAccess: "1.3.6.1.5.5.7.1.1",
                    ocsp: "1.3.6.1.5.5.7.48.1",
                    ocspBasic: "1.3.6.1.5.5.7.48.1.1",
                    ocspNonce: "1.3.6.1.5.5.7.48.1.2",
                    ocspNoCheck: "1.3.6.1.5.5.7.48.1.5",
                    caIssuers: "1.3.6.1.5.5.7.48.2",
                    anyExtendedKeyUsage: "2.5.29.37.0",
                    serverAuth: "1.3.6.1.5.5.7.3.1",
                    clientAuth: "1.3.6.1.5.5.7.3.2",
                    codeSigning: "1.3.6.1.5.5.7.3.3",
                    emailProtection: "1.3.6.1.5.5.7.3.4",
                    timeStamping: "1.3.6.1.5.5.7.3.8",
                    ocspSigning: "1.3.6.1.5.5.7.3.9",
                    smtpUTF8Mailbox: "1.3.6.1.5.5.7.8.9",
                    dateOfBirth: "1.3.6.1.5.5.7.9.1",
                    placeOfBirth: "1.3.6.1.5.5.7.9.2",
                    gender: "1.3.6.1.5.5.7.9.3",
                    countryOfCitizenship: "1.3.6.1.5.5.7.9.4",
                    countryOfResidence: "1.3.6.1.5.5.7.9.5",
                    ecPublicKey: "1.2.840.10045.2.1",
                    "P-256": "1.2.840.10045.3.1.7",
                    secp256r1: "1.2.840.10045.3.1.7",
                    secp256k1: "1.3.132.0.10",
                    secp384r1: "1.3.132.0.34",
                    secp521r1: "1.3.132.0.35",
                    pkcs5PBES2: "1.2.840.113549.1.5.13",
                    pkcs5PBKDF2: "1.2.840.113549.1.5.12",
                    "des-EDE3-CBC": "1.2.840.113549.3.7",
                    data: "1.2.840.113549.1.7.1",
                    "signed-data": "1.2.840.113549.1.7.2",
                    "enveloped-data": "1.2.840.113549.1.7.3",
                    "digested-data": "1.2.840.113549.1.7.5",
                    "encrypted-data": "1.2.840.113549.1.7.6",
                    "authenticated-data": "1.2.840.113549.1.9.16.1.2",
                    tstinfo: "1.2.840.113549.1.9.16.1.4",
                    signingCertificate: "1.2.840.113549.1.9.16.2.12",
                    timeStampToken: "1.2.840.113549.1.9.16.2.14",
                    signaturePolicyIdentifier: "1.2.840.113549.1.9.16.2.15",
                    etsArchiveTimeStamp: "1.2.840.113549.1.9.16.2.27",
                    signingCertificateV2: "1.2.840.113549.1.9.16.2.47",
                    etsArchiveTimeStampV2: "1.2.840.113549.1.9.16.2.48",
                    extensionRequest: "1.2.840.113549.1.9.14",
                    contentType: "1.2.840.113549.1.9.3",
                    messageDigest: "1.2.840.113549.1.9.4",
                    signingTime: "1.2.840.113549.1.9.5",
                    counterSignature: "1.2.840.113549.1.9.6",
                    archiveTimeStampV3: "0.4.0.1733.2.4",
                    pdfRevocationInfoArchival: "1.2.840.113583.1.1.8",
                    adobeTimeStamp: "1.2.840.113583.1.1.9.1",
                    smimeMailboxLegacy: "2.23.140.1.5.1.1",
                    smimeMailboxMulti: "2.23.140.1.5.1.2",
                    smimeMailboxStrict: "2.23.140.1.5.1.3",
                    smimeOrganizationLegacy: "2.23.140.1.5.2.1",
                    smimeOrganizationMulti: "2.23.140.1.5.2.2",
                    smimeOrganizationStrict: "2.23.140.1.5.2.3",
                    smimeSponsorLegacy: "2.23.140.1.5.3.1",
                    smimeSponsorMulti: "2.23.140.1.5.3.2",
                    smimeSponsorStrict: "2.23.140.1.5.3.3",
                    smimeIndividualLegacy: "2.23.140.1.5.4.1",
                    smimeIndividualMulti: "2.23.140.1.5.4.2",
                    smimeIndividualStrict: "2.23.140.1.5.4.3"
                };
                this.atype2oidList = {
                    CN: "2.5.4.3",
                    L: "2.5.4.7",
                    ST: "2.5.4.8",
                    O: "2.5.4.10",
                    OU: "2.5.4.11",
                    C: "2.5.4.6",
                    STREET: "2.5.4.9",
                    DC: "0.9.2342.19200300.100.1.25",
                    UID: "0.9.2342.19200300.100.1.1",
                    SN: "2.5.4.4",
                    T: "2.5.4.12",
                    GN: "2.5.4.42",
                    DN: "2.5.4.49",
                    E: "1.2.840.113549.1.9.1",
                    description: "2.5.4.13",
                    businessCategory: "2.5.4.15",
                    postalCode: "2.5.4.17",
                    serialNumber: "2.5.4.5",
                    uniqueIdentifier: "2.5.4.45",
                    organizationIdentifier: "2.5.4.97",
                    jurisdictionOfIncorporationL: "1.3.6.1.4.1.311.60.2.1.1",
                    jurisdictionOfIncorporationSP: "1.3.6.1.4.1.311.60.2.1.2",
                    jurisdictionOfIncorporationC: "1.3.6.1.4.1.311.60.2.1.3"
                };
                this.objCache = {};
                this.name2obj = function(b) {
                    if (typeof this.objCache[b] != "undefined") {
                        return this.objCache[b];
                    }
                    if (typeof this.name2oidList[b] == "undefined") {
                        throw "Name of ObjectIdentifier not defined: " + b;
                    }
                    var c = this.name2oidList[b];
                    var d = new a({
                        oid: c
                    });
                    this.objCache[b] = d;
                    return d;
                };
                this.atype2obj = function(b) {
                    if (this.objCache[b] !== void 0) {
                        return this.objCache[b];
                    }
                    var c;
                    if (b.match(/^\d+\.\d+\.[0-9.]+$/)) {
                        c = b;
                    } else {
                        if (this.atype2oidList[b] !== void 0) {
                            c = this.atype2oidList[b];
                        } else {
                            if (this.name2oidList[b] !== void 0) {
                                c = this.name2oidList[b];
                            } else {
                                throw new Error("AttributeType name undefined: " + b);
                            }
                        }
                    }
                    var d = new a({
                        oid: c
                    });
                    this.objCache[b] = d;
                    return d;
                };
                this.registerOIDs = function(b) {
                    if (!this.checkOIDs(b)) {
                        return;
                    }
                    for(var c in b){
                        this.name2oidList[c] = b[c];
                    }
                };
                this.checkOIDs = function(b) {
                    try {
                        var d = Object.keys(b);
                        if (d.length == 0) {
                            return false;
                        }
                        d.map(function(g, e, h) {
                            var f = this[g];
                            if (!f.match(/^[0-2]\.[0-9.]+$/)) {
                                throw new Error("value is not OID");
                            }
                        }, b);
                        return true;
                    } catch (c) {
                        return false;
                    }
                };
            }();
            KJUR.asn1.x509.OID.oid2name = function(b) {
                var c = KJUR.asn1.x509.OID.name2oidList;
                for(var a in c){
                    if (c[a] == b) {
                        return a;
                    }
                }
                return "";
            };
            KJUR.asn1.x509.OID.oid2atype = function(b) {
                var c = KJUR.asn1.x509.OID.atype2oidList;
                for(var a in c){
                    if (c[a] == b) {
                        return a;
                    }
                }
                return b;
            };
            KJUR.asn1.x509.OID.name2oid = function(a) {
                if (a.match(/^[0-9.]+$/)) {
                    return a;
                }
                var b = KJUR.asn1.x509.OID.name2oidList;
                if (b[a] === void 0) {
                    return "";
                }
                return b[a];
            };
            KJUR.asn1.x509.X509Util = {};
            KJUR.asn1.x509.X509Util.newCertPEM = function(e) {
                var d = KJUR.asn1.x509, b = d.TBSCertificate, a = d.Certificate;
                var c = new a(e);
                return c.getPEM();
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) {
                KJUR.asn1 = {};
            }
            if (typeof KJUR.asn1.cms == "undefined" || !KJUR.asn1.cms) {
                KJUR.asn1.cms = {};
            }
            KJUR.asn1.cms.Attribute = function(f) {
                var e = Error, d = KJUR, c = d.asn1, b = c.DERSequence, a = c.DERSet, g = c.DERObjectIdentifier;
                this.params = null;
                this.typeOid = null;
                this.setByParam = function(h) {
                    this.params = h;
                };
                this.getValueArray = function() {
                    throw new e("not yet implemented abstract");
                };
                this.tohex = function() {
                    var j = new g({
                        oid: this.typeOid
                    });
                    var h = new a({
                        array: this.getValueArray()
                    });
                    var i = new b({
                        array: [
                            j,
                            h
                        ]
                    });
                    return i.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
            };
            extendClass(KJUR.asn1.cms.Attribute, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.ContentType = function(c) {
                var b = KJUR, a = b.asn1;
                a.cms.ContentType.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.3";
                this.getValueArray = function() {
                    var d = new a.DERObjectIdentifier(this.params.type);
                    return [
                        d
                    ];
                };
                if (c != void 0) {
                    this.setByParam(c);
                }
            };
            extendClass(KJUR.asn1.cms.ContentType, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cms.MessageDigest = function(e) {
                var b = KJUR, a = b.asn1, c = a.DEROctetString, d = a.cms;
                d.MessageDigest.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.4";
                this.getValueArray = function() {
                    var f = new c(this.params);
                    return [
                        f
                    ];
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cms.MessageDigest, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cms.SigningTime = function(c) {
                var b = KJUR, a = b.asn1;
                a.cms.SigningTime.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.5";
                this.getValueArray = function() {
                    var d = new a.x509.Time(this.params);
                    return [
                        d
                    ];
                };
                if (c != void 0) {
                    this.setByParam(c);
                }
            };
            extendClass(KJUR.asn1.cms.SigningTime, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cms.SigningCertificate = function(h) {
                var e = Error, d = KJUR, c = d.asn1, b = c.DERSequence, g = c.cms, a = g.ESSCertID, f = d.crypto;
                g.SigningCertificate.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.16.2.12";
                this.getValueArray = function() {
                    if (this.params == null || this.params == void 0 || this.params.array == void 0) {
                        throw new e("parameter 'array' not specified");
                    }
                    var o = this.params.array;
                    var k = [];
                    for(var l = 0; l < o.length; l++){
                        var n = o[l];
                        if (h.hasis == false && typeof n == "string" && (n.indexOf("-----BEGIN") != -1 || ASN1HEX.isASN1HEX(n))) {
                            n = {
                                cert: n
                            };
                        }
                        if (n.hasis != false && h.hasis == false) {
                            n.hasis = false;
                        }
                        k.push(new a(n));
                    }
                    var j = new b({
                        array: k
                    });
                    var m = new b({
                        array: [
                            j
                        ]
                    });
                    return [
                        m
                    ];
                };
                if (h != void 0) {
                    this.setByParam(h);
                }
            };
            extendClass(KJUR.asn1.cms.SigningCertificate, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cms.ESSCertID = function(g) {
                KJUR.asn1.cms.ESSCertID.superclass.constructor.call(this);
                var d = Error, c = KJUR, b = c.asn1, f = b.DEROctetString, a = b.DERSequence, e = b.cms.IssuerSerial;
                this.params = null;
                this.getCertHash = function(k, h) {
                    if (k.hash != void 0) {
                        return k.hash;
                    }
                    if (typeof k == "string" && k.indexOf("-----BEGIN") == -1 && !ASN1HEX.isASN1HEX(k)) {
                        return k;
                    }
                    var i;
                    if (typeof k == "string") {
                        i = k;
                    } else {
                        if (k.cert != void 0) {
                            i = k.cert;
                        } else {
                            throw new d("hash nor cert unspecified");
                        }
                    }
                    var j;
                    if (i.indexOf("-----BEGIN") != -1) {
                        j = pemtohex(i);
                    } else {
                        j = i;
                    }
                    if (typeof k == "string") {
                        if (k.indexOf("-----BEGIN") != -1) {
                            j = pemtohex(k);
                        } else {
                            if (ASN1HEX.isASN1HEX(k)) {
                                j = k;
                            }
                        }
                    }
                    var l;
                    if (k.alg != void 0) {
                        l = k.alg;
                    } else {
                        if (h != void 0) {
                            l = h;
                        } else {
                            throw new d("hash alg unspecified");
                        }
                    }
                    return c.crypto.Util.hashHex(j, l);
                };
                this.tohex = function() {
                    var k = this.params;
                    var j = this.getCertHash(k, "sha1");
                    var h = [];
                    h.push(new f({
                        hex: j
                    }));
                    if (typeof k == "string" && k.indexOf("-----BEGIN") != -1 || k.cert != void 0 && k.hasis != false || k.issuer != void 0 && k.serial != void 0) {
                        h.push(new e(k));
                    }
                    var i = new a({
                        array: h
                    });
                    return i.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.cms.ESSCertID, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.SigningCertificateV2 = function(d) {
                var h = Error, a = KJUR, g = a.asn1, e = g.DERSequence, b = g.x509, i = g.cms, c = i.ESSCertIDv2, f = a.crypto;
                i.SigningCertificateV2.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.16.2.47";
                this.getValueArray = function() {
                    if (this.params == null || this.params == void 0 || this.params.array == void 0) {
                        throw new h("parameter 'array' not specified");
                    }
                    var o = this.params.array;
                    var l = [];
                    for(var m = 0; m < o.length; m++){
                        var n = o[m];
                        if ((d.alg != void 0 || d.hasis == false) && typeof n == "string" && (n.indexOf("-----BEGIN") != -1 || ASN1HEX.isASN1HEX(n))) {
                            n = {
                                cert: n
                            };
                        }
                        if (n.alg == void 0 && d.alg != void 0) {
                            n.alg = d.alg;
                        }
                        if (n.hasis != false && d.hasis == false) {
                            n.hasis = false;
                        }
                        l.push(new c(n));
                    }
                    var k = new e({
                        array: l
                    });
                    var j = new e({
                        array: [
                            k
                        ]
                    });
                    return [
                        j
                    ];
                };
                if (d != void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.cms.SigningCertificateV2, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cms.ESSCertIDv2 = function(h) {
                KJUR.asn1.cms.ESSCertIDv2.superclass.constructor.call(this);
                var d = Error, c = KJUR, b = c.asn1, f = b.DEROctetString, a = b.DERSequence, e = b.cms.IssuerSerial, g = b.x509.AlgorithmIdentifier;
                this.params = null;
                this.tohex = function() {
                    var l = this.params;
                    var k = this.getCertHash(l, "sha256");
                    var i = [];
                    if (l.alg != void 0 && l.alg != "sha256") {
                        i.push(new g({
                            name: l.alg
                        }));
                    }
                    i.push(new f({
                        hex: k
                    }));
                    if (typeof l == "string" && l.indexOf("-----BEGIN") != -1 || l.cert != void 0 && l.hasis != false || l.issuer != void 0 && l.serial != void 0) {
                        i.push(new e(l));
                    }
                    var j = new a({
                        array: i
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (h != void 0) {
                    this.setByParam(h);
                }
            };
            extendClass(KJUR.asn1.cms.ESSCertIDv2, KJUR.asn1.cms.ESSCertID);
            KJUR.asn1.cms.IssuerSerial = function(e) {
                var i = Error, c = KJUR, h = c.asn1, g = h.DERInteger, f = h.DERSequence, j = h.cms, d = h.x509, a = d.GeneralNames, b = X509;
                j.IssuerSerial.superclass.constructor.call(this);
                this.setByParam = function(k) {
                    this.params = k;
                };
                this.tohex = function() {
                    var p = this.params;
                    var l, r;
                    if (typeof p == "string" && p.indexOf("-----BEGIN") != -1 || p.cert != void 0) {
                        var n;
                        if (p.cert != void 0) {
                            n = p.cert;
                        } else {
                            n = p;
                        }
                        var k = new b();
                        k.readCertPEM(n);
                        l = k.getIssuer();
                        r = {
                            hex: k.getSerialNumberHex()
                        };
                    } else {
                        if (p.issuer != void 0 && p.serial) {
                            l = p.issuer;
                            r = p.serial;
                        } else {
                            throw new i("cert or issuer and serial parameter not specified");
                        }
                    }
                    var q = new a([
                        {
                            dn: l
                        }
                    ]);
                    var o = new g(r);
                    var m = new f({
                        array: [
                            q,
                            o
                        ]
                    });
                    return m.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cms.IssuerSerial, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.SignerIdentifier = function(f) {
                var c = KJUR, i = c.asn1, h = i.DERInteger, g = i.DERSequence, l = i.cms, k = l.IssuerAndSerialNumber, d = l.SubjectKeyIdentifier, e = i.x509, a = e.X500Name, b = X509, j = Error;
                l.SignerIdentifier.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var o = this.params;
                    if (o.type == "isssn") {
                        var m = new k(o);
                        return m.tohex();
                    } else {
                        if (o.type == "skid") {
                            var n = new d(o);
                            return n.tohex();
                        } else {
                            throw new Error("wrong property for isssn or skid");
                        }
                    }
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.cms.SignerIdentifier, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.IssuerAndSerialNumber = function(e) {
                var c = KJUR, h = c.asn1, g = h.DERInteger, f = h.DERSequence, j = h.cms, d = h.x509, a = d.X500Name, b = X509, i = Error;
                j.IssuerAndSerialNumber.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var p = this.params;
                    var l, r;
                    if (typeof p == "string" && p.indexOf("-----BEGIN") != -1 || p.cert != void 0) {
                        var n;
                        if (p.cert != void 0) {
                            n = p.cert;
                        } else {
                            n = p;
                        }
                        var k = new b();
                        k.readCertPEM(n);
                        l = k.getIssuer();
                        r = {
                            hex: k.getSerialNumberHex()
                        };
                    } else {
                        if (p.issuer != void 0 && p.serial) {
                            l = p.issuer;
                            r = p.serial;
                        } else {
                            throw new i("cert or issuer and serial parameter not specified");
                        }
                    }
                    var q = new a(l);
                    var o = new g(r);
                    var m = new f({
                        array: [
                            q,
                            o
                        ]
                    });
                    return m.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(k) {
                    this.params = k;
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cms.IssuerAndSerialNumber, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.SubjectKeyIdentifier = function(g) {
                var d = KJUR, k = d.asn1, i = k.DERInteger, h = k.DERSequence, j = k.ASN1Util.newObject, m = k.cms, f = m.IssuerAndSerialName, c = m.SubjectKeyIdentifier, e = k.x509, a = e.X500Name, b = X509, l = Error;
                m.SubjectKeyIdentifier.superclass.constructor.call(this);
                this.tohex = function() {
                    var r = this.params;
                    if (r.cert == void 0 && r.skid == void 0) {
                        throw new l("property cert nor skid undefined");
                    }
                    var q;
                    if (r.cert != void 0) {
                        var n = new b(r.cert);
                        var o = n.getExtSubjectKeyIdentifier();
                        q = o.kid.hex;
                    } else {
                        if (r.skid != void 0) {
                            q = r.skid;
                        }
                    }
                    var p = j({
                        tag: {
                            tage: "a0",
                            obj: {
                                octstr: {
                                    hex: q
                                }
                            }
                        }
                    });
                    return p.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.cms.SubjectKeyIdentifier, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.AttributeList = function(f) {
                var d = Error, c = KJUR, b = c.asn1, a = b.DERSet, e = b.cms;
                e.AttributeList.superclass.constructor.call(this);
                this.params = null;
                this.hTLV = null;
                this.setByParam = function(g) {
                    this.params = g;
                };
                this.tohex = function() {
                    var o = this.params;
                    if (this.hTLV != null) {
                        return this.hTLV;
                    }
                    var m = true;
                    if (o.sortflag != void 0) {
                        m = o.sortflag;
                    }
                    var j = o.array;
                    var g = [];
                    for(var l = 0; l < j.length; l++){
                        var n = j[l];
                        var k = n.attr;
                        if (k == "contentType") {
                            g.push(new e.ContentType(n));
                        } else {
                            if (k == "messageDigest") {
                                g.push(new e.MessageDigest(n));
                            } else {
                                if (k == "signingTime") {
                                    g.push(new e.SigningTime(n));
                                } else {
                                    if (k == "signingCertificate") {
                                        g.push(new e.SigningCertificate(n));
                                    } else {
                                        if (k == "signingCertificateV2") {
                                            g.push(new e.SigningCertificateV2(n));
                                        } else {
                                            if (k == "signaturePolicyIdentifier") {
                                                g.push(new KJUR.asn1.cades.SignaturePolicyIdentifier(n));
                                            } else {
                                                if (k == "signatureTimeStamp" || k == "timeStampToken") {
                                                    g.push(new KJUR.asn1.cades.SignatureTimeStamp(n));
                                                } else {
                                                    throw new d("unknown attr: " + k);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    var h = new a({
                        array: g,
                        sortflag: m
                    });
                    this.hTLV = h.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.cms.AttributeList, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.SignerInfo = function(q) {
                var n = Error, r = KJUR, i = r.asn1, c = i.DERInteger, f = i.DEROctetString, h = i.DERSequence, m = i.DERTaggedObject, k = i.cms, p = k.SignerIdentifier, l = k.AttributeList, g = k.ContentType, e = k.EncapsulatedContentInfo, d = k.MessageDigest, j = k.SignedData, a = i.x509, s = a.AlgorithmIdentifier, b = r.crypto, o = KEYUTIL;
                k.SignerInfo.superclass.constructor.call(this);
                this.params = null;
                this.sign = function() {
                    var y = this.params;
                    var x = y.sigalg;
                    var u = new l(y.sattrs).tohex();
                    var v = o.getKey(y.signkey);
                    var w = new b.Signature({
                        alg: x
                    });
                    w.init(v);
                    w.updateHex(u);
                    var t2 = w.sign();
                    y.sighex = t2;
                };
                this.tohex = function() {
                    var w = this.params;
                    var t2 = [];
                    t2.push(new c({
                        int: w.version
                    }));
                    t2.push(new p(w.id));
                    t2.push(new s({
                        name: w.hashalg
                    }));
                    if (w.sattrs != void 0) {
                        var x = new l(w.sattrs);
                        try {
                            t2.push(new m({
                                tag: "a0",
                                explicit: false,
                                obj: x
                            }));
                        } catch (v) {
                            throw new n("si sattr error: " + v);
                        }
                    }
                    if (w.sigalgfield != void 0) {
                        t2.push(new s({
                            name: w.sigalgfield
                        }));
                    } else {
                        t2.push(new s({
                            name: w.sigalg
                        }));
                    }
                    if (w.sighex == void 0 && w.signkey != void 0) {
                        this.sign();
                    }
                    t2.push(new f({
                        hex: w.sighex
                    }));
                    if (w.uattrs != void 0) {
                        var x = new l(w.uattrs);
                        try {
                            t2.push(new m({
                                tag: "a1",
                                explicit: false,
                                obj: x
                            }));
                        } catch (v) {
                            throw new n("si uattr error: " + v);
                        }
                    }
                    var u = new h({
                        array: t2
                    });
                    return u.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (q != void 0) {
                    this.setByParam(q);
                }
            };
            extendClass(KJUR.asn1.cms.SignerInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.EncapsulatedContentInfo = function(g) {
                var c = KJUR, b = c.asn1, e = b.DERTaggedObject, a = b.DERSequence, h = b.DERObjectIdentifier, d = b.DEROctetString, f = b.cms;
                f.EncapsulatedContentInfo.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var m = this.params;
                    var i = [];
                    i.push(new h(m.type));
                    if (m.content != void 0 && (m.content.hex != void 0 || m.content.str != void 0) && m.isDetached != true) {
                        var k = new d(m.content);
                        var l = new e({
                            tag: "a0",
                            explicit: true,
                            obj: k
                        });
                        i.push(l);
                    }
                    var j = new a({
                        array: i
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(i) {
                    this.params = i;
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.cms.EncapsulatedContentInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.ContentInfo = function(g) {
                var c = KJUR, b = c.asn1, d = b.DERTaggedObject, a = b.DERSequence, h = b.DERObjectIdentifier, f = b.x509, e = f.OID.name2obj;
                KJUR.asn1.cms.ContentInfo.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var l = this.params;
                    var i = [];
                    i.push(new h(l.type));
                    var k = new d({
                        tag: "a0",
                        explicit: true,
                        obj: l.obj
                    });
                    i.push(k);
                    var j = new a({
                        array: i
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(i) {
                    this.params = i;
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.cms.ContentInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.SignedData = function(e) {
                var j = Error, a = KJUR, h = a.asn1, m = h.ASN1Object, g = h.DERInteger, p = h.DERSet, f = h.DERSequence, b = h.DERTaggedObject, o = h.cms, l = o.EncapsulatedContentInfo, d = o.SignerInfo, q = o.ContentInfo, k = o.CertificateSet, i = o.RevocationInfoChoices, c = h.x509, n = c.AlgorithmIdentifier;
                KJUR.asn1.cms.SignedData.superclass.constructor.call(this);
                this.params = null;
                this.checkAndFixParam = function() {
                    var r = this.params;
                    this._setDigestAlgs(r);
                    this._setContentTypeByEContent(r);
                    this._setMessageDigestByEContent(r);
                    this._setSignerInfoVersion(r);
                    this._setSignedDataVersion(r);
                };
                this._setDigestAlgs = function(v) {
                    var u = {};
                    var t2 = v.sinfos;
                    for(var r = 0; r < t2.length; r++){
                        var s = t2[r];
                        u[s.hashalg] = 1;
                    }
                    v.hashalgs = Object.keys(u).sort();
                };
                this._setContentTypeByEContent = function(w) {
                    var u = w.econtent.type;
                    var v = w.sinfos;
                    for(var r = 0; r < v.length; r++){
                        var t2 = v[r];
                        var s = this._getAttrParamByName(t2, "contentType");
                        s.type = u;
                    }
                };
                this._setMessageDigestByEContent = function(r) {
                    var v = r.econtent;
                    var y = r.econtent.type;
                    var x = v.content.hex;
                    if (x == void 0 && v.type == "data" && v.content.str != void 0) {
                        x = rstrtohex(v.content.str);
                    }
                    var A = r.sinfos;
                    for(var u = 0; u < A.length; u++){
                        var t2 = A[u];
                        var s = t2.hashalg;
                        var z2 = this._getAttrParamByName(t2, "messageDigest");
                        var w = KJUR.crypto.Util.hashHex(x, s);
                        z2.hex = w;
                    }
                };
                this._getAttrParamByName = function(t2, s) {
                    var u = t2.sattrs.array;
                    for(var r = 0; r < u.length; r++){
                        if (u[r].attr == s) {
                            return u[r];
                        }
                    }
                };
                this._setSignerInfoVersion = function(v) {
                    var t2 = v.sinfos;
                    for(var r = 0; r < t2.length; r++){
                        var s = t2[r];
                        var u = 1;
                        if (s.id.type == "skid") {
                            u = 3;
                        }
                        s.version = u;
                    }
                };
                this._setSignedDataVersion = function(s) {
                    var r = this._getSignedDataVersion(s);
                    s.version = r;
                };
                this._getSignedDataVersion = function(w) {
                    if (w.revinfos != void 0) {
                        var r = w.revinfos;
                        for(var t2 = 0; t2 < r.length; t2++){
                            var s = r[t2];
                            if (s.ocsp != void 0) {
                                return 5;
                            }
                        }
                    }
                    var v = w.sinfos;
                    for(var t2 = 0; t2 < v.length; t2++){
                        var u = w.sinfos[t2];
                        if (u.version == 3) {
                            return 3;
                        }
                    }
                    if (w.econtent.type != "data") {
                        return 3;
                    }
                    return 1;
                };
                this.tohex = function() {
                    var y = this.params;
                    if (this.getEncodedHexPrepare != void 0) {
                        this.getEncodedHexPrepare();
                    }
                    if (y.fixed != true) {
                        this.checkAndFixParam();
                    }
                    var r = [];
                    r.push(new g({
                        int: y.version
                    }));
                    var w = [];
                    for(var v = 0; v < y.hashalgs.length; v++){
                        var t2 = y.hashalgs[v];
                        w.push(new n({
                            name: t2
                        }));
                    }
                    r.push(new p({
                        array: w
                    }));
                    r.push(new l(y.econtent));
                    if (y.certs != void 0) {
                        r.push(new k(y.certs));
                    }
                    if (y.revinfos != void 0) {
                        r.push(new i(y.revinfos));
                    }
                    var u = [];
                    for(var v = 0; v < y.sinfos.length; v++){
                        var x = y.sinfos[v];
                        u.push(new d(x));
                    }
                    r.push(new p({
                        array: u
                    }));
                    var s = new f({
                        array: r
                    });
                    return s.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.getContentInfo = function() {
                    var r = new q({
                        type: "signed-data",
                        obj: this
                    });
                    return r;
                };
                this.getContentInfoEncodedHex = function() {
                    return this.getContentInfo().tohex();
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cms.SignedData, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.CertificateSet = function(f) {
                KJUR.asn1.cms.CertificateSet.superclass.constructor.call(this);
                var c = Error, b = KJUR.asn1, e = b.DERTaggedObject, a = b.DERSet, d = b.ASN1Object;
                this.params = null;
                this.tohex = function() {
                    var j = this.params;
                    var p = [];
                    var q;
                    if (j instanceof Array) {
                        q = j;
                    } else {
                        if (j.array != void 0) {
                            q = j.array;
                        } else {
                            throw new c("cert array not specified");
                        }
                    }
                    for(var k = 0; k < q.length; k++){
                        var l = q[k];
                        var n = pemtohex(l);
                        var g = new d();
                        g.hTLV = n;
                        p.push(g);
                    }
                    var m = {
                        array: p
                    };
                    if (j.sortflag == false) {
                        m.sortflag = false;
                    }
                    var o = new a(m);
                    var h = new e({
                        tag: "a0",
                        explicit: false,
                        obj: o
                    });
                    return h.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.cms.CertificateSet, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.RevocationInfoChoices = function(a) {
                KJUR.asn1.cms.RevocationInfoChoices.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var e = this.params;
                    if (!e instanceof Array) {
                        throw new Error("params is not array");
                    }
                    var b = [];
                    for(var c = 0; c < e.length; c++){
                        b.push(new KJUR.asn1.cms.RevocationInfoChoice(e[c]));
                    }
                    var d = KJUR.asn1.ASN1Util.newObject({
                        tag: {
                            tagi: "a1",
                            obj: {
                                set: b
                            }
                        }
                    });
                    return d.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (a != void 0) {
                    this.setByParam(a);
                }
            };
            extendClass(KJUR.asn1.cms.RevocationInfoChoices, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.RevocationInfoChoice = function(a) {
                KJUR.asn1.cms.RevocationInfoChoice.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var d = this.params;
                    if (d.crl != void 0 && typeof d.crl == "string") {
                        var b = d.crl;
                        if (d.crl.indexOf("-----BEGIN") != -1) {
                            b = pemtohex(d.crl);
                        }
                        return b;
                    } else {
                        if (d.ocsp != void 0) {
                            var c = KJUR.asn1.ASN1Util.newObject({
                                tag: {
                                    tagi: "a1",
                                    obj: new KJUR.asn1.cms.OtherRevocationFormat(d)
                                }
                            });
                            return c.tohex();
                        } else {
                            throw new Error("property crl or ocsp undefined");
                        }
                    }
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (a != void 0) {
                    this.setByParam(a);
                }
            };
            extendClass(KJUR.asn1.cms.RevocationInfoChoice, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.OtherRevocationFormat = function(f) {
                KJUR.asn1.cms.OtherRevocationFormat.superclass.constructor.call(this);
                var d = Error, c = KJUR, b = c.asn1, a = b.ASN1Util.newObject, e = c.lang.String.isHex;
                this.params = null;
                this.tohex = function() {
                    var h = this.params;
                    if (h.ocsp == void 0) {
                        throw new d("property ocsp not specified");
                    }
                    if (!e(h.ocsp) || !ASN1HEX.isASN1HEX(h.ocsp)) {
                        throw new d("ocsp value not ASN.1 hex string");
                    }
                    var g = a({
                        seq: [
                            {
                                oid: "1.3.6.1.5.5.7.16.2"
                            },
                            {
                                asn1: {
                                    tlv: h.ocsp
                                }
                            }
                        ]
                    });
                    return g.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.cms.OtherRevocationFormat, KJUR.asn1.ASN1Object);
            KJUR.asn1.cms.CMSUtil = new function() {}();
            KJUR.asn1.cms.CMSUtil.newSignedData = function(a) {
                return new KJUR.asn1.cms.SignedData(a);
            };
            KJUR.asn1.cms.CMSUtil.verifySignedData = function(n) {
                var C = KJUR, p = C.asn1, s = p.cms, D = s.SignerInfo, q = s.SignedData, y = s.SigningTime, b = s.SigningCertificate, d = s.SigningCertificateV2, A = p.cades, u = A.SignaturePolicyIdentifier, i = C.lang.String.isHex, v = ASN1HEX, h = v.getVbyList, a = v.getTLVbyList, t2 = v.getIdxbyList, z2 = v.getChildIdx, c = v.getTLV, B = v.oidname, j = C.crypto.Util.hashHex;
                if (n.cms === void 0 && !i(n.cms)) {}
                var E = n.cms;
                var g = function g(J, H) {
                    var G;
                    for(var I = 3; I < 6; I++){
                        G = t2(J, 0, [
                            1,
                            0,
                            I
                        ]);
                        if (G !== void 0) {
                            var F = J.substr(G, 2);
                            if (F === "a0") {
                                H.certsIdx = G;
                            }
                            if (F === "a1") {
                                H.revinfosIdx = G;
                            }
                            if (F === "31") {
                                H.signerinfosIdx = G;
                            }
                        }
                    }
                };
                var l = function l(I, F) {
                    var H = F.signerinfosIdx;
                    if (H === void 0) {
                        return;
                    }
                    var L = z2(I, H);
                    F.signerInfoIdxList = L;
                    for(var G = 0; G < L.length; G++){
                        var K = L[G];
                        var J = {
                            idx: K
                        };
                        k(I, J);
                        F.signerInfos.push(J);
                    }
                };
                var k = function k(I, J) {
                    var F = J.idx;
                    J.signerid_issuer1 = a(I, F, [
                        1,
                        0
                    ], "30");
                    J.signerid_serial1 = h(I, F, [
                        1,
                        1
                    ], "02");
                    J.hashalg = B(h(I, F, [
                        2,
                        0
                    ], "06"));
                    var H = t2(I, F, [
                        3
                    ], "a0");
                    J.idxSignedAttrs = H;
                    f(I, J, H);
                    var G = z2(I, F);
                    var K = G.length;
                    if (K < 6) {
                        throw "malformed SignerInfo";
                    }
                    J.sigalg = B(h(I, F, [
                        K - 2,
                        0
                    ], "06"));
                    J.sigval = h(I, F, [
                        K - 1
                    ], "04");
                };
                var f = function f(L, M, F) {
                    var J = z2(L, F);
                    M.signedAttrIdxList = J;
                    for(var K = 0; K < J.length; K++){
                        var I = J[K];
                        var G = h(L, I, [
                            0
                        ], "06");
                        var H;
                        if (G === "2a864886f70d010905") {
                            H = hextoutf8(h(L, I, [
                                1,
                                0
                            ]));
                            M.saSigningTime = H;
                        } else {
                            if (G === "2a864886f70d010904") {
                                H = h(L, I, [
                                    1,
                                    0
                                ], "04");
                                M.saMessageDigest = H;
                            }
                        }
                    }
                };
                var w = function w(G, F) {
                    if (h(G, 0, [
                        0
                    ], "06") !== "2a864886f70d010702") {
                        return F;
                    }
                    F.cmsType = "signedData";
                    F.econtent = h(G, 0, [
                        1,
                        0,
                        2,
                        1,
                        0
                    ]);
                    g(G, F);
                    F.signerInfos = [];
                    l(G, F);
                };
                var o = function o(J, F) {
                    var G = F.parse.signerInfos;
                    var L = G.length;
                    var K = true;
                    for(var I = 0; I < L; I++){
                        var H = G[I];
                        e(J, F, H, I);
                        if (!H.isValid) {
                            K = false;
                        }
                    }
                    F.isValid = K;
                };
                var x = function x(F, Q, J, P) {
                    var N = Q.parse.certsIdx;
                    var H;
                    if (Q.certs === void 0) {
                        H = [];
                        Q.certkeys = [];
                        var K = z2(F, N);
                        for(var I = 0; I < K.length; I++){
                            var M = c(F, K[I]);
                            var O = new X509();
                            O.readCertHex(M);
                            H[I] = O;
                            Q.certkeys[I] = O.getPublicKey();
                        }
                        Q.certs = H;
                    } else {
                        H = Q.certs;
                    }
                    Q.cccc = H.length;
                    Q.cccci = K.length;
                    for(var I = 0; I < H.length; I++){
                        var L = O.getIssuerHex();
                        var G = O.getSerialNumberHex();
                        if (J.signerid_issuer1 === L && J.signerid_serial1 === G) {
                            J.certkey_idx = I;
                        }
                    }
                };
                var e = function e(F, R, I, N) {
                    I.verifyDetail = {};
                    var Q = I.verifyDetail;
                    var K = R.parse.econtent;
                    var G = I.hashalg;
                    var L = I.saMessageDigest;
                    Q.validMessageDigest = false;
                    if (j(K, G) === L) {
                        Q.validMessageDigest = true;
                    }
                    x(F, R, I, N);
                    Q.validSignatureValue = false;
                    var H = I.sigalg;
                    var M = "31" + c(F, I.idxSignedAttrs).substr(2);
                    I.signedattrshex = M;
                    var J = R.certs[I.certkey_idx].getPublicKey();
                    var P = new KJUR.crypto.Signature({
                        alg: H
                    });
                    P.init(J);
                    P.updateHex(M);
                    var O = P.verify(I.sigval);
                    Q.validSignatureValue_isValid = O;
                    if (O === true) {
                        Q.validSignatureValue = true;
                    }
                    I.isValid = false;
                    if (Q.validMessageDigest && Q.validSignatureValue) {
                        I.isValid = true;
                    }
                };
                var m = function m() {};
                var r = {
                    isValid: false,
                    parse: {}
                };
                w(E, r.parse);
                o(E, r);
                return r;
            };
            KJUR.asn1.cms.CMSParser = function() {
                var g = Error, a = X509, h = new a(), l = ASN1HEX, i = l.getV, b = l.getTLV, f = l.getIdxbyList, c = l.getTLVbyList, d = l.getTLVbyListEx, e = l.getVbyList, k = l.getVbyListEx, j = l.getChildIdx;
                this.getCMSSignedData = function(m) {
                    var o = c(m, 0, [
                        1,
                        0
                    ]);
                    var n = this.getSignedData(o);
                    return n;
                };
                this.getSignedData = function(o) {
                    var q = j(o, 0);
                    var v = {};
                    var p = i(o, q[0]);
                    var n = parseInt(p, 16);
                    v.version = n;
                    var r = b(o, q[1]);
                    v.hashalgs = this.getHashAlgArray(r);
                    var t2 = b(o, q[2]);
                    v.econtent = this.getEContent(t2);
                    var m = d(o, 0, [
                        "[0]"
                    ]);
                    if (m != null) {
                        v.certs = this.getCertificateSet(m);
                    }
                    var u = d(o, 0, [
                        "[1]"
                    ]);
                    if (u != null) {}
                    var s = d(o, 0, [
                        3
                    ]);
                    v.sinfos = this.getSignerInfos(s);
                    return v;
                };
                this.getHashAlgArray = function(s) {
                    var q = j(s, 0);
                    var m = new a();
                    var n = [];
                    for(var r = 0; r < q.length; r++){
                        var p = b(s, q[r]);
                        var o = m.getAlgorithmIdentifierName(p);
                        n.push(o);
                    }
                    return n;
                };
                this.getEContent = function(m) {
                    var n = {};
                    var p = e(m, 0, [
                        0
                    ]);
                    var o = e(m, 0, [
                        1,
                        0
                    ]);
                    n.type = KJUR.asn1.x509.OID.oid2name(ASN1HEX.hextooidstr(p));
                    n.content = {
                        hex: o
                    };
                    return n;
                };
                this.getSignerInfos = function(p) {
                    var r = [];
                    var m = j(p, 0);
                    for(var n = 0; n < m.length; n++){
                        var o = b(p, m[n]);
                        var q = this.getSignerInfo(o);
                        r.push(q);
                    }
                    return r;
                };
                this.getSignerInfo = function(s) {
                    var y = {};
                    var u = j(s, 0);
                    var q = l.getInt(s, u[0], -1);
                    if (q != -1) {
                        y.version = q;
                    }
                    var t2 = b(s, u[1]);
                    var p = this.getIssuerAndSerialNumber(t2);
                    y.id = p;
                    var z2 = b(s, u[2]);
                    var n = h.getAlgorithmIdentifierName(z2);
                    y.hashalg = n;
                    var w = d(s, 0, [
                        "[0]"
                    ]);
                    if (w != null) {
                        var A = this.getAttributeList(w);
                        y.sattrs = A;
                    }
                    var m = d(s, 0, [
                        3
                    ]);
                    var x = h.getAlgorithmIdentifierName(m);
                    y.sigalg = x;
                    var o = k(s, 0, [
                        4
                    ]);
                    y.sighex = o;
                    var r = d(s, 0, [
                        "[1]"
                    ]);
                    if (r != null) {
                        var v = this.getAttributeList(r);
                        y.uattrs = v;
                    }
                    return y;
                };
                this.getSignerIdentifier = function(m) {
                    if (m.substr(0, 2) == "30") {
                        return this.getIssuerAndSerialNumber(m);
                    } else {
                        throw new Error("SKID of signerIdentifier not supported");
                    }
                };
                this.getIssuerAndSerialNumber = function(n) {
                    var o = {
                        type: "isssn"
                    };
                    var m = j(n, 0);
                    var p = b(n, m[0]);
                    o.issuer = h.getX500Name(p);
                    var q = i(n, m[1]);
                    o.serial = {
                        hex: q
                    };
                    return o;
                };
                this.getAttributeList = function(q) {
                    var m = [];
                    var n = j(q, 0);
                    for(var o = 0; o < n.length; o++){
                        var p = b(q, n[o]);
                        var r = this.getAttribute(p);
                        m.push(r);
                    }
                    return {
                        array: m
                    };
                };
                this.getAttribute = function(p) {
                    var t2 = {};
                    var q = j(p, 0);
                    var o = l.getOID(p, q[0]);
                    var m = KJUR.asn1.x509.OID.oid2name(o);
                    t2.attr = m;
                    var r = b(p, q[1]);
                    var u = j(r, 0);
                    if (u.length == 1) {
                        t2.valhex = b(r, u[0]);
                    } else {
                        var s = [];
                        for(var n = 0; n < u.length; n++){
                            s.push(b(r, u[n]));
                        }
                        t2.valhex = s;
                    }
                    if (m == "contentType") {
                        this.setContentType(t2);
                    } else {
                        if (m == "messageDigest") {
                            this.setMessageDigest(t2);
                        } else {
                            if (m == "signingTime") {
                                this.setSigningTime(t2);
                            } else {
                                if (m == "signingCertificate") {
                                    this.setSigningCertificate(t2);
                                } else {
                                    if (m == "signingCertificateV2") {
                                        this.setSigningCertificateV2(t2);
                                    } else {
                                        if (m == "signaturePolicyIdentifier") {
                                            this.setSignaturePolicyIdentifier(t2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    return t2;
                };
                this.setContentType = function(m) {
                    var n = l.getOIDName(m.valhex, 0, null);
                    if (n != null) {
                        m.type = n;
                        delete m.valhex;
                    }
                };
                this.setSigningTime = function(o) {
                    var n = i(o.valhex, 0);
                    var m = hextoutf8(n);
                    o.str = m;
                    delete o.valhex;
                };
                this.setMessageDigest = function(m) {
                    var n = i(m.valhex, 0);
                    m.hex = n;
                    delete m.valhex;
                };
                this.setSigningCertificate = function(n) {
                    var q = j(n.valhex, 0);
                    if (q.length > 0) {
                        var m = b(n.valhex, q[0]);
                        var p = j(m, 0);
                        var t2 = [];
                        for(var o = 0; o < p.length; o++){
                            var s = b(m, p[o]);
                            var u = this.getESSCertID(s);
                            t2.push(u);
                        }
                        n.array = t2;
                    }
                    if (q.length > 1) {
                        var r = b(n.valhex, q[1]);
                        n.polhex = r;
                    }
                    delete n.valhex;
                };
                this.setSignaturePolicyIdentifier = function(s) {
                    var q = j(s.valhex, 0);
                    if (q.length > 0) {
                        var r = l.getOID(s.valhex, q[0]);
                        s.oid = r;
                    }
                    if (q.length > 1) {
                        var m = new a();
                        var t2 = j(s.valhex, q[1]);
                        var p = b(s.valhex, t2[0]);
                        var o = m.getAlgorithmIdentifierName(p);
                        s.alg = o;
                        var n = i(s.valhex, t2[1]);
                        s.hash = n;
                    }
                    delete s.valhex;
                };
                this.setSigningCertificateV2 = function(o) {
                    var s = j(o.valhex, 0);
                    if (s.length > 0) {
                        var n = b(o.valhex, s[0]);
                        var r = j(n, 0);
                        var u = [];
                        for(var q = 0; q < r.length; q++){
                            var m = b(n, r[q]);
                            var p = this.getESSCertIDv2(m);
                            u.push(p);
                        }
                        o.array = u;
                    }
                    if (s.length > 1) {
                        var t2 = b(o.valhex, s[1]);
                        o.polhex = t2;
                    }
                    delete o.valhex;
                };
                this.getESSCertID = function(o) {
                    var p = {};
                    var n = j(o, 0);
                    if (n.length > 0) {
                        var q = i(o, n[0]);
                        p.hash = q;
                    }
                    if (n.length > 1) {
                        var m = b(o, n[1]);
                        var r = this.getIssuerSerial(m);
                        if (r.serial != void 0) {
                            p.serial = r.serial;
                        }
                        if (r.issuer != void 0) {
                            p.issuer = r.issuer;
                        }
                    }
                    return p;
                };
                this.getESSCertIDv2 = function(q) {
                    var s = {};
                    var p = j(q, 0);
                    if (p.length < 1 || 3 < p.length) {
                        throw new g("wrong number of elements");
                    }
                    var r = 0;
                    if (q.substr(p[0], 2) == "30") {
                        var o = b(q, p[0]);
                        s.alg = h.getAlgorithmIdentifierName(o);
                        r++;
                    } else {
                        s.alg = "sha256";
                    }
                    var n = i(q, p[r]);
                    s.hash = n;
                    if (p.length > r + 1) {
                        var m = b(q, p[r + 1]);
                        var t2 = this.getIssuerSerial(m);
                        s.issuer = t2.issuer;
                        s.serial = t2.serial;
                    }
                    return s;
                };
                this.getIssuerSerial = function(q) {
                    var r = {};
                    var n = j(q, 0);
                    var m = b(q, n[0]);
                    var p = h.getGeneralNames(m);
                    var o = p[0].dn;
                    r.issuer = o;
                    var s = i(q, n[1]);
                    r.serial = {
                        hex: s
                    };
                    return r;
                };
                this.getCertificateSet = function(p) {
                    var n = j(p, 0);
                    var m = [];
                    for(var o = 0; o < n.length; o++){
                        var r = b(p, n[o]);
                        if (r.substr(0, 2) == "30") {
                            var q = hextopem(r, "CERTIFICATE");
                            m.push(q);
                        }
                    }
                    return {
                        array: m,
                        sortflag: false
                    };
                };
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) {
                KJUR.asn1 = {};
            }
            if (typeof KJUR.asn1.tsp == "undefined" || !KJUR.asn1.tsp) {
                KJUR.asn1.tsp = {};
            }
            KJUR.asn1.tsp.TimeStampToken = function(d) {
                var c = KJUR, b = c.asn1, a = b.tsp;
                a.TimeStampToken.superclass.constructor.call(this);
                this.params = null;
                this.getEncodedHexPrepare = function() {
                    var e = new a.TSTInfo(this.params.econtent.content);
                    this.params.econtent.content.hex = e.tohex();
                };
                if (d != void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.tsp.TimeStampToken, KJUR.asn1.cms.SignedData);
            KJUR.asn1.tsp.TSTInfo = function(f) {
                var m = Error, c = KJUR, j = c.asn1, g = j.DERSequence, i = j.DERInteger, l = j.DERBoolean, h = j.DERGeneralizedTime, n = j.DERObjectIdentifier, e = j.DERTaggedObject, k = j.tsp, d = k.MessageImprint, b = k.Accuracy, a = j.x509.X500Name, o = j.x509.GeneralName;
                k.TSTInfo.superclass.constructor.call(this);
                this.dVersion = new i({
                    int: 1
                });
                this.dPolicy = null;
                this.dMessageImprint = null;
                this.dSerial = null;
                this.dGenTime = null;
                this.dAccuracy = null;
                this.dOrdering = null;
                this.dNonce = null;
                this.dTsa = null;
                this.tohex = function() {
                    var p = [
                        this.dVersion
                    ];
                    if (this.dPolicy == null) {
                        throw new Error("policy shall be specified.");
                    }
                    p.push(this.dPolicy);
                    if (this.dMessageImprint == null) {
                        throw new Error("messageImprint shall be specified.");
                    }
                    p.push(this.dMessageImprint);
                    if (this.dSerial == null) {
                        throw new Error("serialNumber shall be specified.");
                    }
                    p.push(this.dSerial);
                    if (this.dGenTime == null) {
                        throw new Error("genTime shall be specified.");
                    }
                    p.push(this.dGenTime);
                    if (this.dAccuracy != null) {
                        p.push(this.dAccuracy);
                    }
                    if (this.dOrdering != null) {
                        p.push(this.dOrdering);
                    }
                    if (this.dNonce != null) {
                        p.push(this.dNonce);
                    }
                    if (this.dTsa != null) {
                        p.push(this.dTsa);
                    }
                    var q = new g({
                        array: p
                    });
                    this.hTLV = q.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f !== void 0) {
                    if (typeof f.policy == "string") {
                        if (!f.policy.match(/^[0-9.]+$/)) {
                            throw "policy shall be oid like 0.1.4.134";
                        }
                        this.dPolicy = new n({
                            oid: f.policy
                        });
                    }
                    if (f.messageImprint !== void 0) {
                        this.dMessageImprint = new d(f.messageImprint);
                    }
                    if (f.serial !== void 0) {
                        this.dSerial = new i(f.serial);
                    }
                    if (f.genTime !== void 0) {
                        this.dGenTime = new h(f.genTime);
                    }
                    if (f.accuracy !== void 0) {
                        this.dAccuracy = new b(f.accuracy);
                    }
                    if (f.ordering !== void 0 && f.ordering == true) {
                        this.dOrdering = new l();
                    }
                    if (f.nonce !== void 0) {
                        this.dNonce = new i(f.nonce);
                    }
                    if (f.tsa !== void 0) {
                        this.dTsa = new e({
                            tag: "a0",
                            explicit: true,
                            obj: new o({
                                dn: f.tsa
                            })
                        });
                    }
                }
            };
            extendClass(KJUR.asn1.tsp.TSTInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.Accuracy = function(d) {
                var c = KJUR, b = c.asn1, a = b.ASN1Util.newObject;
                b.tsp.Accuracy.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var f = this.params;
                    var e = [];
                    if (f.seconds != void 0 && typeof f.seconds == "number") {
                        e.push({
                            int: f.seconds
                        });
                    }
                    if (f.millis != void 0 && typeof f.millis == "number") {
                        e.push({
                            tag: {
                                tagi: "80",
                                obj: {
                                    int: f.millis
                                }
                            }
                        });
                    }
                    if (f.micros != void 0 && typeof f.micros == "number") {
                        e.push({
                            tag: {
                                tagi: "81",
                                obj: {
                                    int: f.micros
                                }
                            }
                        });
                    }
                    return a({
                        seq: e
                    }).tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (d != void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.tsp.Accuracy, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.MessageImprint = function(g) {
                var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.DEROctetString, f = b.x509, e = f.AlgorithmIdentifier;
                b.tsp.MessageImprint.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var k = this.params;
                    var j = new e({
                        name: k.alg
                    });
                    var h = new d({
                        hex: k.hash
                    });
                    var i = new a({
                        array: [
                            j,
                            h
                        ]
                    });
                    return i.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g !== void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.tsp.MessageImprint, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.TimeStampReq = function(c) {
                var a = KJUR, f = a.asn1, d = f.DERSequence, e = f.DERInteger, h = f.DERBoolean, j = f.ASN1Object, i = f.DERObjectIdentifier, g = f.tsp, b = g.MessageImprint;
                g.TimeStampReq.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var m = this.params;
                    var k = [];
                    k.push(new e({
                        int: 1
                    }));
                    if (m.messageImprint instanceof KJUR.asn1.ASN1Object) {
                        k.push(m.messageImprint);
                    } else {
                        k.push(new b(m.messageImprint));
                    }
                    if (m.policy != void 0) {
                        k.push(new i(m.policy));
                    }
                    if (m.nonce != void 0) {
                        k.push(new e(m.nonce));
                    }
                    if (m.certreq == true) {
                        k.push(new h());
                    }
                    var l = new d({
                        array: k
                    });
                    return l.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (c != void 0) {
                    this.setByParam(c);
                }
            };
            extendClass(KJUR.asn1.tsp.TimeStampReq, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.TimeStampResp = function(g) {
                var e = KJUR, d = e.asn1, c = d.DERSequence, f = d.ASN1Object, a = d.tsp, b = a.PKIStatusInfo;
                a.TimeStampResp.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var j = this.params;
                    var h = [];
                    if (j.econtent != void 0 || j.tst != void 0) {
                        if (j.statusinfo != void 0) {
                            h.push(new b(j.statusinfo));
                        } else {
                            h.push(new b("granted"));
                        }
                        if (j.econtent != void 0) {
                            h.push(new a.TimeStampToken(j).getContentInfo());
                        } else {
                            if (j.tst instanceof d.ASN1Object) {
                                h.push(j.tst);
                            } else {
                                throw new Error("improper member tst value");
                            }
                        }
                    } else {
                        if (j.statusinfo != void 0) {
                            h.push(new b(j.statusinfo));
                        } else {
                            throw new Error("parameter for token nor statusinfo not specified");
                        }
                    }
                    var i = new c({
                        array: h
                    });
                    return i.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.tsp.TimeStampResp, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.PKIStatusInfo = function(d) {
                var h = Error, a = KJUR, g = a.asn1, e = g.DERSequence, i = g.tsp, f = i.PKIStatus, c = i.PKIFreeText, b = i.PKIFailureInfo;
                i.PKIStatusInfo.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var l = this.params;
                    var j = [];
                    if (typeof l == "string") {
                        j.push(new f(l));
                    } else {
                        if (l.status == void 0) {
                            throw new h("property 'status' unspecified");
                        }
                        j.push(new f(l.status));
                        if (l.statusstr != void 0) {
                            j.push(new c(l.statusstr));
                        }
                        if (l.failinfo != void 0) {
                            j.push(new b(l.failinfo));
                        }
                    }
                    var k = new e({
                        array: j
                    });
                    return k.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (d != void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.tsp.PKIStatusInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.PKIStatus = function(g) {
                var e = Error, d = KJUR, c = d.asn1, f = c.DERInteger, b = c.tsp;
                b.PKIStatus.superclass.constructor.call(this);
                var a = {
                    granted: 0,
                    grantedWithMods: 1,
                    rejection: 2,
                    waiting: 3,
                    revocationWarning: 4,
                    revocationNotification: 5
                };
                this.params = null;
                this.tohex = function() {
                    var k = this.params;
                    var h, j;
                    if (typeof k == "string") {
                        try {
                            j = a[k];
                        } catch (i) {
                            throw new e("undefined name: " + k);
                        }
                    } else {
                        if (typeof k == "number") {
                            j = k;
                        } else {
                            throw new e("unsupported params");
                        }
                    }
                    return new f({
                        int: j
                    }).tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.tsp.PKIStatus, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.PKIFreeText = function(g) {
                var f = Error, e = KJUR, d = e.asn1, b = d.DERSequence, c = d.DERUTF8String, a = d.tsp;
                a.PKIFreeText.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var l = this.params;
                    if (!l instanceof Array) {
                        throw new f("wrong params: not array");
                    }
                    var h = [];
                    for(var k = 0; k < l.length; k++){
                        h.push(new c({
                            str: l[k]
                        }));
                    }
                    var j = new b({
                        array: h
                    });
                    return j.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.tsp.PKIFreeText, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.PKIFailureInfo = function(h) {
                var f = Error, e = KJUR, d = e.asn1, g = d.DERBitString, b = d.tsp, c = b.PKIFailureInfo;
                var a = {
                    badAlg: 0,
                    badRequest: 2,
                    badDataFormat: 5,
                    timeNotAvailable: 14,
                    unacceptedPolicy: 15,
                    unacceptedExtension: 16,
                    addInfoNotAvailable: 17,
                    systemFailure: 25
                };
                c.superclass.constructor.call(this);
                this.params = null;
                this.getBinValue = function() {
                    var n = this.params;
                    var m = 0;
                    if (typeof n == "number" && 0 <= n && n <= 25) {
                        m |= 1 << n;
                        var k = m.toString(2);
                        var l = "";
                        for(var j = k.length - 1; j >= 0; j--){
                            l += k[j];
                        }
                        return l;
                    } else {
                        if (typeof n == "string" && a[n] != void 0) {
                            return namearraytobinstr([
                                n
                            ], a);
                        } else {
                            if ((typeof n === "undefined" ? "undefined" : _type_of(n)) == "object" && n.length != void 0) {
                                return namearraytobinstr(n, a);
                            } else {
                                throw new f("wrong params");
                            }
                        }
                    }
                    return;
                };
                this.tohex = function() {
                    var j = this.params;
                    var i = this.getBinValue();
                    return new g({
                        bin: i
                    }).tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (h != void 0) {
                    this.setByParam(h);
                }
            };
            extendClass(KJUR.asn1.tsp.PKIFailureInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.tsp.AbstractTSAAdapter = function(a) {
                this.getTSTHex = function(c, b) {
                    throw "not implemented yet";
                };
            };
            KJUR.asn1.tsp.SimpleTSAAdapter = function(e) {
                var d = KJUR, c = d.asn1, a = c.tsp, b = d.crypto.Util.hashHex;
                a.SimpleTSAAdapter.superclass.constructor.call(this);
                this.params = null;
                this.serial = 0;
                this.getTSTHex = function(g, f) {
                    var i = b(g, f);
                    this.params.econtent.content.messageImprint = {
                        alg: f,
                        hash: i
                    };
                    this.params.econtent.content.serial = {
                        int: this.serial++
                    };
                    var h = Math.floor(Math.random() * 1e9);
                    this.params.econtent.content.nonce = {
                        int: h
                    };
                    var j = new a.TimeStampToken(this.params);
                    return j.getContentInfoEncodedHex();
                };
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.tsp.SimpleTSAAdapter, KJUR.asn1.tsp.AbstractTSAAdapter);
            KJUR.asn1.tsp.FixedTSAAdapter = function(e) {
                var d = KJUR, c = d.asn1, a = c.tsp, b = d.crypto.Util.hashHex;
                a.FixedTSAAdapter.superclass.constructor.call(this);
                this.params = null;
                this.getTSTHex = function(g, f) {
                    var h = b(g, f);
                    this.params.econtent.content.messageImprint = {
                        alg: f,
                        hash: h
                    };
                    var i = new a.TimeStampToken(this.params);
                    return i.getContentInfoEncodedHex();
                };
                if (e !== void 0) {
                    this.params = e;
                }
            };
            extendClass(KJUR.asn1.tsp.FixedTSAAdapter, KJUR.asn1.tsp.AbstractTSAAdapter);
            KJUR.asn1.tsp.TSPUtil = new function() {}();
            KJUR.asn1.tsp.TSPUtil.newTimeStampToken = function(a) {
                return new KJUR.asn1.tsp.TimeStampToken(a);
            };
            KJUR.asn1.tsp.TSPUtil.parseTimeStampReq = function(a) {
                var b = new KJUR.asn1.tsp.TSPParser();
                return b.getTimeStampReq(a);
            };
            KJUR.asn1.tsp.TSPUtil.parseMessageImprint = function(a) {
                var b = new KJUR.asn1.tsp.TSPParser();
                return b.getMessageImprint(a);
            };
            KJUR.asn1.tsp.TSPParser = function() {
                var e = Error, a = X509, f = new a(), k = ASN1HEX, g = k.getV, b = k.getTLV, d = k.getIdxbyList, c = k.getTLVbyListEx, i = k.getChildIdx;
                var j = [
                    "granted",
                    "grantedWithMods",
                    "rejection",
                    "waiting",
                    "revocationWarning",
                    "revocationNotification"
                ];
                var h = {
                    0: "badAlg",
                    2: "badRequest",
                    5: "badDataFormat",
                    14: "timeNotAvailable",
                    15: "unacceptedPolicy",
                    16: "unacceptedExtension",
                    17: "addInfoNotAvailable",
                    25: "systemFailure"
                };
                this.getResponse = function(n) {
                    var l = i(n, 0);
                    if (l.length == 1) {
                        return this.getPKIStatusInfo(b(n, l[0]));
                    } else {
                        if (l.length > 1) {
                            var o = this.getPKIStatusInfo(b(n, l[0]));
                            var m = b(n, l[1]);
                            var p = this.getToken(m);
                            p.statusinfo = o;
                            return p;
                        }
                    }
                };
                this.getToken = function(m) {
                    var l = new KJUR.asn1.cms.CMSParser();
                    var n = l.getCMSSignedData(m);
                    this.setTSTInfo(n);
                    return n;
                };
                this.setTSTInfo = function(l) {
                    var o = l.econtent;
                    if (o.type == "tstinfo") {
                        var n = o.content.hex;
                        var m = this.getTSTInfo(n);
                        o.content = m;
                    }
                };
                this.getTSTInfo = function(r) {
                    var x = {};
                    var s = i(r, 0);
                    var p = g(r, s[1]);
                    x.policy = hextooid(p);
                    var o = b(r, s[2]);
                    x.messageImprint = this.getMessageImprint(o);
                    var u = g(r, s[3]);
                    x.serial = {
                        hex: u
                    };
                    var y = g(r, s[4]);
                    x.genTime = {
                        str: hextoutf8(y)
                    };
                    var q = 0;
                    if (s.length > 5 && r.substr(s[5], 2) == "30") {
                        var v = b(r, s[5]);
                        x.accuracy = this.getAccuracy(v);
                        q++;
                    }
                    if (s.length > 5 + q && r.substr(s[5 + q], 2) == "01") {
                        var z2 = g(r, s[5 + q]);
                        if (z2 == "ff") {
                            x.ordering = true;
                        }
                        q++;
                    }
                    if (s.length > 5 + q && r.substr(s[5 + q], 2) == "02") {
                        var n = g(r, s[5 + q]);
                        x.nonce = {
                            hex: n
                        };
                        q++;
                    }
                    if (s.length > 5 + q && r.substr(s[5 + q], 2) == "a0") {
                        var m = b(r, s[5 + q]);
                        m = "30" + m.substr(2);
                        pGeneralNames = f.getGeneralNames(m);
                        var t2 = pGeneralNames[0].dn;
                        x.tsa = t2;
                        q++;
                    }
                    if (s.length > 5 + q && r.substr(s[5 + q], 2) == "a1") {
                        var l = b(r, s[5 + q]);
                        l = "30" + l.substr(2);
                        var w = f.getExtParamArray(l);
                        x.ext = w;
                        q++;
                    }
                    return x;
                };
                this.getAccuracy = function(q) {
                    var r = {};
                    var o = i(q, 0);
                    for(var p = 0; p < o.length; p++){
                        var m = q.substr(o[p], 2);
                        var l = g(q, o[p]);
                        var n = parseInt(l, 16);
                        if (m == "02") {
                            r.seconds = n;
                        } else {
                            if (m == "80") {
                                r.millis = n;
                            } else {
                                if (m == "81") {
                                    r.micros = n;
                                }
                            }
                        }
                    }
                    return r;
                };
                this.getMessageImprint = function(n) {
                    if (n.substr(0, 2) != "30") {
                        throw new Error("head of messageImprint hex shall be x30");
                    }
                    var s = {};
                    var l = i(n, 0);
                    var t2 = d(n, 0, [
                        0,
                        0
                    ]);
                    var o = g(n, t2);
                    var p = k.hextooidstr(o);
                    var r = KJUR.asn1.x509.OID.oid2name(p);
                    if (r == "") {
                        throw new Error("hashAlg name undefined: " + p);
                    }
                    var m = r;
                    var q = d(n, 0, [
                        1
                    ]);
                    s.alg = m;
                    s.hash = g(n, q);
                    return s;
                };
                this.getPKIStatusInfo = function(o) {
                    var t2 = {};
                    var r = i(o, 0);
                    var n = 0;
                    try {
                        var l = g(o, r[0]);
                        var p = parseInt(l, 16);
                        t2.status = j[p];
                    } catch (s) {}
                    if (r.length > 1 && o.substr(r[1], 2) == "30") {
                        var m = b(o, r[1]);
                        t2.statusstr = this.getPKIFreeText(m);
                        n++;
                    }
                    if (r.length > n && o.substr(r[1 + n], 2) == "03") {
                        var q = b(o, r[1 + n]);
                        t2.failinfo = this.getPKIFailureInfo(q);
                    }
                    return t2;
                };
                this.getPKIFreeText = function(n) {
                    var o = [];
                    var l = i(n, 0);
                    for(var m = 0; m < l.length; m++){
                        o.push(k.getString(n, l[m]));
                    }
                    return o;
                };
                this.getPKIFailureInfo = function(l) {
                    var m = k.getInt(l, 0);
                    if (h[m] != void 0) {
                        return h[m];
                    } else {
                        return m;
                    }
                };
                this.getTimeStampReq = function(q) {
                    var p = {};
                    p.certreq = false;
                    var s = i(q, 0);
                    if (s.length < 2) {
                        throw new Error("TimeStampReq must have at least 2 items");
                    }
                    var n = b(q, s[1]);
                    p.messageImprint = KJUR.asn1.tsp.TSPUtil.parseMessageImprint(n);
                    for(var o = 2; o < s.length; o++){
                        var m = s[o];
                        var l = q.substr(m, 2);
                        if (l == "06") {
                            var r = g(q, m);
                            p.policy = k.hextooidstr(r);
                        }
                        if (l == "02") {
                            p.nonce = g(q, m);
                        }
                        if (l == "01") {
                            p.certreq = true;
                        }
                    }
                    return p;
                };
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) {
                KJUR.asn1 = {};
            }
            if (typeof KJUR.asn1.cades == "undefined" || !KJUR.asn1.cades) {
                KJUR.asn1.cades = {};
            }
            KJUR.asn1.cades.SignaturePolicyIdentifier = function(e) {
                var c = KJUR, b = c.asn1, a = b.cades, d = a.SignaturePolicyId;
                a.SignaturePolicyIdentifier.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.16.2.15";
                this.params = null;
                this.getValueArray = function() {
                    return [
                        new d(this.params)
                    ];
                };
                this.setByParam = function(f) {
                    this.params = f;
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cades.SignaturePolicyIdentifier, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cades.SignaturePolicyId = function(e) {
                var a = KJUR, g = a.asn1, f = g.DERSequence, i = g.DERObjectIdentifier, d = g.x509, j = d.AlgorithmIdentifier, c = g.cades, h = c.SignaturePolicyId, b = c.OtherHashAlgAndValue;
                h.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var m = this.params;
                    var k = [];
                    k.push(new i(m.oid));
                    k.push(new b(m));
                    var l = new f({
                        array: k
                    });
                    return l.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(k) {
                    this.params = k;
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cades.SignaturePolicyId, KJUR.asn1.ASN1Object);
            KJUR.asn1.cades.OtherHashAlgAndValue = function(e) {
                var h = Error, a = KJUR, g = a.asn1, f = g.DERSequence, i = g.DEROctetString, d = g.x509, j = d.AlgorithmIdentifier, c = g.cades, b = c.OtherHashAlgAndValue;
                b.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var o = this.params;
                    if (o.alg == void 0) {
                        throw new h("property 'alg' not specified");
                    }
                    if (o.hash == void 0 && o.cert == void 0) {
                        throw new h("property 'hash' nor 'cert' not specified");
                    }
                    var m = null;
                    if (o.hash != void 0) {
                        m = o.hash;
                    } else {
                        if (o.cert != void 0) {
                            if (typeof o.cert != "string") {
                                throw new h("cert not string");
                            }
                            var n = o.cert;
                            if (o.cert.indexOf("-----BEGIN") != -1) {
                                n = pemtohex(o.cert);
                            }
                            m = KJUR.crypto.Util.hashHex(n, o.alg);
                        }
                    }
                    var k = [];
                    k.push(new j({
                        name: o.alg
                    }));
                    k.push(new i({
                        hex: m
                    }));
                    var l = new f({
                        array: k
                    });
                    return l.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cades.OtherHashAlgAndValue, KJUR.asn1.ASN1Object);
            KJUR.asn1.cades.OtherHashValue = function(g) {
                KJUR.asn1.cades.OtherHashValue.superclass.constructor.call(this);
                var d = Error, c = KJUR, f = c.lang.String.isHex, b = c.asn1, e = b.DEROctetString, a = c.crypto.Util.hashHex;
                this.params = null;
                this.tohex = function() {
                    var j = this.params;
                    if (j.hash == void 0 && j.cert == void 0) {
                        throw new d("hash or cert not specified");
                    }
                    var h = null;
                    if (j.hash != void 0) {
                        h = j.hash;
                    } else {
                        if (j.cert != void 0) {
                            if (typeof j.cert != "string") {
                                throw new d("cert not string");
                            }
                            var i = j.cert;
                            if (j.cert.indexOf("-----BEGIN") != -1) {
                                i = pemtohex(j.cert);
                            }
                            h = KJUR.crypto.Util.hashHex(i, "sha1");
                        }
                    }
                    return new e({
                        hex: h
                    }).tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.cades.OtherHashValue, KJUR.asn1.ASN1Object);
            KJUR.asn1.cades.SignatureTimeStamp = function(h) {
                var d = Error, c = KJUR, f = c.lang.String.isHex, b = c.asn1, e = b.ASN1Object, g = b.x509, a = b.cades;
                a.SignatureTimeStamp.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.16.2.14";
                this.params = null;
                this.getValueArray = function() {
                    var l = this.params;
                    if (l.tst != void 0) {
                        if (f(l.tst)) {
                            var j = new e();
                            j.hTLV = l.tst;
                            return [
                                j
                            ];
                        } else {
                            if (l.tst instanceof e) {
                                return [
                                    l.tst
                                ];
                            } else {
                                throw new d("params.tst has wrong value");
                            }
                        }
                    } else {
                        if (l.res != void 0) {
                            var k = l.res;
                            if (k instanceof e) {
                                k = k.tohex();
                            }
                            if (typeof k != "string" || !f(k)) {
                                throw new d("params.res has wrong value");
                            }
                            var i = ASN1HEX.getTLVbyList(k, 0, [
                                1
                            ]);
                            var j = new e();
                            j.hTLV = l.tst;
                            return [
                                j
                            ];
                        }
                    }
                };
                if (h != null) {
                    this.setByParam(h);
                }
            };
            extendClass(KJUR.asn1.cades.SignatureTimeStamp, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cades.CompleteCertificateRefs = function(h) {
                var f = Error, e = KJUR, d = e.asn1, b = d.DERSequence, c = d.cades, a = c.OtherCertID, g = e.lang.String.isHex;
                c.CompleteCertificateRefs.superclass.constructor.call(this);
                this.typeOid = "1.2.840.113549.1.9.16.2.21";
                this.params = null;
                this.getValueArray = function() {
                    var o = this.params;
                    var k = [];
                    for(var m = 0; m < o.array.length; m++){
                        var n = o.array[m];
                        if (typeof n == "string") {
                            if (n.indexOf("-----BEGIN") != -1) {
                                n = {
                                    cert: n
                                };
                            } else {
                                if (g(n)) {
                                    n = {
                                        hash: n
                                    };
                                } else {
                                    throw new f("unsupported value: " + n);
                                }
                            }
                        }
                        if (o.alg != void 0 && n.alg == void 0) {
                            n.alg = o.alg;
                        }
                        if (o.hasis != void 0 && n.hasis == void 0) {
                            n.hasis = o.hasis;
                        }
                        var j = new a(n);
                        k.push(j);
                    }
                    var l = new b({
                        array: k
                    });
                    return [
                        l
                    ];
                };
                if (h != void 0) {
                    this.setByParam(h);
                }
            };
            extendClass(KJUR.asn1.cades.CompleteCertificateRefs, KJUR.asn1.cms.Attribute);
            KJUR.asn1.cades.OtherCertID = function(e) {
                var a = KJUR, h = a.asn1, f = h.DERSequence, i = h.cms, g = i.IssuerSerial, c = h.cades, d = c.OtherHashValue, b = c.OtherHashAlgAndValue;
                c.OtherCertID.superclass.constructor.call(this);
                this.params = e;
                this.tohex = function() {
                    var n = this.params;
                    if (typeof n == "string") {
                        if (n.indexOf("-----BEGIN") != -1) {
                            n = {
                                cert: n
                            };
                        } else {
                            if (_isHex(n)) {
                                n = {
                                    hash: n
                                };
                            }
                        }
                    }
                    var j = [];
                    var m = null;
                    if (n.alg != void 0) {
                        m = new b(n);
                    } else {
                        m = new d(n);
                    }
                    j.push(m);
                    if (n.cert != void 0 && n.hasis == true || n.issuer != void 0 && n.serial != void 0) {
                        var l = new g(n);
                        j.push(l);
                    }
                    var k = new f({
                        array: j
                    });
                    return k.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e != void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.cades.OtherCertID, KJUR.asn1.ASN1Object);
            KJUR.asn1.cades.OtherHash = function(g) {
                var i = Error, a = KJUR, h = a.asn1, j = h.cms, c = h.cades, b = c.OtherHashAlgAndValue, e = c.OtherHashValue, d = a.crypto.Util.hashHex, f = a.lang.String.isHex;
                c.OtherHash.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var l = this.params;
                    if (typeof l == "string") {
                        if (l.indexOf("-----BEGIN") != -1) {
                            l = {
                                cert: l
                            };
                        } else {
                            if (f(l)) {
                                l = {
                                    hash: l
                                };
                            }
                        }
                    }
                    var k = null;
                    if (l.alg != void 0) {
                        k = new b(l);
                    } else {
                        k = new e(l);
                    }
                    return k.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g != void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.cades.OtherHash, KJUR.asn1.ASN1Object);
            KJUR.asn1.cades.CAdESUtil = new function() {}();
            KJUR.asn1.cades.CAdESUtil.parseSignedDataForAddingUnsigned = function(a) {
                var c = new KJUR.asn1.cms.CMSParser();
                var b = c.getCMSSignedData(a);
                return b;
            };
            KJUR.asn1.cades.CAdESUtil.parseSignerInfoForAddingUnsigned = function(g, q, c) {
                var p = ASN1HEX, s = p.getChildIdx, a = p.getTLV, l = p.getV, v = KJUR, h = v.asn1, n = h.ASN1Object, j = h.cms, k = j.AttributeList, w = j.SignerInfo;
                var o = {};
                var t2 = s(g, q);
                if (t2.length != 6) {
                    throw "not supported items for SignerInfo (!=6)";
                }
                var d = t2.shift();
                o.version = a(g, d);
                var e = t2.shift();
                o.si = a(g, e);
                var m = t2.shift();
                o.digalg = a(g, m);
                var f = t2.shift();
                o.sattrs = a(g, f);
                var i = t2.shift();
                o.sigalg = a(g, i);
                var b = t2.shift();
                o.sig = a(g, b);
                o.sigval = l(g, b);
                var u = null;
                o.obj = new w();
                u = new n();
                u.hTLV = o.version;
                o.obj.dCMSVersion = u;
                u = new n();
                u.hTLV = o.si;
                o.obj.dSignerIdentifier = u;
                u = new n();
                u.hTLV = o.digalg;
                o.obj.dDigestAlgorithm = u;
                u = new n();
                u.hTLV = o.sattrs;
                o.obj.dSignedAttrs = u;
                u = new n();
                u.hTLV = o.sigalg;
                o.obj.dSigAlg = u;
                u = new n();
                u.hTLV = o.sig;
                o.obj.dSig = u;
                o.obj.dUnsignedAttrs = new k();
                return o;
            };
            if (typeof KJUR.asn1.csr == "undefined" || !KJUR.asn1.csr) {
                KJUR.asn1.csr = {};
            }
            KJUR.asn1.csr.CertificationRequest = function(g) {
                var d = KJUR, c = d.asn1, e = c.DERBitString, b = c.DERSequence, a = c.csr, f = c.x509, h = a.CertificationRequestInfo;
                a.CertificationRequest.superclass.constructor.call(this);
                this.setByParam = function(i) {
                    this.params = i;
                };
                this.sign = function() {
                    var j = new h(this.params).tohex();
                    var k = new KJUR.crypto.Signature({
                        alg: this.params.sigalg
                    });
                    k.init(this.params.sbjprvkey);
                    k.updateHex(j);
                    var i = k.sign();
                    this.params.sighex = i;
                };
                this.getPEM = function() {
                    return hextopem(this.tohex(), "CERTIFICATE REQUEST");
                };
                this.tohex = function() {
                    var l = this.params;
                    var j = new KJUR.asn1.csr.CertificationRequestInfo(this.params);
                    var m = new KJUR.asn1.x509.AlgorithmIdentifier({
                        name: l.sigalg
                    });
                    if (l.sighex == void 0 && l.sbjprvkey != void 0) {
                        this.sign();
                    }
                    if (l.sighex == void 0) {
                        throw new Error("sighex or sbjprvkey parameter not defined");
                    }
                    var k = new e({
                        hex: "00" + l.sighex
                    });
                    var i = new b({
                        array: [
                            j,
                            m,
                            k
                        ]
                    });
                    return i.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (g !== void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.csr.CertificationRequest, KJUR.asn1.ASN1Object);
            KJUR.asn1.csr.CertificationRequestInfo = function(f) {
                var b = KJUR, j = b.asn1, c = j.DERBitString, g = j.DERSequence, i = j.DERInteger, p = j.DERUTF8String, d = j.DERTaggedObject, h = j.ASN1Util.newObject, n = j.csr, e = j.x509, a = e.X500Name, l = e.Extensions, o = e.SubjectPublicKeyInfo, k = n.AttributeList;
                n.CertificationRequestInfo.superclass.constructor.call(this);
                this.params = null;
                this.setByParam = function(q) {
                    if (q != void 0) {
                        this.params = q;
                    }
                };
                this.tohex = function() {
                    var v = this.params;
                    var r = [];
                    r.push(new i({
                        int: 0
                    }));
                    r.push(new a(v.subject));
                    r.push(new o(KEYUTIL.getKey(v.sbjpubkey)));
                    if (v.attrs != void 0) {
                        var u = m(v.attrs);
                        var t2 = h({
                            tag: {
                                tage: "a0",
                                obj: u
                            }
                        });
                        r.push(t2);
                    } else {
                        if (v.extreq != void 0) {
                            var q = new l(v.extreq);
                            var t2 = h({
                                tag: {
                                    tage: "a0",
                                    obj: {
                                        seq: [
                                            {
                                                oid: "1.2.840.113549.1.9.14"
                                            },
                                            {
                                                set: [
                                                    q
                                                ]
                                            }
                                        ]
                                    }
                                }
                            });
                            r.push(t2);
                        } else {
                            r.push(new d({
                                tag: "a0",
                                explicit: false,
                                obj: new p({
                                    str: ""
                                })
                            }));
                        }
                    }
                    var s = new g({
                        array: r
                    });
                    return s.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                function m(s) {
                    var w = Error, v = KJUR.asn1.x509.Extensions;
                    var y = [];
                    for(var u = 0; u < s.length; u++){
                        var r = s[u];
                        var x = r.attr;
                        if (x == "extensionRequest") {
                            var t2 = new v(r.ext);
                            var q = {
                                seq: [
                                    {
                                        oid: "1.2.840.113549.1.9.14"
                                    },
                                    {
                                        set: [
                                            t2
                                        ]
                                    }
                                ]
                            };
                            y.push(q);
                        } else {
                            if (x == "unstructuredName") {
                                var q = {
                                    seq: [
                                        {
                                            oid: "1.2.840.113549.1.9.2"
                                        },
                                        {
                                            set: r.names
                                        }
                                    ]
                                };
                                y.push(q);
                            } else {
                                if (x == "challengePassword") {
                                    var q = {
                                        seq: [
                                            {
                                                oid: "1.2.840.113549.1.9.7"
                                            },
                                            {
                                                set: [
                                                    {
                                                        utf8str: r.password
                                                    }
                                                ]
                                            }
                                        ]
                                    };
                                    y.push(q);
                                } else {
                                    throw new w("unknown CSR attribute");
                                }
                            }
                        }
                    }
                    return {
                        set: y
                    };
                }
                if (f != void 0) {
                    this.setByParam(f);
                }
            };
            extendClass(KJUR.asn1.csr.CertificationRequestInfo, KJUR.asn1.ASN1Object);
            KJUR.asn1.csr.AttributeList = function(b) {
                function a(c) {}
            };
            extendClass(KJUR.asn1.csr.AttributeList, KJUR.asn1.ASN1Object);
            KJUR.asn1.csr.CSRUtil = new function() {}();
            KJUR.asn1.csr.CSRUtil.newCSRPEM = function(e) {
                var b = KEYUTIL, a = KJUR.asn1.csr;
                var c = new a.CertificationRequest(e);
                var d = c.getPEM();
                return d;
            };
            KJUR.asn1.csr.CSRUtil.getParam = function(d, a) {
                var m = ASN1HEX, i = m.getV, j = m.getIdxbyList, b = m.getTLVbyList, o = m.getTLVbyListEx, n = m.getVbyListEx;
                var l = function l(u) {
                    var t2 = j(u, 0, [
                        0,
                        3,
                        0,
                        0
                    ], "06");
                    if (i(u, t2) != "2a864886f70d01090e") {
                        return null;
                    }
                    return b(u, 0, [
                        0,
                        3,
                        0,
                        1,
                        0
                    ], "30");
                };
                var g = {};
                if (d.indexOf("-----BEGIN CERTIFICATE REQUEST") == -1) {
                    throw new Error("argument is not PEM file");
                }
                var e = pemtohex(d, "CERTIFICATE REQUEST");
                if (a) {
                    g.tbs = b(e, 0, [
                        0
                    ]);
                }
                try {
                    var p = o(e, 0, [
                        0,
                        1
                    ]);
                    if (p == "3000") {
                        g.subject = {};
                    } else {
                        var f = new X509();
                        g.subject = f.getX500Name(p);
                    }
                } catch (q) {}
                var k = o(e, 0, [
                    0,
                    2
                ]);
                var r = KEYUTIL.getKey(k, null, "pkcs8pub");
                g.sbjpubkey = KEYUTIL.getPEM(r, "PKCS8PUB");
                var c = l(e);
                var f = new X509();
                if (c != null) {
                    g.extreq = f.getExtParamArray(c);
                }
                try {
                    var h = o(e, 0, [
                        1
                    ], "30");
                    var f = new X509();
                    g.sigalg = f.getAlgorithmIdentifierName(h);
                } catch (q) {}
                try {
                    var s = n(e, 0, [
                        2
                    ]);
                    g.sighex = s;
                } catch (q) {}
                return g;
            };
            KJUR.asn1.csr.CSRUtil.verifySignature = function(b) {
                try {
                    var c = null;
                    if (typeof b == "string" && b.indexOf("-----BEGIN CERTIFICATE REQUEST") != -1) {
                        c = KJUR.asn1.csr.CSRUtil.getParam(b, true);
                    } else {
                        if ((typeof b === "undefined" ? "undefined" : _type_of(b)) == "object" && b.sbjpubkey != void 0 && b.sigalg != void 0 && b.sighex != void 0 && b.tbs != void 0) {
                            c = b;
                        }
                    }
                    if (c == null) {
                        return false;
                    }
                    var d = new KJUR.crypto.Signature({
                        alg: c.sigalg
                    });
                    d.init(c.sbjpubkey);
                    d.updateHex(c.tbs);
                    return d.verify(c.sighex);
                } catch (a) {
                    alert(a);
                    return false;
                }
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) {
                KJUR.asn1 = {};
            }
            if (typeof KJUR.asn1.ocsp == "undefined" || !KJUR.asn1.ocsp) {
                KJUR.asn1.ocsp = {};
            }
            KJUR.asn1.ocsp.DEFAULT_HASH = "sha1";
            KJUR.asn1.ocsp.OCSPResponse = function(e) {
                KJUR.asn1.ocsp.OCSPResponse.superclass.constructor.call(this);
                var a = KJUR.asn1.DEREnumerated, b = KJUR.asn1.ASN1Util.newObject, c = KJUR.asn1.ocsp.ResponseBytes;
                var d = [
                    "successful",
                    "malformedRequest",
                    "internalError",
                    "tryLater",
                    "_not_used_",
                    "sigRequired",
                    "unauthorized"
                ];
                this.params = null;
                this._getStatusCode = function() {
                    var f = this.params.resstatus;
                    if (typeof f == "number") {
                        return f;
                    }
                    if (typeof f != "string") {
                        return -1;
                    }
                    return d.indexOf(f);
                };
                this.setByParam = function(f) {
                    this.params = f;
                };
                this.tohex = function() {
                    var h = this.params;
                    var g = this._getStatusCode();
                    if (g == -1) {
                        throw new Error("responseStatus not supported: " + h.resstatus);
                    }
                    if (g != 0) {
                        return b({
                            seq: [
                                {
                                    "enum": {
                                        int: g
                                    }
                                }
                            ]
                        }).tohex();
                    }
                    var f = new c(h);
                    return b({
                        seq: [
                            {
                                "enum": {
                                    int: 0
                                }
                            },
                            {
                                tag: {
                                    tag: "a0",
                                    explicit: true,
                                    obj: f
                                }
                            }
                        ]
                    }).tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.ocsp.OCSPResponse, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.ResponseBytes = function(e) {
                KJUR.asn1.ocsp.ResponseBytes.superclass.constructor.call(this);
                var b = KJUR.asn1, a = b.DERSequence, f = b.DERObjectIdentifier, c = b.DEROctetString, d = b.ocsp.BasicOCSPResponse;
                this.params = null;
                this.setByParam = function(g) {
                    this.params = g;
                };
                this.tohex = function() {
                    var j = this.params;
                    if (j.restype != "ocspBasic") {
                        throw new Error("not supported responseType: " + j.restype);
                    }
                    var i = new d(j);
                    var g = [];
                    g.push(new f({
                        name: "ocspBasic"
                    }));
                    g.push(new c({
                        hex: i.tohex()
                    }));
                    var h = new a({
                        array: g
                    });
                    return h.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.ocsp.ResponseBytes, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.BasicOCSPResponse = function(d) {
                KJUR.asn1.ocsp.BasicOCSPResponse.superclass.constructor.call(this);
                var i = Error, g = KJUR.asn1, j = g.ASN1Object, e = g.DERSequence, f = g.DERGeneralizedTime, c = g.DERTaggedObject, b = g.DERBitString, h = g.x509.Extensions, k = g.x509.AlgorithmIdentifier, l = g.ocsp, a = l.ResponderID;
                _SingleResponseList = l.SingleResponseList, _ResponseData = l.ResponseData;
                this.params = null;
                this.setByParam = function(m) {
                    this.params = m;
                };
                this.sign = function() {
                    var o = this.params;
                    var m = o.tbsresp.tohex();
                    var n = new KJUR.crypto.Signature({
                        alg: o.sigalg
                    });
                    n.init(o.reskey);
                    n.updateHex(m);
                    o.sighex = n.sign();
                };
                this.tohex = function() {
                    var t2 = this.params;
                    if (t2.tbsresp == void 0) {
                        t2.tbsresp = new _ResponseData(t2);
                    }
                    if (t2.sighex == void 0 && t2.reskey != void 0) {
                        this.sign();
                    }
                    var n = [];
                    n.push(t2.tbsresp);
                    n.push(new k({
                        name: t2.sigalg
                    }));
                    n.push(new b({
                        hex: "00" + t2.sighex
                    }));
                    if (t2.certs != void 0 && t2.certs.length != void 0) {
                        var m = [];
                        for(var q = 0; q < t2.certs.length; q++){
                            var s = t2.certs[q];
                            var r = null;
                            if (ASN1HEX.isASN1HEX(s)) {
                                r = s;
                            } else {
                                if (s.match(/-----BEGIN/)) {
                                    r = pemtohex(s);
                                } else {
                                    throw new i("certs[" + q + "] not hex or PEM");
                                }
                            }
                            m.push(new j({
                                tlv: r
                            }));
                        }
                        var p = new e({
                            array: m
                        });
                        n.push(new c({
                            tag: "a0",
                            explicit: true,
                            obj: p
                        }));
                    }
                    var o = new e({
                        array: n
                    });
                    return o.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (d !== void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.ocsp.BasicOCSPResponse, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.ResponseData = function(c) {
                KJUR.asn1.ocsp.ResponseData.superclass.constructor.call(this);
                var h = Error, f = KJUR.asn1, d = f.DERSequence, e = f.DERGeneralizedTime, b = f.DERTaggedObject, g = f.x509.Extensions, i = f.ocsp, a = i.ResponderID;
                _SingleResponseList = i.SingleResponseList;
                this.params = null;
                this.tohex = function() {
                    var m = this.params;
                    if (m.respid != void 0) {
                        new h("respid not specified");
                    }
                    if (m.prodat != void 0) {
                        new h("prodat not specified");
                    }
                    if (m.array != void 0) {
                        new h("array not specified");
                    }
                    var j = [];
                    j.push(new a(m.respid));
                    j.push(new e(m.prodat));
                    j.push(new _SingleResponseList(m.array));
                    if (m.ext != void 0) {
                        var l = new g(m.ext);
                        j.push(new b({
                            tag: "a1",
                            explicit: true,
                            obj: l
                        }));
                    }
                    var k = new d({
                        array: j
                    });
                    return k.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(j) {
                    this.params = j;
                };
                if (c !== void 0) {
                    this.setByParam(c);
                }
            };
            extendClass(KJUR.asn1.ocsp.ResponseData, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.ResponderID = function(g) {
                KJUR.asn1.ocsp.ResponderID.superclass.constructor.call(this);
                var d = KJUR, c = d.asn1, b = c.ASN1Util.newObject, f = c.x509.X500Name, e = d.lang.String.isHex, a = Error;
                this.params = null;
                this.tohex = function() {
                    var m = this.params;
                    if (m.key != void 0) {
                        var l = null;
                        if (typeof m.key == "string") {
                            if (e(m.key)) {
                                l = m.key;
                            }
                            if (m.key.match(/-----BEGIN CERTIFICATE/)) {
                                var h = new X509(m.key);
                                var k = h.getExtSubjectKeyIdentifier();
                                if (k != null) {
                                    l = k.kid.hex;
                                }
                            }
                        } else {
                            if (m.key instanceof X509) {
                                var k = m.key.getExtSubjectKeyIdentifier();
                                if (k != null) {
                                    l = k.kid.hex;
                                }
                            }
                        }
                        if (l == null) {
                            throw new a("wrong key member value");
                        }
                        var j = b({
                            tag: {
                                tag: "a2",
                                explicit: true,
                                obj: {
                                    octstr: {
                                        hex: l
                                    }
                                }
                            }
                        });
                        return j.tohex();
                    } else {
                        if (m.name != void 0) {
                            var i = null;
                            if (typeof m.name == "string" && m.name.match(/-----BEGIN CERTIFICATE/)) {
                                var h = new X509(m.name);
                                i = h.getSubject();
                            } else {
                                if (m.name instanceof X509) {
                                    i = m.name.getSubject();
                                } else {
                                    if (_type_of(m.name) == "object" && (m.name.array != void 0 || m.name.str != void 0)) {
                                        i = m.name;
                                    }
                                }
                            }
                            if (i == null) {
                                throw new a("wrong name member value");
                            }
                            var j = b({
                                tag: {
                                    tag: "a1",
                                    explicit: true,
                                    obj: new f(i)
                                }
                            });
                            return j.tohex();
                        }
                    }
                    throw new a("key or name not specified");
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(h) {
                    this.params = h;
                };
                if (g !== void 0) {
                    this.setByParam(g);
                }
            };
            extendClass(KJUR.asn1.ocsp.ResponderID, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.SingleResponseList = function(d) {
                KJUR.asn1.ocsp.SingleResponseList.superclass.constructor.call(this);
                var c = KJUR.asn1, b = c.DERSequence, a = c.ocsp.SingleResponse;
                this.params = null;
                this.tohex = function() {
                    var h = this.params;
                    if ((typeof h === "undefined" ? "undefined" : _type_of(h)) != "object" || h.length == void 0) {
                        throw new Error("params not specified properly");
                    }
                    var e = [];
                    for(var g = 0; g < h.length; g++){
                        e.push(new a(h[g]));
                    }
                    var f = new b({
                        array: e
                    });
                    return f.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(e) {
                    this.params = e;
                };
                if (d !== void 0) {
                    this.setByParam(d);
                }
            };
            extendClass(KJUR.asn1.ocsp.SingleResponseList, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.SingleResponse = function(e) {
                var k = Error, a = KJUR, i = a.asn1, f = i.DERSequence, g = i.DERGeneralizedTime, b = i.DERTaggedObject, l = i.ocsp, h = l.CertID, c = l.CertStatus, d = i.x509, j = d.Extensions;
                l.SingleResponse.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var q = this.params;
                    var n = [];
                    if (q.certid == void 0) {
                        throw new k("certid unspecified");
                    }
                    if (q.status == void 0) {
                        throw new k("status unspecified");
                    }
                    if (q.thisupdate == void 0) {
                        throw new k("thisupdate unspecified");
                    }
                    n.push(new h(q.certid));
                    n.push(new c(q.status));
                    n.push(new g(q.thisupdate));
                    if (q.nextupdate != void 0) {
                        var m = new g(q.nextupdate);
                        n.push(new b({
                            tag: "a0",
                            explicit: true,
                            obj: m
                        }));
                    }
                    if (q.ext != void 0) {
                        var p = new j(q.ext);
                        n.push(new b({
                            tag: "a1",
                            explicit: true,
                            obj: p
                        }));
                    }
                    var o = new f({
                        array: n
                    });
                    return o.tohex();
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(m) {
                    this.params = m;
                };
                if (e !== void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.ocsp.SingleResponse, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.CertID = function(e) {
                var b = KJUR, i = b.asn1, l = i.DEROctetString, h = i.DERInteger, f = i.DERSequence, d = i.x509, m = d.AlgorithmIdentifier, n = i.ocsp, k = n.DEFAULT_HASH, g = b.crypto, c = g.Util.hashHex, a = X509, o = ASN1HEX, j = o.getVbyList;
                n.CertID.superclass.constructor.call(this);
                this.DEFAULT_HASH = "sha1";
                this.params = null;
                this.setByValue = function(s, r, p, q) {
                    if (q == void 0) {
                        q = this.DEFAULT_HASH;
                    }
                    this.params = {
                        alg: q,
                        issname: s,
                        isskey: r,
                        sbjsn: p
                    };
                };
                this.setByCert = function(p, q, r) {
                    if (r == void 0) {
                        r = this.DEFAULT_HASH;
                    }
                    this.params = {
                        alg: r,
                        issuerCert: p,
                        subjectCert: q
                    };
                };
                this.getParamByCerts = function(y, x, t2) {
                    if (t2 == void 0) {
                        t2 = this.DEFAULT_HASH;
                    }
                    var q = new a(y);
                    var v = new a(x);
                    var s = c(q.getSubjectHex(), t2);
                    var u = q.getPublicKeyHex();
                    var p = c(j(u, 0, [
                        1
                    ], "03", true), t2);
                    var w = v.getSerialNumberHex();
                    var r = {
                        alg: t2,
                        issname: s,
                        isskey: p,
                        sbjsn: w
                    };
                    return r;
                };
                this.tohex = function() {
                    if (_type_of(this.params) != "object") {
                        throw new Error("params not set");
                    }
                    var s = this.params;
                    var u, r, y, q;
                    if (s.alg == void 0) {
                        q = this.DEFAULT_HASH;
                    } else {
                        q = s.alg;
                    }
                    if (s.issuerCert != void 0 && s.subjectCert != void 0) {
                        var t2 = this.getParamByCerts(s.issuerCert, s.subjectCert, q);
                        u = t2.issname;
                        r = t2.isskey;
                        y = t2.sbjsn;
                    } else {
                        if (s.issname != void 0 && s.isskey != void 0 && s.sbjsn != void 0) {
                            u = s.issname;
                            r = s.isskey;
                            y = s.sbjsn;
                        } else {
                            throw new Error("required param members not defined");
                        }
                    }
                    var A = new m({
                        name: q
                    });
                    var v = new l({
                        hex: u
                    });
                    var x = new l({
                        hex: r
                    });
                    var w = new h({
                        hex: y
                    });
                    var z2 = new f({
                        array: [
                            A,
                            v,
                            x,
                            w
                        ]
                    });
                    this.hTLV = z2.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    this.setByParam(e);
                }
            };
            extendClass(KJUR.asn1.ocsp.CertID, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.CertStatus = function(a) {
                KJUR.asn1.ocsp.CertStatus.superclass.constructor.call(this);
                this.params = null;
                this.tohex = function() {
                    var d = this.params;
                    if (d.status == "good") {
                        return "8000";
                    }
                    if (d.status == "unknown") {
                        return "8200";
                    }
                    if (d.status == "revoked") {
                        var c = [
                            {
                                gentime: {
                                    str: d.time
                                }
                            }
                        ];
                        if (d.reason != void 0) {
                            c.push({
                                tag: {
                                    tag: "a0",
                                    explicit: true,
                                    obj: {
                                        "enum": {
                                            int: d.reason
                                        }
                                    }
                                }
                            });
                        }
                        var b = {
                            tag: "a1",
                            explicit: false,
                            obj: {
                                seq: c
                            }
                        };
                        return KJUR.asn1.ASN1Util.newObject({
                            tag: b
                        }).tohex();
                    }
                    throw new Error("bad status");
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                this.setByParam = function(b) {
                    this.params = b;
                };
                if (a !== void 0) {
                    this.setByParam(a);
                }
            };
            extendClass(KJUR.asn1.ocsp.CertStatus, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.Request = function(f) {
                var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.ocsp;
                d.Request.superclass.constructor.call(this);
                this.dReqCert = null;
                this.dExt = null;
                this.tohex = function() {
                    var g = [];
                    if (this.dReqCert === null) {
                        throw "reqCert not set";
                    }
                    g.push(this.dReqCert);
                    var h = new a({
                        array: g
                    });
                    this.hTLV = h.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (typeof f !== "undefined") {
                    var e = new d.CertID(f);
                    this.dReqCert = e;
                }
            };
            extendClass(KJUR.asn1.ocsp.Request, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.TBSRequest = function(e) {
                var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.ocsp;
                d.TBSRequest.superclass.constructor.call(this);
                this.version = 0;
                this.dRequestorName = null;
                this.dRequestList = [];
                this.dRequestExt = null;
                this.setRequestListByParam = function(h) {
                    var f = [];
                    for(var g = 0; g < h.length; g++){
                        var j = new d.Request(h[0]);
                        f.push(j);
                    }
                    this.dRequestList = f;
                };
                this.tohex = function() {
                    var f = [];
                    if (this.version !== 0) {
                        throw "not supported version: " + this.version;
                    }
                    if (this.dRequestorName !== null) {
                        throw "requestorName not supported";
                    }
                    var h = new a({
                        array: this.dRequestList
                    });
                    f.push(h);
                    if (this.dRequestExt !== null) {
                        throw "requestExtensions not supported";
                    }
                    var g = new a({
                        array: f
                    });
                    this.hTLV = g.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (e !== void 0) {
                    if (e.reqList !== void 0) {
                        this.setRequestListByParam(e.reqList);
                    }
                }
            };
            extendClass(KJUR.asn1.ocsp.TBSRequest, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.OCSPRequest = function(f) {
                var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.ocsp;
                d.OCSPRequest.superclass.constructor.call(this);
                this.dTbsRequest = null;
                this.dOptionalSignature = null;
                this.tohex = function() {
                    var g = [];
                    if (this.dTbsRequest !== null) {
                        g.push(this.dTbsRequest);
                    } else {
                        throw "tbsRequest not set";
                    }
                    if (this.dOptionalSignature !== null) {
                        throw "optionalSignature not supported";
                    }
                    var h = new a({
                        array: g
                    });
                    this.hTLV = h.tohex();
                    return this.hTLV;
                };
                this.getEncodedHex = function() {
                    return this.tohex();
                };
                if (f !== void 0) {
                    if (f.reqList !== void 0) {
                        var e = new d.TBSRequest(f);
                        this.dTbsRequest = e;
                    }
                }
            };
            extendClass(KJUR.asn1.ocsp.OCSPRequest, KJUR.asn1.ASN1Object);
            KJUR.asn1.ocsp.OCSPUtil = {};
            KJUR.asn1.ocsp.OCSPUtil.getRequestHex = function(a, b, h) {
                var d = KJUR, c = d.asn1, e = c.ocsp;
                if (h === void 0) {
                    h = e.DEFAULT_HASH;
                }
                var g = {
                    alg: h,
                    issuerCert: a,
                    subjectCert: b
                };
                var f = new e.OCSPRequest({
                    reqList: [
                        g
                    ]
                });
                return f.tohex();
            };
            KJUR.asn1.ocsp.OCSPUtil.getOCSPResponseInfo = function(b) {
                var m = ASN1HEX, c = m.getVbyList, k = m.getVbyListEx, e = m.getIdxbyList, d = m.getIdxbyListEx, g = m.getV;
                var n = {};
                try {
                    var j = k(b, 0, [
                        0
                    ], "0a");
                    n.responseStatus = parseInt(j, 16);
                } catch (f) {}
                if (n.responseStatus !== 0) {
                    return n;
                }
                try {
                    var i = e(b, 0, [
                        1,
                        0,
                        1,
                        0,
                        0,
                        2,
                        0,
                        1
                    ]);
                    if (b.substr(i, 2) === "80") {
                        n.certStatus = "good";
                    } else {
                        if (b.substr(i, 2) === "a1") {
                            n.certStatus = "revoked";
                            n.revocationTime = hextoutf8(c(b, i, [
                                0
                            ]));
                        } else {
                            if (b.substr(i, 2) === "82") {
                                n.certStatus = "unknown";
                            }
                        }
                    }
                } catch (f) {}
                try {
                    var a = e(b, 0, [
                        1,
                        0,
                        1,
                        0,
                        0,
                        2,
                        0,
                        2
                    ]);
                    n.thisUpdate = hextoutf8(g(b, a));
                } catch (f) {}
                try {
                    var l = e(b, 0, [
                        1,
                        0,
                        1,
                        0,
                        0,
                        2,
                        0,
                        3
                    ]);
                    if (b.substr(l, 2) === "a0") {
                        n.nextUpdate = hextoutf8(c(b, l, [
                            0
                        ]));
                    }
                } catch (f) {}
                return n;
            };
            KJUR.asn1.ocsp.OCSPParser = function() {
                var g = Error, a = X509, h = new a(), l = ASN1HEX, i = l.getV, b = l.getTLV, f = l.getIdxbyList, e = l.getVbyList, c = l.getTLVbyList, k = l.getVbyListEx, d = l.getTLVbyListEx, j = l.getChildIdx;
                this.getOCSPRequest = function(o) {
                    var n = j(o, 0);
                    if (n.length != 1 && n.length != 2) {
                        throw new g("wrong number elements: " + n.length);
                    }
                    var m = this.getTBSRequest(b(o, n[0]));
                    return m;
                };
                this.getTBSRequest = function(o) {
                    var m = {};
                    var n = d(o, 0, [
                        0
                    ], "30");
                    m.array = this.getRequestList(n);
                    var p = d(o, 0, [
                        "[2]",
                        0
                    ], "30");
                    if (p != null) {
                        m.ext = h.getExtParamArray(p);
                    }
                    return m;
                };
                this.getRequestList = function(p) {
                    var m = [];
                    var n = j(p, 0);
                    for(var o = 0; o < n.length; o++){
                        var p = b(p, n[o]);
                        m.push(this.getRequest(p));
                    }
                    return m;
                };
                this.getRequest = function(n) {
                    var m = j(n, 0);
                    if (m.length != 1 && m.length != 2) {
                        throw new g("wrong number elements: " + m.length);
                    }
                    var p = this.getCertID(b(n, m[0]));
                    if (m.length == 2) {
                        var o = f(n, 0, [
                            1,
                            0
                        ]);
                        p.ext = h.getExtParamArray(b(n, o));
                    }
                    return p;
                };
                this.getCertID = function(p) {
                    var o = j(p, 0);
                    if (o.length != 4) {
                        throw new g("wrong number elements: " + o.length);
                    }
                    var n = new a();
                    var m = {};
                    m.alg = n.getAlgorithmIdentifierName(b(p, o[0]));
                    m.issname = i(p, o[1]);
                    m.isskey = i(p, o[2]);
                    m.sbjsn = i(p, o[3]);
                    return m;
                };
                this.getOCSPResponse = function(r) {
                    var o = j(r, 0);
                    var m;
                    var q = i(r, o[0]);
                    var p = parseInt(q);
                    if (o.length == 1) {
                        return {
                            resstatus: p
                        };
                    }
                    var n = c(r, 0, [
                        1,
                        0
                    ]);
                    m = this.getResponseBytes(n);
                    m.resstatus = p;
                    return m;
                };
                this.getResponseBytes = function(p) {
                    var o = j(p, 0);
                    var n;
                    var q = c(p, 0, [
                        1,
                        0
                    ]);
                    n = this.getBasicOCSPResponse(q);
                    var m = i(p, o[0]);
                    n.restype = KJUR.asn1.x509.OID.oid2name(hextooid(m));
                    return n;
                };
                this.getBasicOCSPResponse = function(q) {
                    var t2 = j(q, 0);
                    var v;
                    v = this.getResponseData(b(q, t2[0]));
                    var u = new X509();
                    v.alg = u.getAlgorithmIdentifierName(b(q, t2[1]));
                    var n = i(q, t2[2]);
                    v.sighex = n.substr(2);
                    var m = k(q, 0, [
                        "[0]"
                    ]);
                    if (m != null) {
                        var r = j(m, 0);
                        var o = [];
                        for(var p = 0; p < r.length; p++){
                            var s = b(m, r[p]);
                            o.push(s);
                        }
                        v.certs = o;
                    }
                    return v;
                };
                this.getResponseData = function(q) {
                    var p = j(q, 0);
                    var r = p.length;
                    var o = {};
                    var n = 0;
                    if (q.substr(p[0], 2) == "a0") {
                        n++;
                    }
                    o.respid = this.getResponderID(b(q, p[n++]));
                    var t2 = i(q, p[n++]);
                    o.prodat = hextoutf8(t2);
                    o.array = this.getSingleResponseList(b(q, p[n++]));
                    if (q.substr(p[r - 1], 2) == "a1") {
                        var s = c(q, p[r - 1], [
                            0
                        ]);
                        var m = new X509();
                        o.ext = m.getExtParamArray(s);
                    }
                    return o;
                };
                this.getResponderID = function(o) {
                    var n = {};
                    if (o.substr(0, 2) == "a2") {
                        var p = e(o, 0, [
                            0
                        ]);
                        n.key = p;
                    }
                    if (o.substr(0, 2) == "a1") {
                        var q = c(o, 0, [
                            0
                        ]);
                        var m = new X509();
                        n.name = m.getX500Name(q);
                    }
                    return n;
                };
                this.getSingleResponseList = function(q) {
                    var n = j(q, 0);
                    var m = [];
                    for(var o = 0; o < n.length; o++){
                        var r = this.getSingleResponse(b(q, n[o]));
                        m.push(r);
                    }
                    return m;
                };
                this.getSingleResponse = function(p) {
                    var t2 = j(p, 0);
                    var v = {};
                    var r = this.getCertID(b(p, t2[0]));
                    v.certid = r;
                    var u = this.getCertStatus(b(p, t2[1]));
                    v.status = u;
                    if (p.substr(t2[2], 2) == "18") {
                        var q = i(p, t2[2]);
                        v.thisupdate = hextoutf8(q);
                    }
                    for(var o = 3; o < t2.length; o++){
                        if (p.substr(t2[o], 2) == "a0") {
                            var m = e(p, t2[o], [
                                0
                            ], "18");
                            v.nextupdate = hextoutf8(m);
                        }
                        if (p.substr(t2[o], 2) == "a1") {
                            var s = new X509();
                            var n = c(p, 0, [
                                o,
                                0
                            ]);
                            v.ext = s.getExtParamArray(n);
                        }
                    }
                    return v;
                };
                this.getCertStatus = function(p) {
                    var m = {};
                    if (p == "8000") {
                        return {
                            status: "good"
                        };
                    }
                    if (p == "8200") {
                        return {
                            status: "unknown"
                        };
                    }
                    if (p.substr(0, 2) == "a1") {
                        m.status = "revoked";
                        var o = e(p, 0, [
                            0
                        ]);
                        var n = hextoutf8(o);
                        m.time = n;
                    }
                    return m;
                };
            };
            var KJUR;
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.lang == "undefined" || !KJUR.lang) {
                KJUR.lang = {};
            }
            KJUR.lang.String = function() {};
            function stoBA(d) {
                var b = new Array();
                for(var c = 0; c < d.length; c++){
                    b[c] = d.charCodeAt(c);
                }
                return b;
            }
            function BAtos(b) {
                var d = "";
                for(var c = 0; c < b.length; c++){
                    d = d + String.fromCharCode(b[c]);
                }
                return d;
            }
            function BAtohex(b) {
                var e = "";
                for(var d = 0; d < b.length; d++){
                    var c = b[d].toString(16);
                    if (c.length == 1) {
                        c = "0" + c;
                    }
                    e = e + c;
                }
                return e;
            }
            function stohex(a) {
                return BAtohex(stoBA(a));
            }
            function stob64(a) {
                return hex2b64(stohex(a));
            }
            function stob64u(a) {
                return b64tob64u(hex2b64(stohex(a)));
            }
            function b64utos(a) {
                return BAtos(b64toBA(b64utob64(a)));
            }
            function b64tob64u(a) {
                a = a.replace(/\=/g, "");
                a = a.replace(/\+/g, "-");
                a = a.replace(/\//g, "_");
                return a;
            }
            function b64utob64(a) {
                if (a.length % 4 == 2) {
                    a = a + "==";
                } else {
                    if (a.length % 4 == 3) {
                        a = a + "=";
                    }
                }
                a = a.replace(/-/g, "+");
                a = a.replace(/_/g, "/");
                return a;
            }
            function hextob64u(a) {
                if (a.length % 2 == 1) {
                    a = "0" + a;
                }
                return b64tob64u(hex2b64(a));
            }
            function b64utohex(a) {
                return b64tohex(b64utob64(a));
            }
            var utf8tob64u;
            var b64utoutf8;
            if (typeof import_buffer.Buffer === "function") {
                utf8tob64u = function utf8tob64u(a) {
                    return b64tob64u(import_buffer.Buffer.from(a, "utf8").toString("base64"));
                };
                b64utoutf8 = function b64utoutf8(a) {
                    return import_buffer.Buffer.from(b64utob64(a), "base64").toString("utf8");
                };
            } else {
                utf8tob64u = function utf8tob64u(a) {
                    return hextob64u(uricmptohex(encodeURIComponentAll(a)));
                };
                b64utoutf8 = function b64utoutf8(a) {
                    return decodeURIComponent(hextouricmp(b64utohex(a)));
                };
            }
            function utf8tob64(a) {
                return hex2b64(uricmptohex(encodeURIComponentAll(a)));
            }
            function b64toutf8(a) {
                return decodeURIComponent(hextouricmp(b64tohex(a)));
            }
            function utf8tohex(a) {
                return uricmptohex(encodeURIComponentAll(a)).toLowerCase();
            }
            function hextoutf8(b) {
                try {
                    return decodeURIComponent(hextouricmp(b));
                } catch (a) {
                    return null;
                }
            }
            function iso88591hextoutf8(a) {
                return hextoutf8(iso88591hextoutf8hex(a));
            }
            function iso88591hextoutf8hex(e) {
                var c = e.match(/.{1,2}/g);
                var b = [];
                for(var d = 0; d < c.length; d++){
                    var f = parseInt(c[d], 16);
                    if (161 <= f && f <= 191) {
                        b.push("c2");
                        b.push(c[d]);
                    } else {
                        if (192 <= f && f <= 255) {
                            b.push("c3");
                            b.push((f - 64).toString(16));
                        } else {
                            b.push(c[d]);
                        }
                    }
                }
                return b.join("");
            }
            function hextorstr(c) {
                var b = "";
                for(var a = 0; a < c.length - 1; a += 2){
                    b += String.fromCharCode(parseInt(c.substr(a, 2), 16));
                }
                return b;
            }
            function rstrtohex(c) {
                var a = "";
                for(var b = 0; b < c.length; b++){
                    a += ("0" + c.charCodeAt(b).toString(16)).slice(-2);
                }
                return a;
            }
            function hextob64(a) {
                return hex2b64(a);
            }
            function hextob64nl(a) {
                return foldnl(hextob64(a), 64);
            }
            function foldnl(a, b) {
                a = a.replace(new RegExp("(.{" + b + "})", "g"), "$1\r\n");
                a = a.replace(/\s+$/, "");
                return a;
            }
            function b64nltohex(b) {
                var a = b.replace(/[^0-9A-Za-z\/+=]*/g, "");
                var c = b64tohex(a);
                return c;
            }
            function b64topem(b, a) {
                return "-----BEGIN " + a + "-----\r\n" + foldnl(b, 64) + "\r\n-----END " + a + "-----\r\n";
            }
            function hextopem(a, b) {
                return "-----BEGIN " + b + "-----\r\n" + foldnl(hextob64(a), 64) + "\r\n-----END " + b + "-----\r\n";
            }
            function pemtohex(a, b) {
                if (a.indexOf("-----BEGIN ") == -1) {
                    throw new Error("can't find PEM header");
                }
                if (b !== void 0) {
                    a = a.replace(new RegExp("^[^]*-----BEGIN " + b + "-----"), "");
                    a = a.replace(new RegExp("-----END " + b + "-----[^]*$"), "");
                } else {
                    a = a.replace(/^[^]*-----BEGIN [^-]+-----/, "");
                    a = a.replace(/-----END [^-]+-----[^]*$/, "");
                }
                return b64nltohex(a);
            }
            function pemtob64(a) {
                if (a.indexOf("-----BEGIN ") == -1 || a.indexOf("-----END ") == -1) {
                    return null;
                }
                a = a.replace(/^[\s\S]*?-----BEGIN [^-]+-----/m, "");
                a = a.replace(/-----END [\s\S]+$/m, "");
                a = a.replace(/\s+/g, "");
                return a.match(/^[0-9a-zA-Z+/=]+$/) ? a : null;
            }
            function hextoArrayBuffer(d) {
                if (d.length % 2 != 0) {
                    throw "input is not even length";
                }
                if (d.match(/^[0-9A-Fa-f]+$/) == null) {
                    throw "input is not hexadecimal";
                }
                var b = new ArrayBuffer(d.length / 2);
                var a = new DataView(b);
                for(var c = 0; c < d.length / 2; c++){
                    a.setUint8(c, parseInt(d.substr(c * 2, 2), 16));
                }
                return b;
            }
            function ArrayBuffertohex(b) {
                var d = "";
                var a = new DataView(b);
                for(var c = 0; c < b.byteLength; c++){
                    d += ("00" + a.getUint8(c).toString(16)).slice(-2);
                }
                return d;
            }
            function zulutomsec(n) {
                var l, j, m, e, f, i, b, k;
                var a, h, g, c;
                n = timetogen(n);
                c = n.match(/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(|\.\d+)Z$/);
                if (c) {
                    l = parseInt(c[1]);
                    j = parseInt(c[2]) - 1;
                    m = parseInt(c[3]);
                    e = parseInt(c[4]);
                    f = parseInt(c[5]);
                    i = parseInt(c[6]);
                    b = 0;
                    h = c[7];
                    if (h !== "") {
                        g = (h.substr(1) + "00").substr(0, 3);
                        b = parseInt(g);
                    }
                    return Date.UTC(l, j, m, e, f, i, b);
                }
                throw new Error("unsupported zulu format: " + n);
            }
            function msectozulu(b) {
                var h = new Date(b), i = ("0000" + h.getUTCFullYear()).slice(-4), c = ("00" + (h.getUTCMonth() + 1)).slice(-2), j = ("00" + h.getUTCDate()).slice(-2), e = ("00" + h.getUTCHours()).slice(-2), f = ("00" + h.getUTCMinutes()).slice(-2), g = ("00" + h.getUTCSeconds()).slice(-2), a = ("000" + h.getUTCMilliseconds()).slice(-3);
                a = a.replace(/0+$/, "");
                a = a != "" ? "." + a : a;
                return i + c + j + e + f + g + a + "Z";
            }
            function zulutosec(a) {
                return Math.round(zulutomsec(a) / 1e3);
            }
            function zulutodate(a) {
                return new Date(zulutomsec(a));
            }
            function datetozulu(g, e, f) {
                var b;
                var a = g.getUTCFullYear();
                if (e) {
                    if (a < 1950 || 2049 < a) {
                        throw "not proper year for UTCTime: " + a;
                    }
                    b = ("" + a).slice(-2);
                } else {
                    b = ("000" + a).slice(-4);
                }
                b += ("0" + (g.getUTCMonth() + 1)).slice(-2);
                b += ("0" + g.getUTCDate()).slice(-2);
                b += ("0" + g.getUTCHours()).slice(-2);
                b += ("0" + g.getUTCMinutes()).slice(-2);
                b += ("0" + g.getUTCSeconds()).slice(-2);
                if (f) {
                    var c = g.getUTCMilliseconds();
                    if (c !== 0) {
                        c = ("00" + c).slice(-3);
                        c = c.replace(/0+$/g, "");
                        b += "." + c;
                    }
                }
                b += "Z";
                return b;
            }
            function timetogen(a) {
                if (a.match(/^[0-9]{12}Z$/) || a.match(/^[0-9]{12}[.][0-9]*Z$/)) {
                    return a.match(/^[0-4]/) ? "20" + a : "19" + a;
                }
                return a;
            }
            function uricmptohex(a) {
                return a.replace(/%/g, "");
            }
            function hextouricmp(a) {
                return a.replace(/(..)/g, "%$1");
            }
            function ipv6tohex(g) {
                var b = "malformed IPv6 address";
                if (!g.match(/^[0-9A-Fa-f:]+$/)) {
                    throw b;
                }
                g = g.toLowerCase();
                var d = g.split(":").length - 1;
                if (d < 2) {
                    throw b;
                }
                var e = ":".repeat(7 - d + 2);
                g = g.replace("::", e);
                var c = g.split(":");
                if (c.length != 8) {
                    throw b;
                }
                for(var f = 0; f < 8; f++){
                    c[f] = ("0000" + c[f]).slice(-4);
                }
                return c.join("");
            }
            function hextoipv6(d) {
                if (!d.match(/^[0-9A-Fa-f]{32}$/)) {
                    throw new Error("malformed IPv6 address: " + d);
                }
                d = d.toLowerCase();
                var b = d.match(/.{1,4}/g);
                b = b.map(function(a) {
                    return a.replace(/^0+/, "");
                });
                b = b.map(function(a) {
                    return a == "" ? "0" : a;
                });
                d = ":" + b.join(":") + ":";
                var c = d.match(/:(0:){2,}/g);
                if (c == null) {
                    return d.slice(1, -1);
                }
                var e = c.sort().slice(-1)[0];
                d = d.replace(e.substr(0, e.length - 1), ":");
                if (d.substr(0, 2) != "::") {
                    d = d.substr(1);
                }
                if (d.substr(-2, 2) != "::") {
                    d = d.substr(0, d.length - 1);
                }
                return d;
            }
            function hextoip(b) {
                var c = new Error("malformed hex value");
                if (!b.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/)) {
                    throw c;
                }
                if (b.length == 8) {
                    var d;
                    try {
                        d = parseInt(b.substr(0, 2), 16) + "." + parseInt(b.substr(2, 2), 16) + "." + parseInt(b.substr(4, 2), 16) + "." + parseInt(b.substr(6, 2), 16);
                        return d;
                    } catch (a) {
                        throw c;
                    }
                } else {
                    if (b.length == 16) {
                        try {
                            return hextoip(b.substr(0, 8)) + "/" + ipprefixlen(b.substr(8));
                        } catch (a) {
                            throw c;
                        }
                    } else {
                        if (b.length == 32) {
                            return hextoipv6(b);
                        } else {
                            if (b.length == 64) {
                                try {
                                    return hextoipv6(b.substr(0, 32)) + "/" + ipprefixlen(b.substr(32));
                                } catch (a) {
                                    throw c;
                                }
                                return;
                            } else {
                                return b;
                            }
                        }
                    }
                }
            }
            function ipprefixlen(c) {
                var d = new Error("malformed mask");
                var a;
                try {
                    a = new BigInteger(c, 16).toString(2);
                } catch (b) {
                    throw d;
                }
                if (!a.match(/^1*0*$/)) {
                    throw d;
                }
                return a.replace(/0+$/, "").length;
            }
            function iptohex(g) {
                var j = new Error("malformed IP address");
                g = g.toLowerCase(g);
                if (!g.match(/^[0-9a-f.:/]+$/)) {
                    throw j;
                }
                if (g.match(/^[0-9.]+$/)) {
                    var b = g.split(".");
                    if (b.length !== 4) {
                        throw j;
                    }
                    var h = "";
                    try {
                        for(var f = 0; f < 4; f++){
                            var k = parseInt(b[f]);
                            h += ("0" + k.toString(16)).slice(-2);
                        }
                        return h;
                    } catch (e) {
                        throw j;
                    }
                } else {
                    if (g.match(/^[0-9.]+\/[0-9]+$/)) {
                        var c = g.split("/");
                        return iptohex(c[0]) + ipnetmask(parseInt(c[1]), 32);
                    } else {
                        if (g.match(/^[0-9a-f:]+$/) && g.indexOf(":") !== -1) {
                            return ipv6tohex(g);
                        } else {
                            if (g.match(/^[0-9a-f:]+\/[0-9]+$/) && g.indexOf(":") !== -1) {
                                var c = g.split("/");
                                return ipv6tohex(c[0]) + ipnetmask(parseInt(c[1]), 128);
                            } else {
                                throw j;
                            }
                        }
                    }
                }
            }
            function ipnetmask(d, c) {
                if (c == 32 && d == 0) {
                    return "00000000";
                }
                if (c == 128 && d == 0) {
                    return "00000000000000000000000000000000";
                }
                var a = Array(d + 1).join("1") + Array(c - d + 1).join("0");
                return new BigInteger(a, 2).toString(16);
            }
            function ucs2hextoutf8(d) {
                function e(f) {
                    var h = parseInt(f.substr(0, 2), 16);
                    var a = parseInt(f.substr(2), 16);
                    if (h == 0 & a < 128) {
                        return String.fromCharCode(a);
                    }
                    if (h < 8) {
                        var j = 192 | (h & 7) << 3 | (a & 192) >> 6;
                        var i = 128 | a & 63;
                        return hextoutf8(j.toString(16) + i.toString(16));
                    }
                    var j = 224 | (h & 240) >> 4;
                    var i = 128 | (h & 15) << 2 | (a & 192) >> 6;
                    var g = 128 | a & 63;
                    return hextoutf8(j.toString(16) + i.toString(16) + g.toString(16));
                }
                var c = d.match(/.{4}/g);
                var b = c.map(e);
                return b.join("");
            }
            function encodeURIComponentAll(a) {
                var d = encodeURIComponent(a);
                var b = "";
                for(var c = 0; c < d.length; c++){
                    if (d[c] == "%") {
                        b = b + d.substr(c, 3);
                        c = c + 2;
                    } else {
                        b = b + "%" + stohex(d[c]);
                    }
                }
                return b;
            }
            function newline_toUnix(a) {
                a = a.replace(/\r\n/mg, "\n");
                return a;
            }
            function newline_toDos(a) {
                a = a.replace(/\r\n/mg, "\n");
                a = a.replace(/\n/mg, "\r\n");
                return a;
            }
            KJUR.lang.String.isInteger = function(a) {
                if (a.match(/^[0-9]+$/)) {
                    return true;
                } else {
                    if (a.match(/^-[0-9]+$/)) {
                        return true;
                    } else {
                        return false;
                    }
                }
            };
            KJUR.lang.String.isHex = function(a) {
                return ishex(a);
            };
            function ishex(a) {
                if (a.length % 2 == 0 && (a.match(/^[0-9a-f]+$/) || a.match(/^[0-9A-F]+$/))) {
                    return true;
                } else {
                    return false;
                }
            }
            KJUR.lang.String.isBase64 = function(a) {
                a = a.replace(/\s+/g, "");
                if (a.match(/^[0-9A-Za-z+\/]+={0,3}$/) && a.length % 4 == 0) {
                    return true;
                } else {
                    return false;
                }
            };
            KJUR.lang.String.isBase64URL = function(a) {
                if (a.match(/[+/=]/)) {
                    return false;
                }
                a = b64utob64(a);
                return KJUR.lang.String.isBase64(a);
            };
            function isBase64URLDot(a) {
                if (a.match(/^[0-9A-Za-z-_.]+$/)) {
                    return true;
                }
                return false;
            }
            KJUR.lang.String.isIntegerArray = function(a) {
                a = a.replace(/\s+/g, "");
                if (a.match(/^\[[0-9,]+\]$/)) {
                    return true;
                } else {
                    return false;
                }
            };
            KJUR.lang.String.isPrintable = function(a) {
                if (a.match(/^[0-9A-Za-z '()+,-./:=?]*$/) !== null) {
                    return true;
                }
                return false;
            };
            KJUR.lang.String.isIA5 = function(a) {
                if (a.match(/^[\x20-\x21\x23-\x7f]*$/) !== null) {
                    return true;
                }
                return false;
            };
            KJUR.lang.String.isMail = function(a) {
                if (a.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/) !== null) {
                    return true;
                }
                return false;
            };
            function hextoposhex(a) {
                if (a.length % 2 == 1) {
                    return "0" + a;
                }
                if (a.substr(0, 1) > "7") {
                    return "00" + a;
                }
                return a;
            }
            function intarystrtohex(b) {
                b = b.replace(/^\s*\[\s*/, "");
                b = b.replace(/\s*\]\s*$/, "");
                b = b.replace(/\s*/g, "");
                try {
                    var c = b.split(/,/).map(function(g, e, h) {
                        var f = parseInt(g);
                        if (f < 0 || 255 < f) {
                            throw "integer not in range 0-255";
                        }
                        var d = ("00" + f.toString(16)).slice(-2);
                        return d;
                    }).join("");
                    return c;
                } catch (a) {
                    throw "malformed integer array string: " + a;
                }
            }
            var strdiffidx = function strdiffidx(c, a) {
                var d = c.length;
                if (c.length > a.length) {
                    d = a.length;
                }
                for(var b = 0; b < d; b++){
                    if (c.charCodeAt(b) != a.charCodeAt(b)) {
                        return b;
                    }
                }
                if (c.length != a.length) {
                    return d;
                }
                return -1;
            };
            function oidtohex(g) {
                var f = function f(a) {
                    var l = a.toString(16);
                    if (l.length == 1) {
                        l = "0" + l;
                    }
                    return l;
                };
                var e = function e(p) {
                    var o = "";
                    var l = parseInt(p, 10);
                    var a = l.toString(2);
                    var m = 7 - a.length % 7;
                    if (m == 7) {
                        m = 0;
                    }
                    var r = "";
                    for(var n = 0; n < m; n++){
                        r += "0";
                    }
                    a = r + a;
                    for(var n = 0; n < a.length - 1; n += 7){
                        var q = a.substr(n, 7);
                        if (n != a.length - 7) {
                            q = "1" + q;
                        }
                        o += f(parseInt(q, 2));
                    }
                    return o;
                };
                try {
                    if (!g.match(/^[0-9.]+$/)) {
                        return null;
                    }
                    var j = "";
                    var b = g.split(".");
                    var k = parseInt(b[0], 10) * 40 + parseInt(b[1], 10);
                    j += f(k);
                    b.splice(0, 2);
                    for(var d = 0; d < b.length; d++){
                        j += e(b[d]);
                    }
                    return j;
                } catch (c) {
                    return null;
                }
            }
            function hextooid(g) {
                if (!ishex(g)) {
                    return null;
                }
                try {
                    var m = [];
                    var p = g.substr(0, 2);
                    var e = parseInt(p, 16);
                    m[0] = new String(Math.floor(e / 40));
                    m[1] = new String(e % 40);
                    var n = g.substr(2);
                    var l = [];
                    for(var f = 0; f < n.length / 2; f++){
                        l.push(parseInt(n.substr(f * 2, 2), 16));
                    }
                    var k = [];
                    var d = "";
                    for(var f = 0; f < l.length; f++){
                        if (l[f] & 128) {
                            d = d + strpad((l[f] & 127).toString(2), 7);
                        } else {
                            d = d + strpad((l[f] & 127).toString(2), 7);
                            k.push(new String(parseInt(d, 2)));
                            d = "";
                        }
                    }
                    var o = m.join(".");
                    if (k.length > 0) {
                        o = o + "." + k.join(".");
                    }
                    return o;
                } catch (j) {
                    return null;
                }
            }
            function inttohex(b) {
                var a = new BigInteger(String(b), 10);
                return twoscompl(a);
            }
            function twoscompl(b) {
                var g = b.toString(16);
                if (g.substr(0, 1) != "-") {
                    if (g.length % 2 == 1) {
                        g = "0" + g;
                    } else {
                        if (!g.match(/^[0-7]/)) {
                            g = "00" + g;
                        }
                    }
                    return g;
                }
                var a = g.substr(1);
                var f = a.length;
                if (f % 2 == 1) {
                    f += 1;
                } else {
                    if (!g.match(/^[0-7]/)) {
                        f += 2;
                    }
                }
                var j = "";
                for(var e = 0; e < f; e++){
                    j += "f";
                }
                var d = new BigInteger(j, 16);
                var c = d.xor(b).add(BigInteger.ONE);
                g = c.toString(16).replace(/^-/, "");
                return g;
            }
            var strpad = function strpad(c, b, a) {
                if (a == void 0) {
                    a = "0";
                }
                if (c.length >= b) {
                    return c;
                }
                return new Array(b - c.length + 1).join(a) + c;
            };
            function bitstrtoint(e) {
                if (e.length % 2 != 0) {
                    return -1;
                }
                e = e.toLowerCase();
                if (e.match(/^[0-9a-f]+$/) == null) {
                    return -1;
                }
                try {
                    var a = e.substr(0, 2);
                    if (a == "00") {
                        return parseInt(e.substr(2), 16);
                    }
                    var b = parseInt(a, 16);
                    if (b > 7) {
                        return -1;
                    }
                    var g = e.substr(2);
                    var d = parseInt(g, 16).toString(2);
                    if (d == "0") {
                        d = "00000000";
                    }
                    d = d.slice(0, 0 - b);
                    var f = parseInt(d, 2);
                    if (f == NaN) {
                        return -1;
                    }
                    return f;
                } catch (c) {
                    return -1;
                }
            }
            function inttobitstr(e) {
                if (typeof e != "number") {
                    return null;
                }
                if (e < 0) {
                    return null;
                }
                var c = Number(e).toString(2);
                var b = 8 - c.length % 8;
                if (b == 8) {
                    b = 0;
                }
                c = c + strpad("", b, "0");
                var d = parseInt(c, 2).toString(16);
                if (d.length % 2 == 1) {
                    d = "0" + d;
                }
                var a = "0" + b;
                return a + d;
            }
            function bitstrtobinstr(g) {
                if (typeof g != "string") {
                    return null;
                }
                if (g.length % 2 != 0) {
                    return null;
                }
                if (!g.match(/^[0-9a-f]+$/)) {
                    return null;
                }
                try {
                    var c = parseInt(g.substr(0, 2), 16);
                    if (c < 0 || 7 < c) {
                        return null;
                    }
                    var j = g.substr(2);
                    var f = "";
                    for(var e = 0; e < j.length; e += 2){
                        var b = j.substr(e, 2);
                        var a = parseInt(b, 16).toString(2);
                        a = ("0000000" + a).slice(-8);
                        f += a;
                    }
                    return f.substr(0, f.length - c);
                } catch (d) {
                    return null;
                }
            }
            function binstrtobitstr(b) {
                if (typeof b != "string") {
                    return null;
                }
                if (b.match(/^[01]+$/) == null) {
                    return null;
                }
                try {
                    var c = parseInt(b, 2);
                    return inttobitstr(c);
                } catch (a) {
                    return null;
                }
            }
            function namearraytobinstr(e, g) {
                var f = 0;
                for(var a = 0; a < e.length; a++){
                    f |= 1 << g[e[a]];
                }
                var b = f.toString(2);
                var c = "";
                for(var a = b.length - 1; a >= 0; a--){
                    c += b[a];
                }
                return c;
            }
            function aryval(e, c, d) {
                if ((typeof e === "undefined" ? "undefined" : _type_of(e)) != "object") {
                    return void 0;
                }
                var c = String(c).split(".");
                for(var b = 0; b < c.length && e; b++){
                    var a = c[b];
                    if (a.match(/^[0-9]+$/)) {
                        a = parseInt(a);
                    }
                    e = e[a];
                }
                return e || e === false ? e : d;
            }
            function extendClass(c, a) {
                var b = function b() {};
                b.prototype = a.prototype;
                c.prototype = new b();
                c.prototype.constructor = c;
                c.superclass = a.prototype;
                if (a.prototype.constructor == Object.prototype.constructor) {
                    a.prototype.constructor = a;
                }
            }
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.crypto == "undefined" || !KJUR.crypto) {
                KJUR.crypto = {};
            }
            KJUR.crypto.Util = new function() {
                this.DIGESTINFOHEAD = {
                    sha1: "3021300906052b0e03021a05000414",
                    sha224: "302d300d06096086480165030402040500041c",
                    sha256: "3031300d060960864801650304020105000420",
                    sha384: "3041300d060960864801650304020205000430",
                    sha512: "3051300d060960864801650304020305000440",
                    md2: "3020300c06082a864886f70d020205000410",
                    md5: "3020300c06082a864886f70d020505000410",
                    ripemd160: "3021300906052b2403020105000414"
                };
                this.DEFAULTPROVIDER = {
                    md5: "cryptojs",
                    sha1: "cryptojs",
                    sha224: "cryptojs",
                    sha256: "cryptojs",
                    sha384: "cryptojs",
                    sha512: "cryptojs",
                    ripemd160: "cryptojs",
                    hmacmd5: "cryptojs",
                    hmacsha1: "cryptojs",
                    hmacsha224: "cryptojs",
                    hmacsha256: "cryptojs",
                    hmacsha384: "cryptojs",
                    hmacsha512: "cryptojs",
                    hmacripemd160: "cryptojs",
                    MD5withRSA: "cryptojs/jsrsa",
                    SHA1withRSA: "cryptojs/jsrsa",
                    SHA224withRSA: "cryptojs/jsrsa",
                    SHA256withRSA: "cryptojs/jsrsa",
                    SHA384withRSA: "cryptojs/jsrsa",
                    SHA512withRSA: "cryptojs/jsrsa",
                    RIPEMD160withRSA: "cryptojs/jsrsa",
                    MD5withECDSA: "cryptojs/jsrsa",
                    SHA1withECDSA: "cryptojs/jsrsa",
                    SHA224withECDSA: "cryptojs/jsrsa",
                    SHA256withECDSA: "cryptojs/jsrsa",
                    SHA384withECDSA: "cryptojs/jsrsa",
                    SHA512withECDSA: "cryptojs/jsrsa",
                    RIPEMD160withECDSA: "cryptojs/jsrsa",
                    SHA1withDSA: "cryptojs/jsrsa",
                    SHA224withDSA: "cryptojs/jsrsa",
                    SHA256withDSA: "cryptojs/jsrsa",
                    MD5withRSAandMGF1: "cryptojs/jsrsa",
                    SHAwithRSAandMGF1: "cryptojs/jsrsa",
                    SHA1withRSAandMGF1: "cryptojs/jsrsa",
                    SHA224withRSAandMGF1: "cryptojs/jsrsa",
                    SHA256withRSAandMGF1: "cryptojs/jsrsa",
                    SHA384withRSAandMGF1: "cryptojs/jsrsa",
                    SHA512withRSAandMGF1: "cryptojs/jsrsa",
                    RIPEMD160withRSAandMGF1: "cryptojs/jsrsa"
                };
                this.CRYPTOJSMESSAGEDIGESTNAME = {
                    md5: CryptoJS.algo.MD5,
                    sha1: CryptoJS.algo.SHA1,
                    sha224: CryptoJS.algo.SHA224,
                    sha256: CryptoJS.algo.SHA256,
                    sha384: CryptoJS.algo.SHA384,
                    sha512: CryptoJS.algo.SHA512,
                    ripemd160: CryptoJS.algo.RIPEMD160
                };
                this.getDigestInfoHex = function(a, b) {
                    if (typeof this.DIGESTINFOHEAD[b] == "undefined") {
                        throw "alg not supported in Util.DIGESTINFOHEAD: " + b;
                    }
                    return this.DIGESTINFOHEAD[b] + a;
                };
                this.getPaddedDigestInfoHex = function(h, a, j) {
                    var c = this.getDigestInfoHex(h, a);
                    var d = j / 4;
                    if (c.length + 22 > d) {
                        throw "key is too short for SigAlg: keylen=" + j + "," + a;
                    }
                    var b = "0001";
                    var k = "00" + c;
                    var g = "";
                    var l = d - b.length - k.length;
                    for(var f = 0; f < l; f += 2){
                        g += "ff";
                    }
                    var e = b + g + k;
                    return e;
                };
                this.hashString = function(a, c) {
                    var b = new KJUR.crypto.MessageDigest({
                        alg: c
                    });
                    return b.digestString(a);
                };
                this.hashHex = function(b, c) {
                    var a = new KJUR.crypto.MessageDigest({
                        alg: c
                    });
                    return a.digestHex(b);
                };
                this.sha1 = function(a) {
                    return this.hashString(a, "sha1");
                };
                this.sha256 = function(a) {
                    return this.hashString(a, "sha256");
                };
                this.sha256Hex = function(a) {
                    return this.hashHex(a, "sha256");
                };
                this.sha512 = function(a) {
                    return this.hashString(a, "sha512");
                };
                this.sha512Hex = function(a) {
                    return this.hashHex(a, "sha512");
                };
                this.isKey = function(a) {
                    if (a instanceof RSAKey || a instanceof KJUR.crypto.DSA || a instanceof KJUR.crypto.ECDSA) {
                        return true;
                    } else {
                        return false;
                    }
                };
            }();
            KJUR.crypto.Util.md5 = function(a) {
                var b = new KJUR.crypto.MessageDigest({
                    alg: "md5",
                    prov: "cryptojs"
                });
                return b.digestString(a);
            };
            KJUR.crypto.Util.ripemd160 = function(a) {
                var b = new KJUR.crypto.MessageDigest({
                    alg: "ripemd160",
                    prov: "cryptojs"
                });
                return b.digestString(a);
            };
            KJUR.crypto.Util.SECURERANDOMGEN = new SecureRandom();
            KJUR.crypto.Util.getRandomHexOfNbytes = function(b) {
                var a = new Array(b);
                KJUR.crypto.Util.SECURERANDOMGEN.nextBytes(a);
                return BAtohex(a);
            };
            KJUR.crypto.Util.getRandomBigIntegerOfNbytes = function(a) {
                return new BigInteger(KJUR.crypto.Util.getRandomHexOfNbytes(a), 16);
            };
            KJUR.crypto.Util.getRandomHexOfNbits = function(d) {
                var c = d % 8;
                var a = (d - c) / 8;
                var b = new Array(a + 1);
                KJUR.crypto.Util.SECURERANDOMGEN.nextBytes(b);
                b[0] = (255 << c & 255 ^ 255) & b[0];
                return BAtohex(b);
            };
            KJUR.crypto.Util.getRandomBigIntegerOfNbits = function(a) {
                return new BigInteger(KJUR.crypto.Util.getRandomHexOfNbits(a), 16);
            };
            KJUR.crypto.Util.getRandomBigIntegerZeroToMax = function(b) {
                var a = b.bitLength();
                while(1){
                    var c = KJUR.crypto.Util.getRandomBigIntegerOfNbits(a);
                    if (b.compareTo(c) != -1) {
                        return c;
                    }
                }
            };
            KJUR.crypto.Util.getRandomBigIntegerMinToMax = function(e, b) {
                var c = e.compareTo(b);
                if (c == 1) {
                    throw "biMin is greater than biMax";
                }
                if (c == 0) {
                    return e;
                }
                var a = b.subtract(e);
                var d = KJUR.crypto.Util.getRandomBigIntegerZeroToMax(a);
                return d.add(e);
            };
            KJUR.crypto.MessageDigest = function(c) {
                var b = null;
                var a = null;
                var d = null;
                this.setAlgAndProvider = function(g, f) {
                    g = KJUR.crypto.MessageDigest.getCanonicalAlgName(g);
                    if (g !== null && f === void 0) {
                        f = KJUR.crypto.Util.DEFAULTPROVIDER[g];
                    }
                    if (":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(g) != -1 && f == "cryptojs") {
                        try {
                            this.md = KJUR.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[g].create();
                        } catch (e) {
                            throw "setAlgAndProvider hash alg set fail alg=" + g + "/" + e;
                        }
                        this.updateString = function(h) {
                            this.md.update(h);
                        };
                        this.updateHex = function(h) {
                            var i = CryptoJS.enc.Hex.parse(h);
                            this.md.update(i);
                        };
                        this.digest = function() {
                            var h = this.md.finalize();
                            return h.toString(CryptoJS.enc.Hex);
                        };
                        this.digestString = function(h) {
                            this.updateString(h);
                            return this.digest();
                        };
                        this.digestHex = function(h) {
                            this.updateHex(h);
                            return this.digest();
                        };
                    }
                    if (":sha256:".indexOf(g) != -1 && f == "sjcl") {
                        try {
                            this.md = new sjcl.hash.sha256();
                        } catch (e) {
                            throw "setAlgAndProvider hash alg set fail alg=" + g + "/" + e;
                        }
                        this.updateString = function(h) {
                            this.md.update(h);
                        };
                        this.updateHex = function(i) {
                            var h = sjcl.codec.hex.toBits(i);
                            this.md.update(h);
                        };
                        this.digest = function() {
                            var h = this.md.finalize();
                            return sjcl.codec.hex.fromBits(h);
                        };
                        this.digestString = function(h) {
                            this.updateString(h);
                            return this.digest();
                        };
                        this.digestHex = function(h) {
                            this.updateHex(h);
                            return this.digest();
                        };
                    }
                };
                this.updateString = function(e) {
                    throw "updateString(str) not supported for this alg/prov: " + this.algName + "/" + this.provName;
                };
                this.updateHex = function(e) {
                    throw "updateHex(hex) not supported for this alg/prov: " + this.algName + "/" + this.provName;
                };
                this.digest = function() {
                    throw "digest() not supported for this alg/prov: " + this.algName + "/" + this.provName;
                };
                this.digestString = function(e) {
                    throw "digestString(str) not supported for this alg/prov: " + this.algName + "/" + this.provName;
                };
                this.digestHex = function(e) {
                    throw "digestHex(hex) not supported for this alg/prov: " + this.algName + "/" + this.provName;
                };
                if (c !== void 0) {
                    if (c.alg !== void 0) {
                        this.algName = c.alg;
                        if (c.prov === void 0) {
                            this.provName = KJUR.crypto.Util.DEFAULTPROVIDER[this.algName];
                        }
                        this.setAlgAndProvider(this.algName, this.provName);
                    }
                }
            };
            KJUR.crypto.MessageDigest.getCanonicalAlgName = function(a) {
                if (typeof a === "string") {
                    a = a.toLowerCase();
                    a = a.replace(/-/, "");
                }
                return a;
            };
            KJUR.crypto.MessageDigest.getHashLength = function(c) {
                var b = KJUR.crypto.MessageDigest;
                var a = b.getCanonicalAlgName(c);
                if (b.HASHLENGTH[a] === void 0) {
                    throw "not supported algorithm: " + c;
                }
                return b.HASHLENGTH[a];
            };
            KJUR.crypto.MessageDigest.HASHLENGTH = {
                md5: 16,
                sha1: 20,
                sha224: 28,
                sha256: 32,
                sha384: 48,
                sha512: 64,
                ripemd160: 20
            };
            KJUR.crypto.Mac = function(d) {
                var f = null;
                var c = null;
                var a = null;
                var e = null;
                var b = null;
                this.setAlgAndProvider = function(k, i) {
                    k = k.toLowerCase();
                    if (k == null) {
                        k = "hmacsha1";
                    }
                    k = k.toLowerCase();
                    if (k.substr(0, 4) != "hmac") {
                        throw "setAlgAndProvider unsupported HMAC alg: " + k;
                    }
                    if (i === void 0) {
                        i = KJUR.crypto.Util.DEFAULTPROVIDER[k];
                    }
                    this.algProv = k + "/" + i;
                    var g = k.substr(4);
                    if (":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(g) != -1 && i == "cryptojs") {
                        try {
                            var j = KJUR.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[g];
                            this.mac = CryptoJS.algo.HMAC.create(j, this.pass);
                        } catch (h) {
                            throw "setAlgAndProvider hash alg set fail hashAlg=" + g + "/" + h;
                        }
                        this.updateString = function(l) {
                            this.mac.update(l);
                        };
                        this.updateHex = function(l) {
                            var m = CryptoJS.enc.Hex.parse(l);
                            this.mac.update(m);
                        };
                        this.doFinal = function() {
                            var l = this.mac.finalize();
                            return l.toString(CryptoJS.enc.Hex);
                        };
                        this.doFinalString = function(l) {
                            this.updateString(l);
                            return this.doFinal();
                        };
                        this.doFinalHex = function(l) {
                            this.updateHex(l);
                            return this.doFinal();
                        };
                    }
                };
                this.updateString = function(g) {
                    throw "updateString(str) not supported for this alg/prov: " + this.algProv;
                };
                this.updateHex = function(g) {
                    throw "updateHex(hex) not supported for this alg/prov: " + this.algProv;
                };
                this.doFinal = function() {
                    throw "digest() not supported for this alg/prov: " + this.algProv;
                };
                this.doFinalString = function(g) {
                    throw "digestString(str) not supported for this alg/prov: " + this.algProv;
                };
                this.doFinalHex = function(g) {
                    throw "digestHex(hex) not supported for this alg/prov: " + this.algProv;
                };
                this.setPassword = function(h) {
                    if (typeof h == "string") {
                        var g = h;
                        if (h.length % 2 == 1 || !h.match(/^[0-9A-Fa-f]+$/)) {
                            g = rstrtohex(h);
                        }
                        this.pass = CryptoJS.enc.Hex.parse(g);
                        return;
                    }
                    if ((typeof h === "undefined" ? "undefined" : _type_of(h)) != "object") {
                        throw "KJUR.crypto.Mac unsupported password type: " + h;
                    }
                    var g = null;
                    if (h.hex !== void 0) {
                        if (h.hex.length % 2 != 0 || !h.hex.match(/^[0-9A-Fa-f]+$/)) {
                            throw "Mac: wrong hex password: " + h.hex;
                        }
                        g = h.hex;
                    }
                    if (h.utf8 !== void 0) {
                        g = utf8tohex(h.utf8);
                    }
                    if (h.rstr !== void 0) {
                        g = rstrtohex(h.rstr);
                    }
                    if (h.b64 !== void 0) {
                        g = b64tohex(h.b64);
                    }
                    if (h.b64u !== void 0) {
                        g = b64utohex(h.b64u);
                    }
                    if (g == null) {
                        throw "KJUR.crypto.Mac unsupported password type: " + h;
                    }
                    this.pass = CryptoJS.enc.Hex.parse(g);
                };
                if (d !== void 0) {
                    if (d.pass !== void 0) {
                        this.setPassword(d.pass);
                    }
                    if (d.alg !== void 0) {
                        this.algName = d.alg;
                        if (d.prov === void 0) {
                            this.provName = KJUR.crypto.Util.DEFAULTPROVIDER[this.algName];
                        }
                        this.setAlgAndProvider(this.algName, this.provName);
                    }
                }
            };
            KJUR.crypto.Signature = function(o) {
                var q = null;
                var n = null;
                var r = null;
                var c = null;
                var l = null;
                var d = null;
                var k = null;
                var h = null;
                var p = null;
                var e = null;
                var b = -1;
                var g = null;
                var j = null;
                var a = null;
                var i = null;
                var f = null;
                this._setAlgNames = function() {
                    var s = this.algName.match(/^(.+)with(.+)$/);
                    if (s) {
                        this.mdAlgName = s[1].toLowerCase();
                        this.pubkeyAlgName = s[2].toLowerCase();
                        if (this.pubkeyAlgName == "rsaandmgf1" && this.mdAlgName == "sha") {
                            this.mdAlgName = "sha1";
                        }
                    }
                };
                this._zeroPaddingOfSignature = function(x, w) {
                    var v = "";
                    var t2 = w / 4 - x.length;
                    for(var u = 0; u < t2; u++){
                        v = v + "0";
                    }
                    return v + x;
                };
                this.setAlgAndProvider = function(u, t2) {
                    this._setAlgNames();
                    if (t2 != "cryptojs/jsrsa") {
                        throw new Error("provider not supported: " + t2);
                    }
                    if (":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName) != -1) {
                        try {
                            this.md = new KJUR.crypto.MessageDigest({
                                alg: this.mdAlgName
                            });
                        } catch (s) {
                            throw new Error("setAlgAndProvider hash alg set fail alg=" + this.mdAlgName + "/" + s);
                        }
                        this.init = function(w, x) {
                            var y = null;
                            try {
                                if (x === void 0) {
                                    y = KEYUTIL.getKey(w);
                                } else {
                                    y = KEYUTIL.getKey(w, x);
                                }
                            } catch (v) {
                                throw "init failed:" + v;
                            }
                            if (y.isPrivate === true) {
                                this.prvKey = y;
                                this.state = "SIGN";
                            } else {
                                if (y.isPublic === true) {
                                    this.pubKey = y;
                                    this.state = "VERIFY";
                                } else {
                                    throw "init failed.:" + y;
                                }
                            }
                        };
                        this.updateString = function(v) {
                            this.md.updateString(v);
                        };
                        this.updateHex = function(v) {
                            this.md.updateHex(v);
                        };
                        this.sign = function() {
                            this.sHashHex = this.md.digest();
                            if (this.prvKey === void 0 && this.ecprvhex !== void 0 && this.eccurvename !== void 0 && KJUR.crypto.ECDSA !== void 0) {
                                this.prvKey = new KJUR.crypto.ECDSA({
                                    curve: this.eccurvename,
                                    prv: this.ecprvhex
                                });
                            }
                            if (this.prvKey instanceof RSAKey && this.pubkeyAlgName === "rsaandmgf1") {
                                this.hSign = this.prvKey.signWithMessageHashPSS(this.sHashHex, this.mdAlgName, this.pssSaltLen);
                            } else {
                                if (this.prvKey instanceof RSAKey && this.pubkeyAlgName === "rsa") {
                                    this.hSign = this.prvKey.signWithMessageHash(this.sHashHex, this.mdAlgName);
                                } else {
                                    if (this.prvKey instanceof KJUR.crypto.ECDSA) {
                                        this.hSign = this.prvKey.signWithMessageHash(this.sHashHex);
                                    } else {
                                        if (this.prvKey instanceof KJUR.crypto.DSA) {
                                            this.hSign = this.prvKey.signWithMessageHash(this.sHashHex);
                                        } else {
                                            throw "Signature: unsupported private key alg: " + this.pubkeyAlgName;
                                        }
                                    }
                                }
                            }
                            return this.hSign;
                        };
                        this.signString = function(v) {
                            this.updateString(v);
                            return this.sign();
                        };
                        this.signHex = function(v) {
                            this.updateHex(v);
                            return this.sign();
                        };
                        this.verify = function(v) {
                            this.sHashHex = this.md.digest();
                            if (this.pubKey === void 0 && this.ecpubhex !== void 0 && this.eccurvename !== void 0 && KJUR.crypto.ECDSA !== void 0) {
                                this.pubKey = new KJUR.crypto.ECDSA({
                                    curve: this.eccurvename,
                                    pub: this.ecpubhex
                                });
                            }
                            if (this.pubKey instanceof RSAKey && this.pubkeyAlgName === "rsaandmgf1") {
                                return this.pubKey.verifyWithMessageHashPSS(this.sHashHex, v, this.mdAlgName, this.pssSaltLen);
                            } else {
                                if (this.pubKey instanceof RSAKey && this.pubkeyAlgName === "rsa") {
                                    return this.pubKey.verifyWithMessageHash(this.sHashHex, v);
                                } else {
                                    if (KJUR.crypto.ECDSA !== void 0 && this.pubKey instanceof KJUR.crypto.ECDSA) {
                                        return this.pubKey.verifyWithMessageHash(this.sHashHex, v);
                                    } else {
                                        if (KJUR.crypto.DSA !== void 0 && this.pubKey instanceof KJUR.crypto.DSA) {
                                            return this.pubKey.verifyWithMessageHash(this.sHashHex, v);
                                        } else {
                                            throw "Signature: unsupported public key alg: " + this.pubkeyAlgName;
                                        }
                                    }
                                }
                            }
                        };
                    }
                };
                this.init = function(s, t2) {
                    throw "init(key, pass) not supported for this alg:prov=" + this.algProvName;
                };
                this.updateString = function(s) {
                    throw "updateString(str) not supported for this alg:prov=" + this.algProvName;
                };
                this.updateHex = function(s) {
                    throw "updateHex(hex) not supported for this alg:prov=" + this.algProvName;
                };
                this.sign = function() {
                    throw "sign() not supported for this alg:prov=" + this.algProvName;
                };
                this.signString = function(s) {
                    throw "digestString(str) not supported for this alg:prov=" + this.algProvName;
                };
                this.signHex = function(s) {
                    throw "digestHex(hex) not supported for this alg:prov=" + this.algProvName;
                };
                this.verify = function(s) {
                    throw "verify(hSigVal) not supported for this alg:prov=" + this.algProvName;
                };
                this.initParams = o;
                if (o !== void 0) {
                    if (o.alg !== void 0) {
                        this.algName = o.alg;
                        if (o.prov === void 0) {
                            this.provName = KJUR.crypto.Util.DEFAULTPROVIDER[this.algName];
                        } else {
                            this.provName = o.prov;
                        }
                        this.algProvName = this.algName + ":" + this.provName;
                        this.setAlgAndProvider(this.algName, this.provName);
                        this._setAlgNames();
                    }
                    if (o.psssaltlen !== void 0) {
                        this.pssSaltLen = o.psssaltlen;
                    }
                    if (o.prvkeypem !== void 0) {
                        if (o.prvkeypas !== void 0) {
                            throw "both prvkeypem and prvkeypas parameters not supported";
                        } else {
                            try {
                                var q = KEYUTIL.getKey(o.prvkeypem);
                                this.init(q);
                            } catch (m) {
                                throw "fatal error to load pem private key: " + m;
                            }
                        }
                    }
                }
            };
            KJUR.crypto.Cipher = function(a) {};
            KJUR.crypto.Cipher.encrypt = function(m, k, c, d) {
                if (aryval(d, "enclag") != void 0) {
                    c = d.encalg;
                }
                if (typeof c == "string" && c.substr(-4) == "-CBC") {
                    var i = k;
                    var f = m;
                    if (aryval(d, "key") != void 0) {
                        i = d.key;
                    }
                    if (aryval(d, "enc") != void 0) {
                        hEnc = d.enc;
                    }
                    var j = CryptoJS.enc.Hex.parse(i);
                    var b = CryptoJS.enc.Hex.parse(f);
                    var g = CryptoJS.enc.Hex.parse(d.iv);
                    var e;
                    if (c == "des-EDE3-CBC") {
                        e = CryptoJS.TripleDES.encrypt(b, j, {
                            iv: g
                        });
                    } else {
                        if (c == "aes128-CBC" || c == "aes256-CBC") {
                            e = CryptoJS.AES.encrypt(b, j, {
                                iv: g
                            });
                        } else {
                            throw new Error("unsupported algorithm: " + c);
                        }
                    }
                    return e + "";
                } else {
                    if (k instanceof RSAKey && k.isPublic) {
                        var l = KJUR.crypto.Cipher.getAlgByKeyAndName(k, c);
                        if (l === "RSA") {
                            return k.encrypt(m);
                        }
                        if (l === "RSAOAEP") {
                            return k.encryptOAEP(m, "sha1");
                        }
                        var h = l.match(/^RSAOAEP(\d+)$/);
                        if (h !== null) {
                            return k.encryptOAEP(m, "sha" + h[1]);
                        }
                        throw "Cipher.encrypt: unsupported algorithm for RSAKey: " + c;
                    } else {
                        throw "Cipher.encrypt: unsupported key or algorithm";
                    }
                }
            };
            KJUR.crypto.Cipher.decrypt = function(d, l, b, c) {
                if (aryval(c, "enclag") != void 0) {
                    b = c.encalg;
                }
                if (typeof b == "string" && b.substr(-4) == "-CBC") {
                    var j = l;
                    var f = d;
                    if (aryval(c, "key") != void 0) {
                        j = c.key;
                    }
                    if (aryval(c, "enc") != void 0) {
                        f = c.enc;
                    }
                    var k = CryptoJS.enc.Hex.parse(j);
                    var g = CryptoJS.enc.Hex.parse(f);
                    var h = CryptoJS.enc.Hex.parse(c.iv);
                    var e;
                    if (b == "des-EDE3-CBC") {
                        e = CryptoJS.TripleDES.decrypt({
                            ciphertext: g
                        }, k, {
                            iv: h
                        });
                    } else {
                        if (b == "aes128-CBC" || b == "aes256-CBC") {
                            e = CryptoJS.AES.decrypt({
                                ciphertext: g
                            }, k, {
                                iv: h
                            });
                        } else {
                            throw new Error("unsupported algorithm: " + b);
                        }
                    }
                    return CryptoJS.enc.Hex.stringify(e);
                } else {
                    if (l instanceof RSAKey && l.isPrivate) {
                        var m = KJUR.crypto.Cipher.getAlgByKeyAndName(l, b);
                        if (m === "RSA") {
                            return l.decrypt(d);
                        }
                        if (m === "RSAOAEP") {
                            return l.decryptOAEP(d, "sha1");
                        }
                        var i = m.match(/^RSAOAEP(\d+)$/);
                        if (i !== null) {
                            return l.decryptOAEP(d, "sha" + i[1]);
                        }
                        throw "Cipher.decrypt: unsupported algorithm for RSAKey: " + b;
                    } else {
                        throw "Cipher.decrypt: unsupported key or algorithm";
                    }
                }
            };
            KJUR.crypto.Cipher.getAlgByKeyAndName = function(b, a) {
                if (b instanceof RSAKey) {
                    if (":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:".indexOf(a) != -1) {
                        return a;
                    }
                    if (a === null || a === void 0) {
                        return "RSA";
                    }
                    throw "getAlgByKeyAndName: not supported algorithm name for RSAKey: " + a;
                }
                throw "getAlgByKeyAndName: not supported algorithm name: " + a;
            };
            KJUR.crypto.OID = new function() {
                this.oidhex2name = {
                    "2a864886f70d010101": "rsaEncryption",
                    "2a8648ce3d0201": "ecPublicKey",
                    "2a8648ce380401": "dsa",
                    "2a8648ce3d030107": "secp256r1",
                    "2b8104001f": "secp192k1",
                    "2b81040021": "secp224r1",
                    "2b8104000a": "secp256k1",
                    "2b81040022": "secp384r1",
                    "2b81040023": "secp521r1",
                    "2a8648ce380403": "SHA1withDSA",
                    "608648016503040301": "SHA224withDSA",
                    "608648016503040302": "SHA256withDSA"
                };
            }();
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.crypto == "undefined" || !KJUR.crypto) {
                KJUR.crypto = {};
            }
            KJUR.crypto.ECDSA = function(e) {
                var g = "secp256r1";
                var p = null;
                var b = null;
                var i = null;
                var j = Error, f = BigInteger, h = ECPointFp, m = KJUR.crypto.ECDSA, c = KJUR.crypto.ECParameterDB, d = m.getName, q = ASN1HEX, n = q.getVbyListEx, k = q.isASN1HEX;
                var a = new SecureRandom();
                var o = null;
                this.type = "EC";
                this.isPrivate = false;
                this.isPublic = false;
                function l(x, t2, w, s) {
                    var r = Math.max(t2.bitLength(), s.bitLength());
                    var y = x.add2D(w);
                    var v = x.curve.getInfinity();
                    for(var u = r - 1; u >= 0; --u){
                        v = v.twice2D();
                        v.z = f.ONE;
                        if (t2.testBit(u)) {
                            if (s.testBit(u)) {
                                v = v.add2D(y);
                            } else {
                                v = v.add2D(x);
                            }
                        } else {
                            if (s.testBit(u)) {
                                v = v.add2D(w);
                            }
                        }
                    }
                    return v;
                }
                this.getBigRandom = function(r) {
                    return new f(r.bitLength(), a).mod(r.subtract(f.ONE)).add(f.ONE);
                };
                this.setNamedCurve = function(r) {
                    this.ecparams = c.getByName(r);
                    this.prvKeyHex = null;
                    this.pubKeyHex = null;
                    this.curveName = r;
                };
                this.setPrivateKeyHex = function(r) {
                    this.isPrivate = true;
                    this.prvKeyHex = r;
                };
                this.setPublicKeyHex = function(r) {
                    this.isPublic = true;
                    this.pubKeyHex = r;
                };
                this.getPublicKeyXYHex = function() {
                    var t2 = this.pubKeyHex;
                    if (t2.substr(0, 2) !== "04") {
                        throw "this method supports uncompressed format(04) only";
                    }
                    var s = this.ecparams.keycharlen;
                    if (t2.length !== 2 + s * 2) {
                        throw "malformed public key hex length";
                    }
                    var r = {};
                    r.x = t2.substr(2, s);
                    r.y = t2.substr(2 + s);
                    return r;
                };
                this.getShortNISTPCurveName = function() {
                    var r = this.curveName;
                    if (r === "secp256r1" || r === "NIST P-256" || r === "P-256" || r === "prime256v1") {
                        return "P-256";
                    }
                    if (r === "secp384r1" || r === "NIST P-384" || r === "P-384") {
                        return "P-384";
                    }
                    if (r === "secp521r1" || r === "NIST P-521" || r === "P-521") {
                        return "P-521";
                    }
                    return null;
                };
                this.generateKeyPairHex = function() {
                    var s = this.ecparams.n;
                    var u = this.getBigRandom(s);
                    var r = this.ecparams.keycharlen;
                    var t2 = ("0000000000" + u.toString(16)).slice(-r);
                    this.setPrivateKeyHex(t2);
                    var v = this.generatePublicKeyHex();
                    return {
                        ecprvhex: t2,
                        ecpubhex: v
                    };
                };
                this.generatePublicKeyHex = function() {
                    var u = new f(this.prvKeyHex, 16);
                    var w = this.ecparams.G.multiply(u);
                    var t2 = w.getX().toBigInteger();
                    var s = w.getY().toBigInteger();
                    var r = this.ecparams.keycharlen;
                    var y = ("0000000000" + t2.toString(16)).slice(-r);
                    var v = ("0000000000" + s.toString(16)).slice(-r);
                    var x = "04" + y + v;
                    this.setPublicKeyHex(x);
                    return x;
                };
                this.signWithMessageHash = function(r) {
                    return this.signHex(r, this.prvKeyHex);
                };
                this.signHex = function(x, u) {
                    var A = new f(u, 16);
                    var v = this.ecparams.n;
                    var z2 = new f(x.substring(0, this.ecparams.keycharlen), 16);
                    do {
                        var w = this.getBigRandom(v);
                        var B = this.ecparams.G;
                        var y = B.multiply(w);
                        var t2 = y.getX().toBigInteger().mod(v);
                    }while (t2.compareTo(f.ZERO) <= 0);
                    var C = w.modInverse(v).multiply(z2.add(A.multiply(t2))).mod(v);
                    return m.biRSSigToASN1Sig(t2, C);
                };
                this.sign = function(w, B) {
                    var z2 = B;
                    var u = this.ecparams.n;
                    var y = f.fromByteArrayUnsigned(w);
                    do {
                        var v = this.getBigRandom(u);
                        var A = this.ecparams.G;
                        var x = A.multiply(v);
                        var t2 = x.getX().toBigInteger().mod(u);
                    }while (t2.compareTo(BigInteger.ZERO) <= 0);
                    var C = v.modInverse(u).multiply(y.add(z2.multiply(t2))).mod(u);
                    return this.serializeSig(t2, C);
                };
                this.verifyWithMessageHash = function(s, r) {
                    return this.verifyHex(s, r, this.pubKeyHex);
                };
                this.verifyHex = function(v, y, u) {
                    try {
                        var t2, B;
                        var w = m.parseSigHex(y);
                        t2 = w.r;
                        B = w.s;
                        var x = h.decodeFromHex(this.ecparams.curve, u);
                        var z2 = new f(v.substring(0, this.ecparams.keycharlen), 16);
                        return this.verifyRaw(z2, t2, B, x);
                    } catch (A) {
                        return false;
                    }
                };
                this.verify = function(z2, A, u) {
                    var w, t2;
                    if (Bitcoin.Util.isArray(A)) {
                        var y = this.parseSig(A);
                        w = y.r;
                        t2 = y.s;
                    } else {
                        if ("object" === (typeof A === "undefined" ? "undefined" : _type_of(A)) && A.r && A.s) {
                            w = A.r;
                            t2 = A.s;
                        } else {
                            throw "Invalid value for signature";
                        }
                    }
                    var v;
                    if (u instanceof ECPointFp) {
                        v = u;
                    } else {
                        if (Bitcoin.Util.isArray(u)) {
                            v = h.decodeFrom(this.ecparams.curve, u);
                        } else {
                            throw "Invalid format for pubkey value, must be byte array or ECPointFp";
                        }
                    }
                    var x = f.fromByteArrayUnsigned(z2);
                    return this.verifyRaw(x, w, t2, v);
                };
                this.verifyRaw = function(z2, t2, E, y) {
                    var x = this.ecparams.n;
                    var D = this.ecparams.G;
                    if (t2.compareTo(f.ONE) < 0 || t2.compareTo(x) >= 0) {
                        return false;
                    }
                    if (E.compareTo(f.ONE) < 0 || E.compareTo(x) >= 0) {
                        return false;
                    }
                    var A = E.modInverse(x);
                    var w = z2.multiply(A).mod(x);
                    var u = t2.multiply(A).mod(x);
                    var B = D.multiply(w).add(y.multiply(u));
                    var C = B.getX().toBigInteger().mod(x);
                    return C.equals(t2);
                };
                this.serializeSig = function(v, u) {
                    var w = v.toByteArraySigned();
                    var t2 = u.toByteArraySigned();
                    var x = [];
                    x.push(2);
                    x.push(w.length);
                    x = x.concat(w);
                    x.push(2);
                    x.push(t2.length);
                    x = x.concat(t2);
                    x.unshift(x.length);
                    x.unshift(48);
                    return x;
                };
                this.parseSig = function(y) {
                    var x;
                    if (y[0] != 48) {
                        throw new Error("Signature not a valid DERSequence");
                    }
                    x = 2;
                    if (y[x] != 2) {
                        throw new Error("First element in signature must be a DERInteger");
                    }
                    var w = y.slice(x + 2, x + 2 + y[x + 1]);
                    x += 2 + y[x + 1];
                    if (y[x] != 2) {
                        throw new Error("Second element in signature must be a DERInteger");
                    }
                    var t2 = y.slice(x + 2, x + 2 + y[x + 1]);
                    x += 2 + y[x + 1];
                    var v = f.fromByteArrayUnsigned(w);
                    var u = f.fromByteArrayUnsigned(t2);
                    return {
                        r: v,
                        s: u
                    };
                };
                this.parseSigCompact = function(w) {
                    if (w.length !== 65) {
                        throw "Signature has the wrong length";
                    }
                    var t2 = w[0] - 27;
                    if (t2 < 0 || t2 > 7) {
                        throw "Invalid signature type";
                    }
                    var x = this.ecparams.n;
                    var v = f.fromByteArrayUnsigned(w.slice(1, 33)).mod(x);
                    var u = f.fromByteArrayUnsigned(w.slice(33, 65)).mod(x);
                    return {
                        r: v,
                        s: u,
                        i: t2
                    };
                };
                this.readPKCS5PrvKeyHex = function(u) {
                    if (k(u) === false) {
                        throw new Error("not ASN.1 hex string");
                    }
                    var r, t2, v;
                    try {
                        r = n(u, 0, [
                            "[0]",
                            0
                        ], "06");
                        t2 = n(u, 0, [
                            1
                        ], "04");
                        try {
                            v = n(u, 0, [
                                "[1]",
                                0
                            ], "03");
                        } catch (s) {}
                    } catch (s) {
                        throw new Error("malformed PKCS#1/5 plain ECC private key");
                    }
                    this.curveName = d(r);
                    if (this.curveName === void 0) {
                        throw "unsupported curve name";
                    }
                    this.setNamedCurve(this.curveName);
                    this.setPublicKeyHex(v);
                    this.setPrivateKeyHex(t2);
                    this.isPublic = false;
                };
                this.readPKCS8PrvKeyHex = function(v) {
                    if (k(v) === false) {
                        throw new j("not ASN.1 hex string");
                    }
                    var t2, r, u, w;
                    try {
                        t2 = n(v, 0, [
                            1,
                            0
                        ], "06");
                        r = n(v, 0, [
                            1,
                            1
                        ], "06");
                        u = n(v, 0, [
                            2,
                            0,
                            1
                        ], "04");
                        try {
                            w = n(v, 0, [
                                2,
                                0,
                                "[1]",
                                0
                            ], "03");
                        } catch (s) {}
                    } catch (s) {
                        throw new j("malformed PKCS#8 plain ECC private key");
                    }
                    this.curveName = d(r);
                    if (this.curveName === void 0) {
                        throw new j("unsupported curve name");
                    }
                    this.setNamedCurve(this.curveName);
                    this.setPublicKeyHex(w);
                    this.setPrivateKeyHex(u);
                    this.isPublic = false;
                };
                this.readPKCS8PubKeyHex = function(u) {
                    if (k(u) === false) {
                        throw new j("not ASN.1 hex string");
                    }
                    var t2, r, v;
                    try {
                        t2 = n(u, 0, [
                            0,
                            0
                        ], "06");
                        r = n(u, 0, [
                            0,
                            1
                        ], "06");
                        v = n(u, 0, [
                            1
                        ], "03");
                    } catch (s) {
                        throw new j("malformed PKCS#8 ECC public key");
                    }
                    this.curveName = d(r);
                    if (this.curveName === null) {
                        throw new j("unsupported curve name");
                    }
                    this.setNamedCurve(this.curveName);
                    this.setPublicKeyHex(v);
                };
                this.readCertPubKeyHex = function(t2, v) {
                    if (k(t2) === false) {
                        throw new j("not ASN.1 hex string");
                    }
                    var r, u;
                    try {
                        r = n(t2, 0, [
                            0,
                            5,
                            0,
                            1
                        ], "06");
                        u = n(t2, 0, [
                            0,
                            5,
                            1
                        ], "03");
                    } catch (s) {
                        throw new j("malformed X.509 certificate ECC public key");
                    }
                    this.curveName = d(r);
                    if (this.curveName === null) {
                        throw new j("unsupported curve name");
                    }
                    this.setNamedCurve(this.curveName);
                    this.setPublicKeyHex(u);
                };
                if (e !== void 0) {
                    if (e.curve !== void 0) {
                        this.curveName = e.curve;
                    }
                }
                if (this.curveName === void 0) {
                    this.curveName = g;
                }
                this.setNamedCurve(this.curveName);
                if (e !== void 0) {
                    if (e.prv !== void 0) {
                        this.setPrivateKeyHex(e.prv);
                    }
                    if (e.pub !== void 0) {
                        this.setPublicKeyHex(e.pub);
                    }
                }
            };
            KJUR.crypto.ECDSA.parseSigHex = function(a) {
                var b = KJUR.crypto.ECDSA.parseSigHexInHexRS(a);
                var d = new BigInteger(b.r, 16);
                var c = new BigInteger(b.s, 16);
                return {
                    r: d,
                    s: c
                };
            };
            KJUR.crypto.ECDSA.parseSigHexInHexRS = function(f) {
                var j = ASN1HEX, i = j.getChildIdx, g = j.getV;
                j.checkStrictDER(f, 0);
                if (f.substr(0, 2) != "30") {
                    throw new Error("signature is not a ASN.1 sequence");
                }
                var h = i(f, 0);
                if (h.length != 2) {
                    throw new Error("signature shall have two elements");
                }
                var e = h[0];
                var d = h[1];
                if (f.substr(e, 2) != "02") {
                    throw new Error("1st item not ASN.1 integer");
                }
                if (f.substr(d, 2) != "02") {
                    throw new Error("2nd item not ASN.1 integer");
                }
                var c = g(f, e);
                var b = g(f, d);
                return {
                    r: c,
                    s: b
                };
            };
            KJUR.crypto.ECDSA.asn1SigToConcatSig = function(d) {
                var e = KJUR.crypto.ECDSA.parseSigHexInHexRS(d);
                var b = e.r;
                var a = e.s;
                if (b.length >= 130 && b.length <= 134) {
                    if (b.length % 2 != 0) {
                        throw Error("unknown ECDSA sig r length error");
                    }
                    if (a.length % 2 != 0) {
                        throw Error("unknown ECDSA sig s length error");
                    }
                    if (b.substr(0, 2) == "00") {
                        b = b.substr(2);
                    }
                    if (a.substr(0, 2) == "00") {
                        a = a.substr(2);
                    }
                    var c = Math.max(b.length, a.length);
                    b = ("000000" + b).slice(-c);
                    a = ("000000" + a).slice(-c);
                    return b + a;
                }
                if (b.substr(0, 2) == "00" && b.length % 32 == 2) {
                    b = b.substr(2);
                }
                if (a.substr(0, 2) == "00" && a.length % 32 == 2) {
                    a = a.substr(2);
                }
                if (b.length % 32 == 30) {
                    b = "00" + b;
                }
                if (a.length % 32 == 30) {
                    a = "00" + a;
                }
                if (b.length % 32 != 0) {
                    throw Error("unknown ECDSA sig r length error");
                }
                if (a.length % 32 != 0) {
                    throw Error("unknown ECDSA sig s length error");
                }
                return b + a;
            };
            KJUR.crypto.ECDSA.concatSigToASN1Sig = function(a) {
                if (a.length % 4 != 0) {
                    throw Error("unknown ECDSA concatinated r-s sig length error");
                }
                var c = a.substr(0, a.length / 2);
                var b = a.substr(a.length / 2);
                return KJUR.crypto.ECDSA.hexRSSigToASN1Sig(c, b);
            };
            KJUR.crypto.ECDSA.hexRSSigToASN1Sig = function(b, a) {
                var d = new BigInteger(b, 16);
                var c = new BigInteger(a, 16);
                return KJUR.crypto.ECDSA.biRSSigToASN1Sig(d, c);
            };
            KJUR.crypto.ECDSA.biRSSigToASN1Sig = function(f, d) {
                var c = KJUR.asn1;
                var b = new c.DERInteger({
                    bigint: f
                });
                var a = new c.DERInteger({
                    bigint: d
                });
                var e = new c.DERSequence({
                    array: [
                        b,
                        a
                    ]
                });
                return e.tohex();
            };
            KJUR.crypto.ECDSA.getName = function(a) {
                if (a === "2b8104001f") {
                    return "secp192k1";
                }
                if (a === "2a8648ce3d030107") {
                    return "secp256r1";
                }
                if (a === "2b8104000a") {
                    return "secp256k1";
                }
                if (a === "2b81040021") {
                    return "secp224r1";
                }
                if (a === "2b81040022") {
                    return "secp384r1";
                }
                if (a === "2b81040023") {
                    return "secp521r1";
                }
                if ("|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(a) !== -1) {
                    return "secp256r1";
                }
                if ("|secp256k1|".indexOf(a) !== -1) {
                    return "secp256k1";
                }
                if ("|secp224r1|NIST P-224|P-224|".indexOf(a) !== -1) {
                    return "secp224r1";
                }
                if ("|secp384r1|NIST P-384|P-384|".indexOf(a) !== -1) {
                    return "secp384r1";
                }
                if ("|secp521r1|NIST P-521|P-521|".indexOf(a) !== -1) {
                    return "secp521r1";
                }
                return null;
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.crypto == "undefined" || !KJUR.crypto) {
                KJUR.crypto = {};
            }
            KJUR.crypto.ECParameterDB = new function() {
                var b = {};
                var c = {};
                function a(d) {
                    return new BigInteger(d, 16);
                }
                this.getByName = function(e) {
                    var d = e;
                    if (typeof c[d] != "undefined") {
                        d = c[e];
                    }
                    if (typeof b[d] != "undefined") {
                        return b[d];
                    }
                    throw "unregistered EC curve name: " + d;
                };
                this.regist = function(A, l, o, g, m, e, j, f, k, u, d, x) {
                    b[A] = {};
                    var s = a(o);
                    var z2 = a(g);
                    var y = a(m);
                    var t2 = a(e);
                    var w = a(j);
                    var r = new ECCurveFp(s, z2, y);
                    var q = r.decodePointHex("04" + f + k);
                    b[A]["name"] = A;
                    b[A]["keylen"] = l;
                    b[A]["keycharlen"] = Math.ceil(l / 8) * 2;
                    b[A]["curve"] = r;
                    b[A]["G"] = q;
                    b[A]["n"] = t2;
                    b[A]["h"] = w;
                    b[A]["oid"] = d;
                    b[A]["info"] = x;
                    for(var v = 0; v < u.length; v++){
                        c[u[v]] = A;
                    }
                };
            }();
            KJUR.crypto.ECParameterDB.regist("secp128r1", 128, "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF", "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC", "E87579C11079F43DD824993C2CEE5ED3", "FFFFFFFE0000000075A30D1B9038A115", "1", "161FF7528B899B2D0C28607CA52C5B86", "CF5AC8395BAFEB13C02DA292DDED7A83", [], "", "secp128r1 : SECG curve over a 128 bit prime field");
            KJUR.crypto.ECParameterDB.regist("secp160k1", 160, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73", "0", "7", "0100000000000000000001B8FA16DFAB9ACA16B6B3", "1", "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB", "938CF935318FDCED6BC28286531733C3F03C4FEE", [], "", "secp160k1 : SECG curve over a 160 bit prime field");
            KJUR.crypto.ECParameterDB.regist("secp160r1", 160, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF", "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC", "1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45", "0100000000000000000001F4C8F927AED3CA752257", "1", "4A96B5688EF573284664698968C38BB913CBFC82", "23A628553168947D59DCC912042351377AC5FB32", [], "", "secp160r1 : SECG curve over a 160 bit prime field");
            KJUR.crypto.ECParameterDB.regist("secp192k1", 192, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37", "0", "3", "FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D", "1", "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D", "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D", []);
            KJUR.crypto.ECParameterDB.regist("secp192r1", 192, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF", "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC", "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1", "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831", "1", "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012", "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811", []);
            KJUR.crypto.ECParameterDB.regist("secp224r1", 224, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001", "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE", "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4", "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D", "1", "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21", "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34", []);
            KJUR.crypto.ECParameterDB.regist("secp256k1", 256, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", "0", "7", "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", "1", "79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", "483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", []);
            KJUR.crypto.ECParameterDB.regist("secp256r1", 256, "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC", "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", "1", "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", [
                "NIST P-256",
                "P-256",
                "prime256v1"
            ]);
            KJUR.crypto.ECParameterDB.regist("secp384r1", 384, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF", "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC", "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF", "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973", "1", "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7", "3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f", [
                "NIST P-384",
                "P-384"
            ]);
            KJUR.crypto.ECParameterDB.regist("secp521r1", 521, "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC", "051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00", "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409", "1", "00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66", "011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650", [
                "NIST P-521",
                "P-521"
            ]);
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.crypto == "undefined" || !KJUR.crypto) {
                KJUR.crypto = {};
            }
            KJUR.crypto.DSA = function() {
                var b = ASN1HEX, e = b.getVbyList, d = b.getVbyListEx, a = b.isASN1HEX, c = BigInteger;
                this.p = null;
                this.q = null;
                this.g = null;
                this.y = null;
                this.x = null;
                this.type = "DSA";
                this.isPrivate = false;
                this.isPublic = false;
                this.setPrivate = function(j, i, h, k, f) {
                    this.isPrivate = true;
                    this.p = j;
                    this.q = i;
                    this.g = h;
                    this.y = k;
                    this.x = f;
                };
                this.setPrivateHex = function(i, g, k, n, o) {
                    var h, f, j, l, m;
                    h = new BigInteger(i, 16);
                    f = new BigInteger(g, 16);
                    j = new BigInteger(k, 16);
                    if (typeof n === "string" && n.length > 1) {
                        l = new BigInteger(n, 16);
                    } else {
                        l = null;
                    }
                    m = new BigInteger(o, 16);
                    this.setPrivate(h, f, j, l, m);
                };
                this.setPublic = function(i, h, f, j) {
                    this.isPublic = true;
                    this.p = i;
                    this.q = h;
                    this.g = f;
                    this.y = j;
                    this.x = null;
                };
                this.setPublicHex = function(k, j, i, l) {
                    var g, f, m, h;
                    g = new BigInteger(k, 16);
                    f = new BigInteger(j, 16);
                    m = new BigInteger(i, 16);
                    h = new BigInteger(l, 16);
                    this.setPublic(g, f, m, h);
                };
                this.signWithMessageHash = function(j) {
                    var i = this.p;
                    var h = this.q;
                    var m = this.g;
                    var o = this.y;
                    var t2 = this.x;
                    var l = KJUR.crypto.Util.getRandomBigIntegerMinToMax(BigInteger.ONE.add(BigInteger.ONE), h.subtract(BigInteger.ONE));
                    var u = j.substr(0, h.bitLength() / 4);
                    var n = new BigInteger(u, 16);
                    var f = m.modPow(l, i).mod(h);
                    var w = l.modInverse(h).multiply(n.add(t2.multiply(f))).mod(h);
                    var v = KJUR.asn1.ASN1Util.jsonToASN1HEX({
                        seq: [
                            {
                                int: {
                                    bigint: f
                                }
                            },
                            {
                                int: {
                                    bigint: w
                                }
                            }
                        ]
                    });
                    return v;
                };
                this.verifyWithMessageHash = function(m, l) {
                    var j = this.p;
                    var h = this.q;
                    var o = this.g;
                    var u = this.y;
                    var n = this.parseASN1Signature(l);
                    var f = n[0];
                    var C = n[1];
                    var B = m.substr(0, h.bitLength() / 4);
                    var t2 = new BigInteger(B, 16);
                    if (BigInteger.ZERO.compareTo(f) > 0 || f.compareTo(h) > 0) {
                        throw "invalid DSA signature";
                    }
                    if (BigInteger.ZERO.compareTo(C) >= 0 || C.compareTo(h) > 0) {
                        throw "invalid DSA signature";
                    }
                    var x = C.modInverse(h);
                    var k = t2.multiply(x).mod(h);
                    var i = f.multiply(x).mod(h);
                    var A = o.modPow(k, j).multiply(u.modPow(i, j)).mod(j).mod(h);
                    return A.compareTo(f) == 0;
                };
                this.parseASN1Signature = function(f) {
                    try {
                        var i = new c(d(f, 0, [
                            0
                        ], "02"), 16);
                        var h = new c(d(f, 0, [
                            1
                        ], "02"), 16);
                        return [
                            i,
                            h
                        ];
                    } catch (g) {
                        throw new Error("malformed ASN.1 DSA signature");
                    }
                };
                this.readPKCS5PrvKeyHex = function(j) {
                    var k, i, g, l, m;
                    if (a(j) === false) {
                        throw new Error("not ASN.1 hex string");
                    }
                    try {
                        k = d(j, 0, [
                            1
                        ], "02");
                        i = d(j, 0, [
                            2
                        ], "02");
                        g = d(j, 0, [
                            3
                        ], "02");
                        l = d(j, 0, [
                            4
                        ], "02");
                        m = d(j, 0, [
                            5
                        ], "02");
                    } catch (f) {
                        throw new Error("malformed PKCS#1/5 plain DSA private key");
                    }
                    this.setPrivateHex(k, i, g, l, m);
                };
                this.readPKCS8PrvKeyHex = function(j) {
                    var k, i, g, l;
                    if (a(j) === false) {
                        throw new Error("not ASN.1 hex string");
                    }
                    try {
                        k = d(j, 0, [
                            1,
                            1,
                            0
                        ], "02");
                        i = d(j, 0, [
                            1,
                            1,
                            1
                        ], "02");
                        g = d(j, 0, [
                            1,
                            1,
                            2
                        ], "02");
                        l = d(j, 0, [
                            2,
                            0
                        ], "02");
                    } catch (f) {
                        throw new Error("malformed PKCS#8 plain DSA private key");
                    }
                    this.setPrivateHex(k, i, g, null, l);
                };
                this.readPKCS8PubKeyHex = function(j) {
                    var k, i, g, l;
                    if (a(j) === false) {
                        throw new Error("not ASN.1 hex string");
                    }
                    try {
                        k = d(j, 0, [
                            0,
                            1,
                            0
                        ], "02");
                        i = d(j, 0, [
                            0,
                            1,
                            1
                        ], "02");
                        g = d(j, 0, [
                            0,
                            1,
                            2
                        ], "02");
                        l = d(j, 0, [
                            1,
                            0
                        ], "02");
                    } catch (f) {
                        throw new Error("malformed PKCS#8 DSA public key");
                    }
                    this.setPublicHex(k, i, g, l);
                };
                this.readCertPubKeyHex = function(j, m) {
                    var k, i, g, l;
                    if (a(j) === false) {
                        throw new Error("not ASN.1 hex string");
                    }
                    try {
                        k = d(j, 0, [
                            0,
                            5,
                            0,
                            1,
                            0
                        ], "02");
                        i = d(j, 0, [
                            0,
                            5,
                            0,
                            1,
                            1
                        ], "02");
                        g = d(j, 0, [
                            0,
                            5,
                            0,
                            1,
                            2
                        ], "02");
                        l = d(j, 0, [
                            0,
                            5,
                            1,
                            0
                        ], "02");
                    } catch (f) {
                        throw new Error("malformed X.509 certificate DSA public key");
                    }
                    this.setPublicHex(k, i, g, l);
                };
            };
            var KEYUTIL = /* @__PURE__ */ function() {
                var d = function d(p, r, q) {
                    return k(CryptoJS.AES, p, r, q);
                };
                var e = function e(p, r, q) {
                    return k(CryptoJS.TripleDES, p, r, q);
                };
                var a = function a(p, r, q) {
                    return k(CryptoJS.DES, p, r, q);
                };
                var k = function k(s, x, u, q) {
                    var r = CryptoJS.enc.Hex.parse(x);
                    var w = CryptoJS.enc.Hex.parse(u);
                    var p = CryptoJS.enc.Hex.parse(q);
                    var t2 = {};
                    t2.key = w;
                    t2.iv = p;
                    t2.ciphertext = r;
                    var v = s.decrypt(t2, w, {
                        iv: p
                    });
                    return CryptoJS.enc.Hex.stringify(v);
                };
                var l = function l(p, r, q) {
                    return g(CryptoJS.AES, p, r, q);
                };
                var o = function o(p, r, q) {
                    return g(CryptoJS.TripleDES, p, r, q);
                };
                var f = function f(p, r, q) {
                    return g(CryptoJS.DES, p, r, q);
                };
                var g = function g(t2, y, v, q) {
                    var s = CryptoJS.enc.Hex.parse(y);
                    var x = CryptoJS.enc.Hex.parse(v);
                    var p = CryptoJS.enc.Hex.parse(q);
                    var w = t2.encrypt(s, x, {
                        iv: p
                    });
                    var r = CryptoJS.enc.Hex.parse(w.toString());
                    var u = CryptoJS.enc.Base64.stringify(r);
                    return u;
                };
                var i = {
                    "AES-256-CBC": {
                        proc: d,
                        eproc: l,
                        keylen: 32,
                        ivlen: 16
                    },
                    "AES-192-CBC": {
                        proc: d,
                        eproc: l,
                        keylen: 24,
                        ivlen: 16
                    },
                    "AES-128-CBC": {
                        proc: d,
                        eproc: l,
                        keylen: 16,
                        ivlen: 16
                    },
                    "DES-EDE3-CBC": {
                        proc: e,
                        eproc: o,
                        keylen: 24,
                        ivlen: 8
                    },
                    "DES-CBC": {
                        proc: a,
                        eproc: f,
                        keylen: 8,
                        ivlen: 8
                    }
                };
                var c = function c(p) {
                    return i[p]["proc"];
                };
                var m = function m(p) {
                    var r = CryptoJS.lib.WordArray.random(p);
                    var q = CryptoJS.enc.Hex.stringify(r);
                    return q;
                };
                var n = function n(v) {
                    var w = {};
                    var q = v.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)", "m"));
                    if (q) {
                        w.cipher = q[1];
                        w.ivsalt = q[2];
                    }
                    var p = v.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));
                    if (p) {
                        w.type = p[1];
                    }
                    var u = -1;
                    var x = 0;
                    if (v.indexOf("\r\n\r\n") != -1) {
                        u = v.indexOf("\r\n\r\n");
                        x = 2;
                    }
                    if (v.indexOf("\n\n") != -1) {
                        u = v.indexOf("\n\n");
                        x = 1;
                    }
                    var t2 = v.indexOf("-----END");
                    if (u != -1 && t2 != -1) {
                        var r = v.substring(u + x * 2, t2 - x);
                        r = r.replace(/\s+/g, "");
                        w.data = r;
                    }
                    return w;
                };
                var j = function j(q, y, p) {
                    var v = p.substring(0, 16);
                    var t2 = CryptoJS.enc.Hex.parse(v);
                    var r = CryptoJS.enc.Utf8.parse(y);
                    var u = i[q]["keylen"] + i[q]["ivlen"];
                    var x = "";
                    var w = null;
                    for(;;){
                        var s = CryptoJS.algo.MD5.create();
                        if (w != null) {
                            s.update(w);
                        }
                        s.update(r);
                        s.update(t2);
                        w = s.finalize();
                        x = x + CryptoJS.enc.Hex.stringify(w);
                        if (x.length >= u * 2) {
                            break;
                        }
                    }
                    var z2 = {};
                    z2.keyhex = x.substr(0, i[q]["keylen"] * 2);
                    z2.ivhex = x.substr(i[q]["keylen"] * 2, i[q]["ivlen"] * 2);
                    return z2;
                };
                var b = function b(p, v, r, w) {
                    var s = CryptoJS.enc.Base64.parse(p);
                    var q = CryptoJS.enc.Hex.stringify(s);
                    var u = i[v]["proc"];
                    var t2 = u(q, r, w);
                    return t2;
                };
                var h = function h(p, s, q, u) {
                    var r = i[s]["eproc"];
                    var t2 = r(p, q, u);
                    return t2;
                };
                return {
                    version: "1.0.0",
                    parsePKCS5PEM: function parsePKCS5PEM(p) {
                        return n(p);
                    },
                    getKeyAndUnusedIvByPasscodeAndIvsalt: function getKeyAndUnusedIvByPasscodeAndIvsalt(q, p, r) {
                        return j(q, p, r);
                    },
                    decryptKeyB64: function decryptKeyB64(p, r, q, s) {
                        return b(p, r, q, s);
                    },
                    getDecryptedKeyHex: function getDecryptedKeyHex(y, x) {
                        var q = n(y);
                        var t2 = q.type;
                        var r = q.cipher;
                        var p = q.ivsalt;
                        var s = q.data;
                        var w = j(r, x, p);
                        var v = w.keyhex;
                        var u = b(s, r, v, p);
                        return u;
                    },
                    getEncryptedPKCS5PEMFromPrvKeyHex: function getEncryptedPKCS5PEMFromPrvKeyHex(x, s, A, t2, r) {
                        var p = "";
                        if (typeof t2 == "undefined" || t2 == null) {
                            t2 = "AES-256-CBC";
                        }
                        if (typeof i[t2] == "undefined") {
                            throw new Error("KEYUTIL unsupported algorithm: " + t2);
                        }
                        if (typeof r == "undefined" || r == null) {
                            var v = i[t2]["ivlen"];
                            var u = m(v);
                            r = u.toUpperCase();
                        }
                        var z2 = j(t2, A, r);
                        var y = z2.keyhex;
                        var w = h(s, t2, y, r);
                        var q = w.replace(/(.{64})/g, "$1\r\n");
                        var p = "-----BEGIN " + x + " PRIVATE KEY-----\r\n";
                        p += "Proc-Type: 4,ENCRYPTED\r\n";
                        p += "DEK-Info: " + t2 + "," + r + "\r\n";
                        p += "\r\n";
                        p += q;
                        p += "\r\n-----END " + x + " PRIVATE KEY-----\r\n";
                        return p;
                    },
                    getEncryptedPKCS8PEM: function getEncryptedPKCS8PEM(r, p, s) {
                        var q = this.getEncryptedPKCS8Hex(r, p, s);
                        return hextopem(q, "ENCRYPTED PRIVATE KEY");
                    },
                    getEncryptedPKCS8Hex: function getEncryptedPKCS8Hex(r, p, t2) {
                        var q;
                        if (t2 == void 0 || t2 == null) {
                            q = {};
                        } else {
                            q = JSON.parse(JSON.stringify(t2));
                        }
                        q.plain = r;
                        this.initPBES2Param(q);
                        this.encryptPBES2Param(q, p);
                        var s = this.generatePBES2ASN1Param(q);
                        return KJUR.asn1.ASN1Util.newObject(s).tohex();
                    },
                    initPBES2Param: function initPBES2Param(p) {
                        if (aryval(p, "encalg") == void 0) {
                            p.encalg = "aes256-CBC";
                        }
                        if (aryval(p, "iter") == void 0) {
                            p.iter = 2048;
                        }
                        if (aryval(p, "prf") == void 0) {
                            p.prf = "hmacWithSHA256";
                        }
                        if (aryval(p, "salt") == void 0) {
                            p.salt = CryptoJS.enc.Hex.stringify(CryptoJS.lib.WordArray.random(8));
                        }
                        if (aryval(p, "enciv") == void 0) {
                            var q;
                            if (p.encalg == "des-EDE3-CBC") {
                                q = 8;
                            }
                            if (p.encalg == "aes128-CBC") {
                                q = 16;
                            }
                            if (p.encalg == "aes256-CBC") {
                                q = 16;
                            }
                            p.enciv = CryptoJS.enc.Hex.stringify(CryptoJS.lib.WordArray.random(q));
                        }
                    },
                    encryptPBES2Param: function encryptPBES2Param(p, q) {
                        var t2 = KEYUTIL.getDKFromPBES2Param(p, q);
                        try {
                            var s = KJUR.crypto.Cipher.encrypt(p.plain, t2, p.encalg, {
                                iv: p.enciv
                            });
                        } catch (r) {
                            throw new Error("encrypt error: " + p.plain + " " + t2 + " " + p.encalg + " " + p.enciv);
                        }
                        p.enc = s;
                    },
                    generatePBES2ASN1Param: function generatePBES2ASN1Param(p) {
                        var q = {
                            seq: [
                                {
                                    seq: [
                                        {
                                            oid: "pkcs5PBES2"
                                        },
                                        {
                                            seq: [
                                                {
                                                    seq: [
                                                        {
                                                            oid: "pkcs5PBKDF2"
                                                        },
                                                        {
                                                            seq: [
                                                                {
                                                                    octstr: {
                                                                        hex: p.salt
                                                                    }
                                                                },
                                                                {
                                                                    int: {
                                                                        hex: inttohex(p.iter)
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    ]
                                                },
                                                {
                                                    seq: [
                                                        {
                                                            oid: p.encalg
                                                        },
                                                        {
                                                            octstr: {
                                                                hex: p.enciv
                                                            }
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    ]
                                },
                                {
                                    octstr: {
                                        hex: p.enc
                                    }
                                }
                            ]
                        };
                        if (p.prf != "hmacWithSHA1") {
                            q.seq[0].seq[1].seq[0].seq[1].seq.push({
                                seq: [
                                    {
                                        oid: p.prf
                                    },
                                    {
                                        "null": ""
                                    }
                                ]
                            });
                        }
                        return q;
                    },
                    parseHexOfEncryptedPKCS8: function parseHexOfEncryptedPKCS8(y) {
                        var B = ASN1HEX;
                        var z2 = B.getChildIdx;
                        var w = B.getV;
                        var t2 = {};
                        var r = z2(y, 0);
                        if (r.length != 2) {
                            throw new Error("malformed format: SEQUENCE(0).items != 2: " + r.length);
                        }
                        t2.ciphertext = w(y, r[1]);
                        var A = z2(y, r[0]);
                        if (A.length != 2) {
                            throw new Error("malformed format: SEQUENCE(0.0).items != 2: " + A.length);
                        }
                        if (w(y, A[0]) != "2a864886f70d01050d") {
                            throw new Error("this only supports pkcs5PBES2");
                        }
                        var p = z2(y, A[1]);
                        if (A.length != 2) {
                            throw new Error("malformed format: SEQUENCE(0.0.1).items != 2: " + p.length);
                        }
                        var q = z2(y, p[1]);
                        if (q.length != 2) {
                            throw new Error("malformed format: SEQUENCE(0.0.1.1).items != 2: " + q.length);
                        }
                        if (w(y, q[0]) != "2a864886f70d0307") {
                            throw "this only supports TripleDES";
                        }
                        t2.encryptionSchemeAlg = "TripleDES";
                        t2.encryptionSchemeIV = w(y, q[1]);
                        var s = z2(y, p[0]);
                        if (s.length != 2) {
                            throw new Error("malformed format: SEQUENCE(0.0.1.0).items != 2: " + s.length);
                        }
                        if (w(y, s[0]) != "2a864886f70d01050c") {
                            throw new Error("this only supports pkcs5PBKDF2");
                        }
                        var x = z2(y, s[1]);
                        if (x.length < 2) {
                            throw new Error("malformed format: SEQUENCE(0.0.1.0.1).items < 2: " + x.length);
                        }
                        t2.pbkdf2Salt = w(y, x[0]);
                        var u = w(y, x[1]);
                        try {
                            t2.pbkdf2Iter = parseInt(u, 16);
                        } catch (v) {
                            throw new Error("malformed format pbkdf2Iter: " + u);
                        }
                        return t2;
                    },
                    getPBKDF2KeyHexFromParam: function getPBKDF2KeyHexFromParam(u, p) {
                        var t2 = CryptoJS.enc.Hex.parse(u.pbkdf2Salt);
                        var q = u.pbkdf2Iter;
                        var s = CryptoJS.PBKDF2(p, t2, {
                            keySize: 192 / 32,
                            iterations: q
                        });
                        var r = CryptoJS.enc.Hex.stringify(s);
                        return r;
                    },
                    _getPlainPKCS8HexFromEncryptedPKCS8PEM: function _getPlainPKCS8HexFromEncryptedPKCS8PEM(x, y) {
                        var r = pemtohex(x, "ENCRYPTED PRIVATE KEY");
                        var p = this.parseHexOfEncryptedPKCS8(r);
                        var u = KEYUTIL.getPBKDF2KeyHexFromParam(p, y);
                        var v = {};
                        v.ciphertext = CryptoJS.enc.Hex.parse(p.ciphertext);
                        var t2 = CryptoJS.enc.Hex.parse(u);
                        var s = CryptoJS.enc.Hex.parse(p.encryptionSchemeIV);
                        var w = CryptoJS.TripleDES.decrypt(v, t2, {
                            iv: s
                        });
                        var q = CryptoJS.enc.Hex.stringify(w);
                        return q;
                    },
                    parsePBES2: function parsePBES2(z2) {
                        var v = ASN1HEX.parse(z2);
                        if (aryval(v, "seq.0.seq.0.oid") != "pkcs5PBES2" || aryval(v, "seq.0.seq.1.seq.0.seq.0.oid") != "pkcs5PBKDF2") {
                            throw new Error("not pkcs5PBES2 and pkcs5PBKDF2 used");
                        }
                        var y = aryval(v, "seq.0.seq.1.seq.0.seq.1.seq");
                        if (y == void 0) {
                            throw new Error("PBKDF2 parameter not found");
                        }
                        var t2 = aryval(y, "0.octstr.hex");
                        var p = aryval(y, "1.int.hex");
                        var q = aryval(y, "2.seq.0.oid", "hmacWithSHA1");
                        var x = -1;
                        try {
                            x = parseInt(p, 16);
                        } catch (w) {
                            throw new Error("iter not proper value");
                        }
                        var u = aryval(v, "seq.0.seq.1.seq.1.seq.0.oid");
                        var s = aryval(v, "seq.0.seq.1.seq.1.seq.1.octstr.hex");
                        var r = aryval(v, "seq.1.octstr.hex");
                        if (u == void 0 || s == void 0 || r == void 0) {
                            throw new Error("encalg, enciv or enc is undefined");
                        }
                        var A = {
                            salt: t2,
                            iter: x,
                            prf: q,
                            encalg: u,
                            enciv: s,
                            enc: r
                        };
                        return A;
                    },
                    getDKFromPBES2Param: function getDKFromPBES2Param(p, w) {
                        var x = {
                            hmacWithSHA1: CryptoJS.algo.SHA1,
                            hmacWithSHA224: CryptoJS.algo.SHA224,
                            hmacWithSHA256: CryptoJS.algo.SHA256,
                            hmacWithSHA384: CryptoJS.algo.SHA384,
                            hmacWithSHA512: CryptoJS.algo.SHA512
                        };
                        var q = {
                            "des-EDE3-CBC": 192 / 32,
                            "aes128-CBC": 128 / 32,
                            "aes256-CBC": 256 / 32
                        };
                        var y = x[p.prf];
                        if (y == void 0) {
                            throw new Error("unsupported prf");
                        }
                        var r = q[p.encalg];
                        if (r == void 0) {
                            throw new Error("unsupported encalg");
                        }
                        var s = CryptoJS.enc.Hex.parse(p.salt);
                        var u = p.iter;
                        try {
                            var v = CryptoJS.PBKDF2(w, s, {
                                keySize: r,
                                iterations: u,
                                hasher: y
                            });
                            return CryptoJS.enc.Hex.stringify(v);
                        } catch (t2) {
                            throw new Error("PBKDF2 error: " + t2 + " " + JSON.stringify(p) + " " + w);
                        }
                    },
                    getPlainHexFromEncryptedPKCS8PEM: function getPlainHexFromEncryptedPKCS8PEM(t2, q) {
                        if (t2.indexOf("BEGIN ENCRYPTED PRIVATE KEY") == -1) {
                            throw new Error("not Encrypted PKCS#8 PEM string");
                        }
                        var u = pemtohex(t2);
                        var p;
                        try {
                            p = KEYUTIL.parsePBES2(u);
                        } catch (r) {
                            throw new Error("malformed PBES2 format: " + r.message);
                        }
                        var s = KEYUTIL.getDKFromPBES2Param(p, q);
                        return KJUR.crypto.Cipher.decrypt(p.enc, s, p.encalg, {
                            iv: p.enciv
                        });
                    },
                    getKeyFromEncryptedPKCS8PEM: function getKeyFromEncryptedPKCS8PEM(s, q) {
                        var p = this.getPlainHexFromEncryptedPKCS8PEM(s, q);
                        var r = this.getKeyFromPlainPrivatePKCS8Hex(p);
                        return r;
                    },
                    parsePlainPrivatePKCS8Hex: function parsePlainPrivatePKCS8Hex(s) {
                        var v = ASN1HEX;
                        var u = v.getChildIdx;
                        var t2 = v.getV;
                        var q = {};
                        q.algparam = null;
                        if (s.substr(0, 2) != "30") {
                            throw new Error("malformed plain PKCS8 private key(code:001)");
                        }
                        var r = u(s, 0);
                        if (r.length < 3) {
                            throw new Error("malformed plain PKCS8 private key(code:002)");
                        }
                        if (s.substr(r[1], 2) != "30") {
                            throw new Error("malformed PKCS8 private key(code:003)");
                        }
                        var p = u(s, r[1]);
                        if (p.length != 2) {
                            throw new Error("malformed PKCS8 private key(code:004)");
                        }
                        if (s.substr(p[0], 2) != "06") {
                            throw new Error("malformed PKCS8 private key(code:005)");
                        }
                        q.algoid = t2(s, p[0]);
                        if (s.substr(p[1], 2) == "06") {
                            q.algparam = t2(s, p[1]);
                        }
                        if (s.substr(r[2], 2) != "04") {
                            throw new Error("malformed PKCS8 private key(code:006)");
                        }
                        q.keyidx = v.getVidx(s, r[2]);
                        return q;
                    },
                    getKeyFromPlainPrivatePKCS8PEM: function getKeyFromPlainPrivatePKCS8PEM(q) {
                        var p = pemtohex(q, "PRIVATE KEY");
                        var r = this.getKeyFromPlainPrivatePKCS8Hex(p);
                        return r;
                    },
                    getKeyFromPlainPrivatePKCS8Hex: function getKeyFromPlainPrivatePKCS8Hex(p) {
                        var q = this.parsePlainPrivatePKCS8Hex(p);
                        var r;
                        if (q.algoid == "2a864886f70d010101") {
                            r = new RSAKey();
                        } else {
                            if (q.algoid == "2a8648ce380401") {
                                r = new KJUR.crypto.DSA();
                            } else {
                                if (q.algoid == "2a8648ce3d0201") {
                                    r = new KJUR.crypto.ECDSA();
                                } else {
                                    throw new Error("unsupported private key algorithm");
                                }
                            }
                        }
                        r.readPKCS8PrvKeyHex(p);
                        return r;
                    },
                    _getKeyFromPublicPKCS8Hex: function _getKeyFromPublicPKCS8Hex(q) {
                        var p;
                        var r = ASN1HEX.getVbyList(q, 0, [
                            0,
                            0
                        ], "06");
                        if (r === "2a864886f70d010101") {
                            p = new RSAKey();
                        } else {
                            if (r === "2a8648ce380401") {
                                p = new KJUR.crypto.DSA();
                            } else {
                                if (r === "2a8648ce3d0201") {
                                    p = new KJUR.crypto.ECDSA();
                                } else {
                                    throw new Error("unsupported PKCS#8 public key hex");
                                }
                            }
                        }
                        p.readPKCS8PubKeyHex(q);
                        return p;
                    },
                    parsePublicRawRSAKeyHex: function parsePublicRawRSAKeyHex(r) {
                        var u = ASN1HEX;
                        var t2 = u.getChildIdx;
                        var s = u.getV;
                        var p = {};
                        if (r.substr(0, 2) != "30") {
                            throw new Error("malformed RSA key(code:001)");
                        }
                        var q = t2(r, 0);
                        if (q.length != 2) {
                            throw new Error("malformed RSA key(code:002)");
                        }
                        if (r.substr(q[0], 2) != "02") {
                            throw new Error("malformed RSA key(code:003)");
                        }
                        p.n = s(r, q[0]);
                        if (r.substr(q[1], 2) != "02") {
                            throw new Error("malformed RSA key(code:004)");
                        }
                        p.e = s(r, q[1]);
                        return p;
                    },
                    parsePublicPKCS8Hex: function parsePublicPKCS8Hex(t2) {
                        var v = ASN1HEX;
                        var u = v.getChildIdx;
                        var s = v.getV;
                        var q = {};
                        q.algparam = null;
                        var r = u(t2, 0);
                        if (r.length != 2) {
                            throw new Error("outer DERSequence shall have 2 elements: " + r.length);
                        }
                        var w = r[0];
                        if (t2.substr(w, 2) != "30") {
                            throw new Error("malformed PKCS8 public key(code:001)");
                        }
                        var p = u(t2, w);
                        if (p.length != 2) {
                            throw new Error("malformed PKCS8 public key(code:002)");
                        }
                        if (t2.substr(p[0], 2) != "06") {
                            throw new Error("malformed PKCS8 public key(code:003)");
                        }
                        q.algoid = s(t2, p[0]);
                        if (t2.substr(p[1], 2) == "06") {
                            q.algparam = s(t2, p[1]);
                        } else {
                            if (t2.substr(p[1], 2) == "30") {
                                q.algparam = {};
                                q.algparam.p = v.getVbyList(t2, p[1], [
                                    0
                                ], "02");
                                q.algparam.q = v.getVbyList(t2, p[1], [
                                    1
                                ], "02");
                                q.algparam.g = v.getVbyList(t2, p[1], [
                                    2
                                ], "02");
                            }
                        }
                        if (t2.substr(r[1], 2) != "03") {
                            throw new Error("malformed PKCS8 public key(code:004)");
                        }
                        q.key = s(t2, r[1]).substr(2);
                        return q;
                    }
                };
            }();
            KEYUTIL.getKey = function(l, k, n) {
                var G = ASN1HEX, L = G.getChildIdx, v = G.getV, d = G.getVbyList, c = KJUR.crypto, i = c.ECDSA, C = c.DSA, w = RSAKey, M = pemtohex, F = KEYUTIL;
                if (typeof w != "undefined" && l instanceof w) {
                    return l;
                }
                if (typeof i != "undefined" && l instanceof i) {
                    return l;
                }
                if (typeof C != "undefined" && l instanceof C) {
                    return l;
                }
                if (l.curve !== void 0 && l.xy !== void 0 && l.d === void 0) {
                    return new i({
                        pub: l.xy,
                        curve: l.curve
                    });
                }
                if (l.curve !== void 0 && l.d !== void 0) {
                    return new i({
                        prv: l.d,
                        curve: l.curve
                    });
                }
                if (l.kty === void 0 && l.n !== void 0 && l.e !== void 0 && l.d === void 0) {
                    var P = new w();
                    P.setPublic(l.n, l.e);
                    return P;
                }
                if (l.kty === void 0 && l.n !== void 0 && l.e !== void 0 && l.d !== void 0 && l.p !== void 0 && l.q !== void 0 && l.dp !== void 0 && l.dq !== void 0 && l.co !== void 0 && l.qi === void 0) {
                    var P = new w();
                    P.setPrivateEx(l.n, l.e, l.d, l.p, l.q, l.dp, l.dq, l.co);
                    return P;
                }
                if (l.kty === void 0 && l.n !== void 0 && l.e !== void 0 && l.d !== void 0 && l.p === void 0) {
                    var P = new w();
                    P.setPrivate(l.n, l.e, l.d);
                    return P;
                }
                if (l.p !== void 0 && l.q !== void 0 && l.g !== void 0 && l.y !== void 0 && l.x === void 0) {
                    var P = new C();
                    P.setPublic(l.p, l.q, l.g, l.y);
                    return P;
                }
                if (l.p !== void 0 && l.q !== void 0 && l.g !== void 0 && l.y !== void 0 && l.x !== void 0) {
                    var P = new C();
                    P.setPrivate(l.p, l.q, l.g, l.y, l.x);
                    return P;
                }
                if (l.kty === "RSA" && l.n !== void 0 && l.e !== void 0 && l.d === void 0) {
                    var P = new w();
                    P.setPublic(b64utohex(l.n), b64utohex(l.e));
                    return P;
                }
                if (l.kty === "RSA" && l.n !== void 0 && l.e !== void 0 && l.d !== void 0 && l.p !== void 0 && l.q !== void 0 && l.dp !== void 0 && l.dq !== void 0 && l.qi !== void 0) {
                    var P = new w();
                    P.setPrivateEx(b64utohex(l.n), b64utohex(l.e), b64utohex(l.d), b64utohex(l.p), b64utohex(l.q), b64utohex(l.dp), b64utohex(l.dq), b64utohex(l.qi));
                    return P;
                }
                if (l.kty === "RSA" && l.n !== void 0 && l.e !== void 0 && l.d !== void 0) {
                    var P = new w();
                    P.setPrivate(b64utohex(l.n), b64utohex(l.e), b64utohex(l.d));
                    return P;
                }
                if (l.kty === "EC" && l.crv !== void 0 && l.x !== void 0 && l.y !== void 0 && l.d === void 0) {
                    var j = new i({
                        curve: l.crv
                    });
                    var t2 = j.ecparams.keycharlen;
                    var B = ("0000000000" + b64utohex(l.x)).slice(-t2);
                    var z2 = ("0000000000" + b64utohex(l.y)).slice(-t2);
                    var u = "04" + B + z2;
                    j.setPublicKeyHex(u);
                    return j;
                }
                if (l.kty === "EC" && l.crv !== void 0 && l.x !== void 0 && l.y !== void 0 && l.d !== void 0) {
                    var j = new i({
                        curve: l.crv
                    });
                    var t2 = j.ecparams.keycharlen;
                    var B = ("0000000000" + b64utohex(l.x)).slice(-t2);
                    var z2 = ("0000000000" + b64utohex(l.y)).slice(-t2);
                    var u = "04" + B + z2;
                    var b = ("0000000000" + b64utohex(l.d)).slice(-t2);
                    j.setPublicKeyHex(u);
                    j.setPrivateKeyHex(b);
                    return j;
                }
                if (n === "pkcs5prv") {
                    var J = l, G = ASN1HEX, N, P;
                    N = L(J, 0);
                    if (N.length === 9) {
                        P = new w();
                        P.readPKCS5PrvKeyHex(J);
                    } else {
                        if (N.length === 6) {
                            P = new C();
                            P.readPKCS5PrvKeyHex(J);
                        } else {
                            if (N.length > 2 && J.substr(N[1], 2) === "04") {
                                P = new i();
                                P.readPKCS5PrvKeyHex(J);
                            } else {
                                throw new Error("unsupported PKCS#1/5 hexadecimal key");
                            }
                        }
                    }
                    return P;
                }
                if (n === "pkcs8prv") {
                    var P = F.getKeyFromPlainPrivatePKCS8Hex(l);
                    return P;
                }
                if (n === "pkcs8pub") {
                    return F._getKeyFromPublicPKCS8Hex(l);
                }
                if (n === "x509pub") {
                    return X509.getPublicKeyFromCertHex(l);
                }
                if (l.indexOf("-END CERTIFICATE-", 0) != -1 || l.indexOf("-END X509 CERTIFICATE-", 0) != -1 || l.indexOf("-END TRUSTED CERTIFICATE-", 0) != -1) {
                    return X509.getPublicKeyFromCertPEM(l);
                }
                if (l.indexOf("-END PUBLIC KEY-") != -1) {
                    var O = pemtohex(l, "PUBLIC KEY");
                    return F._getKeyFromPublicPKCS8Hex(O);
                }
                if (l.indexOf("-END RSA PRIVATE KEY-") != -1 && l.indexOf("4,ENCRYPTED") == -1) {
                    var m = M(l, "RSA PRIVATE KEY");
                    return F.getKey(m, null, "pkcs5prv");
                }
                if (l.indexOf("-END DSA PRIVATE KEY-") != -1 && l.indexOf("4,ENCRYPTED") == -1) {
                    var I = M(l, "DSA PRIVATE KEY");
                    var E = d(I, 0, [
                        1
                    ], "02");
                    var D = d(I, 0, [
                        2
                    ], "02");
                    var K = d(I, 0, [
                        3
                    ], "02");
                    var r = d(I, 0, [
                        4
                    ], "02");
                    var s = d(I, 0, [
                        5
                    ], "02");
                    var P = new C();
                    P.setPrivate(new BigInteger(E, 16), new BigInteger(D, 16), new BigInteger(K, 16), new BigInteger(r, 16), new BigInteger(s, 16));
                    return P;
                }
                if (l.indexOf("-END EC PRIVATE KEY-") != -1 && l.indexOf("4,ENCRYPTED") == -1) {
                    var m = M(l, "EC PRIVATE KEY");
                    return F.getKey(m, null, "pkcs5prv");
                }
                if (l.indexOf("-END PRIVATE KEY-") != -1) {
                    return F.getKeyFromPlainPrivatePKCS8PEM(l);
                }
                if (l.indexOf("-END RSA PRIVATE KEY-") != -1 && l.indexOf("4,ENCRYPTED") != -1) {
                    var o = F.getDecryptedKeyHex(l, k);
                    var H = new RSAKey();
                    H.readPKCS5PrvKeyHex(o);
                    return H;
                }
                if (l.indexOf("-END EC PRIVATE KEY-") != -1 && l.indexOf("4,ENCRYPTED") != -1) {
                    var I = F.getDecryptedKeyHex(l, k);
                    var P = d(I, 0, [
                        1
                    ], "04");
                    var f = d(I, 0, [
                        2,
                        0
                    ], "06");
                    var A = d(I, 0, [
                        3,
                        0
                    ], "03").substr(2);
                    var e = "";
                    if (KJUR.crypto.OID.oidhex2name[f] !== void 0) {
                        e = KJUR.crypto.OID.oidhex2name[f];
                    } else {
                        throw new Error("undefined OID(hex) in KJUR.crypto.OID: " + f);
                    }
                    var j = new i({
                        curve: e
                    });
                    j.setPublicKeyHex(A);
                    j.setPrivateKeyHex(P);
                    j.isPublic = false;
                    return j;
                }
                if (l.indexOf("-END DSA PRIVATE KEY-") != -1 && l.indexOf("4,ENCRYPTED") != -1) {
                    var I = F.getDecryptedKeyHex(l, k);
                    var E = d(I, 0, [
                        1
                    ], "02");
                    var D = d(I, 0, [
                        2
                    ], "02");
                    var K = d(I, 0, [
                        3
                    ], "02");
                    var r = d(I, 0, [
                        4
                    ], "02");
                    var s = d(I, 0, [
                        5
                    ], "02");
                    var P = new C();
                    P.setPrivate(new BigInteger(E, 16), new BigInteger(D, 16), new BigInteger(K, 16), new BigInteger(r, 16), new BigInteger(s, 16));
                    return P;
                }
                if (l.indexOf("-END ENCRYPTED PRIVATE KEY-") != -1) {
                    return F.getKeyFromEncryptedPKCS8PEM(l, k);
                }
                throw new Error("not supported argument");
            };
            KEYUTIL.generateKeypair = function(a, c) {
                if (a == "RSA") {
                    var b = c;
                    var h = new RSAKey();
                    h.generate(b, "10001");
                    h.isPrivate = true;
                    h.isPublic = true;
                    var f = new RSAKey();
                    var e = h.n.toString(16);
                    var i = h.e.toString(16);
                    f.setPublic(e, i);
                    f.isPrivate = false;
                    f.isPublic = true;
                    var k = {};
                    k.prvKeyObj = h;
                    k.pubKeyObj = f;
                    return k;
                } else {
                    if (a == "EC") {
                        var d = c;
                        var g = new KJUR.crypto.ECDSA({
                            curve: d
                        });
                        var j = g.generateKeyPairHex();
                        var h = new KJUR.crypto.ECDSA({
                            curve: d
                        });
                        h.setPublicKeyHex(j.ecpubhex);
                        h.setPrivateKeyHex(j.ecprvhex);
                        h.isPrivate = true;
                        h.isPublic = false;
                        var f = new KJUR.crypto.ECDSA({
                            curve: d
                        });
                        f.setPublicKeyHex(j.ecpubhex);
                        f.isPrivate = false;
                        f.isPublic = true;
                        var k = {};
                        k.prvKeyObj = h;
                        k.pubKeyObj = f;
                        return k;
                    } else {
                        throw new Error("unknown algorithm: " + a);
                    }
                }
            };
            KEYUTIL.getPEM = function(b, C, x, m, p, j) {
                var E = KJUR, k = E.asn1, y = k.DERObjectIdentifier, e = k.DERInteger, l = k.ASN1Util.newObject, a = k.x509, B = a.SubjectPublicKeyInfo, d = E.crypto, t2 = d.DSA, q = d.ECDSA, n = RSAKey;
                function z2(s) {
                    var G = l({
                        seq: [
                            {
                                int: 0
                            },
                            {
                                int: {
                                    bigint: s.n
                                }
                            },
                            {
                                int: s.e
                            },
                            {
                                int: {
                                    bigint: s.d
                                }
                            },
                            {
                                int: {
                                    bigint: s.p
                                }
                            },
                            {
                                int: {
                                    bigint: s.q
                                }
                            },
                            {
                                int: {
                                    bigint: s.dmp1
                                }
                            },
                            {
                                int: {
                                    bigint: s.dmq1
                                }
                            },
                            {
                                int: {
                                    bigint: s.coeff
                                }
                            }
                        ]
                    });
                    return G;
                }
                function A(G) {
                    var s = l({
                        seq: [
                            {
                                int: 1
                            },
                            {
                                octstr: {
                                    hex: G.prvKeyHex
                                }
                            },
                            {
                                tag: [
                                    "a0",
                                    true,
                                    {
                                        oid: {
                                            name: G.curveName
                                        }
                                    }
                                ]
                            },
                            {
                                tag: [
                                    "a1",
                                    true,
                                    {
                                        bitstr: {
                                            hex: "00" + G.pubKeyHex
                                        }
                                    }
                                ]
                            }
                        ]
                    });
                    return s;
                }
                function w(s) {
                    var G = l({
                        seq: [
                            {
                                int: 0
                            },
                            {
                                int: {
                                    bigint: s.p
                                }
                            },
                            {
                                int: {
                                    bigint: s.q
                                }
                            },
                            {
                                int: {
                                    bigint: s.g
                                }
                            },
                            {
                                int: {
                                    bigint: s.y
                                }
                            },
                            {
                                int: {
                                    bigint: s.x
                                }
                            }
                        ]
                    });
                    return G;
                }
                if ((n !== void 0 && b instanceof n || t2 !== void 0 && b instanceof t2 || q !== void 0 && b instanceof q) && b.isPublic == true && (C === void 0 || C == "PKCS8PUB")) {
                    var D = new B(b);
                    var v = D.tohex();
                    return hextopem(v, "PUBLIC KEY");
                }
                if (C == "PKCS1PRV" && n !== void 0 && b instanceof n && (x === void 0 || x == null) && b.isPrivate == true) {
                    var D = z2(b);
                    var v = D.tohex();
                    return hextopem(v, "RSA PRIVATE KEY");
                }
                if (C == "PKCS1PRV" && q !== void 0 && b instanceof q && (x === void 0 || x == null) && b.isPrivate == true) {
                    var i = new y({
                        name: b.curveName
                    });
                    var u = i.tohex();
                    var h = A(b);
                    var r = h.tohex();
                    var o = "";
                    o += hextopem(u, "EC PARAMETERS");
                    o += hextopem(r, "EC PRIVATE KEY");
                    return o;
                }
                if (C == "PKCS1PRV" && t2 !== void 0 && b instanceof t2 && (x === void 0 || x == null) && b.isPrivate == true) {
                    var D = w(b);
                    var v = D.tohex();
                    return hextopem(v, "DSA PRIVATE KEY");
                }
                if (C == "PKCS5PRV" && n !== void 0 && b instanceof n && x !== void 0 && x != null && b.isPrivate == true) {
                    var D = z2(b);
                    var v = D.tohex();
                    if (m === void 0) {
                        m = "DES-EDE3-CBC";
                    }
                    return this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA", v, x, m, j);
                }
                if (C == "PKCS5PRV" && q !== void 0 && b instanceof q && x !== void 0 && x != null && b.isPrivate == true) {
                    var D = A(b);
                    var v = D.tohex();
                    if (m === void 0) {
                        m = "DES-EDE3-CBC";
                    }
                    return this.getEncryptedPKCS5PEMFromPrvKeyHex("EC", v, x, m, j);
                }
                if (C == "PKCS5PRV" && t2 !== void 0 && b instanceof t2 && x !== void 0 && x != null && b.isPrivate == true) {
                    var D = w(b);
                    var v = D.tohex();
                    if (m === void 0) {
                        m = "DES-EDE3-CBC";
                    }
                    return this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA", v, x, m, j);
                }
                var f = function f(G, H) {
                    if (typeof H == "string") {
                        return KEYUTIL.getEncryptedPKCS8PEM(G, H);
                    } else {
                        if ((typeof H === "undefined" ? "undefined" : _type_of(H)) == "object" && aryval(H, "passcode") != void 0) {
                            var I = JSON.parse(JSON.stringify(H));
                            var s = I.passcode;
                            delete I.passcode;
                            return KEYUTIL.getEncryptedPKCS8PEM(G, s, I);
                        }
                    }
                };
                if (C == "PKCS8PRV" && n != void 0 && b instanceof n && b.isPrivate == true) {
                    var g = z2(b);
                    var c = g.tohex();
                    var D = l({
                        seq: [
                            {
                                int: 0
                            },
                            {
                                seq: [
                                    {
                                        oid: {
                                            name: "rsaEncryption"
                                        }
                                    },
                                    {
                                        "null": true
                                    }
                                ]
                            },
                            {
                                octstr: {
                                    hex: c
                                }
                            }
                        ]
                    });
                    var v = D.tohex();
                    if (x === void 0 || x == null) {
                        return hextopem(v, "PRIVATE KEY");
                    } else {
                        return f(v, x);
                    }
                }
                if (C == "PKCS8PRV" && q !== void 0 && b instanceof q && b.isPrivate == true) {
                    var F = {
                        seq: [
                            {
                                int: 1
                            },
                            {
                                octstr: {
                                    hex: b.prvKeyHex
                                }
                            }
                        ]
                    };
                    if (typeof b.pubKeyHex == "string") {
                        F.seq.push({
                            tag: [
                                "a1",
                                true,
                                {
                                    bitstr: {
                                        hex: "00" + b.pubKeyHex
                                    }
                                }
                            ]
                        });
                    }
                    var g = new l(F);
                    var c = g.tohex();
                    var D = l({
                        seq: [
                            {
                                int: 0
                            },
                            {
                                seq: [
                                    {
                                        oid: {
                                            name: "ecPublicKey"
                                        }
                                    },
                                    {
                                        oid: {
                                            name: b.curveName
                                        }
                                    }
                                ]
                            },
                            {
                                octstr: {
                                    hex: c
                                }
                            }
                        ]
                    });
                    var v = D.tohex();
                    if (x === void 0 || x == null) {
                        return hextopem(v, "PRIVATE KEY");
                    } else {
                        return f(v, x);
                    }
                }
                if (C == "PKCS8PRV" && t2 !== void 0 && b instanceof t2 && b.isPrivate == true) {
                    var g = new e({
                        bigint: b.x
                    });
                    var c = g.tohex();
                    var D = l({
                        seq: [
                            {
                                int: 0
                            },
                            {
                                seq: [
                                    {
                                        oid: {
                                            name: "dsa"
                                        }
                                    },
                                    {
                                        seq: [
                                            {
                                                int: {
                                                    bigint: b.p
                                                }
                                            },
                                            {
                                                int: {
                                                    bigint: b.q
                                                }
                                            },
                                            {
                                                int: {
                                                    bigint: b.g
                                                }
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                octstr: {
                                    hex: c
                                }
                            }
                        ]
                    });
                    var v = D.tohex();
                    if (x === void 0 || x == null) {
                        return hextopem(v, "PRIVATE KEY");
                    } else {
                        return f(v, x);
                    }
                }
                throw new Error("unsupported object nor format");
            };
            KEYUTIL.getKeyFromCSRPEM = function(b) {
                var a = pemtohex(b, "CERTIFICATE REQUEST");
                var c = KEYUTIL.getKeyFromCSRHex(a);
                return c;
            };
            KEYUTIL.getKeyFromCSRHex = function(a) {
                var c = KEYUTIL.parseCSRHex(a);
                var b = KEYUTIL.getKey(c.p8pubkeyhex, null, "pkcs8pub");
                return b;
            };
            KEYUTIL.parseCSRHex = function(d) {
                var i = ASN1HEX;
                var f = i.getChildIdx;
                var c = i.getTLV;
                var b = {};
                var g = d;
                if (g.substr(0, 2) != "30") {
                    throw new Error("malformed CSR(code:001)");
                }
                var e = f(g, 0);
                if (e.length < 1) {
                    throw new Error("malformed CSR(code:002)");
                }
                if (g.substr(e[0], 2) != "30") {
                    throw new Error("malformed CSR(code:003)");
                }
                var a = f(g, e[0]);
                if (a.length < 3) {
                    throw new Error("malformed CSR(code:004)");
                }
                b.p8pubkeyhex = c(g, a[2]);
                return b;
            };
            KEYUTIL.getKeyID = function(f) {
                var c = KEYUTIL;
                var e = ASN1HEX;
                if (typeof f === "string" && f.indexOf("BEGIN ") != -1) {
                    f = c.getKey(f);
                }
                var d = pemtohex(c.getPEM(f));
                var b = e.getIdxbyList(d, 0, [
                    1
                ]);
                var a = e.getV(d, b).substring(2);
                return KJUR.crypto.Util.hashHex(a, "sha1");
            };
            KEYUTIL.getJWK = function(d, h, g, b, f) {
                var i;
                var k = {};
                var e;
                var c = KJUR.crypto.Util.hashHex;
                if (typeof d == "string") {
                    i = KEYUTIL.getKey(d);
                    if (d.indexOf("CERTIFICATE") != -1) {
                        e = pemtohex(d);
                    }
                } else {
                    if ((typeof d === "undefined" ? "undefined" : _type_of(d)) == "object") {
                        if (d instanceof X509) {
                            i = d.getPublicKey();
                            e = d.hex;
                        } else {
                            i = d;
                        }
                    } else {
                        throw new Error("unsupported keyinfo type");
                    }
                }
                if (i instanceof RSAKey && i.isPrivate) {
                    k.kty = "RSA";
                    k.n = hextob64u(i.n.toString(16));
                    k.e = hextob64u(i.e.toString(16));
                    k.d = hextob64u(i.d.toString(16));
                    k.p = hextob64u(i.p.toString(16));
                    k.q = hextob64u(i.q.toString(16));
                    k.dp = hextob64u(i.dmp1.toString(16));
                    k.dq = hextob64u(i.dmq1.toString(16));
                    k.qi = hextob64u(i.coeff.toString(16));
                } else {
                    if (i instanceof RSAKey && i.isPublic) {
                        k.kty = "RSA";
                        k.n = hextob64u(i.n.toString(16));
                        k.e = hextob64u(i.e.toString(16));
                    } else {
                        if (i instanceof KJUR.crypto.ECDSA && i.isPrivate) {
                            var a = i.getShortNISTPCurveName();
                            if (a !== "P-256" && a !== "P-384" && a !== "P-521") {
                                throw new Error("unsupported curve name for JWT: " + a);
                            }
                            var j = i.getPublicKeyXYHex();
                            k.kty = "EC";
                            k.crv = a;
                            k.x = hextob64u(j.x);
                            k.y = hextob64u(j.y);
                            k.d = hextob64u(i.prvKeyHex);
                        } else {
                            if (i instanceof KJUR.crypto.ECDSA && i.isPublic) {
                                var a = i.getShortNISTPCurveName();
                                if (a !== "P-256" && a !== "P-384" && a !== "P-521") {
                                    throw new Error("unsupported curve name for JWT: " + a);
                                }
                                var j = i.getPublicKeyXYHex();
                                k.kty = "EC";
                                k.crv = a;
                                k.x = hextob64u(j.x);
                                k.y = hextob64u(j.y);
                            }
                        }
                    }
                }
                if (k.kty == void 0) {
                    throw new Error("unsupported keyinfo");
                }
                if (!i.isPrivate && h != true) {
                    k.kid = KJUR.jws.JWS.getJWKthumbprint(k);
                }
                if (e != void 0 && g != true) {
                    k.x5c = [
                        hex2b64(e)
                    ];
                }
                if (e != void 0 && b != true) {
                    k.x5t = b64tob64u(hex2b64(c(e, "sha1")));
                }
                if (e != void 0 && f != true) {
                    k["x5t#S256"] = b64tob64u(hex2b64(c(e, "sha256")));
                }
                return k;
            };
            KEYUTIL.getJWKFromKey = function(a) {
                return KEYUTIL.getJWK(a, true, true, true, true);
            };
            RSAKey.getPosArrayOfChildrenFromHex = function(a) {
                return ASN1HEX.getChildIdx(a, 0);
            };
            RSAKey.getHexValueArrayOfChildrenFromHex = function(f) {
                var n = ASN1HEX;
                var i = n.getV;
                var k = RSAKey.getPosArrayOfChildrenFromHex(f);
                var e = i(f, k[0]);
                var j = i(f, k[1]);
                var b = i(f, k[2]);
                var c = i(f, k[3]);
                var h = i(f, k[4]);
                var g = i(f, k[5]);
                var m = i(f, k[6]);
                var l = i(f, k[7]);
                var d = i(f, k[8]);
                var k = new Array();
                k.push(e, j, b, c, h, g, m, l, d);
                return k;
            };
            RSAKey.prototype.readPrivateKeyFromPEMString = function(d) {
                var c = pemtohex(d);
                var b = RSAKey.getHexValueArrayOfChildrenFromHex(c);
                this.setPrivateEx(b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]);
            };
            RSAKey.prototype.readPKCS5PrvKeyHex = function(c) {
                var b = RSAKey.getHexValueArrayOfChildrenFromHex(c);
                this.setPrivateEx(b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]);
            };
            RSAKey.prototype.readPKCS8PrvKeyHex = function(e) {
                var c, i, k, b, a, f, d, j;
                var m = ASN1HEX;
                var l = m.getVbyListEx;
                if (m.isASN1HEX(e) === false) {
                    throw new Error("not ASN.1 hex string");
                }
                try {
                    c = l(e, 0, [
                        2,
                        0,
                        1
                    ], "02");
                    i = l(e, 0, [
                        2,
                        0,
                        2
                    ], "02");
                    k = l(e, 0, [
                        2,
                        0,
                        3
                    ], "02");
                    b = l(e, 0, [
                        2,
                        0,
                        4
                    ], "02");
                    a = l(e, 0, [
                        2,
                        0,
                        5
                    ], "02");
                    f = l(e, 0, [
                        2,
                        0,
                        6
                    ], "02");
                    d = l(e, 0, [
                        2,
                        0,
                        7
                    ], "02");
                    j = l(e, 0, [
                        2,
                        0,
                        8
                    ], "02");
                } catch (g) {
                    throw new Error("malformed PKCS#8 plain RSA private key");
                }
                this.setPrivateEx(c, i, k, b, a, f, d, j);
            };
            RSAKey.prototype.readPKCS5PubKeyHex = function(c) {
                var e = ASN1HEX;
                var b = e.getV;
                if (e.isASN1HEX(c) === false) {
                    throw new Error("keyHex is not ASN.1 hex string");
                }
                var a = e.getChildIdx(c, 0);
                if (a.length !== 2 || c.substr(a[0], 2) !== "02" || c.substr(a[1], 2) !== "02") {
                    throw new Error("wrong hex for PKCS#5 public key");
                }
                var f = b(c, a[0]);
                var d = b(c, a[1]);
                this.setPublic(f, d);
            };
            RSAKey.prototype.readPKCS8PubKeyHex = function(b) {
                var c = ASN1HEX;
                if (c.isASN1HEX(b) === false) {
                    throw new Error("not ASN.1 hex string");
                }
                if (c.getTLVbyListEx(b, 0, [
                    0,
                    0
                ]) !== "06092a864886f70d010101") {
                    throw new Error("not PKCS8 RSA public key");
                }
                var a = c.getTLVbyListEx(b, 0, [
                    1,
                    0
                ]);
                this.readPKCS5PubKeyHex(a);
            };
            RSAKey.prototype.readCertPubKeyHex = function(b, d) {
                var a, c;
                a = new X509();
                a.readCertHex(b);
                c = a.getPublicKeyHex();
                this.readPKCS8PubKeyHex(c);
            };
            var _RE_HEXDECONLY = new RegExp("[^0-9a-f]", "gi");
            function _zeroPaddingOfSignature(e, d) {
                var c = "";
                var a = d / 4 - e.length;
                for(var b = 0; b < a; b++){
                    c = c + "0";
                }
                return c + e;
            }
            RSAKey.prototype.sign = function(d, a) {
                var b = function b(e) {
                    return KJUR.crypto.Util.hashString(e, a);
                };
                var c = b(d);
                return this.signWithMessageHash(c, a);
            };
            RSAKey.prototype.signWithMessageHash = function(e, c) {
                var f = KJUR.crypto.Util.getPaddedDigestInfoHex(e, c, this.n.bitLength());
                var b = parseBigInt(f, 16);
                var d = this.doPrivate(b);
                var a = d.toString(16);
                return _zeroPaddingOfSignature(a, this.n.bitLength());
            };
            function pss_mgf1_str(c, a, e) {
                var b = "", d = 0;
                while(b.length < a){
                    b += hextorstr(e(rstrtohex(c + String.fromCharCode.apply(String, [
                        (d & 4278190080) >> 24,
                        (d & 16711680) >> 16,
                        (d & 65280) >> 8,
                        d & 255
                    ]))));
                    d += 1;
                }
                return b;
            }
            RSAKey.prototype.signPSS = function(e, a, d) {
                var c = function c(f) {
                    return KJUR.crypto.Util.hashHex(f, a);
                };
                var b = c(rstrtohex(e));
                if (d === void 0) {
                    d = -1;
                }
                return this.signWithMessageHashPSS(b, a, d);
            };
            RSAKey.prototype.signWithMessageHashPSS = function(l, a, k) {
                var b = hextorstr(l);
                var g = b.length;
                var m = this.n.bitLength() - 1;
                var c = Math.ceil(m / 8);
                var d;
                var o = function o(i) {
                    return KJUR.crypto.Util.hashHex(i, a);
                };
                if (k === -1 || k === void 0) {
                    k = g;
                } else {
                    if (k === -2) {
                        k = c - g - 2;
                    } else {
                        if (k < -2) {
                            throw new Error("invalid salt length");
                        }
                    }
                }
                if (c < g + k + 2) {
                    throw new Error("data too long");
                }
                var f = "";
                if (k > 0) {
                    f = new Array(k);
                    new SecureRandom().nextBytes(f);
                    f = String.fromCharCode.apply(String, f);
                }
                var n = hextorstr(o(rstrtohex("\0\0\0\0\0\0\0\0" + b + f)));
                var j = [];
                for(d = 0; d < c - k - g - 2; d += 1){
                    j[d] = 0;
                }
                var e = String.fromCharCode.apply(String, j) + "" + f;
                var h = pss_mgf1_str(n, e.length, o);
                var q = [];
                for(d = 0; d < e.length; d += 1){
                    q[d] = e.charCodeAt(d) ^ h.charCodeAt(d);
                }
                var p = 65280 >> 8 * c - m & 255;
                q[0] &= ~p;
                for(d = 0; d < g; d++){
                    q.push(n.charCodeAt(d));
                }
                q.push(188);
                return _zeroPaddingOfSignature(this.doPrivate(new BigInteger(q)).toString(16), this.n.bitLength());
            };
            function _rsasign_getAlgNameAndHashFromHexDisgestInfo(f) {
                for(var e in KJUR.crypto.Util.DIGESTINFOHEAD){
                    var d = KJUR.crypto.Util.DIGESTINFOHEAD[e];
                    var b = d.length;
                    if (f.substring(0, b) == d) {
                        var c = [
                            e,
                            f.substring(b)
                        ];
                        return c;
                    }
                }
                return [];
            }
            RSAKey.prototype.verify = function(f, l) {
                l = l.toLowerCase();
                if (l.match(/^[0-9a-f]+$/) == null) {
                    return false;
                }
                var b = parseBigInt(l, 16);
                var k = this.n.bitLength();
                if (b.bitLength() > k) {
                    return false;
                }
                var j = this.doPublic(b);
                var i = j.toString(16);
                if (i.length + 3 != k / 4) {
                    return false;
                }
                var e = i.replace(/^1f+00/, "");
                var g = _rsasign_getAlgNameAndHashFromHexDisgestInfo(e);
                if (g.length == 0) {
                    return false;
                }
                var d = g[0];
                var h = g[1];
                var a = function a(m) {
                    return KJUR.crypto.Util.hashString(m, d);
                };
                var c = a(f);
                return h == c;
            };
            RSAKey.prototype.verifyWithMessageHash = function(e, a) {
                if (a.length != Math.ceil(this.n.bitLength() / 4)) {
                    return false;
                }
                var b = parseBigInt(a, 16);
                if (b.bitLength() > this.n.bitLength()) {
                    return 0;
                }
                var h = this.doPublic(b);
                var g = h.toString(16).replace(/^1f+00/, "");
                var c = _rsasign_getAlgNameAndHashFromHexDisgestInfo(g);
                if (c.length == 0) {
                    return false;
                }
                var d = c[0];
                var f = c[1];
                return f == e;
            };
            RSAKey.prototype.verifyPSS = function(c, b, a, f) {
                var e = function e(g) {
                    return KJUR.crypto.Util.hashHex(g, a);
                };
                var d = e(rstrtohex(c));
                if (f === void 0) {
                    f = -1;
                }
                return this.verifyWithMessageHashPSS(d, b, a, f);
            };
            RSAKey.prototype.verifyWithMessageHashPSS = function(f, s, l, c) {
                if (s.length != Math.ceil(this.n.bitLength() / 4)) {
                    return false;
                }
                var k = new BigInteger(s, 16);
                var r = function r(i) {
                    return KJUR.crypto.Util.hashHex(i, l);
                };
                var j = hextorstr(f);
                var h = j.length;
                var g = this.n.bitLength() - 1;
                var m = Math.ceil(g / 8);
                var q;
                if (c === -1 || c === void 0) {
                    c = h;
                } else {
                    if (c === -2) {
                        c = m - h - 2;
                    } else {
                        if (c < -2) {
                            throw new Error("invalid salt length");
                        }
                    }
                }
                if (m < h + c + 2) {
                    throw new Error("data too long");
                }
                var a = this.doPublic(k).toByteArray();
                for(q = 0; q < a.length; q += 1){
                    a[q] &= 255;
                }
                while(a.length < m){
                    a.unshift(0);
                }
                if (a[m - 1] !== 188) {
                    throw new Error("encoded message does not end in 0xbc");
                }
                a = String.fromCharCode.apply(String, a);
                var d = a.substr(0, m - h - 1);
                var e = a.substr(d.length, h);
                var p = 65280 >> 8 * m - g & 255;
                if ((d.charCodeAt(0) & p) !== 0) {
                    throw new Error("bits beyond keysize not zero");
                }
                var n = pss_mgf1_str(e, d.length, r);
                var o = [];
                for(q = 0; q < d.length; q += 1){
                    o[q] = d.charCodeAt(q) ^ n.charCodeAt(q);
                }
                o[0] &= ~p;
                var b = m - h - c - 2;
                for(q = 0; q < b; q += 1){
                    if (o[q] !== 0) {
                        throw new Error("leftmost octets not zero");
                    }
                }
                if (o[b] !== 1) {
                    throw new Error("0x01 marker not found");
                }
                return e === hextorstr(r(rstrtohex("\0\0\0\0\0\0\0\0" + j + String.fromCharCode.apply(String, o.slice(-c)))));
            };
            RSAKey.SALT_LEN_HLEN = -1;
            RSAKey.SALT_LEN_MAX = -2;
            RSAKey.SALT_LEN_RECOVER = -2;
            function X509(v) {
                var o = ASN1HEX, s = o.getChildIdx, k = o.getV, y = o.dump, j = o.parse, b = o.getTLV, c = o.getVbyList, p = o.getVbyListEx, a = o.getTLVbyList, q = o.getTLVbyListEx, l = o.getIdxbyList, f = o.getIdxbyListEx, n = o.getVidx, x = o.getInt, u = o.oidname, r = o.hextooidstr, d = X509, w = pemtohex, g, m = Error;
                try {
                    g = KJUR.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;
                } catch (t2) {}
                this.HEX2STAG = {
                    "0c": "utf8",
                    "13": "prn",
                    "16": "ia5",
                    "1a": "vis",
                    "1e": "bmp"
                };
                this.hex = null;
                this.version = 0;
                this.foffset = 0;
                this.aExtInfo = null;
                this.getVersion = function() {
                    if (this.hex === null || this.version !== 0) {
                        return this.version;
                    }
                    var A = a(this.hex, 0, [
                        0,
                        0
                    ]);
                    if (A.substr(0, 2) == "a0") {
                        var B = a(A, 0, [
                            0
                        ]);
                        var z2 = x(B, 0);
                        if (z2 < 0 || 2 < z2) {
                            throw new Error("malformed version field");
                        }
                        this.version = z2 + 1;
                        return this.version;
                    } else {
                        this.version = 1;
                        this.foffset = -1;
                        return 1;
                    }
                };
                this.getSerialNumberHex = function() {
                    return p(this.hex, 0, [
                        0,
                        0
                    ], "02");
                };
                this.getSignatureAlgorithmField = function() {
                    var z2 = q(this.hex, 0, [
                        0,
                        1
                    ]);
                    return this.getAlgorithmIdentifierName(z2);
                };
                this.getAlgorithmIdentifierName = function(z2) {
                    for(var A in g){
                        if (z2 === g[A]) {
                            return A;
                        }
                    }
                    return u(p(z2, 0, [
                        0
                    ], "06"));
                };
                this.getIssuer = function(A, z2) {
                    return this.getX500Name(this.getIssuerHex(), A, z2);
                };
                this.getIssuerHex = function() {
                    return a(this.hex, 0, [
                        0,
                        3 + this.foffset
                    ], "30");
                };
                this.getIssuerString = function() {
                    var z2 = this.getIssuer();
                    return z2.str;
                };
                this.getSubject = function(A, z2) {
                    return this.getX500Name(this.getSubjectHex(), A, z2);
                };
                this.getSubjectHex = function() {
                    return a(this.hex, 0, [
                        0,
                        5 + this.foffset
                    ], "30");
                };
                this.getSubjectString = function() {
                    var z2 = this.getSubject();
                    return z2.str;
                };
                this.getNotBefore = function() {
                    var z2 = c(this.hex, 0, [
                        0,
                        4 + this.foffset,
                        0
                    ]);
                    z2 = z2.replace(/(..)/g, "%$1");
                    z2 = decodeURIComponent(z2);
                    return z2;
                };
                this.getNotAfter = function() {
                    var z2 = c(this.hex, 0, [
                        0,
                        4 + this.foffset,
                        1
                    ]);
                    z2 = z2.replace(/(..)/g, "%$1");
                    z2 = decodeURIComponent(z2);
                    return z2;
                };
                this.getPublicKeyHex = function() {
                    return this.getSPKI();
                };
                this.getSPKI = function() {
                    return a(this.hex, 0, [
                        0,
                        6 + this.foffset
                    ], "30");
                };
                this.getSPKIValue = function() {
                    var z2 = this.getSPKI();
                    if (z2 == null) {
                        return null;
                    }
                    return c(z2, 0, [
                        1
                    ], "03", true);
                };
                this.getPublicKeyIdx = function() {
                    return l(this.hex, 0, [
                        0,
                        6 + this.foffset
                    ], "30");
                };
                this.getPublicKeyContentIdx = function() {
                    var z2 = this.getPublicKeyIdx();
                    return l(this.hex, z2, [
                        1,
                        0
                    ], "30");
                };
                this.getPublicKey = function() {
                    return KEYUTIL.getKey(this.getPublicKeyHex(), null, "pkcs8pub");
                };
                this.getSignatureAlgorithmName = function() {
                    var z2 = a(this.hex, 0, [
                        1
                    ], "30");
                    return this.getAlgorithmIdentifierName(z2);
                };
                this.getSignatureValueHex = function() {
                    return c(this.hex, 0, [
                        2
                    ], "03", true);
                };
                this.verifySignature = function(B) {
                    var C = this.getSignatureAlgorithmField();
                    var z2 = this.getSignatureValueHex();
                    var A = a(this.hex, 0, [
                        0
                    ], "30");
                    var D = new KJUR.crypto.Signature({
                        alg: C
                    });
                    D.init(B);
                    D.updateHex(A);
                    return D.verify(z2);
                };
                this.parseExt = function(I) {
                    var B, z2, D;
                    if (I === void 0) {
                        D = this.hex;
                        if (this.version !== 3) {
                            return -1;
                        }
                        B = l(D, 0, [
                            0,
                            7,
                            0
                        ], "30");
                        z2 = s(D, B);
                    } else {
                        D = pemtohex(I);
                        var E = l(D, 0, [
                            0,
                            3,
                            0,
                            0
                        ], "06");
                        if (k(D, E) != "2a864886f70d01090e") {
                            this.aExtInfo = new Array();
                            return;
                        }
                        B = l(D, 0, [
                            0,
                            3,
                            0,
                            1,
                            0
                        ], "30");
                        z2 = s(D, B);
                        this.hex = D;
                    }
                    this.aExtInfo = new Array();
                    for(var C = 0; C < z2.length; C++){
                        var G = {};
                        G.critical = false;
                        var F = s(D, z2[C]);
                        var A = 0;
                        if (F.length === 3) {
                            G.critical = true;
                            A = 1;
                        }
                        G.oid = o.hextooidstr(c(D, z2[C], [
                            0
                        ], "06"));
                        var H = l(D, z2[C], [
                            1 + A
                        ]);
                        G.vidx = n(D, H);
                        this.aExtInfo.push(G);
                    }
                };
                this.getExtInfo = function(B) {
                    var z2 = this.aExtInfo;
                    var C = B;
                    if (!B.match(/^[0-9.]+$/)) {
                        C = KJUR.asn1.x509.OID.name2oid(B);
                    }
                    if (C === "") {
                        return void 0;
                    }
                    for(var A = 0; A < z2.length; A++){
                        if (z2[A].oid === C) {
                            return z2[A];
                        }
                    }
                    return void 0;
                };
                this.getCriticalExtV = function(C, z2, B) {
                    if (z2 != void 0) {
                        return [
                            z2,
                            B
                        ];
                    }
                    var A = this.getExtInfo(C);
                    if (A == void 0) {
                        return [
                            null,
                            null
                        ];
                    }
                    return [
                        b(this.hex, A.vidx),
                        A.critical
                    ];
                };
                this.getExtBasicConstraints = function(A, E) {
                    if (A === void 0 && E === void 0) {
                        var C = this.getExtInfo("basicConstraints");
                        if (C === void 0) {
                            return void 0;
                        }
                        A = b(this.hex, C.vidx);
                        E = C.critical;
                    }
                    var z2 = {
                        extname: "basicConstraints"
                    };
                    if (E) {
                        z2.critical = true;
                    }
                    if (A === "3000") {
                        return z2;
                    }
                    if (A === "30030101ff") {
                        z2.cA = true;
                        return z2;
                    }
                    if (A.substr(0, 12) === "30060101ff02") {
                        var D = k(A, 10);
                        var B = parseInt(D, 16);
                        z2.cA = true;
                        z2.pathLen = B;
                        return z2;
                    }
                    throw new Error("hExtV parse error: " + A);
                };
                this.getExtNameConstraints = function(I, G) {
                    var A = this.getCriticalExtV("nameConstraints", I, G);
                    I = A[0];
                    G = A[1];
                    if (I == null) {
                        return void 0;
                    }
                    var K = {
                        extname: "nameConstraints"
                    };
                    if (G) {
                        K.critical = true;
                    }
                    var F = s(I, 0);
                    for(var D = 0; D < F.length; D++){
                        var E = [];
                        var B = s(I, F[D]);
                        for(var C = 0; C < B.length; C++){
                            var H = b(I, B[C]);
                            var z2 = this.getGeneralSubtree(H);
                            E.push(z2);
                        }
                        var J = I.substr(F[D], 2);
                        if (J == "a0") {
                            K.permit = E;
                        } else {
                            if (J == "a1") {
                                K.exclude = E;
                            }
                        }
                    }
                    return K;
                };
                this.getGeneralSubtree = function(F) {
                    var D = s(F, 0);
                    var C = D.length;
                    if (C < 1 || 2 < C) {
                        throw new Error("wrong num elements");
                    }
                    var B = this.getGeneralName(b(F, D[0]));
                    for(var E = 1; E < C; E++){
                        var A = F.substr(D[E], 2);
                        var z2 = k(F, D[E]);
                        var G = parseInt(z2, 16);
                        if (A == "80") {
                            B.min = G;
                        }
                        if (A == "81") {
                            B.max = G;
                        }
                    }
                    return B;
                };
                this.getExtKeyUsage = function(A, C) {
                    var B = this.getCriticalExtV("keyUsage", A, C);
                    A = B[0];
                    C = B[1];
                    if (A == null) {
                        return void 0;
                    }
                    var z2 = {
                        extname: "keyUsage"
                    };
                    if (C) {
                        z2.critical = true;
                    }
                    z2.names = this.getExtKeyUsageString(A).split(",");
                    return z2;
                };
                this.getExtKeyUsageBin = function(A) {
                    if (A === void 0) {
                        var B = this.getExtInfo("keyUsage");
                        if (B === void 0) {
                            return "";
                        }
                        A = b(this.hex, B.vidx);
                    }
                    if (A.length != 8 && A.length != 10) {
                        throw new Error("malformed key usage value: " + A);
                    }
                    var z2 = "000000000000000" + parseInt(A.substr(6), 16).toString(2);
                    if (A.length == 8) {
                        z2 = z2.slice(-8);
                    }
                    if (A.length == 10) {
                        z2 = z2.slice(-16);
                    }
                    z2 = z2.replace(/0+$/, "");
                    if (z2 == "") {
                        z2 = "0";
                    }
                    return z2;
                };
                this.getExtKeyUsageString = function(B) {
                    var C = this.getExtKeyUsageBin(B);
                    var z2 = new Array();
                    for(var A = 0; A < C.length; A++){
                        if (C.substr(A, 1) == "1") {
                            z2.push(X509.KEYUSAGE_NAME[A]);
                        }
                    }
                    return z2.join(",");
                };
                this.getExtSubjectKeyIdentifier = function(B, D) {
                    if (B === void 0 && D === void 0) {
                        var C = this.getExtInfo("subjectKeyIdentifier");
                        if (C === void 0) {
                            return void 0;
                        }
                        B = b(this.hex, C.vidx);
                        D = C.critical;
                    }
                    var z2 = {
                        extname: "subjectKeyIdentifier"
                    };
                    if (D) {
                        z2.critical = true;
                    }
                    var A = k(B, 0);
                    z2.kid = {
                        hex: A
                    };
                    return z2;
                };
                this.getExtAuthorityKeyIdentifier = function(F, D) {
                    if (F === void 0 && D === void 0) {
                        var z2 = this.getExtInfo("authorityKeyIdentifier");
                        if (z2 === void 0) {
                            return void 0;
                        }
                        F = b(this.hex, z2.vidx);
                        D = z2.critical;
                    }
                    var G = {
                        extname: "authorityKeyIdentifier"
                    };
                    if (D) {
                        G.critical = true;
                    }
                    var E = s(F, 0);
                    for(var A = 0; A < E.length; A++){
                        var H = F.substr(E[A], 2);
                        if (H === "80") {
                            G.kid = {
                                hex: k(F, E[A])
                            };
                        }
                        if (H === "a1") {
                            var C = b(F, E[A]);
                            var B = this.getGeneralNames(C);
                            G.issuer = B[0]["dn"];
                        }
                        if (H === "82") {
                            G.sn = {
                                hex: k(F, E[A])
                            };
                        }
                    }
                    return G;
                };
                this.getExtExtKeyUsage = function(C, E) {
                    if (C === void 0 && E === void 0) {
                        var D = this.getExtInfo("extKeyUsage");
                        if (D === void 0) {
                            return void 0;
                        }
                        C = b(this.hex, D.vidx);
                        E = D.critical;
                    }
                    var z2 = {
                        extname: "extKeyUsage",
                        array: []
                    };
                    if (E) {
                        z2.critical = true;
                    }
                    var A = s(C, 0);
                    for(var B = 0; B < A.length; B++){
                        z2.array.push(u(k(C, A[B])));
                    }
                    return z2;
                };
                this.getExtExtKeyUsageName = function() {
                    var D = this.getExtInfo("extKeyUsage");
                    if (D === void 0) {
                        return D;
                    }
                    var z2 = new Array();
                    var C = b(this.hex, D.vidx);
                    if (C === "") {
                        return z2;
                    }
                    var A = s(C, 0);
                    for(var B = 0; B < A.length; B++){
                        z2.push(u(k(C, A[B])));
                    }
                    return z2;
                };
                this.getExtSubjectAltName = function(A, C) {
                    if (A === void 0 && C === void 0) {
                        var B = this.getExtInfo("subjectAltName");
                        if (B === void 0) {
                            return void 0;
                        }
                        A = b(this.hex, B.vidx);
                        C = B.critical;
                    }
                    var z2 = {
                        extname: "subjectAltName",
                        array: []
                    };
                    if (C) {
                        z2.critical = true;
                    }
                    z2.array = this.getGeneralNames(A);
                    return z2;
                };
                this.getExtIssuerAltName = function(A, C) {
                    if (A === void 0 && C === void 0) {
                        var B = this.getExtInfo("issuerAltName");
                        if (B === void 0) {
                            return void 0;
                        }
                        A = b(this.hex, B.vidx);
                        C = B.critical;
                    }
                    var z2 = {
                        extname: "issuerAltName",
                        array: []
                    };
                    if (C) {
                        z2.critical = true;
                    }
                    z2.array = this.getGeneralNames(A);
                    return z2;
                };
                this.getGeneralNames = function(D) {
                    var B = s(D, 0);
                    var z2 = [];
                    for(var C = 0; C < B.length; C++){
                        var A = this.getGeneralName(b(D, B[C]));
                        if (A !== void 0) {
                            z2.push(A);
                        }
                    }
                    return z2;
                };
                this.getGeneralName = function(A) {
                    var z2 = A.substr(0, 2);
                    var C = k(A, 0);
                    var B = hextorstr(C);
                    if (z2 == "81") {
                        return {
                            rfc822: B
                        };
                    }
                    if (z2 == "82") {
                        return {
                            dns: B
                        };
                    }
                    if (z2 == "86") {
                        return {
                            uri: B
                        };
                    }
                    if (z2 == "87") {
                        return {
                            ip: hextoip(C)
                        };
                    }
                    if (z2 == "a4") {
                        return {
                            dn: this.getX500Name(C)
                        };
                    }
                    if (z2 == "a0") {
                        return {
                            other: this.getOtherName(A)
                        };
                    }
                    return void 0;
                };
                this.getExtSubjectAltName2 = function() {
                    var D, G, F;
                    var E = this.getExtInfo("subjectAltName");
                    if (E === void 0) {
                        return E;
                    }
                    var z2 = new Array();
                    var C = b(this.hex, E.vidx);
                    var A = s(C, 0);
                    for(var B = 0; B < A.length; B++){
                        F = C.substr(A[B], 2);
                        D = k(C, A[B]);
                        if (F === "81") {
                            G = hextoutf8(D);
                            z2.push([
                                "MAIL",
                                G
                            ]);
                        }
                        if (F === "82") {
                            G = hextoutf8(D);
                            z2.push([
                                "DNS",
                                G
                            ]);
                        }
                        if (F === "84") {
                            G = X509.hex2dn(D, 0);
                            z2.push([
                                "DN",
                                G
                            ]);
                        }
                        if (F === "86") {
                            G = hextoutf8(D);
                            z2.push([
                                "URI",
                                G
                            ]);
                        }
                        if (F === "87") {
                            G = hextoip(D);
                            z2.push([
                                "IP",
                                G
                            ]);
                        }
                    }
                    return z2;
                };
                this.getExtCRLDistributionPoints = function(D, F) {
                    if (D === void 0 && F === void 0) {
                        var E = this.getExtInfo("cRLDistributionPoints");
                        if (E === void 0) {
                            return void 0;
                        }
                        D = b(this.hex, E.vidx);
                        F = E.critical;
                    }
                    var A = {
                        extname: "cRLDistributionPoints",
                        array: []
                    };
                    if (F) {
                        A.critical = true;
                    }
                    var B = s(D, 0);
                    for(var C = 0; C < B.length; C++){
                        var z2 = b(D, B[C]);
                        A.array.push(this.getDistributionPoint(z2));
                    }
                    return A;
                };
                this.getDistributionPoint = function(E) {
                    var B = {};
                    var C = s(E, 0);
                    for(var D = 0; D < C.length; D++){
                        var A = E.substr(C[D], 2);
                        var z2 = b(E, C[D]);
                        if (A == "a0") {
                            B.dpname = this.getDistributionPointName(z2);
                        }
                    }
                    return B;
                };
                this.getDistributionPointName = function(E) {
                    var B = {};
                    var C = s(E, 0);
                    for(var D = 0; D < C.length; D++){
                        var A = E.substr(C[D], 2);
                        var z2 = b(E, C[D]);
                        if (A == "a0") {
                            B.full = this.getGeneralNames(z2);
                        }
                    }
                    return B;
                };
                this.getExtCRLDistributionPointsURI = function() {
                    var D = this.getExtCRLDistributionPoints();
                    if (D == void 0) {
                        return D;
                    }
                    var A = D.array;
                    var z2 = [];
                    for(var C = 0; C < A.length; C++){
                        try {
                            if (A[C].dpname.full[0].uri != void 0) {
                                z2.push(A[C].dpname.full[0].uri);
                            }
                        } catch (B) {}
                    }
                    return z2;
                };
                this.getExtAIAInfo = function() {
                    var D = this.getExtInfo("authorityInfoAccess");
                    if (D === void 0) {
                        return D;
                    }
                    var z2 = {
                        ocsp: [],
                        caissuer: []
                    };
                    var A = s(this.hex, D.vidx);
                    for(var B = 0; B < A.length; B++){
                        var E = c(this.hex, A[B], [
                            0
                        ], "06");
                        var C = c(this.hex, A[B], [
                            1
                        ], "86");
                        if (E === "2b06010505073001") {
                            z2.ocsp.push(hextoutf8(C));
                        }
                        if (E === "2b06010505073002") {
                            z2.caissuer.push(hextoutf8(C));
                        }
                    }
                    return z2;
                };
                this.getExtAuthorityInfoAccess = function(G, E) {
                    if (G === void 0 && E === void 0) {
                        var z2 = this.getExtInfo("authorityInfoAccess");
                        if (z2 === void 0) {
                            return void 0;
                        }
                        G = b(this.hex, z2.vidx);
                        E = z2.critical;
                    }
                    var H = {
                        extname: "authorityInfoAccess",
                        array: []
                    };
                    if (E) {
                        H.critical = true;
                    }
                    var F = s(G, 0);
                    for(var A = 0; A < F.length; A++){
                        var D = p(G, F[A], [
                            0
                        ], "06");
                        var B = c(G, F[A], [
                            1
                        ], "86");
                        var C = hextoutf8(B);
                        if (D == "2b06010505073001") {
                            H.array.push({
                                ocsp: C
                            });
                        } else {
                            if (D == "2b06010505073002") {
                                H.array.push({
                                    caissuer: C
                                });
                            } else {
                                throw new Error("unknown method: " + D);
                            }
                        }
                    }
                    return H;
                };
                this.getExtCertificatePolicies = function(D, G) {
                    if (D === void 0 && G === void 0) {
                        var F = this.getExtInfo("certificatePolicies");
                        if (F === void 0) {
                            return void 0;
                        }
                        D = b(this.hex, F.vidx);
                        G = F.critical;
                    }
                    var z2 = {
                        extname: "certificatePolicies",
                        array: []
                    };
                    if (G) {
                        z2.critical = true;
                    }
                    var A = s(D, 0);
                    for(var B = 0; B < A.length; B++){
                        var E = b(D, A[B]);
                        var C = this.getPolicyInformation(E);
                        z2.array.push(C);
                    }
                    return z2;
                };
                this.getPolicyInformation = function(D) {
                    var z2 = {};
                    var F = c(D, 0, [
                        0
                    ], "06");
                    z2.policyoid = u(F);
                    var G = f(D, 0, [
                        1
                    ], "30");
                    if (G != -1) {
                        z2.array = [];
                        var A = s(D, G);
                        for(var B = 0; B < A.length; B++){
                            var E = b(D, A[B]);
                            var C = this.getPolicyQualifierInfo(E);
                            z2.array.push(C);
                        }
                    }
                    return z2;
                };
                this.getOtherName = function(B) {
                    var z2 = {};
                    var A = s(B, 0);
                    var D = c(B, A[0], [], "06");
                    var C = c(B, A[1], []);
                    z2.oid = u(D);
                    z2.value = j(C);
                    return z2;
                };
                this.getPolicyQualifierInfo = function(A) {
                    var z2 = {};
                    var B = c(A, 0, [
                        0
                    ], "06");
                    if (B === "2b06010505070201") {
                        var D = p(A, 0, [
                            1
                        ], "16");
                        z2.cps = hextorstr(D);
                    } else {
                        if (B === "2b06010505070202") {
                            var C = a(A, 0, [
                                1
                            ], "30");
                            z2.unotice = this.getUserNotice(C);
                        }
                    }
                    return z2;
                };
                this.getUserNotice = function(B) {
                    var D = null;
                    var z2 = {};
                    try {
                        D = o.parse(B);
                        var C = this._asn1ToUnotice(D);
                        return C;
                    } catch (A) {
                        return void 0;
                    }
                };
                this._asn1ToUnotice = function(E) {
                    try {
                        var z2 = {};
                        var A = aryval(E, "seq");
                        for(var C = 0; C < A.length; C++){
                            var D = this._asn1ToNoticeRef(A[C]);
                            if (D != void 0) {
                                z2.noticeref = D;
                            }
                            var F = this.asn1ToDisplayText(A[C]);
                            if (F != void 0) {
                                z2.exptext = F;
                            }
                        }
                        if (Object.keys(z2).length > 0) {
                            return z2;
                        }
                        return void 0;
                    } catch (B) {
                        return void 0;
                    }
                };
                this._asn1ToNoticeRef = function(F) {
                    try {
                        var A = {};
                        var B = aryval(F, "seq");
                        for(var D = 0; D < B.length; D++){
                            var E = this._asn1ToNoticeNum(B[D]);
                            if (E != void 0) {
                                A.noticenum = E;
                            }
                            var z2 = this.asn1ToDisplayText(B[D]);
                            if (z2 != void 0) {
                                A.org = z2;
                            }
                        }
                        if (Object.keys(A).length > 0) {
                            return A;
                        }
                        return void 0;
                    } catch (C) {
                        return void 0;
                    }
                };
                this._asn1ToNoticeNum = function(E) {
                    try {
                        var A = aryval(E, "seq");
                        var z2 = [];
                        for(var C = 0; C < A.length; C++){
                            var D = A[C];
                            z2.push(parseInt(aryval(D, "int.hex"), 16));
                        }
                        return z2;
                    } catch (B) {
                        return void 0;
                    }
                };
                this.getDisplayText = function(A) {
                    var B = {
                        "0c": "utf8",
                        "16": "ia5",
                        "1a": "vis",
                        "1e": "bmp"
                    };
                    var z2 = {};
                    z2.type = B[A.substr(0, 2)];
                    z2.str = hextorstr(k(A, 0));
                    return z2;
                };
                this.asn1ToDisplayText = function(z2) {
                    if (z2.utf8str != void 0) {
                        return {
                            type: "utf8",
                            str: z2.utf8str.str
                        };
                    }
                    if (z2.ia5str != void 0) {
                        return {
                            type: "ia5",
                            str: z2.ia5str.str
                        };
                    }
                    if (z2.visstr != void 0) {
                        return {
                            type: "vis",
                            str: z2.visstr.str
                        };
                    }
                    if (z2.bmpstr != void 0) {
                        return {
                            type: "bmp",
                            str: z2.bmpstr.str
                        };
                    }
                    if (z2.prnstr != void 0) {
                        return {
                            type: "prn",
                            str: z2.prnstr.str
                        };
                    }
                    return void 0;
                };
                this.getExtPolicyMappings = function(G, E) {
                    var z2 = this.getCriticalExtV("policyMappings", G, E);
                    G = z2[0];
                    E = z2[1];
                    if (G == null) {
                        return void 0;
                    }
                    var I = {
                        extname: "policyMappings"
                    };
                    if (E) {
                        I.critical = true;
                    }
                    try {
                        var A = j(G);
                        var B = A.seq;
                        var F = [];
                        for(var C = 0; C < B.length; C++){
                            var H = B[C].seq;
                            F.push([
                                H[0].oid,
                                H[1].oid
                            ]);
                        }
                        I.array = F;
                    } catch (D) {
                        throw new m("malformed policyMappings");
                    }
                    return I;
                };
                this.getExtPolicyConstraints = function(G, D) {
                    var z2 = this.getCriticalExtV("policyConstraints", G, D);
                    G = z2[0];
                    D = z2[1];
                    if (G == null) {
                        return void 0;
                    }
                    var H = {
                        extname: "policyConstraints"
                    };
                    if (D) {
                        H.critical = true;
                    }
                    var A = j(G);
                    try {
                        var F = A.seq;
                        for(var B = 0; B < F.length; B++){
                            var E = F[B].tag;
                            if (E.explicit != false) {
                                continue;
                            }
                            if (E.tag == "80") {
                                H.reqexp = parseInt(E.hex, 16);
                            }
                            if (E.tag == "81") {
                                H.inhibit = parseInt(E.hex, 16);
                            }
                        }
                    } catch (C) {
                        return new m("malformed policyConstraints value");
                    }
                    return H;
                };
                this.getExtInhibitAnyPolicy = function(A, D) {
                    var C = this.getCriticalExtV("inhibitAnyPolicy", A, D);
                    A = C[0];
                    D = C[1];
                    if (A == null) {
                        return void 0;
                    }
                    var z2 = {
                        extname: "inhibitAnyPolicy"
                    };
                    if (D) {
                        z2.critical = true;
                    }
                    var B = x(A, 0);
                    if (B == -1) {
                        return new m("wrong value");
                    }
                    z2.skip = B;
                    return z2;
                };
                this.getExtCRLNumber = function(A, B) {
                    var z2 = {
                        extname: "cRLNumber"
                    };
                    if (B) {
                        z2.critical = true;
                    }
                    if (A.substr(0, 2) == "02") {
                        z2.num = {
                            hex: k(A, 0)
                        };
                        return z2;
                    }
                    throw new m("hExtV parse error: " + A);
                };
                this.getExtCRLReason = function(A, B) {
                    var z2 = {
                        extname: "cRLReason"
                    };
                    if (B) {
                        z2.critical = true;
                    }
                    if (A.substr(0, 2) == "0a") {
                        z2.code = parseInt(k(A, 0), 16);
                        return z2;
                    }
                    throw new Error("hExtV parse error: " + A);
                };
                this.getExtOcspNonce = function(A, C) {
                    var z2 = {
                        extname: "ocspNonce"
                    };
                    if (C) {
                        z2.critical = true;
                    }
                    var B = k(A, 0);
                    z2.hex = B;
                    return z2;
                };
                this.getExtOcspNoCheck = function(A, B) {
                    var z2 = {
                        extname: "ocspNoCheck"
                    };
                    if (B) {
                        z2.critical = true;
                    }
                    return z2;
                };
                this.getExtAdobeTimeStamp = function(C, F) {
                    if (C === void 0 && F === void 0) {
                        var E = this.getExtInfo("adobeTimeStamp");
                        if (E === void 0) {
                            return void 0;
                        }
                        C = b(this.hex, E.vidx);
                        F = E.critical;
                    }
                    var z2 = {
                        extname: "adobeTimeStamp"
                    };
                    if (F) {
                        z2.critical = true;
                    }
                    var B = s(C, 0);
                    if (B.length > 1) {
                        var G = b(C, B[1]);
                        var A = this.getGeneralName(G);
                        if (A.uri != void 0) {
                            z2.uri = A.uri;
                        }
                    }
                    if (B.length > 2) {
                        var D = b(C, B[2]);
                        if (D == "0101ff") {
                            z2.reqauth = true;
                        }
                        if (D == "010100") {
                            z2.reqauth = false;
                        }
                    }
                    return z2;
                };
                this.getExtSubjectDirectoryAttributes = function(I, H) {
                    if (I === void 0 && H === void 0) {
                        var B = this.getExtInfo("subjectDirectoryAttributes");
                        if (B === void 0) {
                            return void 0;
                        }
                        I = b(this.hex, B.vidx);
                        H = B.critical;
                    }
                    var J = {
                        extname: "subjectDirectoryAttributes"
                    };
                    if (H) {
                        J.critical = true;
                    }
                    try {
                        var z2 = j(I);
                        var D = [];
                        for(var E = 0; E < z2.seq.length; E++){
                            var A = z2.seq[E];
                            var C = aryval(A, "seq.0.oid");
                            var F = aryval(A, "seq.1.set");
                            if (C == void 0 || F == void 0) {
                                throw "error";
                            }
                            D.push({
                                attr: C,
                                array: F
                            });
                        }
                        J.array = D;
                        return J;
                    } catch (G) {
                        throw new Error("malformed subjectDirectoryAttributes extension value");
                    }
                };
                var e = function e(E) {
                    var z2 = {};
                    try {
                        var B = E.seq[0].oid;
                        var D = KJUR.asn1.x509.OID.name2oid(B);
                        z2.type = KJUR.asn1.x509.OID.oid2atype(D);
                        var A = E.seq[1];
                        if (A.utf8str != void 0) {
                            z2.ds = "utf8";
                            z2.value = A.utf8str.str;
                        } else {
                            if (A.numstr != void 0) {
                                z2.ds = "num";
                                z2.value = A.numstr.str;
                            } else {
                                if (A.telstr != void 0) {
                                    z2.ds = "tel";
                                    z2.value = A.telstr.str;
                                } else {
                                    if (A.prnstr != void 0) {
                                        z2.ds = "prn";
                                        z2.value = A.prnstr.str;
                                    } else {
                                        if (A.ia5str != void 0) {
                                            z2.ds = "ia5";
                                            z2.value = A.ia5str.str;
                                        } else {
                                            if (A.visstr != void 0) {
                                                z2.ds = "vis";
                                                z2.value = A.visstr.str;
                                            } else {
                                                if (A.bmpstr != void 0) {
                                                    z2.ds = "bmp";
                                                    z2.value = A.bmpstr.str;
                                                } else {
                                                    throw "error";
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        return z2;
                    } catch (C) {
                        throw new Erorr("improper ASN.1 parsed AttrTypeAndValue");
                    }
                };
                var i = function i(A) {
                    try {
                        return A.set.map(function(B) {
                            return e(B);
                        });
                    } catch (z2) {
                        throw new Error("improper ASN.1 parsed RDN: " + z2);
                    }
                };
                var h = function h(A) {
                    try {
                        return A.seq.map(function(B) {
                            return i(B);
                        });
                    } catch (z2) {
                        throw new Error("improper ASN.1 parsed X500Name: " + z2);
                    }
                };
                this.getX500NameRule = function(z2) {
                    var G = true;
                    var K = true;
                    var J = false;
                    var A = "";
                    var D = "";
                    var M = null;
                    var H = [];
                    for(var C = 0; C < z2.length; C++){
                        var E = z2[C];
                        for(var B = 0; B < E.length; B++){
                            H.push(E[B]);
                        }
                    }
                    for(var C = 0; C < H.length; C++){
                        var L = H[C];
                        var N = L.ds;
                        var I = L.value;
                        var F = L.type;
                        A += ":" + N;
                        if (N != "prn" && N != "utf8" && N != "ia5") {
                            return "mixed";
                        }
                        if (N == "ia5") {
                            if (F != "CN") {
                                return "mixed";
                            } else {
                                if (!KJUR.lang.String.isMail(I)) {
                                    return "mixed";
                                } else {
                                    continue;
                                }
                            }
                        }
                        if (F == "C") {
                            if (N == "prn") {
                                continue;
                            } else {
                                return "mixed";
                            }
                        }
                        D += ":" + N;
                        if (M == null) {
                            M = N;
                        } else {
                            if (M !== N) {
                                return "mixed";
                            }
                        }
                    }
                    if (M == null) {
                        return "prn";
                    } else {
                        return M;
                    }
                };
                this.getAttrTypeAndValue = function(z2) {
                    var A = j(z2);
                    return e(A);
                };
                this.getRDN = function(z2) {
                    var A = j(z2);
                    return i(A);
                };
                this.getX500NameArray = function(z2) {
                    var A = j(z2);
                    return h(A);
                };
                this.getX500Name = function(C, E, D) {
                    var A = this.getX500NameArray(C);
                    var B = this.dnarraytostr(A);
                    var z2 = {
                        str: B
                    };
                    z2.array = A;
                    if (D == true) {
                        z2.hex = C;
                    }
                    if (E == true) {
                        z2.canon = this.c14nRDNArray(A);
                    }
                    return z2;
                };
                this.readCertPEM = function(z2) {
                    this.readCertHex(w(z2));
                };
                this.readCertHex = function(z2) {
                    this.hex = z2;
                    this.getVersion();
                    try {
                        l(this.hex, 0, [
                            0,
                            7
                        ], "a3");
                        this.parseExt();
                    } catch (A) {}
                };
                this.getParam = function(A) {
                    var z2 = {};
                    if (A == void 0) {
                        A = {};
                    }
                    z2.version = this.getVersion();
                    z2.serial = {
                        hex: this.getSerialNumberHex()
                    };
                    z2.sigalg = this.getSignatureAlgorithmField();
                    z2.issuer = this.getIssuer(A.dncanon, A.dnhex);
                    z2.notbefore = this.getNotBefore();
                    z2.notafter = this.getNotAfter();
                    z2.subject = this.getSubject(A.dncanon, A.dnhex);
                    z2.sbjpubkey = hextopem(this.getPublicKeyHex(), "PUBLIC KEY");
                    if (this.aExtInfo != void 0 && this.aExtInfo.length > 0) {
                        z2.ext = this.getExtParamArray();
                    }
                    z2.sighex = this.getSignatureValueHex();
                    if (A.tbshex == true) {
                        z2.tbshex = a(this.hex, 0, [
                            0
                        ]);
                    }
                    if (A.nodnarray == true) {
                        delete z2.issuer.array;
                        delete z2.subject.array;
                    }
                    return z2;
                };
                this.getExtParamArray = function(A) {
                    if (A == void 0) {
                        var C = f(this.hex, 0, [
                            0,
                            "[3]"
                        ]);
                        if (C != -1) {
                            A = q(this.hex, 0, [
                                0,
                                "[3]",
                                0
                            ], "30");
                        }
                    }
                    var z2 = [];
                    var B = s(A, 0);
                    for(var D = 0; D < B.length; D++){
                        var F = b(A, B[D]);
                        var E = this.getExtParam(F);
                        if (E != null) {
                            z2.push(E);
                        }
                    }
                    return z2;
                };
                this.getExtParam = function(A) {
                    var I = {};
                    var C = s(A, 0);
                    var E = C.length;
                    if (E != 2 && E != 3) {
                        throw new Error("wrong number elements in Extension: " + E + " " + A);
                    }
                    var B = r(c(A, 0, [
                        0
                    ], "06"));
                    var G = false;
                    if (E == 3 && a(A, 0, [
                        1
                    ]) == "0101ff") {
                        G = true;
                    }
                    var H = a(A, 0, [
                        E - 1,
                        0
                    ]);
                    var F = void 0;
                    if (B == "2.5.29.14") {
                        F = this.getExtSubjectKeyIdentifier(H, G);
                    } else {
                        if (B == "2.5.29.15") {
                            F = this.getExtKeyUsage(H, G);
                        } else {
                            if (B == "2.5.29.17") {
                                F = this.getExtSubjectAltName(H, G);
                            } else {
                                if (B == "2.5.29.18") {
                                    F = this.getExtIssuerAltName(H, G);
                                } else {
                                    if (B == "2.5.29.19") {
                                        F = this.getExtBasicConstraints(H, G);
                                    } else {
                                        if (B == "2.5.29.30") {
                                            F = this.getExtNameConstraints(H, G);
                                        } else {
                                            if (B == "2.5.29.31") {
                                                F = this.getExtCRLDistributionPoints(H, G);
                                            } else {
                                                if (B == "2.5.29.32") {
                                                    F = this.getExtCertificatePolicies(H, G);
                                                } else {
                                                    if (B == "2.5.29.33") {
                                                        F = this.getExtPolicyMappings(H, G);
                                                    } else {
                                                        if (B == "2.5.29.35") {
                                                            F = this.getExtAuthorityKeyIdentifier(H, G);
                                                        } else {
                                                            if (B == "2.5.29.36") {
                                                                F = this.getExtPolicyConstraints(H, G);
                                                            } else {
                                                                if (B == "2.5.29.37") {
                                                                    F = this.getExtExtKeyUsage(H, G);
                                                                } else {
                                                                    if (B == "2.5.29.54") {
                                                                        F = this.getExtInhibitAnyPolicy(H, G);
                                                                    } else {
                                                                        if (B == "1.3.6.1.5.5.7.1.1") {
                                                                            F = this.getExtAuthorityInfoAccess(H, G);
                                                                        } else {
                                                                            if (B == "2.5.29.20") {
                                                                                F = this.getExtCRLNumber(H, G);
                                                                            } else {
                                                                                if (B == "2.5.29.21") {
                                                                                    F = this.getExtCRLReason(H, G);
                                                                                } else {
                                                                                    if (B == "2.5.29.9") {
                                                                                        F = this.getExtSubjectDirectoryAttributes(H, G);
                                                                                    } else {
                                                                                        if (B == "1.3.6.1.5.5.7.48.1.2") {
                                                                                            F = this.getExtOcspNonce(H, G);
                                                                                        } else {
                                                                                            if (B == "1.3.6.1.5.5.7.48.1.5") {
                                                                                                F = this.getExtOcspNoCheck(H, G);
                                                                                            } else {
                                                                                                if (B == "1.2.840.113583.1.1.9.1") {
                                                                                                    F = this.getExtAdobeTimeStamp(H, G);
                                                                                                } else {
                                                                                                    if (X509.EXT_PARSER[B] != void 0) {
                                                                                                        F = X509.EXT_PARSER[B](B, G, H);
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (F != void 0) {
                        return F;
                    }
                    var z2 = {
                        extname: B,
                        extn: H
                    };
                    try {
                        z2.extn = j(H);
                    } catch (D) {}
                    if (G) {
                        z2.critical = true;
                    }
                    return z2;
                };
                this.findExt = function(A, B) {
                    for(var z2 = 0; z2 < A.length; z2++){
                        if (A[z2].extname == B) {
                            return A[z2];
                        }
                    }
                    return null;
                };
                this.updateExtCDPFullURI = function(D, z2) {
                    var C = this.findExt(D, "cRLDistributionPoints");
                    if (C == null) {
                        return;
                    }
                    if (C.array == void 0) {
                        return;
                    }
                    var F = C.array;
                    for(var B = 0; B < F.length; B++){
                        if (F[B].dpname == void 0) {
                            continue;
                        }
                        if (F[B].dpname.full == void 0) {
                            continue;
                        }
                        var G = F[B].dpname.full;
                        for(var A = 0; A < G.length; A++){
                            var E = G[B];
                            if (E.uri == void 0) {
                                continue;
                            }
                            E.uri = z2;
                        }
                    }
                };
                this.updateExtAIAOCSP = function(D, A) {
                    var C = this.findExt(D, "authorityInfoAccess");
                    if (C == null) {
                        return;
                    }
                    if (C.array == void 0) {
                        return;
                    }
                    var z2 = C.array;
                    for(var B = 0; B < z2.length; B++){
                        if (z2[B].ocsp != void 0) {
                            z2[B].ocsp = A;
                        }
                    }
                };
                this.updateExtAIACAIssuer = function(D, A) {
                    var C = this.findExt(D, "authorityInfoAccess");
                    if (C == null) {
                        return;
                    }
                    if (C.array == void 0) {
                        return;
                    }
                    var z2 = C.array;
                    for(var B = 0; B < z2.length; B++){
                        if (z2[B].caissuer != void 0) {
                            z2[B].caissuer = A;
                        }
                    }
                };
                this.dnarraytostr = function(B) {
                    function z2(C) {
                        return C.map(function(D) {
                            return A(D).replace(/\+/, "\\+");
                        }).join("+");
                    }
                    function A(C) {
                        return C.type + "=" + C.value;
                    }
                    return "/" + B.map(function(C) {
                        return z2(C).replace(/\//, "\\/");
                    }).join("/");
                };
                this.setCanonicalizedDN = function(A) {
                    var C;
                    if (A.str != void 0 && A.array == void 0) {
                        var B = new KJUR.asn1.x509.X500Name({
                            str: A.str
                        });
                        var z2 = B.tohex();
                        C = this.getX500NameArray(z2);
                    } else {
                        C = A.array;
                    }
                    if (A.canon == void 0) {
                        A.canon = this.c14nRDNArray(C);
                    }
                };
                this.c14nRDNArray = function(G) {
                    var A = [];
                    for(var C = 0; C < G.length; C++){
                        var E = G[C];
                        var z2 = [];
                        for(var B = 0; B < E.length; B++){
                            var D = E[B];
                            var F = D.value;
                            F = F.replace(/^\s*/, "");
                            F = F.replace(/\s*$/, "");
                            F = F.replace(/\s+/g, " ");
                            F = F.toLowerCase();
                            z2.push(D.type.toLowerCase() + "=" + F);
                        }
                        A.push(z2.join("+"));
                    }
                    return "/" + A.join("/");
                };
                this.getInfo = function() {
                    var A = function A(W) {
                        var ac = "";
                        var U = "    ";
                        var Y = "\n";
                        var Z = W.array;
                        for(var X = 0; X < Z.length; X++){
                            var V = Z[X];
                            if (V.dn != void 0) {
                                ac += U + "dn: " + V.dn.str + Y;
                            }
                            if (V.ip != void 0) {
                                ac += U + "ip: " + V.ip + Y;
                            }
                            if (V.rfc822 != void 0) {
                                ac += U + "rfc822: " + V.rfc822 + Y;
                            }
                            if (V.dns != void 0) {
                                ac += U + "dns: " + V.dns + Y;
                            }
                            if (V.uri != void 0) {
                                ac += U + "uri: " + V.uri + Y;
                            }
                            if (V.other != void 0) {
                                var ab = V.other.oid;
                                var aa = JSON.stringify(V.other.value).replace(/\"/g, "");
                                ac += U + "other: " + ab + "=" + aa + Y;
                            }
                        }
                        ac = ac.replace(/\n$/, "");
                        return ac;
                    };
                    var H = function H(aa) {
                        var Y = "";
                        var U = aa.array;
                        for(var X = 0; X < U.length; X++){
                            var Z = U[X];
                            Y += "    policy oid: " + Z.policyoid + "\n";
                            if (Z.array === void 0) {
                                continue;
                            }
                            for(var W = 0; W < Z.array.length; W++){
                                var V = Z.array[W];
                                if (V.cps !== void 0) {
                                    Y += "    cps: " + V.cps + "\n";
                                }
                            }
                        }
                        return Y;
                    };
                    var K = function K(Y) {
                        var X = "";
                        var U = Y.array;
                        for(var W = 0; W < U.length; W++){
                            var Z = U[W];
                            try {
                                if (Z.dpname.full[0].uri !== void 0) {
                                    X += "    " + Z.dpname.full[0].uri + "\n";
                                }
                            } catch (V) {}
                            try {
                                if (Z.dname.full[0].dn.hex !== void 0) {
                                    X += "    " + X509.hex2dn(Z.dpname.full[0].dn.hex) + "\n";
                                }
                            } catch (V) {}
                        }
                        return X;
                    };
                    var I = function I(Y) {
                        var X = "";
                        var U = Y.array;
                        for(var V = 0; V < U.length; V++){
                            var W = U[V];
                            if (W.caissuer !== void 0) {
                                X += "    caissuer: " + W.caissuer + "\n";
                            }
                            if (W.ocsp !== void 0) {
                                X += "    ocsp: " + W.ocsp + "\n";
                            }
                        }
                        return X;
                    };
                    var B = X509;
                    var M, L, T;
                    M = "Basic Fields\n";
                    M += "  serial number: " + this.getSerialNumberHex() + "\n";
                    M += "  signature algorithm: " + this.getSignatureAlgorithmField() + "\n";
                    M += "  issuer: " + this.getIssuerString() + "\n";
                    M += "  notBefore: " + this.getNotBefore() + "\n";
                    M += "  notAfter: " + this.getNotAfter() + "\n";
                    M += "  subject: " + this.getSubjectString() + "\n";
                    M += "  subject public key info: \n";
                    L = this.getPublicKey();
                    M += "    key algorithm: " + L.type + "\n";
                    if (L.type === "RSA") {
                        M += "    n=" + hextoposhex(L.n.toString(16)).substr(0, 16) + "...\n";
                        M += "    e=" + hextoposhex(L.e.toString(16)) + "\n";
                    }
                    T = this.aExtInfo;
                    if (T !== void 0 && T !== null) {
                        M += "X509v3 Extensions:\n";
                        for(var P = 0; P < T.length; P++){
                            var R = T[P];
                            var z2 = KJUR.asn1.x509.OID.oid2name(R.oid);
                            if (z2 === "") {
                                z2 = R.oid;
                            }
                            var O = "";
                            if (R.critical === true) {
                                O = "CRITICAL";
                            }
                            M += "  " + z2 + " " + O + ":\n";
                            if (z2 === "basicConstraints") {
                                var C = this.getExtBasicConstraints();
                                if (C.cA === void 0) {
                                    M += "    {}\n";
                                } else {
                                    M += "    cA=true";
                                    if (C.pathLen !== void 0) {
                                        M += ", pathLen=" + C.pathLen;
                                    }
                                    M += "\n";
                                }
                            } else {
                                if (z2 == "policyMappings") {
                                    var S = this.getExtPolicyMappings().array;
                                    var G = S.map(function(U) {
                                        var V = U;
                                        return V[0] + ":" + V[1];
                                    }).join(", ");
                                    M += "    " + G + "\n";
                                } else {
                                    if (z2 == "policyConstraints") {
                                        var N = this.getExtPolicyConstraints();
                                        M += "    ";
                                        if (N.reqexp != void 0) {
                                            M += " reqexp=" + N.reqexp;
                                        }
                                        if (N.inhibit != void 0) {
                                            M += " inhibit=" + N.inhibit;
                                        }
                                        M += "\n";
                                    } else {
                                        if (z2 == "inhibitAnyPolicy") {
                                            var N = this.getExtInhibitAnyPolicy();
                                            M += "    skip=" + N.skip + "\n";
                                        } else {
                                            if (z2 == "keyUsage") {
                                                M += "    " + this.getExtKeyUsageString() + "\n";
                                            } else {
                                                if (z2 == "subjectKeyIdentifier") {
                                                    M += "    " + this.getExtSubjectKeyIdentifier().kid.hex + "\n";
                                                } else {
                                                    if (z2 == "authorityKeyIdentifier") {
                                                        var D = this.getExtAuthorityKeyIdentifier();
                                                        if (D.kid !== void 0) {
                                                            M += "    kid=" + D.kid.hex + "\n";
                                                        }
                                                    } else {
                                                        if (z2 == "extKeyUsage") {
                                                            var Q = this.getExtExtKeyUsage().array;
                                                            M += "    " + Q.join(", ") + "\n";
                                                        } else {
                                                            if (z2 == "subjectAltName") {
                                                                var E = A(this.getExtSubjectAltName());
                                                                M += E + "\n";
                                                            } else {
                                                                if (z2 == "cRLDistributionPoints") {
                                                                    var J = this.getExtCRLDistributionPoints();
                                                                    M += K(J);
                                                                } else {
                                                                    if (z2 == "authorityInfoAccess") {
                                                                        var F = this.getExtAuthorityInfoAccess();
                                                                        M += I(F);
                                                                    } else {
                                                                        if (z2 == "certificatePolicies") {
                                                                            M += H(this.getExtCertificatePolicies());
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    M += "signature algorithm: " + this.getSignatureAlgorithmName() + "\n";
                    M += "signature: " + this.getSignatureValueHex().substr(0, 16) + "...\n";
                    return M;
                };
                if (typeof v == "string") {
                    if (v.indexOf("-----BEGIN") != -1) {
                        this.readCertPEM(v);
                    } else {
                        if (KJUR.lang.String.isHex(v)) {
                            this.readCertHex(v);
                        }
                    }
                }
            }
            X509.EXT_PARSER = {};
            X509.registExtParser = function(b, a) {
                X509.EXT_PARSER[b] = a;
            };
            X509.hex2dn = function(e, b) {
                if (b === void 0) {
                    b = 0;
                }
                var a = new X509();
                var c = ASN1HEX.getTLV(e, b);
                var d = a.getX500Name(e);
                return d.str;
            };
            X509.hex2rdn = function(f, b) {
                if (b === void 0) {
                    b = 0;
                }
                if (f.substr(b, 2) !== "31") {
                    throw new Error("malformed RDN");
                }
                var c = new Array();
                var d = ASN1HEX.getChildIdx(f, b);
                for(var e = 0; e < d.length; e++){
                    c.push(X509.hex2attrTypeValue(f, d[e]));
                }
                c = c.map(function(a) {
                    return a.replace("+", "\\+");
                });
                return c.join("+");
            };
            X509.hex2attrTypeValue = function(d, i) {
                var j = ASN1HEX;
                var h = j.getV;
                if (i === void 0) {
                    i = 0;
                }
                if (d.substr(i, 2) !== "30") {
                    throw new Error("malformed attribute type and value");
                }
                var g = j.getChildIdx(d, i);
                if (g.length !== 2 || d.substr(g[0], 2) !== "06") {
                    "malformed attribute type and value";
                }
                var b = h(d, g[0]);
                var f = KJUR.asn1.ASN1Util.oidHexToInt(b);
                var e = KJUR.asn1.x509.OID.oid2atype(f);
                var a = h(d, g[1]);
                var c = hextorstr(a);
                return e + "=" + c;
            };
            X509.getPublicKeyFromCertHex = function(b) {
                var a = new X509();
                a.readCertHex(b);
                return a.getPublicKey();
            };
            X509.getPublicKeyFromCertPEM = function(b) {
                var a = new X509();
                a.readCertPEM(b);
                return a.getPublicKey();
            };
            X509.getPublicKeyInfoPropOfCertPEM = function(c) {
                var e = ASN1HEX;
                var g = e.getVbyList;
                var b = {};
                var a, f, d;
                b.algparam = null;
                a = new X509();
                a.readCertPEM(c);
                f = a.getPublicKeyHex();
                b.keyhex = g(f, 0, [
                    1
                ], "03").substr(2);
                b.algoid = g(f, 0, [
                    0,
                    0
                ], "06");
                if (b.algoid === "2a8648ce3d0201") {
                    b.algparam = g(f, 0, [
                        0,
                        1
                    ], "06");
                }
                return b;
            };
            X509.KEYUSAGE_NAME = [
                "digitalSignature",
                "nonRepudiation",
                "keyEncipherment",
                "dataEncipherment",
                "keyAgreement",
                "keyCertSign",
                "cRLSign",
                "encipherOnly",
                "decipherOnly"
            ];
            var X509CRL = function X509CRL(e) {
                var a = KJUR, f = a.lang.String.isHex, m = ASN1HEX, k = m.getV, b = m.getTLV, h = m.getVbyList, c = m.getTLVbyList, d = m.getTLVbyListEx, i = m.getIdxbyList, g = m.getIdxbyListEx, l = m.getChildIdx, j = new X509();
                this.hex = null;
                this.posSigAlg = null;
                this.posRevCert = null;
                this.parsed = null;
                this._setPos = function() {
                    var o = i(this.hex, 0, [
                        0,
                        0
                    ]);
                    var n = this.hex.substr(o, 2);
                    if (n == "02") {
                        this.posSigAlg = 1;
                    } else {
                        if (n == "30") {
                            this.posSigAlg = 0;
                        } else {
                            throw new Error("malformed 1st item of TBSCertList: " + n);
                        }
                    }
                    var s = i(this.hex, 0, [
                        0,
                        this.posSigAlg + 3
                    ]);
                    var r = this.hex.substr(s, 2);
                    if (r == "17" || r == "18") {
                        var q, p;
                        q = i(this.hex, 0, [
                            0,
                            this.posSigAlg + 4
                        ]);
                        this.posRevCert = null;
                        if (q != -1) {
                            p = this.hex.substr(q, 2);
                            if (p == "30") {
                                this.posRevCert = this.posSigAlg + 4;
                            }
                        }
                    } else {
                        if (r == "30") {
                            this.posRevCert = this.posSigAlg + 3;
                        } else {
                            if (r == "a0") {
                                this.posRevCert = null;
                            } else {
                                throw new Error("malformed nextUpdate or revCert tag: " + r);
                            }
                        }
                    }
                };
                this.getVersion = function() {
                    if (this.posSigAlg == 0) {
                        return null;
                    }
                    return parseInt(h(this.hex, 0, [
                        0,
                        0
                    ], "02"), 16) + 1;
                };
                this.getSignatureAlgorithmField = function() {
                    var n = c(this.hex, 0, [
                        0,
                        this.posSigAlg
                    ], "30");
                    return j.getAlgorithmIdentifierName(n);
                };
                this.getIssuer = function() {
                    return j.getX500Name(this.getIssuerHex());
                };
                this.getIssuerHex = function() {
                    return c(this.hex, 0, [
                        0,
                        this.posSigAlg + 1
                    ], "30");
                };
                this.getThisUpdate = function() {
                    var n = h(this.hex, 0, [
                        0,
                        this.posSigAlg + 2
                    ]);
                    return result = hextorstr(n);
                };
                this.getNextUpdate = function() {
                    var o = i(this.hex, 0, [
                        0,
                        this.posSigAlg + 3
                    ]);
                    var n = this.hex.substr(o, 2);
                    if (n != "17" && n != "18") {
                        return null;
                    }
                    return hextorstr(k(this.hex, o));
                };
                this.getRevCertArray = function() {
                    if (this.posRevCert == null) {
                        return null;
                    }
                    var o = [];
                    var n = i(this.hex, 0, [
                        0,
                        this.posRevCert
                    ]);
                    var p = l(this.hex, n);
                    for(var q = 0; q < p.length; q++){
                        var r = b(this.hex, p[q]);
                        o.push(this.getRevCert(r));
                    }
                    return o;
                };
                this.getRevCert = function(p) {
                    var o = {};
                    var n = l(p, 0);
                    o.sn = {
                        hex: h(p, 0, [
                            0
                        ], "02")
                    };
                    o.date = hextorstr(h(p, 0, [
                        1
                    ]));
                    if (n.length == 3) {
                        o.ext = j.getExtParamArray(c(p, 0, [
                            2
                        ]));
                    }
                    return o;
                };
                this.findRevCert = function(p) {
                    var n = new X509(p);
                    var o = n.getSerialNumberHex();
                    return this.findRevCertBySN(o);
                };
                this.findRevCertBySN = function(o) {
                    if (this.parsed == null) {
                        this.getParam();
                    }
                    if (this.parsed.revcert == null) {
                        return null;
                    }
                    var n = this.parsed.revcert;
                    for(var p = 0; p < n.length; p++){
                        if (o == n[p].sn.hex) {
                            return n[p];
                        }
                    }
                    return null;
                };
                this.getSignatureValueHex = function() {
                    return h(this.hex, 0, [
                        2
                    ], "03", true);
                };
                this.verifySignature = function(o) {
                    var p = this.getSignatureAlgorithmField();
                    var n = this.getSignatureValueHex();
                    var q = c(this.hex, 0, [
                        0
                    ], "30");
                    var r = new KJUR.crypto.Signature({
                        alg: p
                    });
                    r.init(o);
                    r.updateHex(q);
                    return r.verify(n);
                };
                this.getParam = function(r) {
                    var n = {};
                    var p = this.getVersion();
                    if (p != null) {
                        n.version = p;
                    }
                    n.sigalg = this.getSignatureAlgorithmField();
                    n.issuer = this.getIssuer();
                    n.thisupdate = this.getThisUpdate();
                    var q = this.getNextUpdate();
                    if (q != null) {
                        n.nextupdate = q;
                    }
                    var t2 = this.getRevCertArray();
                    if (t2 != null) {
                        n.revcert = t2;
                    }
                    var s = g(this.hex, 0, [
                        0,
                        "[0]"
                    ]);
                    if (s != -1) {
                        var o = d(this.hex, 0, [
                            0,
                            "[0]",
                            0
                        ]);
                        n.ext = j.getExtParamArray(o);
                    }
                    n.sighex = this.getSignatureValueHex();
                    this.parsed = n;
                    if ((typeof r === "undefined" ? "undefined" : _type_of(r)) == "object") {
                        if (r.tbshex == true) {
                            n.tbshex = c(this.hex, 0, [
                                0
                            ]);
                        }
                        if (r.nodnarray == true) {
                            delete n.issuer.array;
                        }
                    }
                    return n;
                };
                if (typeof e == "string") {
                    if (f(e)) {
                        this.hex = e;
                    } else {
                        if (e.match(/-----BEGIN X509 CRL/)) {
                            this.hex = pemtohex(e);
                        }
                    }
                    this._setPos();
                }
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.jws == "undefined" || !KJUR.jws) {
                KJUR.jws = {};
            }
            KJUR.jws.JWS = function() {
                var b = KJUR, a = b.jws.JWS, c = a.isSafeJSONString;
                this.parseJWS = function(g, j) {
                    if (this.parsedJWS !== void 0 && (j || this.parsedJWS.sigvalH !== void 0)) {
                        return;
                    }
                    var i = g.match(/^([^.]+)\.([^.]+)\.([^.]+)$/);
                    if (i == null) {
                        throw "JWS signature is not a form of 'Head.Payload.SigValue'.";
                    }
                    var k = i[1];
                    var e = i[2];
                    var l = i[3];
                    var n = k + "." + e;
                    this.parsedJWS = {};
                    this.parsedJWS.headB64U = k;
                    this.parsedJWS.payloadB64U = e;
                    this.parsedJWS.sigvalB64U = l;
                    this.parsedJWS.si = n;
                    if (!j) {
                        var h = b64utohex(l);
                        var f = parseBigInt(h, 16);
                        this.parsedJWS.sigvalH = h;
                        this.parsedJWS.sigvalBI = f;
                    }
                    var d = b64utoutf8(k);
                    var m = b64utoutf8(e);
                    this.parsedJWS.headS = d;
                    this.parsedJWS.payloadS = m;
                    if (!c(d, this.parsedJWS, "headP")) {
                        throw "malformed JSON string for JWS Head: " + d;
                    }
                };
            };
            KJUR.jws.JWS.sign = function(j, w, z2, A, a) {
                var x = KJUR, n = x.jws, r = n.JWS, h = r.readSafeJSONString, q = r.isSafeJSONString, d = x.crypto, l = d.ECDSA, p = d.Mac, c = d.Signature, u = JSON;
                var t2, k, o;
                if (typeof w != "string" && (typeof w === "undefined" ? "undefined" : _type_of(w)) != "object") {
                    throw "spHeader must be JSON string or object: " + w;
                }
                if ((typeof w === "undefined" ? "undefined" : _type_of(w)) == "object") {
                    k = w;
                    t2 = u.stringify(k);
                }
                if (typeof w == "string") {
                    t2 = w;
                    if (!q(t2)) {
                        throw "JWS Head is not safe JSON string: " + t2;
                    }
                    k = h(t2);
                }
                o = z2;
                if ((typeof z2 === "undefined" ? "undefined" : _type_of(z2)) == "object") {
                    o = u.stringify(z2);
                }
                if ((j == "" || j == null) && k.alg !== void 0) {
                    j = k.alg;
                }
                if (j != "" && j != null && k.alg === void 0) {
                    k.alg = j;
                    t2 = u.stringify(k);
                }
                if (j !== k.alg) {
                    throw "alg and sHeader.alg doesn't match: " + j + "!=" + k.alg;
                }
                var s = null;
                if (r.jwsalg2sigalg[j] === void 0) {
                    throw "unsupported alg name: " + j;
                } else {
                    s = r.jwsalg2sigalg[j];
                }
                var e = utf8tob64u(t2);
                var m = utf8tob64u(o);
                var b = e + "." + m;
                var y = "";
                if (s.substr(0, 4) == "Hmac") {
                    if (A === void 0) {
                        throw "mac key shall be specified for HS* alg";
                    }
                    var i = new p({
                        alg: s,
                        prov: "cryptojs",
                        pass: A
                    });
                    i.updateString(b);
                    y = i.doFinal();
                } else {
                    if (s.indexOf("withECDSA") != -1) {
                        var f = new c({
                            alg: s
                        });
                        f.init(A, a);
                        f.updateString(b);
                        var g = f.sign();
                        y = KJUR.crypto.ECDSA.asn1SigToConcatSig(g);
                    } else {
                        if (s != "none") {
                            var f = new c({
                                alg: s
                            });
                            f.init(A, a);
                            f.updateString(b);
                            y = f.sign();
                        }
                    }
                }
                var v = hextob64u(y);
                return b + "." + v;
            };
            KJUR.jws.JWS.verify = function(w, B, n) {
                var x = KJUR, q = x.jws, t2 = q.JWS, i = t2.readSafeJSONString, e = x.crypto, p = e.ECDSA, s = e.Mac, d = e.Signature, m;
                if ((typeof RSAKey === "undefined" ? "undefined" : _type_of(RSAKey)) !== void 0) {
                    m = RSAKey;
                }
                if (!isBase64URLDot(w)) {
                    return false;
                }
                var y = w.split(".");
                if (y.length !== 3) {
                    return false;
                }
                var f = y[0];
                var r = y[1];
                var c = f + "." + r;
                var A = b64utohex(y[2]);
                var l = i(b64utoutf8(y[0]));
                var k = null;
                var z2 = null;
                if (l.alg === void 0) {
                    throw "algorithm not specified in header";
                } else {
                    k = l.alg;
                    z2 = k.substr(0, 2);
                }
                if (n != null && Object.prototype.toString.call(n) === "[object Array]" && n.length > 0) {
                    var b = ":" + n.join(":") + ":";
                    if (b.indexOf(":" + k + ":") == -1) {
                        throw "algorithm '" + k + "' not accepted in the list";
                    }
                }
                if (k != "none" && B === null) {
                    throw "key shall be specified to verify.";
                }
                if (typeof B == "string" && B.indexOf("-----BEGIN ") != -1) {
                    B = KEYUTIL.getKey(B);
                }
                if (z2 == "RS" || z2 == "PS") {
                    if (!(B instanceof m)) {
                        throw "key shall be a RSAKey obj for RS* and PS* algs";
                    }
                }
                if (z2 == "ES") {
                    if (!(B instanceof p)) {
                        throw "key shall be a ECDSA obj for ES* algs";
                    }
                }
                if (k == "none") {}
                var u = null;
                if (t2.jwsalg2sigalg[l.alg] === void 0) {
                    throw "unsupported alg name: " + k;
                } else {
                    u = t2.jwsalg2sigalg[k];
                }
                if (u == "none") {
                    throw "not supported";
                } else {
                    if (u.substr(0, 4) == "Hmac") {
                        var o = null;
                        if (B === void 0) {
                            throw "hexadecimal key shall be specified for HMAC";
                        }
                        var j = new s({
                            alg: u,
                            pass: B
                        });
                        j.updateString(c);
                        o = j.doFinal();
                        return A == o;
                    } else {
                        if (u.indexOf("withECDSA") != -1) {
                            var h = null;
                            try {
                                h = p.concatSigToASN1Sig(A);
                            } catch (v) {
                                return false;
                            }
                            var g = new d({
                                alg: u
                            });
                            g.init(B);
                            g.updateString(c);
                            return g.verify(h);
                        } else {
                            var g = new d({
                                alg: u
                            });
                            g.init(B);
                            g.updateString(c);
                            return g.verify(A);
                        }
                    }
                }
            };
            KJUR.jws.JWS.parse = function(g) {
                var c = g.split(".");
                var b = {};
                var f, e, d;
                if (c.length != 2 && c.length != 3) {
                    throw "malformed sJWS: wrong number of '.' splitted elements";
                }
                f = c[0];
                e = c[1];
                if (c.length == 3) {
                    d = c[2];
                }
                b.headerObj = KJUR.jws.JWS.readSafeJSONString(b64utoutf8(f));
                b.payloadObj = KJUR.jws.JWS.readSafeJSONString(b64utoutf8(e));
                b.headerPP = JSON.stringify(b.headerObj, null, "  ");
                if (b.payloadObj == null) {
                    b.payloadPP = b64utoutf8(e);
                } else {
                    b.payloadPP = JSON.stringify(b.payloadObj, null, "  ");
                }
                if (d !== void 0) {
                    b.sigHex = b64utohex(d);
                }
                return b;
            };
            KJUR.jws.JWS.verifyJWT = function(e, l, r) {
                var d = KJUR, j = d.jws, o = j.JWS, n = o.readSafeJSONString, p = o.inArray, f = o.includedArray;
                if (!isBase64URLDot(e)) {
                    return false;
                }
                var k = e.split(".");
                if (k.length != 3) {
                    return false;
                }
                var c = k[0];
                var i = k[1];
                var q = c + "." + i;
                var m = b64utohex(k[2]);
                var h = n(b64utoutf8(c));
                var g = n(b64utoutf8(i));
                if (h.alg === void 0) {
                    return false;
                }
                if (r.alg === void 0) {
                    throw "acceptField.alg shall be specified";
                }
                if (!p(h.alg, r.alg)) {
                    return false;
                }
                if (g.iss !== void 0 && _type_of(r.iss) === "object") {
                    if (!p(g.iss, r.iss)) {
                        return false;
                    }
                }
                if (g.sub !== void 0 && _type_of(r.sub) === "object") {
                    if (!p(g.sub, r.sub)) {
                        return false;
                    }
                }
                if (g.aud !== void 0 && _type_of(r.aud) === "object") {
                    if (typeof g.aud == "string") {
                        if (!p(g.aud, r.aud)) {
                            return false;
                        }
                    } else {
                        if (_type_of(g.aud) == "object") {
                            if (!f(g.aud, r.aud)) {
                                return false;
                            }
                        }
                    }
                }
                var b = j.IntDate.getNow();
                if (r.verifyAt !== void 0 && typeof r.verifyAt === "number") {
                    b = r.verifyAt;
                }
                if (r.gracePeriod === void 0 || typeof r.gracePeriod !== "number") {
                    r.gracePeriod = 0;
                }
                if (g.exp !== void 0 && typeof g.exp == "number") {
                    if (g.exp + r.gracePeriod < b) {
                        return false;
                    }
                }
                if (g.nbf !== void 0 && typeof g.nbf == "number") {
                    if (b < g.nbf - r.gracePeriod) {
                        return false;
                    }
                }
                if (g.iat !== void 0 && typeof g.iat == "number") {
                    if (b < g.iat - r.gracePeriod) {
                        return false;
                    }
                }
                if (g.jti !== void 0 && r.jti !== void 0) {
                    if (g.jti !== r.jti) {
                        return false;
                    }
                }
                if (!o.verify(e, l, r.alg)) {
                    return false;
                }
                return true;
            };
            KJUR.jws.JWS.includedArray = function(b, a) {
                var c = KJUR.jws.JWS.inArray;
                if (b === null) {
                    return false;
                }
                if ((typeof b === "undefined" ? "undefined" : _type_of(b)) !== "object") {
                    return false;
                }
                if (typeof b.length !== "number") {
                    return false;
                }
                for(var d = 0; d < b.length; d++){
                    if (!c(b[d], a)) {
                        return false;
                    }
                }
                return true;
            };
            KJUR.jws.JWS.inArray = function(d, b) {
                if (b === null) {
                    return false;
                }
                if ((typeof b === "undefined" ? "undefined" : _type_of(b)) !== "object") {
                    return false;
                }
                if (typeof b.length !== "number") {
                    return false;
                }
                for(var c = 0; c < b.length; c++){
                    if (b[c] == d) {
                        return true;
                    }
                }
                return false;
            };
            KJUR.jws.JWS.jwsalg2sigalg = {
                HS256: "HmacSHA256",
                HS384: "HmacSHA384",
                HS512: "HmacSHA512",
                RS256: "SHA256withRSA",
                RS384: "SHA384withRSA",
                RS512: "SHA512withRSA",
                ES256: "SHA256withECDSA",
                ES384: "SHA384withECDSA",
                ES512: "SHA512withECDSA",
                PS256: "SHA256withRSAandMGF1",
                PS384: "SHA384withRSAandMGF1",
                PS512: "SHA512withRSAandMGF1",
                none: "none"
            };
            KJUR.jws.JWS.isSafeJSONString = function(c, b, d) {
                var e = null;
                try {
                    e = jsonParse(c);
                    if ((typeof e === "undefined" ? "undefined" : _type_of(e)) != "object") {
                        return 0;
                    }
                    if (e.constructor === Array) {
                        return 0;
                    }
                    if (b) {
                        b[d] = e;
                    }
                    return 1;
                } catch (a) {
                    return 0;
                }
            };
            KJUR.jws.JWS.readSafeJSONString = function(b) {
                var c = null;
                try {
                    c = jsonParse(b);
                    if ((typeof c === "undefined" ? "undefined" : _type_of(c)) != "object") {
                        return null;
                    }
                    if (c.constructor === Array) {
                        return null;
                    }
                    return c;
                } catch (a) {
                    return null;
                }
            };
            KJUR.jws.JWS.getEncodedSignatureValueFromJWS = function(b) {
                var a = b.match(/^[^.]+\.[^.]+\.([^.]+)$/);
                if (a == null) {
                    throw "JWS signature is not a form of 'Head.Payload.SigValue'.";
                }
                return a[1];
            };
            KJUR.jws.JWS.getJWKthumbprint = function(d) {
                if (d.kty !== "RSA" && d.kty !== "EC" && d.kty !== "oct") {
                    throw "unsupported algorithm for JWK Thumprint";
                }
                var a = "{";
                if (d.kty === "RSA") {
                    if (typeof d.n != "string" || typeof d.e != "string") {
                        throw "wrong n and e value for RSA key";
                    }
                    a += '"e":"' + d.e + '",';
                    a += '"kty":"' + d.kty + '",';
                    a += '"n":"' + d.n + '"}';
                } else {
                    if (d.kty === "EC") {
                        if (typeof d.crv != "string" || typeof d.x != "string" || typeof d.y != "string") {
                            throw "wrong crv, x and y value for EC key";
                        }
                        a += '"crv":"' + d.crv + '",';
                        a += '"kty":"' + d.kty + '",';
                        a += '"x":"' + d.x + '",';
                        a += '"y":"' + d.y + '"}';
                    } else {
                        if (d.kty === "oct") {
                            if (typeof d.k != "string") {
                                throw "wrong k value for oct(symmetric) key";
                            }
                            a += '"kty":"' + d.kty + '",';
                            a += '"k":"' + d.k + '"}';
                        }
                    }
                }
                var b = rstrtohex(a);
                var c = KJUR.crypto.Util.hashHex(b, "sha256");
                var e = hextob64u(c);
                return e;
            };
            KJUR.jws.IntDate = {};
            KJUR.jws.IntDate.get = function(c) {
                var b = KJUR.jws.IntDate, d = b.getNow, a = b.getZulu;
                if (c == "now") {
                    return d();
                } else {
                    if (c == "now + 1hour") {
                        return d() + 60 * 60;
                    } else {
                        if (c == "now + 1day") {
                            return d() + 60 * 60 * 24;
                        } else {
                            if (c == "now + 1month") {
                                return d() + 60 * 60 * 24 * 30;
                            } else {
                                if (c == "now + 1year") {
                                    return d() + 60 * 60 * 24 * 365;
                                } else {
                                    if (c.match(/Z$/)) {
                                        return a(c);
                                    } else {
                                        if (c.match(/^[0-9]+$/)) {
                                            return parseInt(c);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                throw "unsupported format: " + c;
            };
            KJUR.jws.IntDate.getZulu = function(a) {
                return zulutosec(a);
            };
            KJUR.jws.IntDate.getNow = function() {
                var a = ~~/* @__PURE__ */ (new Date() / 1e3);
                return a;
            };
            KJUR.jws.IntDate.intDate2UTCString = function(a) {
                var b = new Date(a * 1e3);
                return b.toUTCString();
            };
            KJUR.jws.IntDate.intDate2Zulu = function(e) {
                var i = new Date(e * 1e3), h = ("0000" + i.getUTCFullYear()).slice(-4), g = ("00" + (i.getUTCMonth() + 1)).slice(-2), b = ("00" + i.getUTCDate()).slice(-2), a = ("00" + i.getUTCHours()).slice(-2), c = ("00" + i.getUTCMinutes()).slice(-2), f = ("00" + i.getUTCSeconds()).slice(-2);
                return h + g + b + a + c + f + "Z";
            };
            if (typeof KJUR == "undefined" || !KJUR) {
                KJUR = {};
            }
            if (typeof KJUR.jws == "undefined" || !KJUR.jws) {
                KJUR.jws = {};
            }
            KJUR.jws.JWSJS = function() {
                var c = KJUR, b = c.jws, a = b.JWS, d = a.readSafeJSONString;
                this.aHeader = [];
                this.sPayload = "";
                this.aSignature = [];
                this.init = function() {
                    this.aHeader = [];
                    this.sPayload = void 0;
                    this.aSignature = [];
                };
                this.initWithJWS = function(f) {
                    this.init();
                    var e = f.split(".");
                    if (e.length != 3) {
                        throw "malformed input JWS";
                    }
                    this.aHeader.push(e[0]);
                    this.sPayload = e[1];
                    this.aSignature.push(e[2]);
                };
                this.addSignature = function(e, h, m, k) {
                    if (this.sPayload === void 0 || this.sPayload === null) {
                        throw "there's no JSON-JS signature to add.";
                    }
                    var l = this.aHeader.length;
                    if (this.aHeader.length != this.aSignature.length) {
                        throw "aHeader.length != aSignature.length";
                    }
                    try {
                        var f = KJUR.jws.JWS.sign(e, h, this.sPayload, m, k);
                        var j = f.split(".");
                        var n = j[0];
                        var g = j[2];
                        this.aHeader.push(j[0]);
                        this.aSignature.push(j[2]);
                    } catch (i) {
                        if (this.aHeader.length > l) {
                            this.aHeader.pop();
                        }
                        if (this.aSignature.length > l) {
                            this.aSignature.pop();
                        }
                        throw "addSignature failed: " + i;
                    }
                };
                this.verifyAll = function(h) {
                    if (this.aHeader.length !== h.length || this.aSignature.length !== h.length) {
                        return false;
                    }
                    for(var g = 0; g < h.length; g++){
                        var f = h[g];
                        if (f.length !== 2) {
                            return false;
                        }
                        var e = this.verifyNth(g, f[0], f[1]);
                        if (e === false) {
                            return false;
                        }
                    }
                    return true;
                };
                this.verifyNth = function(f, j, g) {
                    if (this.aHeader.length <= f || this.aSignature.length <= f) {
                        return false;
                    }
                    var h = this.aHeader[f];
                    var k = this.aSignature[f];
                    var l = h + "." + this.sPayload + "." + k;
                    var e = false;
                    try {
                        e = a.verify(l, j, g);
                    } catch (i) {
                        return false;
                    }
                    return e;
                };
                this.readJWSJS = function(g) {
                    if (typeof g === "string") {
                        var f = d(g);
                        if (f == null) {
                            throw "argument is not safe JSON object string";
                        }
                        this.aHeader = f.headers;
                        this.sPayload = f.payload;
                        this.aSignature = f.signatures;
                    } else {
                        try {
                            if (g.headers.length > 0) {
                                this.aHeader = g.headers;
                            } else {
                                throw "malformed header";
                            }
                            if (typeof g.payload === "string") {
                                this.sPayload = g.payload;
                            } else {
                                throw "malformed signatures";
                            }
                            if (g.signatures.length > 0) {
                                this.aSignature = g.signatures;
                            } else {
                                throw "malformed signatures";
                            }
                        } catch (e) {
                            throw "malformed JWS-JS JSON object: " + e;
                        }
                    }
                };
                this.getJSON = function() {
                    return {
                        headers: this.aHeader,
                        payload: this.sPayload,
                        signatures: this.aSignature
                    };
                };
                this.isEmpty = function() {
                    if (this.aHeader.length == 0) {
                        return 1;
                    }
                    return 0;
                };
            };
            exports.SecureRandom = SecureRandom;
            exports.rng_seed_time = rng_seed_time;
            exports.BigInteger = BigInteger;
            exports.RSAKey = RSAKey;
            exports.ECDSA = KJUR.crypto.ECDSA;
            exports.DSA = KJUR.crypto.DSA;
            exports.Signature = KJUR.crypto.Signature;
            exports.MessageDigest = KJUR.crypto.MessageDigest;
            exports.Mac = KJUR.crypto.Mac;
            exports.Cipher = KJUR.crypto.Cipher;
            exports.KEYUTIL = KEYUTIL;
            exports.ASN1HEX = ASN1HEX;
            exports.X509 = X509;
            exports.X509CRL = X509CRL;
            exports.CryptoJS = CryptoJS;
            exports.b64tohex = b64tohex;
            exports.b64toBA = b64toBA;
            exports.ECFieldElementFp = ECFieldElementFp;
            exports.ECPointFp = ECPointFp;
            exports.ECCurveFp = ECCurveFp;
            exports.stoBA = stoBA;
            exports.BAtos = BAtos;
            exports.BAtohex = BAtohex;
            exports.stohex = stohex;
            exports.stob64 = stob64;
            exports.stob64u = stob64u;
            exports.b64utos = b64utos;
            exports.b64tob64u = b64tob64u;
            exports.b64utob64 = b64utob64;
            exports.hex2b64 = hex2b64;
            exports.hextob64u = hextob64u;
            exports.b64utohex = b64utohex;
            exports.utf8tob64u = utf8tob64u;
            exports.b64utoutf8 = b64utoutf8;
            exports.utf8tob64 = utf8tob64;
            exports.b64toutf8 = b64toutf8;
            exports.utf8tohex = utf8tohex;
            exports.hextoutf8 = hextoutf8;
            exports.hextorstr = hextorstr;
            exports.rstrtohex = rstrtohex;
            exports.hextob64 = hextob64;
            exports.hextob64nl = hextob64nl;
            exports.b64nltohex = b64nltohex;
            exports.hextopem = hextopem;
            exports.pemtohex = pemtohex;
            exports.hextoArrayBuffer = hextoArrayBuffer;
            exports.ArrayBuffertohex = ArrayBuffertohex;
            exports.zulutomsec = zulutomsec;
            exports.msectozulu = msectozulu;
            exports.zulutosec = zulutosec;
            exports.zulutodate = zulutodate;
            exports.datetozulu = datetozulu;
            exports.uricmptohex = uricmptohex;
            exports.hextouricmp = hextouricmp;
            exports.ipv6tohex = ipv6tohex;
            exports.hextoipv6 = hextoipv6;
            exports.hextoip = hextoip;
            exports.iptohex = iptohex;
            exports.ucs2hextoutf8 = ucs2hextoutf8;
            exports.encodeURIComponentAll = encodeURIComponentAll;
            exports.newline_toUnix = newline_toUnix;
            exports.newline_toDos = newline_toDos;
            exports.hextoposhex = hextoposhex;
            exports.intarystrtohex = intarystrtohex;
            exports.strdiffidx = strdiffidx;
            exports.oidtohex = oidtohex;
            exports.hextooid = hextooid;
            exports.strpad = strpad;
            exports.bitstrtoint = bitstrtoint;
            exports.inttobitstr = inttobitstr;
            exports.bitstrtobinstr = bitstrtobinstr;
            exports.binstrtobitstr = binstrtobitstr;
            exports.isBase64URLDot = isBase64URLDot;
            exports.namearraytobinstr = namearraytobinstr;
            exports.extendClass = extendClass;
            exports.foldnl = foldnl;
            exports.b64topem = b64topem;
            exports.pemtob64 = pemtob64;
            exports.timeogen = timetogen;
            exports.aryval = aryval;
            exports.inttohex = inttohex;
            exports.twoscompl = twoscompl;
            exports.KJUR = KJUR;
            exports.crypto = KJUR.crypto;
            exports.asn1 = KJUR.asn1;
            exports.jws = KJUR.jws;
            exports.lang = KJUR.lang;
            exports.VERSION = VERSION;
            exports.VERSION_FULL = VERSION_FULL;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationVerifier.js
    var require_deviceConfigurationVerifier = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationVerifier.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.isConfigResponseVerified = void 0;
            var jsrsasign = __importStar(require_jsrsasign());
            function isConfigResponseVerified(data, publicKey) {
                try {
                    var signatureBase64 = data.signature, dataWithoutAuth = __rest(data, [
                        "signature"
                    ]);
                    var signedMessage = JSON.stringify(dataWithoutAuth);
                    var sig = new jsrsasign.KJUR.crypto.Signature({
                        alg: "SHA256withRSA"
                    });
                    sig.init(publicKey);
                    sig.updateString(signedMessage);
                    var signatureHex = import_buffer.Buffer.from(signatureBase64, "base64").toString("hex");
                    return sig.verify(signatureHex);
                } catch (error) {
                    console.warn(error);
                    return false;
                }
            }
            exports.isConfigResponseVerified = isConfigResponseVerified;
        }
    });
    // node_modules/node-fetch/browser.js
    var require_browser3 = __commonJS({
        "node_modules/node-fetch/browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getGlobal = function getGlobal() {
                if (typeof self !== "undefined") {
                    return self;
                }
                if (typeof window !== "undefined") {
                    return window;
                }
                if (typeof global2 !== "undefined") {
                    return global2;
                }
                throw new Error("unable to locate global object");
            };
            var global2 = getGlobal();
            module.exports = exports = global2.fetch;
            if (global2.fetch) {
                exports["default"] = global2.fetch.bind(global2);
            }
            exports.Headers = global2.Headers;
            exports.Request = global2.Request;
            exports.Response = global2.Response;
        }
    });
    // node_modules/@signageos/front-display/es6/ponyfill/globalThis.js
    var require_globalThis = __commonJS({
        "node_modules/@signageos/front-display/es6/ponyfill/globalThis.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = typeof globalThis !== "undefined" ? globalThis : typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : new Function("return this")();
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Timer/timeout.js
    var require_timeout = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Timer/timeout.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TimeoutError = void 0;
            exports.rejectAfterTimeout = rejectAfterTimeout;
            exports.withTimeout = withTimeout;
            var TimeoutError = /*#__PURE__*/ function(Error1) {
                _inherits(_TimeoutError, Error1);
                var _super = _create_super(_TimeoutError);
                function _TimeoutError(message2) {
                    _class_call_check(this, _TimeoutError);
                    var _this;
                    _this = _super.call(this, message2 !== null && message2 !== void 0 ? message2 : "Timeout");
                    Object.setPrototypeOf(_assert_this_initialized(_this), _TimeoutError.prototype);
                    return _this;
                }
                return _TimeoutError;
            }(_wrap_native_super(Error));
            exports.TimeoutError = TimeoutError;
            function rejectAfterTimeout(timeout, errorMessage) {
                return new Promise(function(_resolve, reject) {
                    setTimeout(function() {
                        return reject(new TimeoutError(errorMessage));
                    }, timeout);
                });
            }
            function withTimeout(promise3, timeoutMs, errorMessage) {
                return Promise.race([
                    promise3,
                    rejectAfterTimeout(timeoutMs, errorMessage)
                ]);
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Util/cancelableRejectAfterTimeout.js
    var require_cancelableRejectAfterTimeout = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/cancelableRejectAfterTimeout.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.cancelableRejectAfterTimeout = void 0;
            var timeout_1 = require_timeout();
            function cancelableRejectAfterTimeout(timeout, message2) {
                var resolveCallback;
                var timeoutId;
                var promise3 = new Promise(function(resolve, reject) {
                    resolveCallback = resolve;
                    timeoutId = setTimeout(function() {
                        return reject(new timeout_1.TimeoutError(message2));
                    }, timeout);
                });
                promise3.cancel = function(reason) {
                    clearTimeout(timeoutId);
                    if (resolveCallback) {
                        resolveCallback(reason);
                    }
                };
                return promise3;
            }
            exports.cancelableRejectAfterTimeout = cancelableRejectAfterTimeout;
        }
    });
    // node_modules/@signageos/front-display/es6/Isomorphic/fetch.js
    var require_fetch = __commonJS({
        "node_modules/@signageos/front-display/es6/Isomorphic/fetch.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.Headers = exports.Request = exports.Response = exports.fetch = void 0;
            var node_fetch_1 = __importStar(require_browser3());
            var globalThis_1 = __importDefault(require_globalThis());
            var cancelableRejectAfterTimeout_1 = require_cancelableRejectAfterTimeout();
            function fetch2(url, init, timeout, errorMessage) {
                return __awaiter(this, void 0, void 0, function() {
                    var timeoutPromise, response, e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!(timeout && timeout > 0)) return [
                                    3,
                                    5
                                ];
                                timeoutPromise = (0, cancelableRejectAfterTimeout_1.cancelableRejectAfterTimeout)(timeout, errorMessage);
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    4,
                                    5
                                ]);
                                return [
                                    4,
                                    Promise.race([
                                        fetchWithoutTimeout(url, init),
                                        timeoutPromise
                                    ])
                                ];
                            case 2:
                                response = _state.sent();
                                return [
                                    2,
                                    response
                                ];
                            case 3:
                                e = _state.sent();
                                throw e;
                            case 4:
                                timeoutPromise.cancel();
                                return [
                                    7
                                ];
                            case 5:
                                return [
                                    2,
                                    fetchWithoutTimeout(url, init)
                                ];
                        }
                    });
                });
            }
            exports.fetch = fetch2;
            function fetchWithoutTimeout(url, init) {
                return __awaiter(this, void 0, void 0, function() {
                    var response;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!false) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    (0, node_fetch_1["default"])(url, init)
                                ];
                            case 1:
                                response = _state.sent();
                                return [
                                    2,
                                    response
                                ];
                            case 2:
                                return [
                                    4,
                                    globalThis_1["default"].fetch(url, init)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.Response = false ? nodeFetchExports.Response : globalThis_1["default"].Response;
            exports.Request = false ? nodeFetchExports.Request : globalThis_1["default"].Request;
            exports.Headers = false ? nodeFetchExports.Headers : globalThis_1["default"].Headers;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/telemetryIntervals.js
    var require_telemetryIntervals = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/telemetryIntervals.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.areTelemetryIntervalsSame = exports.defaultTelemetryIntervals = exports.IntervalType = void 0;
            var IntervalType;
            (function(IntervalType2) {
                IntervalType2["SCREENSHOTS"] = "screenshots";
                IntervalType2["TEMPERATURE"] = "temperature";
                IntervalType2["APPLICATION_VERSION"] = "applicationVersion";
                IntervalType2["BRIGHTNESS"] = "brightness";
                IntervalType2["DATETIME"] = "datetime";
                IntervalType2["DEBUG"] = "debug";
                IntervalType2["FIRMWARE_VERSION"] = "firmwareVersion";
                IntervalType2["ORIENTATION"] = "orientation";
                IntervalType2["POWER_ACTIONS_SCHEDULE"] = "powerActionsSchedule";
                IntervalType2["PROPRIETARY_TIMERS"] = "proprietaryTimers";
                IntervalType2["REMOTE_CONTROL"] = "remoteControl";
                IntervalType2["RESOLUTION"] = "resolution";
                IntervalType2["TIMERS"] = "timers";
                IntervalType2["VOLUME"] = "volume";
                IntervalType2["STORAGE"] = "storage";
                IntervalType2["BATTERY"] = "battery";
                IntervalType2["BUNDLED_APPLET"] = "bundledApplet";
                IntervalType2["POLICY"] = "policy";
                IntervalType2["DEFAULT"] = "default";
                IntervalType2["PROXY"] = "proxy";
                IntervalType2["WIFI_STRENGTH"] = "wifiStrength";
                IntervalType2["AUTO_RECOVERY"] = "autoRecovery";
                IntervalType2["PEER_RECOVERY"] = "peerRecovery";
                IntervalType2["MANAGEMENT_CAPABILITIES"] = "managementCapabilities";
                IntervalType2["NETWORK_INTERFACES"] = "networkInterfaces";
                IntervalType2["DISPLAY_POWER_ON"] = "displayPowerOn";
                IntervalType2["APP_MODULES"] = "appModules";
                IntervalType2["FEATURE_FLAGS"] = "featureFlags";
                IntervalType2["CRYPTOGRAPHIC_KEY"] = "cryptographicKey";
                IntervalType2["EXTENDED_MANAGEMENT_URL"] = "extendedManagementUrl";
                IntervalType2["PLUGIN"] = "plugin";
                IntervalType2["RUNNER"] = "runner";
                IntervalType2["RUNNER_CUSTOM"] = "runnerCustom";
                IntervalType2["CPU_USAGE"] = "cpuUsage";
                IntervalType2["MEMORY_USAGE"] = "memoryUsage";
                IntervalType2["INSTALLED_PACKAGES"] = "installedPackages";
                IntervalType2["SUPRA"] = "supra";
            })(IntervalType || (exports.IntervalType = IntervalType = {}));
            var _obj;
            exports.defaultTelemetryIntervals = (_obj = {}, _define_property(_obj, IntervalType.SCREENSHOTS, 6 * 6e4), _define_property(_obj, IntervalType.TEMPERATURE, 5 * 6e4), _define_property(_obj, IntervalType.BRIGHTNESS, 10 * 6e4), _define_property(_obj, IntervalType.DATETIME, 10 * 6e4), _define_property(_obj, IntervalType.DEBUG, 10 * 6e4), _define_property(_obj, IntervalType.ORIENTATION, 10 * 6e4), _define_property(_obj, IntervalType.POWER_ACTIONS_SCHEDULE, 10 * 6e4), _define_property(_obj, IntervalType.PROPRIETARY_TIMERS, 10 * 6e4), _define_property(_obj, IntervalType.REMOTE_CONTROL, 10 * 6e4), _define_property(_obj, IntervalType.RESOLUTION, 10 * 6e4), _define_property(_obj, IntervalType.TIMERS, 10 * 6e4), _define_property(_obj, IntervalType.VOLUME, 10 * 6e4), _define_property(_obj, IntervalType.STORAGE, 20 * 6e4), _define_property(_obj, IntervalType.BATTERY, 20 * 6e4), _define_property(_obj, IntervalType.APPLICATION_VERSION, 0), _define_property(_obj, IntervalType.FIRMWARE_VERSION, 0), _define_property(_obj, IntervalType.BUNDLED_APPLET, 0), _define_property(_obj, IntervalType.POLICY, 1 * 6e4), _define_property(_obj, IntervalType.DEFAULT, 10 * 6e4), _define_property(_obj, IntervalType.PROXY, 10 * 6e4), _define_property(_obj, IntervalType.WIFI_STRENGTH, 10 * 6e4), _define_property(_obj, IntervalType.AUTO_RECOVERY, 10 * 6e4), _define_property(_obj, IntervalType.PEER_RECOVERY, 10 * 6e4), _define_property(_obj, IntervalType.MANAGEMENT_CAPABILITIES, 0), _define_property(_obj, IntervalType.NETWORK_INTERFACES, 10 * 6e4), _define_property(_obj, IntervalType.DISPLAY_POWER_ON, 10 * 6e4), _define_property(_obj, IntervalType.APP_MODULES, 10 * 6e4), _define_property(_obj, IntervalType.FEATURE_FLAGS, 10 * 6e4), _define_property(_obj, IntervalType.CRYPTOGRAPHIC_KEY, 10 * 6e4), _define_property(_obj, IntervalType.EXTENDED_MANAGEMENT_URL, 10 * 6e4), _define_property(_obj, IntervalType.PLUGIN, 10 * 6e4), _define_property(_obj, IntervalType.RUNNER, 10 * 6e4), _define_property(_obj, IntervalType.RUNNER_CUSTOM, 10 * 6e4), _define_property(_obj, IntervalType.CPU_USAGE, 5 * 6e4), _define_property(_obj, IntervalType.MEMORY_USAGE, 5 * 6e4), _define_property(_obj, IntervalType.INSTALLED_PACKAGES, 5 * 6e4), _define_property(_obj, IntervalType.SUPRA, 10 * 6e4), _obj);
            function areTelemetryIntervalsSame(a, b) {
                return a === b || Object.values(IntervalType).every(function(it) {
                    return (a === null || a === void 0 ? void 0 : a[it]) === (b === null || b === void 0 ? void 0 : b[it]);
                });
            }
            exports.areTelemetryIntervalsSame = areTelemetryIntervalsSame;
        }
    });
    // node_modules/@signageos/actions/dist/Applet/activeAppletActions.js
    var require_activeAppletActions = __commonJS({
        "node_modules/@signageos/actions/dist/Applet/activeAppletActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ActiveOpenBrowserLink = exports.ActiveAppletRestore = exports.ActiveAppletReady = exports.ActiveAppletLoaded = exports.ActiveAppletStreamStop = exports.ActiveAppletStreamPlay = exports.DispatchCommandToApplet = exports.AppletPing = exports.ActiveAppletDispatchCommand = void 0;
            exports.ActiveAppletDispatchCommand = "Applet.ActiveAppletDispatchCommand";
            exports.AppletPing = "Applet.ActiveAppletPing";
            exports.DispatchCommandToApplet = "Applet.DispatchCommandToApplet";
            exports.ActiveAppletStreamPlay = "Applet.ActiveAppletStreamPlay";
            exports.ActiveAppletStreamStop = "Applet.ActiveAppletStreamStop";
            exports.ActiveAppletLoaded = "Applet.ActiveAppletLoaded";
            exports.ActiveAppletReady = "Applet.ActiveAppletReady";
            exports.ActiveAppletRestore = "Applet.ActiveAppletRestore";
            exports.ActiveOpenBrowserLink = "Applet.ActiveOpenBrowserLink";
        }
    });
    // node_modules/zod/v3/helpers/util.cjs
    var require_util = __commonJS({
        "node_modules/zod/v3/helpers/util.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getParsedType = exports.ZodParsedType = exports.objectUtil = exports.util = void 0;
            var util;
            (function(util2) {
                util2.assertEqual = function(_2) {};
                function assertIs(_arg) {}
                util2.assertIs = assertIs;
                function assertNever(_x) {
                    throw new Error();
                }
                util2.assertNever = assertNever;
                util2.arrayToEnum = function(items) {
                    var obj = {};
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var item = _step.value;
                            obj[item] = item;
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                    return obj;
                };
                util2.getValidEnumValues = function(obj) {
                    var validKeys = util2.objectKeys(obj).filter(function(k) {
                        return typeof obj[obj[k]] !== "number";
                    });
                    var filtered = {};
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = validKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var k = _step.value;
                            filtered[k] = obj[k];
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                    return util2.objectValues(filtered);
                };
                util2.objectValues = function(obj) {
                    return util2.objectKeys(obj).map(function(e) {
                        return obj[e];
                    });
                };
                util2.objectKeys = typeof Object.keys === "function" ? function(obj) {
                    return Object.keys(obj);
                } : function(object) {
                    var keys = [];
                    for(var key in object){
                        if (Object.prototype.hasOwnProperty.call(object, key)) {
                            keys.push(key);
                        }
                    }
                    return keys;
                };
                util2.find = function(arr, checker) {
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var item = _step.value;
                            if (checker(item)) return item;
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                    return void 0;
                };
                util2.isInteger = typeof Number.isInteger === "function" ? function(val) {
                    return Number.isInteger(val);
                } : function(val) {
                    return typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val;
                };
                function joinValues(array4) {
                    var separator = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : " | ";
                    return array4.map(function(val) {
                        return typeof val === "string" ? "'".concat(val, "'") : val;
                    }).join(separator);
                }
                util2.joinValues = joinValues;
                util2.jsonStringifyReplacer = function(_2, value) {
                    if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "bigint") {
                        return value.toString();
                    }
                    return value;
                };
            })(util || (exports.util = util = {}));
            var objectUtil;
            (function(objectUtil2) {
                objectUtil2.mergeShapes = function(first, second) {
                    return __spreadValues(__spreadValues({}, first), second);
                };
            })(objectUtil || (exports.objectUtil = objectUtil = {}));
            exports.ZodParsedType = util.arrayToEnum([
                "string",
                "nan",
                "number",
                "integer",
                "float",
                "boolean",
                "date",
                "bigint",
                "symbol",
                "function",
                "undefined",
                "null",
                "array",
                "object",
                "unknown",
                "promise",
                "void",
                "never",
                "map",
                "set"
            ]);
            var getParsedType = function(data) {
                var t = typeof data === "undefined" ? "undefined" : _type_of(data);
                switch(t){
                    case "undefined":
                        return exports.ZodParsedType.undefined;
                    case "string":
                        return exports.ZodParsedType.string;
                    case "number":
                        return Number.isNaN(data) ? exports.ZodParsedType.nan : exports.ZodParsedType.number;
                    case "boolean":
                        return exports.ZodParsedType["boolean"];
                    case "function":
                        return exports.ZodParsedType["function"];
                    case "bigint":
                        return exports.ZodParsedType.bigint;
                    case "symbol":
                        return exports.ZodParsedType.symbol;
                    case "object":
                        if (Array.isArray(data)) {
                            return exports.ZodParsedType.array;
                        }
                        if (data === null) {
                            return exports.ZodParsedType["null"];
                        }
                        if (data.then && typeof data.then === "function" && data["catch"] && typeof data["catch"] === "function") {
                            return exports.ZodParsedType.promise;
                        }
                        if (typeof Map !== "undefined" && data instanceof Map) {
                            return exports.ZodParsedType.map;
                        }
                        if (typeof Set !== "undefined" && data instanceof Set) {
                            return exports.ZodParsedType.set;
                        }
                        if (typeof Date !== "undefined" && data instanceof Date) {
                            return exports.ZodParsedType.date;
                        }
                        return exports.ZodParsedType.object;
                    default:
                        return exports.ZodParsedType.unknown;
                }
            };
            exports.getParsedType = getParsedType;
        }
    });
    // node_modules/zod/v3/ZodError.cjs
    var require_ZodError = __commonJS({
        "node_modules/zod/v3/ZodError.cjs": function _target(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ZodError = exports.quotelessJson = exports.ZodIssueCode = void 0;
            var util_js_1 = require_util();
            exports.ZodIssueCode = util_js_1.util.arrayToEnum([
                "invalid_type",
                "invalid_literal",
                "custom",
                "invalid_union",
                "invalid_union_discriminator",
                "invalid_enum_value",
                "unrecognized_keys",
                "invalid_arguments",
                "invalid_return_type",
                "invalid_date",
                "invalid_string",
                "too_small",
                "too_big",
                "invalid_intersection_types",
                "not_multiple_of",
                "not_finite"
            ]);
            var quotelessJson = function(obj) {
                var json = JSON.stringify(obj, null, 2);
                return json.replace(/"([^"]+)":/g, "$1:");
            };
            exports.quotelessJson = quotelessJson;
            var ZodError = /*#__PURE__*/ function _target(Error1) {
                _inherits(_ZodError, Error1);
                var _super = _create_super(_ZodError);
                function _ZodError(issues) {
                    _class_call_check(this, _ZodError);
                    var _this;
                    _this = _super.call(this);
                    _this.issues = [];
                    _this.addIssue = function(sub) {
                        _this.issues = _to_consumable_array(_this.issues).concat([
                            sub
                        ]);
                    };
                    _this.addIssues = function() {
                        var subs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
                        _this.issues = _to_consumable_array(_this.issues).concat(_to_consumable_array(subs));
                    };
                    var actualProto = (this instanceof _ZodError ? this.constructor : void 0).prototype;
                    if (Object.setPrototypeOf) {
                        Object.setPrototypeOf(_assert_this_initialized(_this), actualProto);
                    } else {
                        _this.__proto__ = actualProto;
                    }
                    _this.name = "ZodError";
                    _this.issues = issues;
                    return _this;
                }
                _create_class(_ZodError, [
                    {
                        key: "errors",
                        get: function get() {
                            return this.issues;
                        }
                    },
                    {
                        key: "format",
                        value: function format(_mapper) {
                            var mapper = _mapper || function(issue) {
                                return issue.message;
                            };
                            var fieldErrors = {
                                _errors: []
                            };
                            var processError = function(error) {
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = error.issues[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var issue = _step.value;
                                        if (issue.code === "invalid_union") {
                                            issue.unionErrors.map(processError);
                                        } else if (issue.code === "invalid_return_type") {
                                            processError(issue.returnTypeError);
                                        } else if (issue.code === "invalid_arguments") {
                                            processError(issue.argumentsError);
                                        } else if (issue.path.length === 0) {
                                            fieldErrors._errors.push(mapper(issue));
                                        } else {
                                            var curr = fieldErrors;
                                            var i = 0;
                                            while(i < issue.path.length){
                                                var el = issue.path[i];
                                                var terminal = i === issue.path.length - 1;
                                                if (!terminal) {
                                                    curr[el] = curr[el] || {
                                                        _errors: []
                                                    };
                                                } else {
                                                    curr[el] = curr[el] || {
                                                        _errors: []
                                                    };
                                                    curr[el]._errors.push(mapper(issue));
                                                }
                                                curr = curr[el];
                                                i++;
                                            }
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                            };
                            processError(this);
                            return fieldErrors;
                        }
                    },
                    {
                        key: "toString",
                        value: function toString() {
                            return this.message;
                        }
                    },
                    {
                        key: "message",
                        get: function get() {
                            return JSON.stringify(this.issues, util_js_1.util.jsonStringifyReplacer, 2);
                        }
                    },
                    {
                        key: "isEmpty",
                        get: function get() {
                            return this.issues.length === 0;
                        }
                    },
                    {
                        key: "flatten",
                        value: function flatten() {
                            var mapper = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(issue) {
                                return issue.message;
                            };
                            var fieldErrors = {};
                            var formErrors = [];
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this.issues[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var sub = _step.value;
                                    if (sub.path.length > 0) {
                                        var firstEl = sub.path[0];
                                        fieldErrors[firstEl] = fieldErrors[firstEl] || [];
                                        fieldErrors[firstEl].push(mapper(sub));
                                    } else {
                                        formErrors.push(mapper(sub));
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                formErrors: formErrors,
                                fieldErrors: fieldErrors
                            };
                        }
                    },
                    {
                        key: "formErrors",
                        get: function get() {
                            return this.flatten();
                        }
                    }
                ], [
                    {
                        key: "assert",
                        value: function assert(value) {
                            if (!(value instanceof _ZodError)) {
                                throw new Error("Not a ZodError: ".concat(value));
                            }
                        }
                    }
                ]);
                return _ZodError;
            }(_wrap_native_super(Error));
            exports.ZodError = ZodError;
            ZodError.create = function(issues) {
                var error = new ZodError(issues);
                return error;
            };
        }
    });
    // node_modules/zod/v3/locales/en.cjs
    var require_en = __commonJS({
        "node_modules/zod/v3/locales/en.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var ZodError_js_1 = require_ZodError();
            var util_js_1 = require_util();
            var errorMap = function(issue, _ctx) {
                var message2;
                switch(issue.code){
                    case ZodError_js_1.ZodIssueCode.invalid_type:
                        if (issue.received === util_js_1.ZodParsedType.undefined) {
                            message2 = "Required";
                        } else {
                            message2 = "Expected ".concat(issue.expected, ", received ").concat(issue.received);
                        }
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_literal:
                        message2 = "Invalid literal value, expected ".concat(JSON.stringify(issue.expected, util_js_1.util.jsonStringifyReplacer));
                        break;
                    case ZodError_js_1.ZodIssueCode.unrecognized_keys:
                        message2 = "Unrecognized key(s) in object: ".concat(util_js_1.util.joinValues(issue.keys, ", "));
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_union:
                        message2 = "Invalid input";
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_union_discriminator:
                        message2 = "Invalid discriminator value. Expected ".concat(util_js_1.util.joinValues(issue.options));
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_enum_value:
                        message2 = "Invalid enum value. Expected ".concat(util_js_1.util.joinValues(issue.options), ", received '").concat(issue.received, "'");
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_arguments:
                        message2 = "Invalid function arguments";
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_return_type:
                        message2 = "Invalid function return type";
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_date:
                        message2 = "Invalid date";
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_string:
                        if (_type_of(issue.validation) === "object") {
                            if ("includes" in issue.validation) {
                                message2 = 'Invalid input: must include "'.concat(issue.validation.includes, '"');
                                if (typeof issue.validation.position === "number") {
                                    message2 = "".concat(message2, " at one or more positions greater than or equal to ").concat(issue.validation.position);
                                }
                            } else if ("startsWith" in issue.validation) {
                                message2 = 'Invalid input: must start with "'.concat(issue.validation.startsWith, '"');
                            } else if ("endsWith" in issue.validation) {
                                message2 = 'Invalid input: must end with "'.concat(issue.validation.endsWith, '"');
                            } else {
                                util_js_1.util.assertNever(issue.validation);
                            }
                        } else if (issue.validation !== "regex") {
                            message2 = "Invalid ".concat(issue.validation);
                        } else {
                            message2 = "Invalid";
                        }
                        break;
                    case ZodError_js_1.ZodIssueCode.too_small:
                        if (issue.type === "array") message2 = "Array must contain ".concat(issue.exact ? "exactly" : issue.inclusive ? "at least" : "more than", " ").concat(issue.minimum, " element(s)");
                        else if (issue.type === "string") message2 = "String must contain ".concat(issue.exact ? "exactly" : issue.inclusive ? "at least" : "over", " ").concat(issue.minimum, " character(s)");
                        else if (issue.type === "number") message2 = "Number must be ".concat(issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than ").concat(issue.minimum);
                        else if (issue.type === "bigint") message2 = "Number must be ".concat(issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than ").concat(issue.minimum);
                        else if (issue.type === "date") message2 = "Date must be ".concat(issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than ").concat(new Date(Number(issue.minimum)));
                        else message2 = "Invalid input";
                        break;
                    case ZodError_js_1.ZodIssueCode.too_big:
                        if (issue.type === "array") message2 = "Array must contain ".concat(issue.exact ? "exactly" : issue.inclusive ? "at most" : "less than", " ").concat(issue.maximum, " element(s)");
                        else if (issue.type === "string") message2 = "String must contain ".concat(issue.exact ? "exactly" : issue.inclusive ? "at most" : "under", " ").concat(issue.maximum, " character(s)");
                        else if (issue.type === "number") message2 = "Number must be ".concat(issue.exact ? "exactly" : issue.inclusive ? "less than or equal to" : "less than", " ").concat(issue.maximum);
                        else if (issue.type === "bigint") message2 = "BigInt must be ".concat(issue.exact ? "exactly" : issue.inclusive ? "less than or equal to" : "less than", " ").concat(issue.maximum);
                        else if (issue.type === "date") message2 = "Date must be ".concat(issue.exact ? "exactly" : issue.inclusive ? "smaller than or equal to" : "smaller than", " ").concat(new Date(Number(issue.maximum)));
                        else message2 = "Invalid input";
                        break;
                    case ZodError_js_1.ZodIssueCode.custom:
                        message2 = "Invalid input";
                        break;
                    case ZodError_js_1.ZodIssueCode.invalid_intersection_types:
                        message2 = "Intersection results could not be merged";
                        break;
                    case ZodError_js_1.ZodIssueCode.not_multiple_of:
                        message2 = "Number must be a multiple of ".concat(issue.multipleOf);
                        break;
                    case ZodError_js_1.ZodIssueCode.not_finite:
                        message2 = "Number must be finite";
                        break;
                    default:
                        message2 = _ctx.defaultError;
                        util_js_1.util.assertNever(issue);
                }
                return {
                    message: message2
                };
            };
            exports["default"] = errorMap;
        }
    });
    // node_modules/zod/v3/errors.cjs
    var require_errors = __commonJS({
        "node_modules/zod/v3/errors.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.defaultErrorMap = void 0;
            exports.setErrorMap = setErrorMap;
            exports.getErrorMap = getErrorMap;
            var en_js_1 = __importDefault(require_en());
            exports.defaultErrorMap = en_js_1["default"];
            var overrideErrorMap = en_js_1["default"];
            function setErrorMap(map) {
                overrideErrorMap = map;
            }
            function getErrorMap() {
                return overrideErrorMap;
            }
        }
    });
    // node_modules/zod/v3/helpers/parseUtil.cjs
    var require_parseUtil = __commonJS({
        "node_modules/zod/v3/helpers/parseUtil.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.isAsync = exports.isValid = exports.isDirty = exports.isAborted = exports.OK = exports.DIRTY = exports.INVALID = exports.ParseStatus = exports.EMPTY_PATH = exports.makeIssue = void 0;
            exports.addIssueToContext = addIssueToContext;
            var errors_js_1 = require_errors();
            var en_js_1 = __importDefault(require_en());
            var makeIssue = function(params) {
                var data = params.data, path2 = params.path, errorMaps = params.errorMaps, issueData = params.issueData;
                var fullPath = _to_consumable_array(path2).concat(_to_consumable_array(issueData.path || []));
                var fullIssue = __spreadProps(__spreadValues({}, issueData), {
                    path: fullPath
                });
                if (issueData.message !== void 0) {
                    return __spreadProps(__spreadValues({}, issueData), {
                        path: fullPath,
                        message: issueData.message
                    });
                }
                var errorMessage = "";
                var maps = errorMaps.filter(function(m) {
                    return !!m;
                }).slice().reverse();
                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                try {
                    for(var _iterator = maps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                        var map = _step.value;
                        errorMessage = map(fullIssue, {
                            data: data,
                            defaultError: errorMessage
                        }).message;
                    }
                } catch (err) {
                    _didIteratorError = true;
                    _iteratorError = err;
                } finally{
                    try {
                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                            _iterator["return"]();
                        }
                    } finally{
                        if (_didIteratorError) {
                            throw _iteratorError;
                        }
                    }
                }
                return __spreadProps(__spreadValues({}, issueData), {
                    path: fullPath,
                    message: errorMessage
                });
            };
            exports.makeIssue = makeIssue;
            exports.EMPTY_PATH = [];
            function addIssueToContext(ctx, issueData) {
                var overrideMap = (0, errors_js_1.getErrorMap)();
                var issue = (0, exports.makeIssue)({
                    issueData: issueData,
                    data: ctx.data,
                    path: ctx.path,
                    errorMaps: [
                        ctx.common.contextualErrorMap,
                        // contextual error map is first priority
                        ctx.schemaErrorMap,
                        // then schema-bound map if available
                        overrideMap,
                        // then global override map
                        overrideMap === en_js_1["default"] ? void 0 : en_js_1["default"]
                    ].filter(function(x) {
                        return !!x;
                    })
                });
                ctx.common.issues.push(issue);
            }
            var ParseStatus = /*#__PURE__*/ function() {
                function _ParseStatus() {
                    _class_call_check(this, _ParseStatus);
                    this.value = "valid";
                }
                _create_class(_ParseStatus, [
                    {
                        key: "dirty",
                        value: function dirty() {
                            if (this.value === "valid") this.value = "dirty";
                        }
                    },
                    {
                        key: "abort",
                        value: function abort() {
                            if (this.value !== "aborted") this.value = "aborted";
                        }
                    }
                ], [
                    {
                        key: "mergeArray",
                        value: function mergeArray(status, results) {
                            var arrayValue = [];
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var s = _step.value;
                                    if (s.status === "aborted") return exports.INVALID;
                                    if (s.status === "dirty") status.dirty();
                                    arrayValue.push(s.value);
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                status: status.value,
                                value: arrayValue
                            };
                        }
                    },
                    {
                        key: "mergeObjectAsync",
                        value: function mergeObjectAsync(status, pairs) {
                            return __async(this, null, function() {
                                var syncPairs, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, pair, key, value, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            syncPairs = [];
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                7,
                                                8,
                                                9
                                            ]);
                                            _iterator = pairs[Symbol.iterator]();
                                            _state.label = 2;
                                        case 2:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                6
                                            ];
                                            pair = _step.value;
                                            return [
                                                4,
                                                pair.key
                                            ];
                                        case 3:
                                            key = _state.sent();
                                            return [
                                                4,
                                                pair.value
                                            ];
                                        case 4:
                                            value = _state.sent();
                                            syncPairs.push({
                                                key: key,
                                                value: value
                                            });
                                            _state.label = 5;
                                        case 5:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                2
                                            ];
                                        case 6:
                                            return [
                                                3,
                                                9
                                            ];
                                        case 7:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                9
                                            ];
                                        case 8:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 9:
                                            return [
                                                2,
                                                _ParseStatus.mergeObjectSync(status, syncPairs)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "mergeObjectSync",
                        value: function mergeObjectSync(status, pairs) {
                            var finalObject = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = pairs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var pair = _step.value;
                                    var key = pair.key, value = pair.value;
                                    if (key.status === "aborted") return exports.INVALID;
                                    if (value.status === "aborted") return exports.INVALID;
                                    if (key.status === "dirty") status.dirty();
                                    if (value.status === "dirty") status.dirty();
                                    if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
                                        finalObject[key.value] = value.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                status: status.value,
                                value: finalObject
                            };
                        }
                    }
                ]);
                return _ParseStatus;
            }();
            exports.ParseStatus = ParseStatus;
            exports.INVALID = Object.freeze({
                status: "aborted"
            });
            var DIRTY = function(value) {
                return {
                    status: "dirty",
                    value: value
                };
            };
            exports.DIRTY = DIRTY;
            var OK = function(value) {
                return {
                    status: "valid",
                    value: value
                };
            };
            exports.OK = OK;
            var isAborted = function(x) {
                return x.status === "aborted";
            };
            exports.isAborted = isAborted;
            var isDirty = function(x) {
                return x.status === "dirty";
            };
            exports.isDirty = isDirty;
            var isValid = function(x) {
                return x.status === "valid";
            };
            exports.isValid = isValid;
            var isAsync = function(x) {
                return typeof Promise !== "undefined" && x instanceof Promise;
            };
            exports.isAsync = isAsync;
        }
    });
    // node_modules/zod/v3/helpers/typeAliases.cjs
    var require_typeAliases = __commonJS({
        "node_modules/zod/v3/helpers/typeAliases.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
        }
    });
    // node_modules/zod/v3/helpers/errorUtil.cjs
    var require_errorUtil = __commonJS({
        "node_modules/zod/v3/helpers/errorUtil.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.errorUtil = void 0;
            var errorUtil;
            (function(errorUtil2) {
                errorUtil2.errToObj = function(message2) {
                    return typeof message2 === "string" ? {
                        message: message2
                    } : message2 || {};
                };
                errorUtil2.toString = function(message2) {
                    return typeof message2 === "string" ? message2 : message2 == null ? void 0 : message2.message;
                };
            })(errorUtil || (exports.errorUtil = errorUtil = {}));
        }
    });
    // node_modules/zod/v3/types.cjs
    var require_types = __commonJS({
        "node_modules/zod/v3/types.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.discriminatedUnion = exports.date = exports["boolean"] = exports.bigint = exports.array = exports.any = exports.coerce = exports.ZodFirstPartyTypeKind = exports.late = exports.ZodSchema = exports.Schema = exports.ZodReadonly = exports.ZodPipeline = exports.ZodBranded = exports.BRAND = exports.ZodNaN = exports.ZodCatch = exports.ZodDefault = exports.ZodNullable = exports.ZodOptional = exports.ZodTransformer = exports.ZodEffects = exports.ZodPromise = exports.ZodNativeEnum = exports.ZodEnum = exports.ZodLiteral = exports.ZodLazy = exports.ZodFunction = exports.ZodSet = exports.ZodMap = exports.ZodRecord = exports.ZodTuple = exports.ZodIntersection = exports.ZodDiscriminatedUnion = exports.ZodUnion = exports.ZodObject = exports.ZodArray = exports.ZodVoid = exports.ZodNever = exports.ZodUnknown = exports.ZodAny = exports.ZodNull = exports.ZodUndefined = exports.ZodSymbol = exports.ZodDate = exports.ZodBoolean = exports.ZodBigInt = exports.ZodNumber = exports.ZodString = exports.ZodType = void 0;
            exports.NEVER = exports["void"] = exports.unknown = exports.union = exports.undefined = exports.tuple = exports.transformer = exports.symbol = exports.string = exports.strictObject = exports.set = exports.record = exports.promise = exports.preprocess = exports.pipeline = exports.ostring = exports.optional = exports.onumber = exports.oboolean = exports.object = exports.number = exports.nullable = exports["null"] = exports.never = exports.nativeEnum = exports.nan = exports.map = exports.literal = exports.lazy = exports.intersection = exports["instanceof"] = exports["function"] = exports["enum"] = exports.effect = void 0;
            exports.datetimeRegex = datetimeRegex;
            exports.custom = custom;
            var ZodError_js_1 = require_ZodError();
            var errors_js_1 = require_errors();
            var errorUtil_js_1 = require_errorUtil();
            var parseUtil_js_1 = require_parseUtil();
            var util_js_1 = require_util();
            var ParseInputLazyPath = /*#__PURE__*/ function() {
                function ParseInputLazyPath(parent2, value, path2, key) {
                    _class_call_check(this, ParseInputLazyPath);
                    this._cachedPath = [];
                    this.parent = parent2;
                    this.data = value;
                    this._path = path2;
                    this._key = key;
                }
                _create_class(ParseInputLazyPath, [
                    {
                        key: "path",
                        get: function get() {
                            if (!this._cachedPath.length) {
                                if (Array.isArray(this._key)) {
                                    var _this__cachedPath;
                                    (_this__cachedPath = this._cachedPath).push.apply(_this__cachedPath, _to_consumable_array(this._path).concat(_to_consumable_array(this._key)));
                                } else {
                                    var _this__cachedPath1;
                                    (_this__cachedPath1 = this._cachedPath).push.apply(_this__cachedPath1, _to_consumable_array(this._path).concat([
                                        this._key
                                    ]));
                                }
                            }
                            return this._cachedPath;
                        }
                    }
                ]);
                return ParseInputLazyPath;
            }();
            var handleResult = function(ctx, result17) {
                if ((0, parseUtil_js_1.isValid)(result17)) {
                    return {
                        success: true,
                        data: result17.value
                    };
                } else {
                    if (!ctx.common.issues.length) {
                        throw new Error("Validation failed but no issues detected.");
                    }
                    return {
                        success: false,
                        get error () {
                            if (this._error) return this._error;
                            var error = new ZodError_js_1.ZodError(ctx.common.issues);
                            this._error = error;
                            return this._error;
                        }
                    };
                }
            };
            function processCreateParams(params) {
                if (!params) return {};
                var errorMap = params.errorMap, invalid_type_error = params.invalid_type_error, required_error = params.required_error, description = params.description;
                if (errorMap && (invalid_type_error || required_error)) {
                    throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');
                }
                if (errorMap) return {
                    errorMap: errorMap,
                    description: description
                };
                var customMap = function(iss, ctx) {
                    var _a2, _b2;
                    var message2 = params.message;
                    if (iss.code === "invalid_enum_value") {
                        return {
                            message: message2 != null ? message2 : ctx.defaultError
                        };
                    }
                    if (typeof ctx.data === "undefined") {
                        return {
                            message: (_a2 = message2 != null ? message2 : required_error) != null ? _a2 : ctx.defaultError
                        };
                    }
                    if (iss.code !== "invalid_type") return {
                        message: ctx.defaultError
                    };
                    return {
                        message: (_b2 = message2 != null ? message2 : invalid_type_error) != null ? _b2 : ctx.defaultError
                    };
                };
                return {
                    errorMap: customMap,
                    description: description
                };
            }
            var ZodType = /*#__PURE__*/ function() {
                function ZodType(def) {
                    var _this = this;
                    _class_call_check(this, ZodType);
                    this.spa = this.safeParseAsync;
                    this._def = def;
                    this.parse = this.parse.bind(this);
                    this.safeParse = this.safeParse.bind(this);
                    this.parseAsync = this.parseAsync.bind(this);
                    this.safeParseAsync = this.safeParseAsync.bind(this);
                    this.spa = this.spa.bind(this);
                    this.refine = this.refine.bind(this);
                    this.refinement = this.refinement.bind(this);
                    this.superRefine = this.superRefine.bind(this);
                    this.optional = this.optional.bind(this);
                    this.nullable = this.nullable.bind(this);
                    this.nullish = this.nullish.bind(this);
                    this.array = this.array.bind(this);
                    this.promise = this.promise.bind(this);
                    this.or = this.or.bind(this);
                    this.and = this.and.bind(this);
                    this.transform = this.transform.bind(this);
                    this.brand = this.brand.bind(this);
                    this["default"] = this["default"].bind(this);
                    this["catch"] = this["catch"].bind(this);
                    this.describe = this.describe.bind(this);
                    this.pipe = this.pipe.bind(this);
                    this.readonly = this.readonly.bind(this);
                    this.isNullable = this.isNullable.bind(this);
                    this.isOptional = this.isOptional.bind(this);
                    this["~standard"] = {
                        version: 1,
                        vendor: "zod",
                        validate: function(data) {
                            return _this["~validate"](data);
                        }
                    };
                }
                _create_class(ZodType, [
                    {
                        key: "description",
                        get: function get() {
                            return this._def.description;
                        }
                    },
                    {
                        key: "_getType",
                        value: function _getType(input) {
                            return (0, util_js_1.getParsedType)(input.data);
                        }
                    },
                    {
                        key: "_getOrReturnCtx",
                        value: function _getOrReturnCtx(input, ctx) {
                            return ctx || {
                                common: input.parent.common,
                                data: input.data,
                                parsedType: (0, util_js_1.getParsedType)(input.data),
                                schemaErrorMap: this._def.errorMap,
                                path: input.path,
                                parent: input.parent
                            };
                        }
                    },
                    {
                        key: "_processInputParams",
                        value: function _processInputParams(input) {
                            return {
                                status: new parseUtil_js_1.ParseStatus(),
                                ctx: {
                                    common: input.parent.common,
                                    data: input.data,
                                    parsedType: (0, util_js_1.getParsedType)(input.data),
                                    schemaErrorMap: this._def.errorMap,
                                    path: input.path,
                                    parent: input.parent
                                }
                            };
                        }
                    },
                    {
                        key: "_parseSync",
                        value: function _parseSync(input) {
                            var result17 = this._parse(input);
                            if ((0, parseUtil_js_1.isAsync)(result17)) {
                                throw new Error("Synchronous parse encountered promise.");
                            }
                            return result17;
                        }
                    },
                    {
                        key: "_parseAsync",
                        value: function _parseAsync(input) {
                            var result17 = this._parse(input);
                            return Promise.resolve(result17);
                        }
                    },
                    {
                        key: "parse",
                        value: function parse(data, params) {
                            var result17 = this.safeParse(data, params);
                            if (result17.success) return result17.data;
                            throw result17.error;
                        }
                    },
                    {
                        key: "safeParse",
                        value: function safeParse(data, params) {
                            var _a2;
                            var ctx = {
                                common: {
                                    issues: [],
                                    async: (_a2 = params == null ? void 0 : params.async) != null ? _a2 : false,
                                    contextualErrorMap: params == null ? void 0 : params.errorMap
                                },
                                path: (params == null ? void 0 : params.path) || [],
                                schemaErrorMap: this._def.errorMap,
                                parent: null,
                                data: data,
                                parsedType: (0, util_js_1.getParsedType)(data)
                            };
                            var result17 = this._parseSync({
                                data: data,
                                path: ctx.path,
                                parent: ctx
                            });
                            return handleResult(ctx, result17);
                        }
                    },
                    {
                        key: "~validate",
                        value: function value(data) {
                            var _a2, _b2;
                            var ctx = {
                                common: {
                                    issues: [],
                                    async: !!this["~standard"].async
                                },
                                path: [],
                                schemaErrorMap: this._def.errorMap,
                                parent: null,
                                data: data,
                                parsedType: (0, util_js_1.getParsedType)(data)
                            };
                            if (!this["~standard"].async) {
                                try {
                                    var result17 = this._parseSync({
                                        data: data,
                                        path: [],
                                        parent: ctx
                                    });
                                    return (0, parseUtil_js_1.isValid)(result17) ? {
                                        value: result17.value
                                    } : {
                                        issues: ctx.common.issues
                                    };
                                } catch (err) {
                                    if ((_b2 = (_a2 = err == null ? void 0 : err.message) == null ? void 0 : _a2.toLowerCase()) == null ? void 0 : _b2.includes("encountered")) {
                                        this["~standard"].async = true;
                                    }
                                    ctx.common = {
                                        issues: [],
                                        async: true
                                    };
                                }
                            }
                            return this._parseAsync({
                                data: data,
                                path: [],
                                parent: ctx
                            }).then(function(result17) {
                                return (0, parseUtil_js_1.isValid)(result17) ? {
                                    value: result17.value
                                } : {
                                    issues: ctx.common.issues
                                };
                            });
                        }
                    },
                    {
                        key: "parseAsync",
                        value: function parseAsync(data, params) {
                            return __async(this, null, function() {
                                var result17;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.safeParseAsync(data, params)
                                            ];
                                        case 1:
                                            result17 = _state.sent();
                                            if (result17.success) return [
                                                2,
                                                result17.data
                                            ];
                                            throw result17.error;
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "safeParseAsync",
                        value: function safeParseAsync(data, params) {
                            return __async(this, null, function() {
                                var ctx, maybeAsyncResult, result17;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            ctx = {
                                                common: {
                                                    issues: [],
                                                    contextualErrorMap: params == null ? void 0 : params.errorMap,
                                                    async: true
                                                },
                                                path: (params == null ? void 0 : params.path) || [],
                                                schemaErrorMap: this._def.errorMap,
                                                parent: null,
                                                data: data,
                                                parsedType: (0, util_js_1.getParsedType)(data)
                                            };
                                            maybeAsyncResult = this._parse({
                                                data: data,
                                                path: ctx.path,
                                                parent: ctx
                                            });
                                            return [
                                                4,
                                                (0, parseUtil_js_1.isAsync)(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)
                                            ];
                                        case 1:
                                            result17 = _state.sent();
                                            return [
                                                2,
                                                handleResult(ctx, result17)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "refine",
                        value: function refine(check2, message2) {
                            var getIssueProperties = function(val) {
                                if (typeof message2 === "string" || typeof message2 === "undefined") {
                                    return {
                                        message: message2
                                    };
                                } else if (typeof message2 === "function") {
                                    return message2(val);
                                } else {
                                    return message2;
                                }
                            };
                            return this._refinement(function(val, ctx) {
                                var result17 = check2(val);
                                var setError = function() {
                                    return ctx.addIssue(__spreadValues({
                                        code: ZodError_js_1.ZodIssueCode.custom
                                    }, getIssueProperties(val)));
                                };
                                if (typeof Promise !== "undefined" && result17 instanceof Promise) {
                                    return result17.then(function(data) {
                                        if (!data) {
                                            setError();
                                            return false;
                                        } else {
                                            return true;
                                        }
                                    });
                                }
                                if (!result17) {
                                    setError();
                                    return false;
                                } else {
                                    return true;
                                }
                            });
                        }
                    },
                    {
                        key: "refinement",
                        value: function refinement(check2, refinementData) {
                            return this._refinement(function(val, ctx) {
                                if (!check2(val)) {
                                    ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
                                    return false;
                                } else {
                                    return true;
                                }
                            });
                        }
                    },
                    {
                        key: "_refinement",
                        value: function _refinement(refinement) {
                            return new ZodEffects({
                                schema: this,
                                typeName: ZodFirstPartyTypeKind.ZodEffects,
                                effect: {
                                    type: "refinement",
                                    refinement: refinement
                                }
                            });
                        }
                    },
                    {
                        key: "superRefine",
                        value: function superRefine(refinement) {
                            return this._refinement(refinement);
                        }
                    },
                    {
                        key: "optional",
                        value: function optional() {
                            return ZodOptional.create(this, this._def);
                        }
                    },
                    {
                        key: "nullable",
                        value: function nullable() {
                            return ZodNullable.create(this, this._def);
                        }
                    },
                    {
                        key: "nullish",
                        value: function nullish() {
                            return this.nullable().optional();
                        }
                    },
                    {
                        key: "array",
                        value: function array() {
                            return ZodArray.create(this);
                        }
                    },
                    {
                        key: "promise",
                        value: function promise() {
                            return ZodPromise.create(this, this._def);
                        }
                    },
                    {
                        key: "or",
                        value: function or(option) {
                            return ZodUnion.create([
                                this,
                                option
                            ], this._def);
                        }
                    },
                    {
                        key: "and",
                        value: function and(incoming) {
                            return ZodIntersection.create(this, incoming, this._def);
                        }
                    },
                    {
                        key: "transform",
                        value: function transform(_transform) {
                            return new ZodEffects(__spreadProps(__spreadValues({}, processCreateParams(this._def)), {
                                schema: this,
                                typeName: ZodFirstPartyTypeKind.ZodEffects,
                                effect: {
                                    type: "transform",
                                    transform: _transform
                                }
                            }));
                        }
                    },
                    {
                        key: "default",
                        value: function _default(def) {
                            var defaultValueFunc = typeof def === "function" ? def : function() {
                                return def;
                            };
                            return new ZodDefault(__spreadProps(__spreadValues({}, processCreateParams(this._def)), {
                                innerType: this,
                                defaultValue: defaultValueFunc,
                                typeName: ZodFirstPartyTypeKind.ZodDefault
                            }));
                        }
                    },
                    {
                        key: "brand",
                        value: function brand() {
                            return new ZodBranded(__spreadValues({
                                typeName: ZodFirstPartyTypeKind.ZodBranded,
                                type: this
                            }, processCreateParams(this._def)));
                        }
                    },
                    {
                        key: "catch",
                        value: function _catch(def) {
                            var catchValueFunc = typeof def === "function" ? def : function() {
                                return def;
                            };
                            return new ZodCatch(__spreadProps(__spreadValues({}, processCreateParams(this._def)), {
                                innerType: this,
                                catchValue: catchValueFunc,
                                typeName: ZodFirstPartyTypeKind.ZodCatch
                            }));
                        }
                    },
                    {
                        key: "describe",
                        value: function describe(description) {
                            var This = this.constructor;
                            return new This(__spreadProps(__spreadValues({}, this._def), {
                                description: description
                            }));
                        }
                    },
                    {
                        key: "pipe",
                        value: function pipe(target) {
                            return ZodPipeline.create(this, target);
                        }
                    },
                    {
                        key: "readonly",
                        value: function readonly() {
                            return ZodReadonly.create(this);
                        }
                    },
                    {
                        key: "isOptional",
                        value: function isOptional() {
                            return this.safeParse(void 0).success;
                        }
                    },
                    {
                        key: "isNullable",
                        value: function isNullable() {
                            return this.safeParse(null).success;
                        }
                    }
                ]);
                return ZodType;
            }();
            exports.ZodType = ZodType;
            exports.Schema = ZodType;
            exports.ZodSchema = ZodType;
            var cuidRegex = /^c[^\s-]{8,}$/i;
            var cuid2Regex = /^[0-9a-z]+$/;
            var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
            var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
            var nanoidRegex = /^[a-z0-9_-]{21}$/i;
            var jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;
            var durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
            var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
            var _emojiRegex = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";
            var emojiRegex;
            var ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
            var ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/;
            var ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;
            var ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
            var base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
            var base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;
            var dateRegexSource = "((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))";
            var dateRegex = new RegExp("^".concat(dateRegexSource, "$"));
            function timeRegexSource(args) {
                var secondsRegexSource = "[0-5]\\d";
                if (args.precision) {
                    secondsRegexSource = "".concat(secondsRegexSource, "\\.\\d{").concat(args.precision, "}");
                } else if (args.precision == null) {
                    secondsRegexSource = "".concat(secondsRegexSource, "(\\.\\d+)?");
                }
                var secondsQuantifier = args.precision ? "+" : "?";
                return "([01]\\d|2[0-3]):[0-5]\\d(:".concat(secondsRegexSource, ")").concat(secondsQuantifier);
            }
            function timeRegex(args) {
                return new RegExp("^".concat(timeRegexSource(args), "$"));
            }
            function datetimeRegex(args) {
                var regex = "".concat(dateRegexSource, "T").concat(timeRegexSource(args));
                var opts = [];
                opts.push(args.local ? "Z?" : "Z");
                if (args.offset) opts.push("([+-]\\d{2}:?\\d{2})");
                regex = "".concat(regex, "(").concat(opts.join("|"), ")");
                return new RegExp("^".concat(regex, "$"));
            }
            function isValidIP(ip, version) {
                if ((version === "v4" || !version) && ipv4Regex.test(ip)) {
                    return true;
                }
                if ((version === "v6" || !version) && ipv6Regex.test(ip)) {
                    return true;
                }
                return false;
            }
            function isValidJWT(jwt, alg) {
                if (!jwtRegex.test(jwt)) return false;
                try {
                    var _jwt_split = _sliced_to_array(jwt.split("."), 1), header = _jwt_split[0];
                    if (!header) return false;
                    var base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "=");
                    var decoded = JSON.parse(atob(base64));
                    if ((typeof decoded === "undefined" ? "undefined" : _type_of(decoded)) !== "object" || decoded === null) return false;
                    if ("typ" in decoded && (decoded == null ? void 0 : decoded.typ) !== "JWT") return false;
                    if (!decoded.alg) return false;
                    if (alg && decoded.alg !== alg) return false;
                    return true;
                } catch (e) {
                    return false;
                }
            }
            function isValidCidr(ip, version) {
                if ((version === "v4" || !version) && ipv4CidrRegex.test(ip)) {
                    return true;
                }
                if ((version === "v6" || !version) && ipv6CidrRegex.test(ip)) {
                    return true;
                }
                return false;
            }
            var ZodString = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodString, ZodType);
                var _super = _create_super(_ZodString);
                function _ZodString() {
                    _class_call_check(this, _ZodString);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodString, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (this._def.coerce) {
                                input.data = String(input.data);
                            }
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.string) {
                                var ctx2 = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx2, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.string,
                                    received: ctx2.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var status = new parseUtil_js_1.ParseStatus();
                            var ctx = void 0;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var check2 = _step.value;
                                    if (check2.kind === "min") {
                                        if (input.data.length < check2.value) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_small,
                                                minimum: check2.value,
                                                type: "string",
                                                inclusive: true,
                                                exact: false,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "max") {
                                        if (input.data.length > check2.value) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_big,
                                                maximum: check2.value,
                                                type: "string",
                                                inclusive: true,
                                                exact: false,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "length") {
                                        var tooBig = input.data.length > check2.value;
                                        var tooSmall = input.data.length < check2.value;
                                        if (tooBig || tooSmall) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            if (tooBig) {
                                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                    code: ZodError_js_1.ZodIssueCode.too_big,
                                                    maximum: check2.value,
                                                    type: "string",
                                                    inclusive: true,
                                                    exact: true,
                                                    message: check2.message
                                                });
                                            } else if (tooSmall) {
                                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                    code: ZodError_js_1.ZodIssueCode.too_small,
                                                    minimum: check2.value,
                                                    type: "string",
                                                    inclusive: true,
                                                    exact: true,
                                                    message: check2.message
                                                });
                                            }
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "email") {
                                        if (!emailRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "email",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "emoji") {
                                        if (!emojiRegex) {
                                            emojiRegex = new RegExp(_emojiRegex, "u");
                                        }
                                        if (!emojiRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "emoji",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "uuid") {
                                        if (!uuidRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "uuid",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "nanoid") {
                                        if (!nanoidRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "nanoid",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "cuid") {
                                        if (!cuidRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "cuid",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "cuid2") {
                                        if (!cuid2Regex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "cuid2",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "ulid") {
                                        if (!ulidRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "ulid",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "url") {
                                        try {
                                            new URL(input.data);
                                        } catch (e) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "url",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "regex") {
                                        check2.regex.lastIndex = 0;
                                        var testResult = check2.regex.test(input.data);
                                        if (!testResult) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "regex",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "trim") {
                                        input.data = input.data.trim();
                                    } else if (check2.kind === "includes") {
                                        if (!input.data.includes(check2.value, check2.position)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                validation: {
                                                    includes: check2.value,
                                                    position: check2.position
                                                },
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "toLowerCase") {
                                        input.data = input.data.toLowerCase();
                                    } else if (check2.kind === "toUpperCase") {
                                        input.data = input.data.toUpperCase();
                                    } else if (check2.kind === "startsWith") {
                                        if (!input.data.startsWith(check2.value)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                validation: {
                                                    startsWith: check2.value
                                                },
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "endsWith") {
                                        if (!input.data.endsWith(check2.value)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                validation: {
                                                    endsWith: check2.value
                                                },
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "datetime") {
                                        var regex = datetimeRegex(check2);
                                        if (!regex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                validation: "datetime",
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "date") {
                                        var regex1 = dateRegex;
                                        if (!regex1.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                validation: "date",
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "time") {
                                        var regex2 = timeRegex(check2);
                                        if (!regex2.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                validation: "time",
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "duration") {
                                        if (!durationRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "duration",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "ip") {
                                        if (!isValidIP(input.data, check2.version)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "ip",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "jwt") {
                                        if (!isValidJWT(input.data, check2.alg)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "jwt",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "cidr") {
                                        if (!isValidCidr(input.data, check2.version)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "cidr",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "base64") {
                                        if (!base64Regex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "base64",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "base64url") {
                                        if (!base64urlRegex.test(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                validation: "base64url",
                                                code: ZodError_js_1.ZodIssueCode.invalid_string,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else {
                                        util_js_1.util.assertNever(check2);
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                status: status.value,
                                value: input.data
                            };
                        }
                    },
                    {
                        key: "_regex",
                        value: function _regex(regex, validation, message2) {
                            return this.refinement(function(data) {
                                return regex.test(data);
                            }, __spreadValues({
                                validation: validation,
                                code: ZodError_js_1.ZodIssueCode.invalid_string
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "_addCheck",
                        value: function _addCheck(check2) {
                            return new _ZodString(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    check2
                                ])
                            }));
                        }
                    },
                    {
                        key: "email",
                        value: function email(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "email"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "url",
                        value: function url(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "url"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "emoji",
                        value: function emoji(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "emoji"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "uuid",
                        value: function uuid(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "uuid"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "nanoid",
                        value: function nanoid(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "nanoid"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "cuid",
                        value: function cuid(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "cuid"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "cuid2",
                        value: function cuid2(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "cuid2"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "ulid",
                        value: function ulid(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "ulid"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "base64",
                        value: function base64(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "base64"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "base64url",
                        value: function base64url(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "base64url"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "jwt",
                        value: function jwt(options) {
                            return this._addCheck(__spreadValues({
                                kind: "jwt"
                            }, errorUtil_js_1.errorUtil.errToObj(options)));
                        }
                    },
                    {
                        key: "ip",
                        value: function ip(options) {
                            return this._addCheck(__spreadValues({
                                kind: "ip"
                            }, errorUtil_js_1.errorUtil.errToObj(options)));
                        }
                    },
                    {
                        key: "cidr",
                        value: function cidr(options) {
                            return this._addCheck(__spreadValues({
                                kind: "cidr"
                            }, errorUtil_js_1.errorUtil.errToObj(options)));
                        }
                    },
                    {
                        key: "datetime",
                        value: function datetime(options) {
                            var _a2, _b2;
                            if (typeof options === "string") {
                                return this._addCheck({
                                    kind: "datetime",
                                    precision: null,
                                    offset: false,
                                    local: false,
                                    message: options
                                });
                            }
                            return this._addCheck(__spreadValues({
                                kind: "datetime",
                                precision: typeof (options == null ? void 0 : options.precision) === "undefined" ? null : options == null ? void 0 : options.precision,
                                offset: (_a2 = options == null ? void 0 : options.offset) != null ? _a2 : false,
                                local: (_b2 = options == null ? void 0 : options.local) != null ? _b2 : false
                            }, errorUtil_js_1.errorUtil.errToObj(options == null ? void 0 : options.message)));
                        }
                    },
                    {
                        key: "date",
                        value: function date(message2) {
                            return this._addCheck({
                                kind: "date",
                                message: message2
                            });
                        }
                    },
                    {
                        key: "time",
                        value: function time(options) {
                            if (typeof options === "string") {
                                return this._addCheck({
                                    kind: "time",
                                    precision: null,
                                    message: options
                                });
                            }
                            return this._addCheck(__spreadValues({
                                kind: "time",
                                precision: typeof (options == null ? void 0 : options.precision) === "undefined" ? null : options == null ? void 0 : options.precision
                            }, errorUtil_js_1.errorUtil.errToObj(options == null ? void 0 : options.message)));
                        }
                    },
                    {
                        key: "duration",
                        value: function duration(message2) {
                            return this._addCheck(__spreadValues({
                                kind: "duration"
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "regex",
                        value: function regex(_regex, message2) {
                            return this._addCheck(__spreadValues({
                                kind: "regex",
                                regex: _regex
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "includes",
                        value: function includes(value, options) {
                            return this._addCheck(__spreadValues({
                                kind: "includes",
                                value: value,
                                position: options == null ? void 0 : options.position
                            }, errorUtil_js_1.errorUtil.errToObj(options == null ? void 0 : options.message)));
                        }
                    },
                    {
                        key: "startsWith",
                        value: function startsWith(value, message2) {
                            return this._addCheck(__spreadValues({
                                kind: "startsWith",
                                value: value
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "endsWith",
                        value: function endsWith(value, message2) {
                            return this._addCheck(__spreadValues({
                                kind: "endsWith",
                                value: value
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "min",
                        value: function min(minLength, message2) {
                            return this._addCheck(__spreadValues({
                                kind: "min",
                                value: minLength
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "max",
                        value: function max(maxLength, message2) {
                            return this._addCheck(__spreadValues({
                                kind: "max",
                                value: maxLength
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        key: "length",
                        value: function length(len, message2) {
                            return this._addCheck(__spreadValues({
                                kind: "length",
                                value: len
                            }, errorUtil_js_1.errorUtil.errToObj(message2)));
                        }
                    },
                    {
                        /**
         * Equivalent to `.min(1)`
         */ key: "nonempty",
                        value: function nonempty(message2) {
                            return this.min(1, errorUtil_js_1.errorUtil.errToObj(message2));
                        }
                    },
                    {
                        key: "trim",
                        value: function trim() {
                            return new _ZodString(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    {
                                        kind: "trim"
                                    }
                                ])
                            }));
                        }
                    },
                    {
                        key: "toLowerCase",
                        value: function toLowerCase() {
                            return new _ZodString(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    {
                                        kind: "toLowerCase"
                                    }
                                ])
                            }));
                        }
                    },
                    {
                        key: "toUpperCase",
                        value: function toUpperCase() {
                            return new _ZodString(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    {
                                        kind: "toUpperCase"
                                    }
                                ])
                            }));
                        }
                    },
                    {
                        key: "isDatetime",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "datetime";
                            });
                        }
                    },
                    {
                        key: "isDate",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "date";
                            });
                        }
                    },
                    {
                        key: "isTime",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "time";
                            });
                        }
                    },
                    {
                        key: "isDuration",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "duration";
                            });
                        }
                    },
                    {
                        key: "isEmail",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "email";
                            });
                        }
                    },
                    {
                        key: "isURL",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "url";
                            });
                        }
                    },
                    {
                        key: "isEmoji",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "emoji";
                            });
                        }
                    },
                    {
                        key: "isUUID",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "uuid";
                            });
                        }
                    },
                    {
                        key: "isNANOID",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "nanoid";
                            });
                        }
                    },
                    {
                        key: "isCUID",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "cuid";
                            });
                        }
                    },
                    {
                        key: "isCUID2",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "cuid2";
                            });
                        }
                    },
                    {
                        key: "isULID",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "ulid";
                            });
                        }
                    },
                    {
                        key: "isIP",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "ip";
                            });
                        }
                    },
                    {
                        key: "isCIDR",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "cidr";
                            });
                        }
                    },
                    {
                        key: "isBase64",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "base64";
                            });
                        }
                    },
                    {
                        key: "isBase64url",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "base64url";
                            });
                        }
                    },
                    {
                        key: "minLength",
                        get: function get() {
                            var min = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "min") {
                                        if (min === null || ch.value > min) min = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return min;
                        }
                    },
                    {
                        key: "maxLength",
                        get: function get() {
                            var max = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "max") {
                                        if (max === null || ch.value < max) max = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return max;
                        }
                    }
                ]);
                return _ZodString;
            }(ZodType);
            exports.ZodString = ZodString;
            ZodString.create = function(params) {
                var _a2;
                return new ZodString(__spreadValues({
                    checks: [],
                    typeName: ZodFirstPartyTypeKind.ZodString,
                    coerce: (_a2 = params == null ? void 0 : params.coerce) != null ? _a2 : false
                }, processCreateParams(params)));
            };
            function floatSafeRemainder(val, step) {
                var valDecCount = (val.toString().split(".")[1] || "").length;
                var stepDecCount = (step.toString().split(".")[1] || "").length;
                var decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
                var valInt = Number.parseInt(val.toFixed(decCount).replace(".", ""));
                var stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
                return valInt % stepInt / __pow(10, decCount);
            }
            var ZodNumber = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodNumber, ZodType);
                var _super = _create_super(_ZodNumber);
                function _ZodNumber() {
                    _class_call_check(this, _ZodNumber);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.min = _this.gte;
                    _this.max = _this.lte;
                    _this.step = _this.multipleOf;
                    return _this;
                }
                _create_class(_ZodNumber, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (this._def.coerce) {
                                input.data = Number(input.data);
                            }
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.number) {
                                var ctx2 = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx2, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.number,
                                    received: ctx2.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var ctx = void 0;
                            var status = new parseUtil_js_1.ParseStatus();
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var check2 = _step.value;
                                    if (check2.kind === "int") {
                                        if (!util_js_1.util.isInteger(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.invalid_type,
                                                expected: "integer",
                                                received: "float",
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "min") {
                                        var tooSmall = check2.inclusive ? input.data < check2.value : input.data <= check2.value;
                                        if (tooSmall) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_small,
                                                minimum: check2.value,
                                                type: "number",
                                                inclusive: check2.inclusive,
                                                exact: false,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "max") {
                                        var tooBig = check2.inclusive ? input.data > check2.value : input.data >= check2.value;
                                        if (tooBig) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_big,
                                                maximum: check2.value,
                                                type: "number",
                                                inclusive: check2.inclusive,
                                                exact: false,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "multipleOf") {
                                        if (floatSafeRemainder(input.data, check2.value) !== 0) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.not_multiple_of,
                                                multipleOf: check2.value,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "finite") {
                                        if (!Number.isFinite(input.data)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.not_finite,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else {
                                        util_js_1.util.assertNever(check2);
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                status: status.value,
                                value: input.data
                            };
                        }
                    },
                    {
                        key: "gte",
                        value: function gte(value, message2) {
                            return this.setLimit("min", value, true, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "gt",
                        value: function gt(value, message2) {
                            return this.setLimit("min", value, false, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "lte",
                        value: function lte(value, message2) {
                            return this.setLimit("max", value, true, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "lt",
                        value: function lt(value, message2) {
                            return this.setLimit("max", value, false, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "setLimit",
                        value: function setLimit(kind, value, inclusive, message2) {
                            return new _ZodNumber(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    {
                                        kind: kind,
                                        value: value,
                                        inclusive: inclusive,
                                        message: errorUtil_js_1.errorUtil.toString(message2)
                                    }
                                ])
                            }));
                        }
                    },
                    {
                        key: "_addCheck",
                        value: function _addCheck(check2) {
                            return new _ZodNumber(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    check2
                                ])
                            }));
                        }
                    },
                    {
                        key: "int",
                        value: function int(message2) {
                            return this._addCheck({
                                kind: "int",
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "positive",
                        value: function positive(message2) {
                            return this._addCheck({
                                kind: "min",
                                value: 0,
                                inclusive: false,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "negative",
                        value: function negative(message2) {
                            return this._addCheck({
                                kind: "max",
                                value: 0,
                                inclusive: false,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "nonpositive",
                        value: function nonpositive(message2) {
                            return this._addCheck({
                                kind: "max",
                                value: 0,
                                inclusive: true,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "nonnegative",
                        value: function nonnegative(message2) {
                            return this._addCheck({
                                kind: "min",
                                value: 0,
                                inclusive: true,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "multipleOf",
                        value: function multipleOf(value, message2) {
                            return this._addCheck({
                                kind: "multipleOf",
                                value: value,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "finite",
                        value: function finite(message2) {
                            return this._addCheck({
                                kind: "finite",
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "safe",
                        value: function safe(message2) {
                            return this._addCheck({
                                kind: "min",
                                inclusive: true,
                                value: Number.MIN_SAFE_INTEGER,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            })._addCheck({
                                kind: "max",
                                inclusive: true,
                                value: Number.MAX_SAFE_INTEGER,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "minValue",
                        get: function get() {
                            var min = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "min") {
                                        if (min === null || ch.value > min) min = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return min;
                        }
                    },
                    {
                        key: "maxValue",
                        get: function get() {
                            var max = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "max") {
                                        if (max === null || ch.value < max) max = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return max;
                        }
                    },
                    {
                        key: "isInt",
                        get: function get() {
                            return !!this._def.checks.find(function(ch) {
                                return ch.kind === "int" || ch.kind === "multipleOf" && util_js_1.util.isInteger(ch.value);
                            });
                        }
                    },
                    {
                        key: "isFinite",
                        get: function get() {
                            var max = null;
                            var min = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
                                        return true;
                                    } else if (ch.kind === "min") {
                                        if (min === null || ch.value > min) min = ch.value;
                                    } else if (ch.kind === "max") {
                                        if (max === null || ch.value < max) max = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return Number.isFinite(min) && Number.isFinite(max);
                        }
                    }
                ]);
                return _ZodNumber;
            }(ZodType);
            exports.ZodNumber = ZodNumber;
            ZodNumber.create = function(params) {
                return new ZodNumber(__spreadValues({
                    checks: [],
                    typeName: ZodFirstPartyTypeKind.ZodNumber,
                    coerce: (params == null ? void 0 : params.coerce) || false
                }, processCreateParams(params)));
            };
            var ZodBigInt = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodBigInt, ZodType);
                var _super = _create_super(_ZodBigInt);
                function _ZodBigInt() {
                    _class_call_check(this, _ZodBigInt);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.min = _this.gte;
                    _this.max = _this.lte;
                    return _this;
                }
                _create_class(_ZodBigInt, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (this._def.coerce) {
                                try {
                                    input.data = BigInt(input.data);
                                } catch (e) {
                                    return this._getInvalidInput(input);
                                }
                            }
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.bigint) {
                                return this._getInvalidInput(input);
                            }
                            var ctx = void 0;
                            var status = new parseUtil_js_1.ParseStatus();
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var check2 = _step.value;
                                    if (check2.kind === "min") {
                                        var tooSmall = check2.inclusive ? input.data < check2.value : input.data <= check2.value;
                                        if (tooSmall) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_small,
                                                type: "bigint",
                                                minimum: check2.value,
                                                inclusive: check2.inclusive,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "max") {
                                        var tooBig = check2.inclusive ? input.data > check2.value : input.data >= check2.value;
                                        if (tooBig) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_big,
                                                type: "bigint",
                                                maximum: check2.value,
                                                inclusive: check2.inclusive,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "multipleOf") {
                                        if (input.data % check2.value !== BigInt(0)) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.not_multiple_of,
                                                multipleOf: check2.value,
                                                message: check2.message
                                            });
                                            status.dirty();
                                        }
                                    } else {
                                        util_js_1.util.assertNever(check2);
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                status: status.value,
                                value: input.data
                            };
                        }
                    },
                    {
                        key: "_getInvalidInput",
                        value: function _getInvalidInput(input) {
                            var ctx = this._getOrReturnCtx(input);
                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                code: ZodError_js_1.ZodIssueCode.invalid_type,
                                expected: util_js_1.ZodParsedType.bigint,
                                received: ctx.parsedType
                            });
                            return parseUtil_js_1.INVALID;
                        }
                    },
                    {
                        key: "gte",
                        value: function gte(value, message2) {
                            return this.setLimit("min", value, true, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "gt",
                        value: function gt(value, message2) {
                            return this.setLimit("min", value, false, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "lte",
                        value: function lte(value, message2) {
                            return this.setLimit("max", value, true, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "lt",
                        value: function lt(value, message2) {
                            return this.setLimit("max", value, false, errorUtil_js_1.errorUtil.toString(message2));
                        }
                    },
                    {
                        key: "setLimit",
                        value: function setLimit(kind, value, inclusive, message2) {
                            return new _ZodBigInt(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    {
                                        kind: kind,
                                        value: value,
                                        inclusive: inclusive,
                                        message: errorUtil_js_1.errorUtil.toString(message2)
                                    }
                                ])
                            }));
                        }
                    },
                    {
                        key: "_addCheck",
                        value: function _addCheck(check2) {
                            return new _ZodBigInt(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    check2
                                ])
                            }));
                        }
                    },
                    {
                        key: "positive",
                        value: function positive(message2) {
                            return this._addCheck({
                                kind: "min",
                                value: BigInt(0),
                                inclusive: false,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "negative",
                        value: function negative(message2) {
                            return this._addCheck({
                                kind: "max",
                                value: BigInt(0),
                                inclusive: false,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "nonpositive",
                        value: function nonpositive(message2) {
                            return this._addCheck({
                                kind: "max",
                                value: BigInt(0),
                                inclusive: true,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "nonnegative",
                        value: function nonnegative(message2) {
                            return this._addCheck({
                                kind: "min",
                                value: BigInt(0),
                                inclusive: true,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "multipleOf",
                        value: function multipleOf(value, message2) {
                            return this._addCheck({
                                kind: "multipleOf",
                                value: value,
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "minValue",
                        get: function get() {
                            var min = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "min") {
                                        if (min === null || ch.value > min) min = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return min;
                        }
                    },
                    {
                        key: "maxValue",
                        get: function get() {
                            var max = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "max") {
                                        if (max === null || ch.value < max) max = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return max;
                        }
                    }
                ]);
                return _ZodBigInt;
            }(ZodType);
            exports.ZodBigInt = ZodBigInt;
            ZodBigInt.create = function(params) {
                var _a2;
                return new ZodBigInt(__spreadValues({
                    checks: [],
                    typeName: ZodFirstPartyTypeKind.ZodBigInt,
                    coerce: (_a2 = params == null ? void 0 : params.coerce) != null ? _a2 : false
                }, processCreateParams(params)));
            };
            var ZodBoolean = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodBoolean, ZodType);
                var _super = _create_super(ZodBoolean);
                function ZodBoolean() {
                    _class_call_check(this, ZodBoolean);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodBoolean, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (this._def.coerce) {
                                input.data = Boolean(input.data);
                            }
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType["boolean"]) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType["boolean"],
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodBoolean;
            }(ZodType);
            exports.ZodBoolean = ZodBoolean;
            ZodBoolean.create = function(params) {
                return new ZodBoolean(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodBoolean,
                    coerce: (params == null ? void 0 : params.coerce) || false
                }, processCreateParams(params)));
            };
            var ZodDate = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodDate, ZodType);
                var _super = _create_super(_ZodDate);
                function _ZodDate() {
                    _class_call_check(this, _ZodDate);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodDate, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (this._def.coerce) {
                                input.data = new Date(input.data);
                            }
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.date) {
                                var ctx2 = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx2, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.date,
                                    received: ctx2.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (Number.isNaN(input.data.getTime())) {
                                var ctx21 = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx21, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_date
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var status = new parseUtil_js_1.ParseStatus();
                            var ctx = void 0;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var check2 = _step.value;
                                    if (check2.kind === "min") {
                                        if (input.data.getTime() < check2.value) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_small,
                                                message: check2.message,
                                                inclusive: true,
                                                exact: false,
                                                minimum: check2.value,
                                                type: "date"
                                            });
                                            status.dirty();
                                        }
                                    } else if (check2.kind === "max") {
                                        if (input.data.getTime() > check2.value) {
                                            ctx = this._getOrReturnCtx(input, ctx);
                                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                                code: ZodError_js_1.ZodIssueCode.too_big,
                                                message: check2.message,
                                                inclusive: true,
                                                exact: false,
                                                maximum: check2.value,
                                                type: "date"
                                            });
                                            status.dirty();
                                        }
                                    } else {
                                        util_js_1.util.assertNever(check2);
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return {
                                status: status.value,
                                value: new Date(input.data.getTime())
                            };
                        }
                    },
                    {
                        key: "_addCheck",
                        value: function _addCheck(check2) {
                            return new _ZodDate(__spreadProps(__spreadValues({}, this._def), {
                                checks: _to_consumable_array(this._def.checks).concat([
                                    check2
                                ])
                            }));
                        }
                    },
                    {
                        key: "min",
                        value: function min(minDate, message2) {
                            return this._addCheck({
                                kind: "min",
                                value: minDate.getTime(),
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "max",
                        value: function max(maxDate, message2) {
                            return this._addCheck({
                                kind: "max",
                                value: maxDate.getTime(),
                                message: errorUtil_js_1.errorUtil.toString(message2)
                            });
                        }
                    },
                    {
                        key: "minDate",
                        get: function get() {
                            var min = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "min") {
                                        if (min === null || ch.value > min) min = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return min != null ? new Date(min) : null;
                        }
                    },
                    {
                        key: "maxDate",
                        get: function get() {
                            var max = null;
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.checks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var ch = _step.value;
                                    if (ch.kind === "max") {
                                        if (max === null || ch.value < max) max = ch.value;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return max != null ? new Date(max) : null;
                        }
                    }
                ]);
                return _ZodDate;
            }(ZodType);
            exports.ZodDate = ZodDate;
            ZodDate.create = function(params) {
                return new ZodDate(__spreadValues({
                    checks: [],
                    coerce: (params == null ? void 0 : params.coerce) || false,
                    typeName: ZodFirstPartyTypeKind.ZodDate
                }, processCreateParams(params)));
            };
            var ZodSymbol = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodSymbol, ZodType);
                var _super = _create_super(ZodSymbol);
                function ZodSymbol() {
                    _class_call_check(this, ZodSymbol);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodSymbol, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.symbol) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.symbol,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodSymbol;
            }(ZodType);
            exports.ZodSymbol = ZodSymbol;
            ZodSymbol.create = function(params) {
                return new ZodSymbol(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodSymbol
                }, processCreateParams(params)));
            };
            var ZodUndefined = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodUndefined, ZodType);
                var _super = _create_super(ZodUndefined);
                function ZodUndefined() {
                    _class_call_check(this, ZodUndefined);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodUndefined, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.undefined) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.undefined,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodUndefined;
            }(ZodType);
            exports.ZodUndefined = ZodUndefined;
            ZodUndefined.create = function(params) {
                return new ZodUndefined(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodUndefined
                }, processCreateParams(params)));
            };
            var ZodNull = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodNull, ZodType);
                var _super = _create_super(ZodNull);
                function ZodNull() {
                    _class_call_check(this, ZodNull);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodNull, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType["null"]) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType["null"],
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodNull;
            }(ZodType);
            exports.ZodNull = ZodNull;
            ZodNull.create = function(params) {
                return new ZodNull(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodNull
                }, processCreateParams(params)));
            };
            var ZodAny = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodAny, ZodType);
                var _super = _create_super(ZodAny);
                function ZodAny() {
                    _class_call_check(this, ZodAny);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this._any = true;
                    return _this;
                }
                _create_class(ZodAny, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodAny;
            }(ZodType);
            exports.ZodAny = ZodAny;
            ZodAny.create = function(params) {
                return new ZodAny(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodAny
                }, processCreateParams(params)));
            };
            var ZodUnknown = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodUnknown, ZodType);
                var _super = _create_super(ZodUnknown);
                function ZodUnknown() {
                    _class_call_check(this, ZodUnknown);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this._unknown = true;
                    return _this;
                }
                _create_class(ZodUnknown, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodUnknown;
            }(ZodType);
            exports.ZodUnknown = ZodUnknown;
            ZodUnknown.create = function(params) {
                return new ZodUnknown(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodUnknown
                }, processCreateParams(params)));
            };
            var ZodNever = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodNever, ZodType);
                var _super = _create_super(ZodNever);
                function ZodNever() {
                    _class_call_check(this, ZodNever);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodNever, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var ctx = this._getOrReturnCtx(input);
                            (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                code: ZodError_js_1.ZodIssueCode.invalid_type,
                                expected: util_js_1.ZodParsedType.never,
                                received: ctx.parsedType
                            });
                            return parseUtil_js_1.INVALID;
                        }
                    }
                ]);
                return ZodNever;
            }(ZodType);
            exports.ZodNever = ZodNever;
            ZodNever.create = function(params) {
                return new ZodNever(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodNever
                }, processCreateParams(params)));
            };
            var ZodVoid = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodVoid, ZodType);
                var _super = _create_super(ZodVoid);
                function ZodVoid() {
                    _class_call_check(this, ZodVoid);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodVoid, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.undefined) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType["void"],
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    }
                ]);
                return ZodVoid;
            }(ZodType);
            exports.ZodVoid = ZodVoid;
            ZodVoid.create = function(params) {
                return new ZodVoid(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodVoid
                }, processCreateParams(params)));
            };
            var ZodArray = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodArray, ZodType);
                var _super = _create_super(_ZodArray);
                function _ZodArray() {
                    _class_call_check(this, _ZodArray);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodArray, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this__processInputParams = this._processInputParams(input), ctx = _this__processInputParams.ctx, status = _this__processInputParams.status;
                            var def = this._def;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.array) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.array,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (def.exactLength !== null) {
                                var tooBig = ctx.data.length > def.exactLength.value;
                                var tooSmall = ctx.data.length < def.exactLength.value;
                                if (tooBig || tooSmall) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                        code: tooBig ? ZodError_js_1.ZodIssueCode.too_big : ZodError_js_1.ZodIssueCode.too_small,
                                        minimum: tooSmall ? def.exactLength.value : void 0,
                                        maximum: tooBig ? def.exactLength.value : void 0,
                                        type: "array",
                                        inclusive: true,
                                        exact: true,
                                        message: def.exactLength.message
                                    });
                                    status.dirty();
                                }
                            }
                            if (def.minLength !== null) {
                                if (ctx.data.length < def.minLength.value) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                        code: ZodError_js_1.ZodIssueCode.too_small,
                                        minimum: def.minLength.value,
                                        type: "array",
                                        inclusive: true,
                                        exact: false,
                                        message: def.minLength.message
                                    });
                                    status.dirty();
                                }
                            }
                            if (def.maxLength !== null) {
                                if (ctx.data.length > def.maxLength.value) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                        code: ZodError_js_1.ZodIssueCode.too_big,
                                        maximum: def.maxLength.value,
                                        type: "array",
                                        inclusive: true,
                                        exact: false,
                                        message: def.maxLength.message
                                    });
                                    status.dirty();
                                }
                            }
                            if (ctx.common.async) {
                                return Promise.all(_to_consumable_array(ctx.data).map(function(item, i) {
                                    return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));
                                })).then(function(result18) {
                                    return parseUtil_js_1.ParseStatus.mergeArray(status, result18);
                                });
                            }
                            var result17 = _to_consumable_array(ctx.data).map(function(item, i) {
                                return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));
                            });
                            return parseUtil_js_1.ParseStatus.mergeArray(status, result17);
                        }
                    },
                    {
                        key: "element",
                        get: function get() {
                            return this._def.type;
                        }
                    },
                    {
                        key: "min",
                        value: function min(minLength, message2) {
                            return new _ZodArray(__spreadProps(__spreadValues({}, this._def), {
                                minLength: {
                                    value: minLength,
                                    message: errorUtil_js_1.errorUtil.toString(message2)
                                }
                            }));
                        }
                    },
                    {
                        key: "max",
                        value: function max(maxLength, message2) {
                            return new _ZodArray(__spreadProps(__spreadValues({}, this._def), {
                                maxLength: {
                                    value: maxLength,
                                    message: errorUtil_js_1.errorUtil.toString(message2)
                                }
                            }));
                        }
                    },
                    {
                        key: "length",
                        value: function length(len, message2) {
                            return new _ZodArray(__spreadProps(__spreadValues({}, this._def), {
                                exactLength: {
                                    value: len,
                                    message: errorUtil_js_1.errorUtil.toString(message2)
                                }
                            }));
                        }
                    },
                    {
                        key: "nonempty",
                        value: function nonempty(message2) {
                            return this.min(1, message2);
                        }
                    }
                ]);
                return _ZodArray;
            }(ZodType);
            exports.ZodArray = ZodArray;
            ZodArray.create = function(schema, params) {
                return new ZodArray(__spreadValues({
                    type: schema,
                    minLength: null,
                    maxLength: null,
                    exactLength: null,
                    typeName: ZodFirstPartyTypeKind.ZodArray
                }, processCreateParams(params)));
            };
            function deepPartialify(schema) {
                if (schema instanceof ZodObject) {
                    var newShape = {};
                    for(var key in schema.shape){
                        var fieldSchema = schema.shape[key];
                        newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));
                    }
                    return new ZodObject(__spreadProps(__spreadValues({}, schema._def), {
                        shape: function() {
                            return newShape;
                        }
                    }));
                } else if (schema instanceof ZodArray) {
                    return new ZodArray(__spreadProps(__spreadValues({}, schema._def), {
                        type: deepPartialify(schema.element)
                    }));
                } else if (schema instanceof ZodOptional) {
                    return ZodOptional.create(deepPartialify(schema.unwrap()));
                } else if (schema instanceof ZodNullable) {
                    return ZodNullable.create(deepPartialify(schema.unwrap()));
                } else if (schema instanceof ZodTuple) {
                    return ZodTuple.create(schema.items.map(function(item) {
                        return deepPartialify(item);
                    }));
                } else {
                    return schema;
                }
            }
            var ZodObject = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodObject, ZodType);
                var _super = _create_super(_ZodObject);
                function _ZodObject() {
                    _class_call_check(this, _ZodObject);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this._cached = null;
                    _this.nonstrict = _this.passthrough;
                    _this.augment = _this.extend;
                    return _this;
                }
                _create_class(_ZodObject, [
                    {
                        key: "_getCached",
                        value: function _getCached() {
                            if (this._cached !== null) return this._cached;
                            var shape = this._def.shape();
                            var keys = util_js_1.util.objectKeys(shape);
                            this._cached = {
                                shape: shape,
                                keys: keys
                            };
                            return this._cached;
                        }
                    },
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.object) {
                                var ctx2 = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx2, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.object,
                                    received: ctx2.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            var _this__getCached = this._getCached(), shape = _this__getCached.shape, shapeKeys = _this__getCached.keys;
                            var extraKeys = [];
                            if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) {
                                for(var key in ctx.data){
                                    if (!shapeKeys.includes(key)) {
                                        extraKeys.push(key);
                                    }
                                }
                            }
                            var pairs = [];
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = shapeKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var key1 = _step.value;
                                    var keyValidator = shape[key1];
                                    var value = ctx.data[key1];
                                    pairs.push({
                                        key: {
                                            status: "valid",
                                            value: key1
                                        },
                                        value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key1)),
                                        alwaysSet: key1 in ctx.data
                                    });
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            if (this._def.catchall instanceof ZodNever) {
                                var unknownKeys = this._def.unknownKeys;
                                if (unknownKeys === "passthrough") {
                                    var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                    try {
                                        for(var _iterator1 = extraKeys[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                            var key2 = _step1.value;
                                            pairs.push({
                                                key: {
                                                    status: "valid",
                                                    value: key2
                                                },
                                                value: {
                                                    status: "valid",
                                                    value: ctx.data[key2]
                                                }
                                            });
                                        }
                                    } catch (err) {
                                        _didIteratorError1 = true;
                                        _iteratorError1 = err;
                                    } finally{
                                        try {
                                            if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                                _iterator1["return"]();
                                            }
                                        } finally{
                                            if (_didIteratorError1) {
                                                throw _iteratorError1;
                                            }
                                        }
                                    }
                                } else if (unknownKeys === "strict") {
                                    if (extraKeys.length > 0) {
                                        (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                            code: ZodError_js_1.ZodIssueCode.unrecognized_keys,
                                            keys: extraKeys
                                        });
                                        status.dirty();
                                    }
                                } else if (unknownKeys === "strip") {} else {
                                    throw new Error("Internal ZodObject error: invalid unknownKeys value.");
                                }
                            } else {
                                var catchall = this._def.catchall;
                                var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
                                try {
                                    for(var _iterator2 = extraKeys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
                                        var key3 = _step2.value;
                                        var value1 = ctx.data[key3];
                                        pairs.push({
                                            key: {
                                                status: "valid",
                                                value: key3
                                            },
                                            value: catchall._parse(new ParseInputLazyPath(ctx, value1, ctx.path, key3)),
                                            alwaysSet: key3 in ctx.data
                                        });
                                    }
                                } catch (err) {
                                    _didIteratorError2 = true;
                                    _iteratorError2 = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
                                            _iterator2["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError2) {
                                            throw _iteratorError2;
                                        }
                                    }
                                }
                            }
                            if (ctx.common.async) {
                                return Promise.resolve().then(function() {
                                    return __async(_this, null, function() {
                                        var syncPairs, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, pair, key, value, err;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    syncPairs = [];
                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                    _state.label = 1;
                                                case 1:
                                                    _state.trys.push([
                                                        1,
                                                        7,
                                                        8,
                                                        9
                                                    ]);
                                                    _iterator = pairs[Symbol.iterator]();
                                                    _state.label = 2;
                                                case 2:
                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                        3,
                                                        6
                                                    ];
                                                    pair = _step.value;
                                                    return [
                                                        4,
                                                        pair.key
                                                    ];
                                                case 3:
                                                    key = _state.sent();
                                                    return [
                                                        4,
                                                        pair.value
                                                    ];
                                                case 4:
                                                    value = _state.sent();
                                                    syncPairs.push({
                                                        key: key,
                                                        value: value,
                                                        alwaysSet: pair.alwaysSet
                                                    });
                                                    _state.label = 5;
                                                case 5:
                                                    _iteratorNormalCompletion = true;
                                                    return [
                                                        3,
                                                        2
                                                    ];
                                                case 6:
                                                    return [
                                                        3,
                                                        9
                                                    ];
                                                case 7:
                                                    err = _state.sent();
                                                    _didIteratorError = true;
                                                    _iteratorError = err;
                                                    return [
                                                        3,
                                                        9
                                                    ];
                                                case 8:
                                                    try {
                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                            _iterator["return"]();
                                                        }
                                                    } finally{
                                                        if (_didIteratorError) {
                                                            throw _iteratorError;
                                                        }
                                                    }
                                                    return [
                                                        7
                                                    ];
                                                case 9:
                                                    return [
                                                        2,
                                                        syncPairs
                                                    ];
                                            }
                                        });
                                    });
                                }).then(function(syncPairs) {
                                    return parseUtil_js_1.ParseStatus.mergeObjectSync(status, syncPairs);
                                });
                            } else {
                                return parseUtil_js_1.ParseStatus.mergeObjectSync(status, pairs);
                            }
                        }
                    },
                    {
                        key: "shape",
                        get: function get() {
                            return this._def.shape();
                        }
                    },
                    {
                        key: "strict",
                        value: function strict(message2) {
                            var _this = this;
                            errorUtil_js_1.errorUtil.errToObj;
                            return new _ZodObject(__spreadValues(__spreadProps(__spreadValues({}, this._def), {
                                unknownKeys: "strict"
                            }), message2 !== void 0 ? {
                                errorMap: function(issue, ctx) {
                                    var _a2, _b2, _c, _d;
                                    var defaultError = (_c = (_b2 = (_a2 = _this._def).errorMap) == null ? void 0 : _b2.call(_a2, issue, ctx).message) != null ? _c : ctx.defaultError;
                                    if (issue.code === "unrecognized_keys") return {
                                        message: (_d = errorUtil_js_1.errorUtil.errToObj(message2).message) != null ? _d : defaultError
                                    };
                                    return {
                                        message: defaultError
                                    };
                                }
                            } : {}));
                        }
                    },
                    {
                        key: "strip",
                        value: function strip() {
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                unknownKeys: "strip"
                            }));
                        }
                    },
                    {
                        key: "passthrough",
                        value: function passthrough() {
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                unknownKeys: "passthrough"
                            }));
                        }
                    },
                    {
                        // const AugmentFactory =
                        //   <Def extends ZodObjectDef>(def: Def) =>
                        //   <Augmentation extends ZodRawShape>(
                        //     augmentation: Augmentation
                        //   ): ZodObject<
                        //     extendShape<ReturnType<Def["shape"]>, Augmentation>,
                        //     Def["unknownKeys"],
                        //     Def["catchall"]
                        //   > => {
                        //     return new ZodObject({
                        //       ...def,
                        //       shape: () => ({
                        //         ...def.shape(),
                        //         ...augmentation,
                        //       }),
                        //     }) as any;
                        //   };
                        key: "extend",
                        value: function extend(augmentation) {
                            var _this = this;
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                shape: function() {
                                    return __spreadValues(__spreadValues({}, _this._def.shape()), augmentation);
                                }
                            }));
                        }
                    },
                    {
                        /**
         * Prior to zod@1.0.12 there was a bug in the
         * inferred type of merged objects. Please
         * upgrade if you are experiencing issues.
         */ key: "merge",
                        value: function merge(merging) {
                            var _this = this;
                            var merged = new _ZodObject({
                                unknownKeys: merging._def.unknownKeys,
                                catchall: merging._def.catchall,
                                shape: function() {
                                    return __spreadValues(__spreadValues({}, _this._def.shape()), merging._def.shape());
                                },
                                typeName: ZodFirstPartyTypeKind.ZodObject
                            });
                            return merged;
                        }
                    },
                    {
                        // merge<
                        //   Incoming extends AnyZodObject,
                        //   Augmentation extends Incoming["shape"],
                        //   NewOutput extends {
                        //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
                        //       ? Augmentation[k]["_output"]
                        //       : k extends keyof Output
                        //       ? Output[k]
                        //       : never;
                        //   },
                        //   NewInput extends {
                        //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
                        //       ? Augmentation[k]["_input"]
                        //       : k extends keyof Input
                        //       ? Input[k]
                        //       : never;
                        //   }
                        // >(
                        //   merging: Incoming
                        // ): ZodObject<
                        //   extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
                        //   Incoming["_def"]["unknownKeys"],
                        //   Incoming["_def"]["catchall"],
                        //   NewOutput,
                        //   NewInput
                        // > {
                        //   const merged: any = new ZodObject({
                        //     unknownKeys: merging._def.unknownKeys,
                        //     catchall: merging._def.catchall,
                        //     shape: () =>
                        //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
                        //     typeName: ZodFirstPartyTypeKind.ZodObject,
                        //   }) as any;
                        //   return merged;
                        // }
                        key: "setKey",
                        value: function setKey(key, schema) {
                            return this.augment(_define_property({}, key, schema));
                        }
                    },
                    {
                        // merge<Incoming extends AnyZodObject>(
                        //   merging: Incoming
                        // ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
                        // ZodObject<
                        //   extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
                        //   Incoming["_def"]["unknownKeys"],
                        //   Incoming["_def"]["catchall"]
                        // > {
                        //   // const mergedShape = objectUtil.mergeShapes(
                        //   //   this._def.shape(),
                        //   //   merging._def.shape()
                        //   // );
                        //   const merged: any = new ZodObject({
                        //     unknownKeys: merging._def.unknownKeys,
                        //     catchall: merging._def.catchall,
                        //     shape: () =>
                        //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
                        //     typeName: ZodFirstPartyTypeKind.ZodObject,
                        //   }) as any;
                        //   return merged;
                        // }
                        key: "catchall",
                        value: function catchall(index) {
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                catchall: index
                            }));
                        }
                    },
                    {
                        key: "pick",
                        value: function pick(mask) {
                            var shape = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = util_js_1.util.objectKeys(mask)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var key = _step.value;
                                    if (mask[key] && this.shape[key]) {
                                        shape[key] = this.shape[key];
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                shape: function() {
                                    return shape;
                                }
                            }));
                        }
                    },
                    {
                        key: "omit",
                        value: function omit(mask) {
                            var shape = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = util_js_1.util.objectKeys(this.shape)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var key = _step.value;
                                    if (!mask[key]) {
                                        shape[key] = this.shape[key];
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                shape: function() {
                                    return shape;
                                }
                            }));
                        }
                    },
                    {
                        /**
         * @deprecated
         */ key: "deepPartial",
                        value: function deepPartial() {
                            return deepPartialify(this);
                        }
                    },
                    {
                        key: "partial",
                        value: function partial(mask) {
                            var newShape = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = util_js_1.util.objectKeys(this.shape)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var key = _step.value;
                                    var fieldSchema = this.shape[key];
                                    if (mask && !mask[key]) {
                                        newShape[key] = fieldSchema;
                                    } else {
                                        newShape[key] = fieldSchema.optional();
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                shape: function() {
                                    return newShape;
                                }
                            }));
                        }
                    },
                    {
                        key: "required",
                        value: function required(mask) {
                            var newShape = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = util_js_1.util.objectKeys(this.shape)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var key = _step.value;
                                    if (mask && !mask[key]) {
                                        newShape[key] = this.shape[key];
                                    } else {
                                        var fieldSchema = this.shape[key];
                                        var newField = fieldSchema;
                                        while(newField instanceof ZodOptional){
                                            newField = newField._def.innerType;
                                        }
                                        newShape[key] = newField;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return new _ZodObject(__spreadProps(__spreadValues({}, this._def), {
                                shape: function() {
                                    return newShape;
                                }
                            }));
                        }
                    },
                    {
                        key: "keyof",
                        value: function keyof() {
                            return createZodEnum(util_js_1.util.objectKeys(this.shape));
                        }
                    }
                ]);
                return _ZodObject;
            }(ZodType);
            exports.ZodObject = ZodObject;
            ZodObject.create = function(shape, params) {
                return new ZodObject(__spreadValues({
                    shape: function() {
                        return shape;
                    },
                    unknownKeys: "strip",
                    catchall: ZodNever.create(),
                    typeName: ZodFirstPartyTypeKind.ZodObject
                }, processCreateParams(params)));
            };
            ZodObject.strictCreate = function(shape, params) {
                return new ZodObject(__spreadValues({
                    shape: function() {
                        return shape;
                    },
                    unknownKeys: "strict",
                    catchall: ZodNever.create(),
                    typeName: ZodFirstPartyTypeKind.ZodObject
                }, processCreateParams(params)));
            };
            ZodObject.lazycreate = function(shape, params) {
                return new ZodObject(__spreadValues({
                    shape: shape,
                    unknownKeys: "strip",
                    catchall: ZodNever.create(),
                    typeName: ZodFirstPartyTypeKind.ZodObject
                }, processCreateParams(params)));
            };
            var ZodUnion = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodUnion, ZodType);
                var _super = _create_super(ZodUnion);
                function ZodUnion() {
                    _class_call_check(this, ZodUnion);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodUnion, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var ctx = this._processInputParams(input).ctx;
                            var options = this._def.options;
                            function handleResults(results) {
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var result17 = _step.value;
                                        if (result17.result.status === "valid") {
                                            return result17.result;
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                try {
                                    for(var _iterator1 = results[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                        var result171 = _step1.value;
                                        if (result171.result.status === "dirty") {
                                            var _ctx_common_issues;
                                            (_ctx_common_issues = ctx.common.issues).push.apply(_ctx_common_issues, _to_consumable_array(result171.ctx.common.issues));
                                            return result171.result;
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError1 = true;
                                    _iteratorError1 = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                            _iterator1["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError1) {
                                            throw _iteratorError1;
                                        }
                                    }
                                }
                                var unionErrors = results.map(function(result17) {
                                    return new ZodError_js_1.ZodError(result17.ctx.common.issues);
                                });
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_union,
                                    unionErrors: unionErrors
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (ctx.common.async) {
                                return Promise.all(options.map(function(option) {
                                    return __async(_this, null, function() {
                                        var childCtx, _tmp;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    childCtx = __spreadProps(__spreadValues({}, ctx), {
                                                        common: __spreadProps(__spreadValues({}, ctx.common), {
                                                            issues: []
                                                        }),
                                                        parent: null
                                                    });
                                                    _tmp = {};
                                                    return [
                                                        4,
                                                        option._parseAsync({
                                                            data: ctx.data,
                                                            path: ctx.path,
                                                            parent: childCtx
                                                        })
                                                    ];
                                                case 1:
                                                    return [
                                                        2,
                                                        (_tmp.result = _state.sent(), _tmp.ctx = childCtx, _tmp)
                                                    ];
                                            }
                                        });
                                    });
                                })).then(handleResults);
                            } else {
                                var dirty = void 0;
                                var issues = [];
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var option = _step.value;
                                        var childCtx = __spreadProps(__spreadValues({}, ctx), {
                                            common: __spreadProps(__spreadValues({}, ctx.common), {
                                                issues: []
                                            }),
                                            parent: null
                                        });
                                        var result17 = option._parseSync({
                                            data: ctx.data,
                                            path: ctx.path,
                                            parent: childCtx
                                        });
                                        if (result17.status === "valid") {
                                            return result17;
                                        } else if (result17.status === "dirty" && !dirty) {
                                            dirty = {
                                                result: result17,
                                                ctx: childCtx
                                            };
                                        }
                                        if (childCtx.common.issues.length) {
                                            issues.push(childCtx.common.issues);
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                if (dirty) {
                                    var _ctx_common_issues;
                                    (_ctx_common_issues = ctx.common.issues).push.apply(_ctx_common_issues, _to_consumable_array(dirty.ctx.common.issues));
                                    return dirty.result;
                                }
                                var unionErrors = issues.map(function(issues2) {
                                    return new ZodError_js_1.ZodError(issues2);
                                });
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_union,
                                    unionErrors: unionErrors
                                });
                                return parseUtil_js_1.INVALID;
                            }
                        }
                    },
                    {
                        key: "options",
                        get: function get() {
                            return this._def.options;
                        }
                    }
                ]);
                return ZodUnion;
            }(ZodType);
            exports.ZodUnion = ZodUnion;
            ZodUnion.create = function(types2, params) {
                return new ZodUnion(__spreadValues({
                    options: types2,
                    typeName: ZodFirstPartyTypeKind.ZodUnion
                }, processCreateParams(params)));
            };
            var getDiscriminator = function(type) {
                if (type instanceof ZodLazy) {
                    return getDiscriminator(type.schema);
                } else if (type instanceof ZodEffects) {
                    return getDiscriminator(type.innerType());
                } else if (type instanceof ZodLiteral) {
                    return [
                        type.value
                    ];
                } else if (type instanceof ZodEnum) {
                    return type.options;
                } else if (type instanceof ZodNativeEnum) {
                    return util_js_1.util.objectValues(type["enum"]);
                } else if (type instanceof ZodDefault) {
                    return getDiscriminator(type._def.innerType);
                } else if (type instanceof ZodUndefined) {
                    return [
                        void 0
                    ];
                } else if (type instanceof ZodNull) {
                    return [
                        null
                    ];
                } else if (type instanceof ZodOptional) {
                    return [
                        void 0
                    ].concat(_to_consumable_array(getDiscriminator(type.unwrap())));
                } else if (type instanceof ZodNullable) {
                    return [
                        null
                    ].concat(_to_consumable_array(getDiscriminator(type.unwrap())));
                } else if (type instanceof ZodBranded) {
                    return getDiscriminator(type.unwrap());
                } else if (type instanceof ZodReadonly) {
                    return getDiscriminator(type.unwrap());
                } else if (type instanceof ZodCatch) {
                    return getDiscriminator(type._def.innerType);
                } else {
                    return [];
                }
            };
            var ZodDiscriminatedUnion = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodDiscriminatedUnion, ZodType);
                var _super = _create_super(_ZodDiscriminatedUnion);
                function _ZodDiscriminatedUnion() {
                    _class_call_check(this, _ZodDiscriminatedUnion);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodDiscriminatedUnion, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var ctx = this._processInputParams(input).ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.object) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.object,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var discriminator = this.discriminator;
                            var discriminatorValue = ctx.data[discriminator];
                            var option = this.optionsMap.get(discriminatorValue);
                            if (!option) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_union_discriminator,
                                    options: Array.from(this.optionsMap.keys()),
                                    path: [
                                        discriminator
                                    ]
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (ctx.common.async) {
                                return option._parseAsync({
                                    data: ctx.data,
                                    path: ctx.path,
                                    parent: ctx
                                });
                            } else {
                                return option._parseSync({
                                    data: ctx.data,
                                    path: ctx.path,
                                    parent: ctx
                                });
                            }
                        }
                    },
                    {
                        key: "discriminator",
                        get: function get() {
                            return this._def.discriminator;
                        }
                    },
                    {
                        key: "options",
                        get: function get() {
                            return this._def.options;
                        }
                    },
                    {
                        key: "optionsMap",
                        get: function get() {
                            return this._def.optionsMap;
                        }
                    }
                ], [
                    {
                        key: "create",
                        value: /**
         * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
         * However, it only allows a union of objects, all of which need to share a discriminator property. This property must
         * have a different value for each object in the union.
         * @param discriminator the name of the discriminator property
         * @param types an array of object schemas
         * @param params
         */ function create(discriminator, options, params) {
                            var optionsMap = /* @__PURE__ */ new Map();
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var type = _step.value;
                                    var discriminatorValues = getDiscriminator(type.shape[discriminator]);
                                    if (!discriminatorValues.length) {
                                        throw new Error("A discriminator value for key `".concat(discriminator, "` could not be extracted from all schema options"));
                                    }
                                    var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                    try {
                                        for(var _iterator1 = discriminatorValues[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                            var value = _step1.value;
                                            if (optionsMap.has(value)) {
                                                throw new Error("Discriminator property ".concat(String(discriminator), " has duplicate value ").concat(String(value)));
                                            }
                                            optionsMap.set(value, type);
                                        }
                                    } catch (err) {
                                        _didIteratorError1 = true;
                                        _iteratorError1 = err;
                                    } finally{
                                        try {
                                            if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                                _iterator1["return"]();
                                            }
                                        } finally{
                                            if (_didIteratorError1) {
                                                throw _iteratorError1;
                                            }
                                        }
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return new _ZodDiscriminatedUnion(__spreadValues({
                                typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
                                discriminator: discriminator,
                                options: options,
                                optionsMap: optionsMap
                            }, processCreateParams(params)));
                        }
                    }
                ]);
                return _ZodDiscriminatedUnion;
            }(ZodType);
            exports.ZodDiscriminatedUnion = ZodDiscriminatedUnion;
            function mergeValues(a, b) {
                var aType = (0, util_js_1.getParsedType)(a);
                var bType = (0, util_js_1.getParsedType)(b);
                if (a === b) {
                    return {
                        valid: true,
                        data: a
                    };
                } else if (aType === util_js_1.ZodParsedType.object && bType === util_js_1.ZodParsedType.object) {
                    var bKeys = util_js_1.util.objectKeys(b);
                    var sharedKeys = util_js_1.util.objectKeys(a).filter(function(key) {
                        return bKeys.indexOf(key) !== -1;
                    });
                    var newObj = __spreadValues(__spreadValues({}, a), b);
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = sharedKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var key = _step.value;
                            var sharedValue = mergeValues(a[key], b[key]);
                            if (!sharedValue.valid) {
                                return {
                                    valid: false
                                };
                            }
                            newObj[key] = sharedValue.data;
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                    return {
                        valid: true,
                        data: newObj
                    };
                } else if (aType === util_js_1.ZodParsedType.array && bType === util_js_1.ZodParsedType.array) {
                    if (a.length !== b.length) {
                        return {
                            valid: false
                        };
                    }
                    var newArray = [];
                    for(var index = 0; index < a.length; index++){
                        var itemA = a[index];
                        var itemB = b[index];
                        var sharedValue1 = mergeValues(itemA, itemB);
                        if (!sharedValue1.valid) {
                            return {
                                valid: false
                            };
                        }
                        newArray.push(sharedValue1.data);
                    }
                    return {
                        valid: true,
                        data: newArray
                    };
                } else if (aType === util_js_1.ZodParsedType.date && bType === util_js_1.ZodParsedType.date && +a === +b) {
                    return {
                        valid: true,
                        data: a
                    };
                } else {
                    return {
                        valid: false
                    };
                }
            }
            var ZodIntersection = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodIntersection, ZodType);
                var _super = _create_super(ZodIntersection);
                function ZodIntersection() {
                    _class_call_check(this, ZodIntersection);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodIntersection, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            var handleParsed = function(parsedLeft, parsedRight) {
                                if ((0, parseUtil_js_1.isAborted)(parsedLeft) || (0, parseUtil_js_1.isAborted)(parsedRight)) {
                                    return parseUtil_js_1.INVALID;
                                }
                                var merged = mergeValues(parsedLeft.value, parsedRight.value);
                                if (!merged.valid) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                        code: ZodError_js_1.ZodIssueCode.invalid_intersection_types
                                    });
                                    return parseUtil_js_1.INVALID;
                                }
                                if ((0, parseUtil_js_1.isDirty)(parsedLeft) || (0, parseUtil_js_1.isDirty)(parsedRight)) {
                                    status.dirty();
                                }
                                return {
                                    status: status.value,
                                    value: merged.data
                                };
                            };
                            if (ctx.common.async) {
                                return Promise.all([
                                    this._def.left._parseAsync({
                                        data: ctx.data,
                                        path: ctx.path,
                                        parent: ctx
                                    }),
                                    this._def.right._parseAsync({
                                        data: ctx.data,
                                        path: ctx.path,
                                        parent: ctx
                                    })
                                ]).then(function(param) {
                                    var _param = _sliced_to_array(param, 2), left = _param[0], right = _param[1];
                                    return handleParsed(left, right);
                                });
                            } else {
                                return handleParsed(this._def.left._parseSync({
                                    data: ctx.data,
                                    path: ctx.path,
                                    parent: ctx
                                }), this._def.right._parseSync({
                                    data: ctx.data,
                                    path: ctx.path,
                                    parent: ctx
                                }));
                            }
                        }
                    }
                ]);
                return ZodIntersection;
            }(ZodType);
            exports.ZodIntersection = ZodIntersection;
            ZodIntersection.create = function(left, right, params) {
                return new ZodIntersection(__spreadValues({
                    left: left,
                    right: right,
                    typeName: ZodFirstPartyTypeKind.ZodIntersection
                }, processCreateParams(params)));
            };
            var ZodTuple = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodTuple, ZodType);
                var _super = _create_super(_ZodTuple);
                function _ZodTuple() {
                    _class_call_check(this, _ZodTuple);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodTuple, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.array) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.array,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (ctx.data.length < this._def.items.length) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.too_small,
                                    minimum: this._def.items.length,
                                    inclusive: true,
                                    exact: false,
                                    type: "array"
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var rest = this._def.rest;
                            if (!rest && ctx.data.length > this._def.items.length) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.too_big,
                                    maximum: this._def.items.length,
                                    inclusive: true,
                                    exact: false,
                                    type: "array"
                                });
                                status.dirty();
                            }
                            var items = _to_consumable_array(ctx.data).map(function(item, itemIndex) {
                                var schema = _this._def.items[itemIndex] || _this._def.rest;
                                if (!schema) return null;
                                return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));
                            }).filter(function(x) {
                                return !!x;
                            });
                            if (ctx.common.async) {
                                return Promise.all(items).then(function(results) {
                                    return parseUtil_js_1.ParseStatus.mergeArray(status, results);
                                });
                            } else {
                                return parseUtil_js_1.ParseStatus.mergeArray(status, items);
                            }
                        }
                    },
                    {
                        key: "items",
                        get: function get() {
                            return this._def.items;
                        }
                    },
                    {
                        key: "rest",
                        value: function rest(_rest) {
                            return new _ZodTuple(__spreadProps(__spreadValues({}, this._def), {
                                rest: _rest
                            }));
                        }
                    }
                ]);
                return _ZodTuple;
            }(ZodType);
            exports.ZodTuple = ZodTuple;
            ZodTuple.create = function(schemas, params) {
                if (!Array.isArray(schemas)) {
                    throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
                }
                return new ZodTuple(__spreadValues({
                    items: schemas,
                    typeName: ZodFirstPartyTypeKind.ZodTuple,
                    rest: null
                }, processCreateParams(params)));
            };
            var ZodRecord = /*#__PURE__*/ function(ZodType1) {
                _inherits(_ZodRecord, ZodType1);
                var _super = _create_super(_ZodRecord);
                function _ZodRecord() {
                    _class_call_check(this, _ZodRecord);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodRecord, [
                    {
                        key: "keySchema",
                        get: function get() {
                            return this._def.keyType;
                        }
                    },
                    {
                        key: "valueSchema",
                        get: function get() {
                            return this._def.valueType;
                        }
                    },
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.object) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.object,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var pairs = [];
                            var keyType = this._def.keyType;
                            var valueType = this._def.valueType;
                            for(var key in ctx.data){
                                pairs.push({
                                    key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
                                    value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),
                                    alwaysSet: key in ctx.data
                                });
                            }
                            if (ctx.common.async) {
                                return parseUtil_js_1.ParseStatus.mergeObjectAsync(status, pairs);
                            } else {
                                return parseUtil_js_1.ParseStatus.mergeObjectSync(status, pairs);
                            }
                        }
                    },
                    {
                        key: "element",
                        get: function get() {
                            return this._def.valueType;
                        }
                    }
                ], [
                    {
                        key: "create",
                        value: function create(first, second, third) {
                            if (second instanceof ZodType) {
                                return new _ZodRecord(__spreadValues({
                                    keyType: first,
                                    valueType: second,
                                    typeName: ZodFirstPartyTypeKind.ZodRecord
                                }, processCreateParams(third)));
                            }
                            return new _ZodRecord(__spreadValues({
                                keyType: ZodString.create(),
                                valueType: first,
                                typeName: ZodFirstPartyTypeKind.ZodRecord
                            }, processCreateParams(second)));
                        }
                    }
                ]);
                return _ZodRecord;
            }(ZodType);
            exports.ZodRecord = ZodRecord;
            var ZodMap = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodMap, ZodType);
                var _super = _create_super(ZodMap);
                function ZodMap() {
                    _class_call_check(this, ZodMap);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodMap, [
                    {
                        key: "keySchema",
                        get: function get() {
                            return this._def.keyType;
                        }
                    },
                    {
                        key: "valueSchema",
                        get: function get() {
                            return this._def.valueType;
                        }
                    },
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.map) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.map,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var keyType = this._def.keyType;
                            var valueType = this._def.valueType;
                            var pairs = _to_consumable_array(ctx.data.entries()).map(function(param, index) {
                                var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
                                return {
                                    key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [
                                        index,
                                        "key"
                                    ])),
                                    value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [
                                        index,
                                        "value"
                                    ]))
                                };
                            });
                            if (ctx.common.async) {
                                var finalMap = /* @__PURE__ */ new Map();
                                return Promise.resolve().then(function() {
                                    return __async(_this, null, function() {
                                        var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, pair, key, value, err;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                    _state.label = 1;
                                                case 1:
                                                    _state.trys.push([
                                                        1,
                                                        7,
                                                        8,
                                                        9
                                                    ]);
                                                    _iterator = pairs[Symbol.iterator]();
                                                    _state.label = 2;
                                                case 2:
                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                        3,
                                                        6
                                                    ];
                                                    pair = _step.value;
                                                    return [
                                                        4,
                                                        pair.key
                                                    ];
                                                case 3:
                                                    key = _state.sent();
                                                    return [
                                                        4,
                                                        pair.value
                                                    ];
                                                case 4:
                                                    value = _state.sent();
                                                    if (key.status === "aborted" || value.status === "aborted") {
                                                        return [
                                                            2,
                                                            parseUtil_js_1.INVALID
                                                        ];
                                                    }
                                                    if (key.status === "dirty" || value.status === "dirty") {
                                                        status.dirty();
                                                    }
                                                    finalMap.set(key.value, value.value);
                                                    _state.label = 5;
                                                case 5:
                                                    _iteratorNormalCompletion = true;
                                                    return [
                                                        3,
                                                        2
                                                    ];
                                                case 6:
                                                    return [
                                                        3,
                                                        9
                                                    ];
                                                case 7:
                                                    err = _state.sent();
                                                    _didIteratorError = true;
                                                    _iteratorError = err;
                                                    return [
                                                        3,
                                                        9
                                                    ];
                                                case 8:
                                                    try {
                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                            _iterator["return"]();
                                                        }
                                                    } finally{
                                                        if (_didIteratorError) {
                                                            throw _iteratorError;
                                                        }
                                                    }
                                                    return [
                                                        7
                                                    ];
                                                case 9:
                                                    return [
                                                        2,
                                                        {
                                                            status: status.value,
                                                            value: finalMap
                                                        }
                                                    ];
                                            }
                                        });
                                    });
                                });
                            } else {
                                var finalMap1 = /* @__PURE__ */ new Map();
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = pairs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var pair = _step.value;
                                        var key = pair.key;
                                        var value = pair.value;
                                        if (key.status === "aborted" || value.status === "aborted") {
                                            return parseUtil_js_1.INVALID;
                                        }
                                        if (key.status === "dirty" || value.status === "dirty") {
                                            status.dirty();
                                        }
                                        finalMap1.set(key.value, value.value);
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                return {
                                    status: status.value,
                                    value: finalMap1
                                };
                            }
                        }
                    }
                ]);
                return ZodMap;
            }(ZodType);
            exports.ZodMap = ZodMap;
            ZodMap.create = function(keyType, valueType, params) {
                return new ZodMap(__spreadValues({
                    valueType: valueType,
                    keyType: keyType,
                    typeName: ZodFirstPartyTypeKind.ZodMap
                }, processCreateParams(params)));
            };
            var ZodSet = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodSet, ZodType);
                var _super = _create_super(_ZodSet);
                function _ZodSet() {
                    _class_call_check(this, _ZodSet);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodSet, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.set) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.set,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var def = this._def;
                            if (def.minSize !== null) {
                                if (ctx.data.size < def.minSize.value) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                        code: ZodError_js_1.ZodIssueCode.too_small,
                                        minimum: def.minSize.value,
                                        type: "set",
                                        inclusive: true,
                                        exact: false,
                                        message: def.minSize.message
                                    });
                                    status.dirty();
                                }
                            }
                            if (def.maxSize !== null) {
                                if (ctx.data.size > def.maxSize.value) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                        code: ZodError_js_1.ZodIssueCode.too_big,
                                        maximum: def.maxSize.value,
                                        type: "set",
                                        inclusive: true,
                                        exact: false,
                                        message: def.maxSize.message
                                    });
                                    status.dirty();
                                }
                            }
                            var valueType = this._def.valueType;
                            function finalizeSet(elements2) {
                                var parsedSet = /* @__PURE__ */ new Set();
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = elements2[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var element = _step.value;
                                        if (element.status === "aborted") return parseUtil_js_1.INVALID;
                                        if (element.status === "dirty") status.dirty();
                                        parsedSet.add(element.value);
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                return {
                                    status: status.value,
                                    value: parsedSet
                                };
                            }
                            var elements = _to_consumable_array(ctx.data.values()).map(function(item, i) {
                                return valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i));
                            });
                            if (ctx.common.async) {
                                return Promise.all(elements).then(function(elements2) {
                                    return finalizeSet(elements2);
                                });
                            } else {
                                return finalizeSet(elements);
                            }
                        }
                    },
                    {
                        key: "min",
                        value: function min(minSize, message2) {
                            return new _ZodSet(__spreadProps(__spreadValues({}, this._def), {
                                minSize: {
                                    value: minSize,
                                    message: errorUtil_js_1.errorUtil.toString(message2)
                                }
                            }));
                        }
                    },
                    {
                        key: "max",
                        value: function max(maxSize, message2) {
                            return new _ZodSet(__spreadProps(__spreadValues({}, this._def), {
                                maxSize: {
                                    value: maxSize,
                                    message: errorUtil_js_1.errorUtil.toString(message2)
                                }
                            }));
                        }
                    },
                    {
                        key: "size",
                        value: function size(_size, message2) {
                            return this.min(_size, message2).max(_size, message2);
                        }
                    },
                    {
                        key: "nonempty",
                        value: function nonempty(message2) {
                            return this.min(1, message2);
                        }
                    }
                ]);
                return _ZodSet;
            }(ZodType);
            exports.ZodSet = ZodSet;
            ZodSet.create = function(valueType, params) {
                return new ZodSet(__spreadValues({
                    valueType: valueType,
                    minSize: null,
                    maxSize: null,
                    typeName: ZodFirstPartyTypeKind.ZodSet
                }, processCreateParams(params)));
            };
            var ZodFunction = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodFunction, ZodType);
                var _super = _create_super(_ZodFunction);
                function _ZodFunction() {
                    _class_call_check(this, _ZodFunction);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.validate = _this.implement;
                    return _this;
                }
                _create_class(_ZodFunction, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var ctx = this._processInputParams(input).ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType["function"]) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType["function"],
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            function makeArgsIssue(args, error) {
                                return (0, parseUtil_js_1.makeIssue)({
                                    data: args,
                                    path: ctx.path,
                                    errorMaps: [
                                        ctx.common.contextualErrorMap,
                                        ctx.schemaErrorMap,
                                        (0, errors_js_1.getErrorMap)(),
                                        errors_js_1.defaultErrorMap
                                    ].filter(function(x) {
                                        return !!x;
                                    }),
                                    issueData: {
                                        code: ZodError_js_1.ZodIssueCode.invalid_arguments,
                                        argumentsError: error
                                    }
                                });
                            }
                            function makeReturnsIssue(returns, error) {
                                return (0, parseUtil_js_1.makeIssue)({
                                    data: returns,
                                    path: ctx.path,
                                    errorMaps: [
                                        ctx.common.contextualErrorMap,
                                        ctx.schemaErrorMap,
                                        (0, errors_js_1.getErrorMap)(),
                                        errors_js_1.defaultErrorMap
                                    ].filter(function(x) {
                                        return !!x;
                                    }),
                                    issueData: {
                                        code: ZodError_js_1.ZodIssueCode.invalid_return_type,
                                        returnTypeError: error
                                    }
                                });
                            }
                            var params = {
                                errorMap: ctx.common.contextualErrorMap
                            };
                            var fn = ctx.data;
                            if (this._def.returns instanceof ZodPromise) {
                                var me = this;
                                return (0, parseUtil_js_1.OK)(function() {
                                    for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                        args[_key] = arguments[_key];
                                    }
                                    return __async(this, null, function() {
                                        var error, parsedArgs, result17, parsedReturns;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    error = new ZodError_js_1.ZodError([]);
                                                    return [
                                                        4,
                                                        me._def.args.parseAsync(args, params)["catch"](function(e) {
                                                            error.addIssue(makeArgsIssue(args, e));
                                                            throw error;
                                                        })
                                                    ];
                                                case 1:
                                                    parsedArgs = _state.sent();
                                                    return [
                                                        4,
                                                        Reflect.apply(fn, this, parsedArgs)
                                                    ];
                                                case 2:
                                                    result17 = _state.sent();
                                                    return [
                                                        4,
                                                        me._def.returns._def.type.parseAsync(result17, params)["catch"](function(e) {
                                                            error.addIssue(makeReturnsIssue(result17, e));
                                                            throw error;
                                                        })
                                                    ];
                                                case 3:
                                                    parsedReturns = _state.sent();
                                                    return [
                                                        2,
                                                        parsedReturns
                                                    ];
                                            }
                                        });
                                    });
                                });
                            } else {
                                var me1 = this;
                                return (0, parseUtil_js_1.OK)(function() {
                                    for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                        args[_key] = arguments[_key];
                                    }
                                    var parsedArgs = me1._def.args.safeParse(args, params);
                                    if (!parsedArgs.success) {
                                        throw new ZodError_js_1.ZodError([
                                            makeArgsIssue(args, parsedArgs.error)
                                        ]);
                                    }
                                    var result17 = Reflect.apply(fn, this, parsedArgs.data);
                                    var parsedReturns = me1._def.returns.safeParse(result17, params);
                                    if (!parsedReturns.success) {
                                        throw new ZodError_js_1.ZodError([
                                            makeReturnsIssue(result17, parsedReturns.error)
                                        ]);
                                    }
                                    return parsedReturns.data;
                                });
                            }
                        }
                    },
                    {
                        key: "parameters",
                        value: function parameters() {
                            return this._def.args;
                        }
                    },
                    {
                        key: "returnType",
                        value: function returnType() {
                            return this._def.returns;
                        }
                    },
                    {
                        key: "args",
                        value: function args() {
                            for(var _len = arguments.length, items = new Array(_len), _key = 0; _key < _len; _key++){
                                items[_key] = arguments[_key];
                            }
                            return new _ZodFunction(__spreadProps(__spreadValues({}, this._def), {
                                args: ZodTuple.create(items).rest(ZodUnknown.create())
                            }));
                        }
                    },
                    {
                        key: "returns",
                        value: function returns(returnType) {
                            return new _ZodFunction(__spreadProps(__spreadValues({}, this._def), {
                                returns: returnType
                            }));
                        }
                    },
                    {
                        key: "implement",
                        value: function implement(func3) {
                            var validatedFunc = this.parse(func3);
                            return validatedFunc;
                        }
                    },
                    {
                        key: "strictImplement",
                        value: function strictImplement(func3) {
                            var validatedFunc = this.parse(func3);
                            return validatedFunc;
                        }
                    }
                ], [
                    {
                        key: "create",
                        value: function create(args, returns, params) {
                            return new _ZodFunction(__spreadValues({
                                args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),
                                returns: returns || ZodUnknown.create(),
                                typeName: ZodFirstPartyTypeKind.ZodFunction
                            }, processCreateParams(params)));
                        }
                    }
                ]);
                return _ZodFunction;
            }(ZodType);
            exports.ZodFunction = ZodFunction;
            var ZodLazy = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodLazy, ZodType);
                var _super = _create_super(ZodLazy);
                function ZodLazy() {
                    _class_call_check(this, ZodLazy);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodLazy, [
                    {
                        key: "schema",
                        get: function get() {
                            return this._def.getter();
                        }
                    },
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var ctx = this._processInputParams(input).ctx;
                            var lazySchema = this._def.getter();
                            return lazySchema._parse({
                                data: ctx.data,
                                path: ctx.path,
                                parent: ctx
                            });
                        }
                    }
                ]);
                return ZodLazy;
            }(ZodType);
            exports.ZodLazy = ZodLazy;
            ZodLazy.create = function(getter, params) {
                return new ZodLazy(__spreadValues({
                    getter: getter,
                    typeName: ZodFirstPartyTypeKind.ZodLazy
                }, processCreateParams(params)));
            };
            var ZodLiteral = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodLiteral, ZodType);
                var _super = _create_super(ZodLiteral);
                function ZodLiteral() {
                    _class_call_check(this, ZodLiteral);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodLiteral, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (input.data !== this._def.value) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    received: ctx.data,
                                    code: ZodError_js_1.ZodIssueCode.invalid_literal,
                                    expected: this._def.value
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return {
                                status: "valid",
                                value: input.data
                            };
                        }
                    },
                    {
                        key: "value",
                        get: function get() {
                            return this._def.value;
                        }
                    }
                ]);
                return ZodLiteral;
            }(ZodType);
            exports.ZodLiteral = ZodLiteral;
            ZodLiteral.create = function(value, params) {
                return new ZodLiteral(__spreadValues({
                    value: value,
                    typeName: ZodFirstPartyTypeKind.ZodLiteral
                }, processCreateParams(params)));
            };
            function createZodEnum(values, params) {
                return new ZodEnum(__spreadValues({
                    values: values,
                    typeName: ZodFirstPartyTypeKind.ZodEnum
                }, processCreateParams(params)));
            }
            var ZodEnum = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodEnum, ZodType);
                var _super = _create_super(_ZodEnum);
                function _ZodEnum() {
                    _class_call_check(this, _ZodEnum);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodEnum, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            if (typeof input.data !== "string") {
                                var ctx = this._getOrReturnCtx(input);
                                var expectedValues = this._def.values;
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    expected: util_js_1.util.joinValues(expectedValues),
                                    received: ctx.parsedType,
                                    code: ZodError_js_1.ZodIssueCode.invalid_type
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (!this._cache) {
                                this._cache = new Set(this._def.values);
                            }
                            if (!this._cache.has(input.data)) {
                                var ctx1 = this._getOrReturnCtx(input);
                                var expectedValues1 = this._def.values;
                                (0, parseUtil_js_1.addIssueToContext)(ctx1, {
                                    received: ctx1.data,
                                    code: ZodError_js_1.ZodIssueCode.invalid_enum_value,
                                    options: expectedValues1
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    },
                    {
                        key: "options",
                        get: function get() {
                            return this._def.values;
                        }
                    },
                    {
                        key: "enum",
                        get: function get() {
                            var enumValues = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var val = _step.value;
                                    enumValues[val] = val;
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return enumValues;
                        }
                    },
                    {
                        key: "Values",
                        get: function get() {
                            var enumValues = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var val = _step.value;
                                    enumValues[val] = val;
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return enumValues;
                        }
                    },
                    {
                        key: "Enum",
                        get: function get() {
                            var enumValues = {};
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this._def.values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var val = _step.value;
                                    enumValues[val] = val;
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return enumValues;
                        }
                    },
                    {
                        key: "extract",
                        value: function extract(values) {
                            var newDef = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this._def;
                            return _ZodEnum.create(values, __spreadValues(__spreadValues({}, this._def), newDef));
                        }
                    },
                    {
                        key: "exclude",
                        value: function exclude(values) {
                            var newDef = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this._def;
                            return _ZodEnum.create(this.options.filter(function(opt) {
                                return !values.includes(opt);
                            }), __spreadValues(__spreadValues({}, this._def), newDef));
                        }
                    }
                ]);
                return _ZodEnum;
            }(ZodType);
            exports.ZodEnum = ZodEnum;
            ZodEnum.create = createZodEnum;
            var ZodNativeEnum = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodNativeEnum, ZodType);
                var _super = _create_super(ZodNativeEnum);
                function ZodNativeEnum() {
                    _class_call_check(this, ZodNativeEnum);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodNativeEnum, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var nativeEnumValues = util_js_1.util.getValidEnumValues(this._def.values);
                            var ctx = this._getOrReturnCtx(input);
                            if (ctx.parsedType !== util_js_1.ZodParsedType.string && ctx.parsedType !== util_js_1.ZodParsedType.number) {
                                var expectedValues = util_js_1.util.objectValues(nativeEnumValues);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    expected: util_js_1.util.joinValues(expectedValues),
                                    received: ctx.parsedType,
                                    code: ZodError_js_1.ZodIssueCode.invalid_type
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            if (!this._cache) {
                                this._cache = new Set(util_js_1.util.getValidEnumValues(this._def.values));
                            }
                            if (!this._cache.has(input.data)) {
                                var expectedValues1 = util_js_1.util.objectValues(nativeEnumValues);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    received: ctx.data,
                                    code: ZodError_js_1.ZodIssueCode.invalid_enum_value,
                                    options: expectedValues1
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return (0, parseUtil_js_1.OK)(input.data);
                        }
                    },
                    {
                        key: "enum",
                        get: function get() {
                            return this._def.values;
                        }
                    }
                ]);
                return ZodNativeEnum;
            }(ZodType);
            exports.ZodNativeEnum = ZodNativeEnum;
            ZodNativeEnum.create = function(values, params) {
                return new ZodNativeEnum(__spreadValues({
                    values: values,
                    typeName: ZodFirstPartyTypeKind.ZodNativeEnum
                }, processCreateParams(params)));
            };
            var ZodPromise = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodPromise, ZodType);
                var _super = _create_super(ZodPromise);
                function ZodPromise() {
                    _class_call_check(this, ZodPromise);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodPromise, [
                    {
                        key: "unwrap",
                        value: function unwrap() {
                            return this._def.type;
                        }
                    },
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var ctx = this._processInputParams(input).ctx;
                            if (ctx.parsedType !== util_js_1.ZodParsedType.promise && ctx.common.async === false) {
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.promise,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            var promisified = ctx.parsedType === util_js_1.ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
                            return (0, parseUtil_js_1.OK)(promisified.then(function(data) {
                                return _this._def.type.parseAsync(data, {
                                    path: ctx.path,
                                    errorMap: ctx.common.contextualErrorMap
                                });
                            }));
                        }
                    }
                ]);
                return ZodPromise;
            }(ZodType);
            exports.ZodPromise = ZodPromise;
            ZodPromise.create = function(schema, params) {
                return new ZodPromise(__spreadValues({
                    type: schema,
                    typeName: ZodFirstPartyTypeKind.ZodPromise
                }, processCreateParams(params)));
            };
            var ZodEffects = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodEffects, ZodType);
                var _super = _create_super(ZodEffects);
                function ZodEffects() {
                    _class_call_check(this, ZodEffects);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodEffects, [
                    {
                        key: "innerType",
                        value: function innerType() {
                            return this._def.schema;
                        }
                    },
                    {
                        key: "sourceType",
                        value: function sourceType() {
                            return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
                        }
                    },
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            var effect = this._def.effect || null;
                            var checkCtx = {
                                addIssue: function(arg) {
                                    (0, parseUtil_js_1.addIssueToContext)(ctx, arg);
                                    if (arg.fatal) {
                                        status.abort();
                                    } else {
                                        status.dirty();
                                    }
                                },
                                get path () {
                                    return ctx.path;
                                }
                            };
                            checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
                            if (effect.type === "preprocess") {
                                var processed = effect.transform(ctx.data, checkCtx);
                                if (ctx.common.async) {
                                    return Promise.resolve(processed).then(function(processed2) {
                                        return __async(_this, null, function() {
                                            var result17;
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        if (status.value === "aborted") return [
                                                            2,
                                                            parseUtil_js_1.INVALID
                                                        ];
                                                        return [
                                                            4,
                                                            this._def.schema._parseAsync({
                                                                data: processed2,
                                                                path: ctx.path,
                                                                parent: ctx
                                                            })
                                                        ];
                                                    case 1:
                                                        result17 = _state.sent();
                                                        if (result17.status === "aborted") return [
                                                            2,
                                                            parseUtil_js_1.INVALID
                                                        ];
                                                        if (result17.status === "dirty") return [
                                                            2,
                                                            (0, parseUtil_js_1.DIRTY)(result17.value)
                                                        ];
                                                        if (status.value === "dirty") return [
                                                            2,
                                                            (0, parseUtil_js_1.DIRTY)(result17.value)
                                                        ];
                                                        return [
                                                            2,
                                                            result17
                                                        ];
                                                }
                                            });
                                        });
                                    });
                                } else {
                                    if (status.value === "aborted") return parseUtil_js_1.INVALID;
                                    var result17 = this._def.schema._parseSync({
                                        data: processed,
                                        path: ctx.path,
                                        parent: ctx
                                    });
                                    if (result17.status === "aborted") return parseUtil_js_1.INVALID;
                                    if (result17.status === "dirty") return (0, parseUtil_js_1.DIRTY)(result17.value);
                                    if (status.value === "dirty") return (0, parseUtil_js_1.DIRTY)(result17.value);
                                    return result17;
                                }
                            }
                            if (effect.type === "refinement") {
                                var executeRefinement = function(acc) {
                                    var result17 = effect.refinement(acc, checkCtx);
                                    if (ctx.common.async) {
                                        return Promise.resolve(result17);
                                    }
                                    if (result17 instanceof Promise) {
                                        throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
                                    }
                                    return acc;
                                };
                                if (ctx.common.async === false) {
                                    var inner = this._def.schema._parseSync({
                                        data: ctx.data,
                                        path: ctx.path,
                                        parent: ctx
                                    });
                                    if (inner.status === "aborted") return parseUtil_js_1.INVALID;
                                    if (inner.status === "dirty") status.dirty();
                                    executeRefinement(inner.value);
                                    return {
                                        status: status.value,
                                        value: inner.value
                                    };
                                } else {
                                    return this._def.schema._parseAsync({
                                        data: ctx.data,
                                        path: ctx.path,
                                        parent: ctx
                                    }).then(function(inner) {
                                        if (inner.status === "aborted") return parseUtil_js_1.INVALID;
                                        if (inner.status === "dirty") status.dirty();
                                        return executeRefinement(inner.value).then(function() {
                                            return {
                                                status: status.value,
                                                value: inner.value
                                            };
                                        });
                                    });
                                }
                            }
                            if (effect.type === "transform") {
                                if (ctx.common.async === false) {
                                    var base = this._def.schema._parseSync({
                                        data: ctx.data,
                                        path: ctx.path,
                                        parent: ctx
                                    });
                                    if (!(0, parseUtil_js_1.isValid)(base)) return parseUtil_js_1.INVALID;
                                    var result171 = effect.transform(base.value, checkCtx);
                                    if (result171 instanceof Promise) {
                                        throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");
                                    }
                                    return {
                                        status: status.value,
                                        value: result171
                                    };
                                } else {
                                    return this._def.schema._parseAsync({
                                        data: ctx.data,
                                        path: ctx.path,
                                        parent: ctx
                                    }).then(function(base) {
                                        if (!(0, parseUtil_js_1.isValid)(base)) return parseUtil_js_1.INVALID;
                                        return Promise.resolve(effect.transform(base.value, checkCtx)).then(function(result17) {
                                            return {
                                                status: status.value,
                                                value: result17
                                            };
                                        });
                                    });
                                }
                            }
                            util_js_1.util.assertNever(effect);
                        }
                    }
                ]);
                return ZodEffects;
            }(ZodType);
            exports.ZodEffects = ZodEffects;
            exports.ZodTransformer = ZodEffects;
            ZodEffects.create = function(schema, effect, params) {
                return new ZodEffects(__spreadValues({
                    schema: schema,
                    typeName: ZodFirstPartyTypeKind.ZodEffects,
                    effect: effect
                }, processCreateParams(params)));
            };
            ZodEffects.createWithPreprocess = function(preprocess, schema, params) {
                return new ZodEffects(__spreadValues({
                    schema: schema,
                    effect: {
                        type: "preprocess",
                        transform: preprocess
                    },
                    typeName: ZodFirstPartyTypeKind.ZodEffects
                }, processCreateParams(params)));
            };
            var ZodOptional = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodOptional, ZodType);
                var _super = _create_super(ZodOptional);
                function ZodOptional() {
                    _class_call_check(this, ZodOptional);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodOptional, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType === util_js_1.ZodParsedType.undefined) {
                                return (0, parseUtil_js_1.OK)(void 0);
                            }
                            return this._def.innerType._parse(input);
                        }
                    },
                    {
                        key: "unwrap",
                        value: function unwrap() {
                            return this._def.innerType;
                        }
                    }
                ]);
                return ZodOptional;
            }(ZodType);
            exports.ZodOptional = ZodOptional;
            ZodOptional.create = function(type, params) {
                return new ZodOptional(__spreadValues({
                    innerType: type,
                    typeName: ZodFirstPartyTypeKind.ZodOptional
                }, processCreateParams(params)));
            };
            var ZodNullable = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodNullable, ZodType);
                var _super = _create_super(ZodNullable);
                function ZodNullable() {
                    _class_call_check(this, ZodNullable);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodNullable, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType === util_js_1.ZodParsedType["null"]) {
                                return (0, parseUtil_js_1.OK)(null);
                            }
                            return this._def.innerType._parse(input);
                        }
                    },
                    {
                        key: "unwrap",
                        value: function unwrap() {
                            return this._def.innerType;
                        }
                    }
                ]);
                return ZodNullable;
            }(ZodType);
            exports.ZodNullable = ZodNullable;
            ZodNullable.create = function(type, params) {
                return new ZodNullable(__spreadValues({
                    innerType: type,
                    typeName: ZodFirstPartyTypeKind.ZodNullable
                }, processCreateParams(params)));
            };
            var ZodDefault = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodDefault, ZodType);
                var _super = _create_super(ZodDefault);
                function ZodDefault() {
                    _class_call_check(this, ZodDefault);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodDefault, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var ctx = this._processInputParams(input).ctx;
                            var data = ctx.data;
                            if (ctx.parsedType === util_js_1.ZodParsedType.undefined) {
                                data = this._def.defaultValue();
                            }
                            return this._def.innerType._parse({
                                data: data,
                                path: ctx.path,
                                parent: ctx
                            });
                        }
                    },
                    {
                        key: "removeDefault",
                        value: function removeDefault() {
                            return this._def.innerType;
                        }
                    }
                ]);
                return ZodDefault;
            }(ZodType);
            exports.ZodDefault = ZodDefault;
            ZodDefault.create = function(type, params) {
                return new ZodDefault(__spreadValues({
                    innerType: type,
                    typeName: ZodFirstPartyTypeKind.ZodDefault,
                    defaultValue: typeof params["default"] === "function" ? params["default"] : function() {
                        return params["default"];
                    }
                }, processCreateParams(params)));
            };
            var ZodCatch = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodCatch, ZodType);
                var _super = _create_super(ZodCatch);
                function ZodCatch() {
                    _class_call_check(this, ZodCatch);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodCatch, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var ctx = this._processInputParams(input).ctx;
                            var newCtx = __spreadProps(__spreadValues({}, ctx), {
                                common: __spreadProps(__spreadValues({}, ctx.common), {
                                    issues: []
                                })
                            });
                            var result17 = this._def.innerType._parse({
                                data: newCtx.data,
                                path: newCtx.path,
                                parent: __spreadValues({}, newCtx)
                            });
                            if ((0, parseUtil_js_1.isAsync)(result17)) {
                                return result17.then(function(result18) {
                                    return {
                                        status: "valid",
                                        value: result18.status === "valid" ? result18.value : _this._def.catchValue({
                                            get error () {
                                                return new ZodError_js_1.ZodError(newCtx.common.issues);
                                            },
                                            input: newCtx.data
                                        })
                                    };
                                });
                            } else {
                                return {
                                    status: "valid",
                                    value: result17.status === "valid" ? result17.value : this._def.catchValue({
                                        get error () {
                                            return new ZodError_js_1.ZodError(newCtx.common.issues);
                                        },
                                        input: newCtx.data
                                    })
                                };
                            }
                        }
                    },
                    {
                        key: "removeCatch",
                        value: function removeCatch() {
                            return this._def.innerType;
                        }
                    }
                ]);
                return ZodCatch;
            }(ZodType);
            exports.ZodCatch = ZodCatch;
            ZodCatch.create = function(type, params) {
                return new ZodCatch(__spreadValues({
                    innerType: type,
                    typeName: ZodFirstPartyTypeKind.ZodCatch,
                    catchValue: typeof params["catch"] === "function" ? params["catch"] : function() {
                        return params["catch"];
                    }
                }, processCreateParams(params)));
            };
            var ZodNaN = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodNaN, ZodType);
                var _super = _create_super(ZodNaN);
                function ZodNaN() {
                    _class_call_check(this, ZodNaN);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodNaN, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var parsedType = this._getType(input);
                            if (parsedType !== util_js_1.ZodParsedType.nan) {
                                var ctx = this._getOrReturnCtx(input);
                                (0, parseUtil_js_1.addIssueToContext)(ctx, {
                                    code: ZodError_js_1.ZodIssueCode.invalid_type,
                                    expected: util_js_1.ZodParsedType.nan,
                                    received: ctx.parsedType
                                });
                                return parseUtil_js_1.INVALID;
                            }
                            return {
                                status: "valid",
                                value: input.data
                            };
                        }
                    }
                ]);
                return ZodNaN;
            }(ZodType);
            exports.ZodNaN = ZodNaN;
            ZodNaN.create = function(params) {
                return new ZodNaN(__spreadValues({
                    typeName: ZodFirstPartyTypeKind.ZodNaN
                }, processCreateParams(params)));
            };
            exports.BRAND = Symbol("zod_brand");
            var ZodBranded = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodBranded, ZodType);
                var _super = _create_super(ZodBranded);
                function ZodBranded() {
                    _class_call_check(this, ZodBranded);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodBranded, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var ctx = this._processInputParams(input).ctx;
                            var data = ctx.data;
                            return this._def.type._parse({
                                data: data,
                                path: ctx.path,
                                parent: ctx
                            });
                        }
                    },
                    {
                        key: "unwrap",
                        value: function unwrap() {
                            return this._def.type;
                        }
                    }
                ]);
                return ZodBranded;
            }(ZodType);
            exports.ZodBranded = ZodBranded;
            var ZodPipeline = /*#__PURE__*/ function(ZodType) {
                _inherits(_ZodPipeline, ZodType);
                var _super = _create_super(_ZodPipeline);
                function _ZodPipeline() {
                    _class_call_check(this, _ZodPipeline);
                    return _super.apply(this, arguments);
                }
                _create_class(_ZodPipeline, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var _this = this;
                            var _this__processInputParams = this._processInputParams(input), status = _this__processInputParams.status, ctx = _this__processInputParams.ctx;
                            if (ctx.common.async) {
                                var handleAsync = function() {
                                    return __async(_this, null, function() {
                                        var inResult;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        this._def["in"]._parseAsync({
                                                            data: ctx.data,
                                                            path: ctx.path,
                                                            parent: ctx
                                                        })
                                                    ];
                                                case 1:
                                                    inResult = _state.sent();
                                                    if (inResult.status === "aborted") return [
                                                        2,
                                                        parseUtil_js_1.INVALID
                                                    ];
                                                    if (inResult.status === "dirty") {
                                                        status.dirty();
                                                        return [
                                                            2,
                                                            (0, parseUtil_js_1.DIRTY)(inResult.value)
                                                        ];
                                                    } else {
                                                        return [
                                                            2,
                                                            this._def.out._parseAsync({
                                                                data: inResult.value,
                                                                path: ctx.path,
                                                                parent: ctx
                                                            })
                                                        ];
                                                    }
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    });
                                };
                                return handleAsync();
                            } else {
                                var inResult = this._def["in"]._parseSync({
                                    data: ctx.data,
                                    path: ctx.path,
                                    parent: ctx
                                });
                                if (inResult.status === "aborted") return parseUtil_js_1.INVALID;
                                if (inResult.status === "dirty") {
                                    status.dirty();
                                    return {
                                        status: "dirty",
                                        value: inResult.value
                                    };
                                } else {
                                    return this._def.out._parseSync({
                                        data: inResult.value,
                                        path: ctx.path,
                                        parent: ctx
                                    });
                                }
                            }
                        }
                    }
                ], [
                    {
                        key: "create",
                        value: function create(a, b) {
                            return new _ZodPipeline({
                                "in": a,
                                out: b,
                                typeName: ZodFirstPartyTypeKind.ZodPipeline
                            });
                        }
                    }
                ]);
                return _ZodPipeline;
            }(ZodType);
            exports.ZodPipeline = ZodPipeline;
            var ZodReadonly = /*#__PURE__*/ function(ZodType) {
                _inherits(ZodReadonly, ZodType);
                var _super = _create_super(ZodReadonly);
                function ZodReadonly() {
                    _class_call_check(this, ZodReadonly);
                    return _super.apply(this, arguments);
                }
                _create_class(ZodReadonly, [
                    {
                        key: "_parse",
                        value: function _parse(input) {
                            var result17 = this._def.innerType._parse(input);
                            var freeze = function(data) {
                                if ((0, parseUtil_js_1.isValid)(data)) {
                                    data.value = Object.freeze(data.value);
                                }
                                return data;
                            };
                            return (0, parseUtil_js_1.isAsync)(result17) ? result17.then(function(data) {
                                return freeze(data);
                            }) : freeze(result17);
                        }
                    },
                    {
                        key: "unwrap",
                        value: function unwrap() {
                            return this._def.innerType;
                        }
                    }
                ]);
                return ZodReadonly;
            }(ZodType);
            exports.ZodReadonly = ZodReadonly;
            ZodReadonly.create = function(type, params) {
                return new ZodReadonly(__spreadValues({
                    innerType: type,
                    typeName: ZodFirstPartyTypeKind.ZodReadonly
                }, processCreateParams(params)));
            };
            function cleanParams(params, data) {
                var p = typeof params === "function" ? params(data) : typeof params === "string" ? {
                    message: params
                } : params;
                var p2 = typeof p === "string" ? {
                    message: p
                } : p;
                return p2;
            }
            function custom(check2) {
                var _params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, fatal = arguments.length > 2 ? arguments[2] : void 0;
                if (check2) return ZodAny.create().superRefine(function(data, ctx) {
                    var _a2, _b2;
                    var r = check2(data);
                    if (r instanceof Promise) {
                        return r.then(function(r2) {
                            var _a3, _b3;
                            if (!r2) {
                                var params = cleanParams(_params, data);
                                var _fatal = (_b3 = (_a3 = params.fatal) != null ? _a3 : fatal) != null ? _b3 : true;
                                ctx.addIssue(__spreadProps(__spreadValues({
                                    code: "custom"
                                }, params), {
                                    fatal: _fatal
                                }));
                            }
                        });
                    }
                    if (!r) {
                        var params = cleanParams(_params, data);
                        var _fatal = (_b2 = (_a2 = params.fatal) != null ? _a2 : fatal) != null ? _b2 : true;
                        ctx.addIssue(__spreadProps(__spreadValues({
                            code: "custom"
                        }, params), {
                            fatal: _fatal
                        }));
                    }
                    return;
                });
                return ZodAny.create();
            }
            exports.late = {
                object: ZodObject.lazycreate
            };
            var ZodFirstPartyTypeKind;
            (function(ZodFirstPartyTypeKind2) {
                ZodFirstPartyTypeKind2["ZodString"] = "ZodString";
                ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber";
                ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN";
                ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
                ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
                ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
                ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
                ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
                ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
                ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
                ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown";
                ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever";
                ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid";
                ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray";
                ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject";
                ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion";
                ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion";
                ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection";
                ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple";
                ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord";
                ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap";
                ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet";
                ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction";
                ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy";
                ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral";
                ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum";
                ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects";
                ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum";
                ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
                ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
                ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
                ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
                ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
                ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
                ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
                ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly";
            })(ZodFirstPartyTypeKind || (exports.ZodFirstPartyTypeKind = ZodFirstPartyTypeKind = {}));
            var instanceOfType = function(cls) {
                var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
                    message: "Input not instance of ".concat(cls.name)
                };
                return custom(function(data) {
                    return data instanceof cls;
                }, params);
            };
            exports["instanceof"] = instanceOfType;
            var stringType = ZodString.create;
            exports.string = stringType;
            var numberType = ZodNumber.create;
            exports.number = numberType;
            var nanType = ZodNaN.create;
            exports.nan = nanType;
            var bigIntType = ZodBigInt.create;
            exports.bigint = bigIntType;
            var booleanType = ZodBoolean.create;
            exports["boolean"] = booleanType;
            var dateType = ZodDate.create;
            exports.date = dateType;
            var symbolType = ZodSymbol.create;
            exports.symbol = symbolType;
            var undefinedType = ZodUndefined.create;
            exports.undefined = undefinedType;
            var nullType = ZodNull.create;
            exports["null"] = nullType;
            var anyType = ZodAny.create;
            exports.any = anyType;
            var unknownType = ZodUnknown.create;
            exports.unknown = unknownType;
            var neverType = ZodNever.create;
            exports.never = neverType;
            var voidType = ZodVoid.create;
            exports["void"] = voidType;
            var arrayType = ZodArray.create;
            exports.array = arrayType;
            var objectType = ZodObject.create;
            exports.object = objectType;
            var strictObjectType = ZodObject.strictCreate;
            exports.strictObject = strictObjectType;
            var unionType = ZodUnion.create;
            exports.union = unionType;
            var discriminatedUnionType = ZodDiscriminatedUnion.create;
            exports.discriminatedUnion = discriminatedUnionType;
            var intersectionType = ZodIntersection.create;
            exports.intersection = intersectionType;
            var tupleType = ZodTuple.create;
            exports.tuple = tupleType;
            var recordType = ZodRecord.create;
            exports.record = recordType;
            var mapType = ZodMap.create;
            exports.map = mapType;
            var setType = ZodSet.create;
            exports.set = setType;
            var functionType = ZodFunction.create;
            exports["function"] = functionType;
            var lazyType = ZodLazy.create;
            exports.lazy = lazyType;
            var literalType = ZodLiteral.create;
            exports.literal = literalType;
            var enumType = ZodEnum.create;
            exports["enum"] = enumType;
            var nativeEnumType = ZodNativeEnum.create;
            exports.nativeEnum = nativeEnumType;
            var promiseType = ZodPromise.create;
            exports.promise = promiseType;
            var effectsType = ZodEffects.create;
            exports.effect = effectsType;
            exports.transformer = effectsType;
            var optionalType = ZodOptional.create;
            exports.optional = optionalType;
            var nullableType = ZodNullable.create;
            exports.nullable = nullableType;
            var preprocessType = ZodEffects.createWithPreprocess;
            exports.preprocess = preprocessType;
            var pipelineType = ZodPipeline.create;
            exports.pipeline = pipelineType;
            var ostring = function() {
                return stringType().optional();
            };
            exports.ostring = ostring;
            var onumber = function() {
                return numberType().optional();
            };
            exports.onumber = onumber;
            var oboolean = function() {
                return booleanType().optional();
            };
            exports.oboolean = oboolean;
            exports.coerce = {
                string: function(arg) {
                    return ZodString.create(__spreadProps(__spreadValues({}, arg), {
                        coerce: true
                    }));
                },
                number: function(arg) {
                    return ZodNumber.create(__spreadProps(__spreadValues({}, arg), {
                        coerce: true
                    }));
                },
                boolean: function(arg) {
                    return ZodBoolean.create(__spreadProps(__spreadValues({}, arg), {
                        coerce: true
                    }));
                },
                bigint: function(arg) {
                    return ZodBigInt.create(__spreadProps(__spreadValues({}, arg), {
                        coerce: true
                    }));
                },
                date: function(arg) {
                    return ZodDate.create(__spreadProps(__spreadValues({}, arg), {
                        coerce: true
                    }));
                }
            };
            exports.NEVER = parseUtil_js_1.INVALID;
        }
    });
    // node_modules/zod/v3/external.cjs
    var require_external = __commonJS({
        "node_modules/zod/v3/external.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __exportStar = exports && exports.__exportStar || function(m, exports2) {
                for(var p in m)if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            __exportStar(require_errors(), exports);
            __exportStar(require_parseUtil(), exports);
            __exportStar(require_typeAliases(), exports);
            __exportStar(require_util(), exports);
            __exportStar(require_types(), exports);
            __exportStar(require_ZodError(), exports);
        }
    });
    // node_modules/zod/index.cjs
    var require_zod = __commonJS({
        "node_modules/zod/index.cjs": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __exportStar = exports && exports.__exportStar || function(m, exports2) {
                for(var p in m)if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.z = void 0;
            var z = __importStar(require_external());
            exports.z = z;
            __exportStar(require_external(), exports);
            exports["default"] = z;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Settings/DeviceSettingsType.js
    var require_DeviceSettingsType = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Settings/DeviceSettingsType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceSettingsType = void 0;
            var DeviceSettingsType;
            (function(DeviceSettingsType2) {
                DeviceSettingsType2["VOLUME"] = "VOLUME";
                DeviceSettingsType2["BRIGHTNESS"] = "BRIGHTNESS";
                DeviceSettingsType2["TIMERS"] = "TIMERS";
                DeviceSettingsType2["PROPRIETARY_TIMERS"] = "PROPRIETARY_TIMERS";
                DeviceSettingsType2["RESOLUTION"] = "RESOLUTION";
                DeviceSettingsType2["ORIENTATION"] = "ORIENTATION";
                DeviceSettingsType2["REMOTE_CONTROL"] = "REMOTE_CONTROL";
                DeviceSettingsType2["APPLICATION_VERSION"] = "APPLICATION_VERSION";
                DeviceSettingsType2["FIRMWARE_VERSION"] = "FIRMWARE_VERSION";
                DeviceSettingsType2["DEBUG"] = "DEBUG";
                DeviceSettingsType2["DATETIME"] = "DATETIME";
                DeviceSettingsType2["POWER_ACTIONS_SCHEDULE"] = "POWER_ACTIONS_SCHEDULE";
                DeviceSettingsType2["TEMPERATURE"] = "TEMPERATURE";
                DeviceSettingsType2["AUTO_RECOVERY"] = "AUTO_RECOVERY";
                DeviceSettingsType2["PEER_RECOVERY"] = "PEER_RECOVERY";
                DeviceSettingsType2["PROXY"] = "PROXY";
                DeviceSettingsType2["CONNECTION_METHOD"] = "CONNECTION_METHOD";
                DeviceSettingsType2["PACKAGES"] = "PACKAGES";
                DeviceSettingsType2["TELEMETRY_INTERVALS"] = "TELEMETRY_INTERVALS";
                DeviceSettingsType2["APPLET"] = "APPLET";
                DeviceSettingsType2["EXTENDED_MANAGEMENT"] = "EXTENDED_MANAGEMENT";
                DeviceSettingsType2["EXTENDED_CONTROL"] = "EXTENDED_CONTROL";
                DeviceSettingsType2["NETWORK_INTERFACES"] = "NETWORK_INTERFACES";
                DeviceSettingsType2["DISPLAY_POWER_ON"] = "DISPLAY_POWER_ON";
                DeviceSettingsType2["SCREENSHOT_CAPTURE"] = "SCREENSHOT_CAPTURE";
                DeviceSettingsType2["PLUGIN"] = "PLUGIN";
                DeviceSettingsType2["RUNNER"] = "RUNNER";
                DeviceSettingsType2["FEATURE_FLAGS"] = "FEATURE_FLAGS";
            })(DeviceSettingsType || (exports.DeviceSettingsType = DeviceSettingsType = {}));
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Resolution/ResolutionList.js
    var require_ResolutionList = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Resolution/ResolutionList.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ResolutionItemSchema = void 0;
            var zod_1 = require_zod();
            exports.ResolutionItemSchema = zod_1.z.strictObject({
                width: zod_1.z.number(),
                height: zod_1.z.number(),
                framerate: zod_1.z.number().optional()
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Resolution/Orientation.js
    var require_Orientation = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Resolution/Orientation.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Orientation5;
            (function(Orientation6) {
                Orientation6["PORTRAIT"] = "PORTRAIT";
                Orientation6["LANDSCAPE"] = "LANDSCAPE";
                Orientation6["PORTRAIT_FLIPPED"] = "PORTRAIT_FLIPPED";
                Orientation6["LANDSCAPE_FLIPPED"] = "LANDSCAPE_FLIPPED";
                Orientation6["AUTO"] = "AUTO";
            })(Orientation5 || (Orientation5 = {}));
            exports["default"] = Orientation5;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Resolution/VideoOrientation.js
    var require_VideoOrientation = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Resolution/VideoOrientation.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var VideoOrientation4;
            (function(VideoOrientation5) {
                VideoOrientation5["LANDSCAPE"] = "LANDSCAPE";
                VideoOrientation5["LANDSCAPE_FLIPPED"] = "LANDSCAPE_FLIPPED";
            })(VideoOrientation4 || (VideoOrientation4 = {}));
            exports["default"] = VideoOrientation4;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Power/PowerActionType.js
    var require_PowerActionType = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Power/PowerActionType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var PowerActionType;
            (function(PowerActionType2) {
                PowerActionType2["APP_RESTART"] = "APP_RESTART";
                PowerActionType2["SYSTEM_REBOOT"] = "SYSTEM_REBOOT";
                PowerActionType2["APPLET_RELOAD"] = "APPLET_RELOAD";
                PowerActionType2["APPLET_REFRESH"] = "APPLET_REFRESH";
                PowerActionType2["DISPLAY_POWER_ON"] = "DISPLAY_POWER_ON";
                PowerActionType2["DISPLAY_POWER_OFF"] = "DISPLAY_POWER_OFF";
                PowerActionType2["BACKUP_RESTART"] = "BACKUP_RESTART";
                PowerActionType2["APPLET_ENABLE"] = "APPLET_ENABLE";
                PowerActionType2["APPLET_DISABLE"] = "APPLET_DISABLE";
                PowerActionType2["FILE_SYSTEM_WIPEOUT"] = "FILE_SYSTEM_WIPEOUT";
                PowerActionType2["REAPPLY_POLICY"] = "REAPPLY_POLICY";
            })(PowerActionType || (PowerActionType = {}));
            exports["default"] = PowerActionType;
        }
    });
    // node_modules/@signageos/common-types/node_modules/@signageos/lib/dist/Timer/Power/PowerTimerWeekdayEnum.js
    var require_PowerTimerWeekdayEnum = __commonJS({
        "node_modules/@signageos/common-types/node_modules/@signageos/lib/dist/Timer/Power/PowerTimerWeekdayEnum.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.shortWeekdays = exports.ShortWeekdayEnum = exports.longWeekdays = exports.LongWeekdayEnum = void 0;
            var LongWeekdayEnum;
            (function(LongWeekdayEnum2) {
                LongWeekdayEnum2["SUNDAY"] = "SUNDAY";
                LongWeekdayEnum2["MONDAY"] = "MONDAY";
                LongWeekdayEnum2["TUESDAY"] = "TUESDAY";
                LongWeekdayEnum2["WEDNESDAY"] = "WEDNESDAY";
                LongWeekdayEnum2["THURSDAY"] = "THURSDAY";
                LongWeekdayEnum2["FRIDAY"] = "FRIDAY";
                LongWeekdayEnum2["SATURDAY"] = "SATURDAY";
            })(LongWeekdayEnum || (exports.LongWeekdayEnum = LongWeekdayEnum = {}));
            exports.longWeekdays = Object.keys(LongWeekdayEnum).map(function(key) {
                return LongWeekdayEnum[key];
            });
            var ShortWeekdayEnum;
            (function(ShortWeekdayEnum2) {
                ShortWeekdayEnum2["SUNDAY"] = "sun";
                ShortWeekdayEnum2["MONDAY"] = "mon";
                ShortWeekdayEnum2["TUESDAY"] = "tue";
                ShortWeekdayEnum2["WEDNESDAY"] = "wed";
                ShortWeekdayEnum2["THURSDAY"] = "thu";
                ShortWeekdayEnum2["FRIDAY"] = "fri";
                ShortWeekdayEnum2["SATURDAY"] = "sat";
            })(ShortWeekdayEnum || (exports.ShortWeekdayEnum = ShortWeekdayEnum = {}));
            exports.shortWeekdays = Object.keys(ShortWeekdayEnum).map(function(key) {
                return ShortWeekdayEnum[key];
            });
            exports["default"] = LongWeekdayEnum;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Time/Weekday.js
    var require_Weekday = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Time/Weekday.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var PowerTimerWeekdayEnum_1 = __importDefault(require_PowerTimerWeekdayEnum());
            var Weekday = PowerTimerWeekdayEnum_1["default"];
            exports["default"] = Weekday;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Timer/NativeTimerType.js
    var require_NativeTimerType = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Timer/NativeTimerType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NativeTimerType = void 0;
            var NativeTimerType;
            (function(NativeTimerType2) {
                NativeTimerType2["TIMER_1"] = "TIMER_1";
                NativeTimerType2["TIMER_2"] = "TIMER_2";
                NativeTimerType2["TIMER_3"] = "TIMER_3";
                NativeTimerType2["TIMER_4"] = "TIMER_4";
                NativeTimerType2["TIMER_5"] = "TIMER_5";
                NativeTimerType2["TIMER_6"] = "TIMER_6";
                NativeTimerType2["TIMER_7"] = "TIMER_7";
            })(NativeTimerType || (exports.NativeTimerType = NativeTimerType = {}));
        }
    });
    // node_modules/@signageos/common-types/dist/Device/socketDriver.js
    var require_socketDriver = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/socketDriver.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SocketDriver = void 0;
            var SocketDriver;
            (function(SocketDriver2) {
                SocketDriver2["Websocket"] = "ws";
                SocketDriver2["Http"] = "http";
            })(SocketDriver || (exports.SocketDriver = SocketDriver = {}));
        }
    });
    // node_modules/@signageos/common-types/dist/Feature/FeatureEntitlements.js
    var require_FeatureEntitlements = __commonJS({
        "node_modules/@signageos/common-types/dist/Feature/FeatureEntitlements.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.CompanyFeatureEntitlementsSchema = exports.CompanyFeatureEntitlements = exports.OrganizationFeatureEntitlementsSchema = exports.OrganizationFeatureEntitlements = void 0;
            var zod_1 = require_zod();
            var OrganizationFeatureEntitlements;
            (function(OrganizationFeatureEntitlements2) {
                OrganizationFeatureEntitlements2["Scripts"] = "scripts";
                OrganizationFeatureEntitlements2["Plugins"] = "plugins";
                OrganizationFeatureEntitlements2["Runners"] = "runners";
                OrganizationFeatureEntitlements2["RemoteDesktop"] = "remoteDesktop";
                OrganizationFeatureEntitlements2["DevicePolicy"] = "devicePolicy";
                OrganizationFeatureEntitlements2["PackagesManagement"] = "packagesManagement";
                OrganizationFeatureEntitlements2["FirmwareUpgrades"] = "firmwareUpgrades";
                OrganizationFeatureEntitlements2["ManagedLauncher"] = "managedLauncher";
                OrganizationFeatureEntitlements2["Screenshots"] = "screenshots";
                OrganizationFeatureEntitlements2["ScreenshotsLiveStream"] = "screenshotsLiveStream";
                OrganizationFeatureEntitlements2["ScreenshotTimemachine"] = "screenshotTimemachine";
                OrganizationFeatureEntitlements2["AlertsManagement"] = "alertsManagement";
                OrganizationFeatureEntitlements2["DeviceAlertRule"] = "deviceAlertRule";
                OrganizationFeatureEntitlements2["PolicyAlertRule"] = "policyAlertRule";
                OrganizationFeatureEntitlements2["AppletAlertRule"] = "appletAlertRule";
                OrganizationFeatureEntitlements2["ScreenshotAlertRule"] = "screenshotAlertRule";
                OrganizationFeatureEntitlements2["BulkProvisioning"] = "bulkProvisioning";
                OrganizationFeatureEntitlements2["VPN"] = "VPN";
                OrganizationFeatureEntitlements2["ExtendedControl"] = "extendedControl";
                OrganizationFeatureEntitlements2["TemperatureTelemetry"] = "temperatureTelemetry";
                OrganizationFeatureEntitlements2["CPUTelemetry"] = "cpuTelemetry";
                OrganizationFeatureEntitlements2["StorageTelemetry"] = "storageTelemetry";
                OrganizationFeatureEntitlements2["UptimeTelemetry"] = "uptimeTelemetry";
                OrganizationFeatureEntitlements2["RAMTelemetry"] = "ramTelemetry";
                OrganizationFeatureEntitlements2["BrightnessTelemetry"] = "brightnessTelemetry";
                OrganizationFeatureEntitlements2["BatteryTelemetry"] = "batteryTelemetry";
                OrganizationFeatureEntitlements2["VolumeTelemetry"] = "volumeTelemetry";
                OrganizationFeatureEntitlements2["PluginTelemetry"] = "pluginTelemetry";
                OrganizationFeatureEntitlements2["RunnersTelemetry"] = "runnersTelemetry";
                OrganizationFeatureEntitlements2["CustomRunnerTelemetry"] = "customRunnerTelemetry";
                OrganizationFeatureEntitlements2["DateTimeTelemetry"] = "dateTimeTelemetry";
                OrganizationFeatureEntitlements2["DebugTelemetry"] = "debugTelemetry";
                OrganizationFeatureEntitlements2["RESTApi"] = "restApi";
                OrganizationFeatureEntitlements2["AIContentGuard"] = "aiContentGuard";
                OrganizationFeatureEntitlements2["ContentGuard"] = "contentGuard";
                OrganizationFeatureEntitlements2["ScreenshotImageHashes"] = "screenshotImageHashes";
                OrganizationFeatureEntitlements2["Favorites"] = "favorites";
                OrganizationFeatureEntitlements2["Locations"] = "locations";
                OrganizationFeatureEntitlements2["InLocationRecovery"] = "inLocationRecovery";
                OrganizationFeatureEntitlements2["Tags"] = "tags";
                OrganizationFeatureEntitlements2["BulkActions"] = "bulkActions";
                OrganizationFeatureEntitlements2["MaintenanceWindows"] = "maintenanceWindows";
                OrganizationFeatureEntitlements2["SupraOnPremise"] = "supraOnPremise";
                OrganizationFeatureEntitlements2["DeviceManagement"] = "deviceManagement";
                OrganizationFeatureEntitlements2["TelemetryIntervalDevSpace"] = "telemetryIntervalDevSpace";
                OrganizationFeatureEntitlements2["TelemetryIntervalBasic"] = "telemetryIntervalBasic";
                OrganizationFeatureEntitlements2["TelemetryIntervalPro"] = "telemetryIntervalPro";
                OrganizationFeatureEntitlements2["TelemetryIntervalUltra"] = "telemetryIntervalUltra";
            })(OrganizationFeatureEntitlements || (exports.OrganizationFeatureEntitlements = OrganizationFeatureEntitlements = {}));
            exports.OrganizationFeatureEntitlementsSchema = zod_1.z.nativeEnum(OrganizationFeatureEntitlements);
            var CompanyFeatureEntitlements;
            (function(CompanyFeatureEntitlements2) {
                CompanyFeatureEntitlements2["CloudControl"] = "cloudControl";
                CompanyFeatureEntitlements2["DevSpace"] = "devSpace";
                CompanyFeatureEntitlements2["SSO"] = "sso";
                CompanyFeatureEntitlements2["Secrets"] = "secrets";
                CompanyFeatureEntitlements2["GodMode"] = "godMode";
                CompanyFeatureEntitlements2["PrioritySupport"] = "prioritySupport";
                CompanyFeatureEntitlements2["DevSpaceTizen"] = "devSpaceTizen";
                CompanyFeatureEntitlements2["DevSpaceTizenTEP"] = "devSpaceTizenTEP";
                CompanyFeatureEntitlements2["DevSpaceTizenEPaper"] = "devSpaceTizenEPaper";
                CompanyFeatureEntitlements2["DevSpaceWebOS"] = "devSpaceWebOS";
                CompanyFeatureEntitlements2["DevSpaceWebOSIDCap"] = "devSpaceWebOSIDCap";
                CompanyFeatureEntitlements2["DevSpaceBrightSign"] = "devSpaceBrightsign";
                CompanyFeatureEntitlements2["DevSpaceBrightSignNine"] = "devSpaceBrightsign9";
                CompanyFeatureEntitlements2["DevSpaceLinux"] = "devSpaceLinux";
                CompanyFeatureEntitlements2["DevSpaceLinuxUbuntu"] = "devSpaceLinuxUbuntu";
                CompanyFeatureEntitlements2["DevSpaceLinuxDebian"] = "devSpaceLinuxDebian";
                CompanyFeatureEntitlements2["DevSpaceLinuxFedora"] = "devSpaceLinuxFedora";
                CompanyFeatureEntitlements2["DevSpaceRaspberryPi"] = "devSpaceRaspberryPi";
                CompanyFeatureEntitlements2["DevSpaceAndroidLegacy"] = "devSpaceAndroidLegacy";
                CompanyFeatureEntitlements2["DevSpaceAndroid"] = "devSpaceAndroid";
                CompanyFeatureEntitlements2["DevSpaceSony"] = "devSpaceSony";
                CompanyFeatureEntitlements2["DevSpacePhilips"] = "devSpacePhilips";
                CompanyFeatureEntitlements2["DevSpaceElo"] = "devSpaceElo";
                CompanyFeatureEntitlements2["DevSpaceSSSP"] = "devSpaceSSSP";
                CompanyFeatureEntitlements2["DevSpaceWindows"] = "devSpaceWindows";
                CompanyFeatureEntitlements2["DevSpaceChromeOS"] = "devSpaceChromeOS";
                CompanyFeatureEntitlements2["DevSpaceManagementAPI"] = "devSpaceManagementAPI";
                CompanyFeatureEntitlements2["DevSpaceSyncAPI"] = "devSpaceSyncAPI";
                CompanyFeatureEntitlements2["DevSpaceContentAPI"] = "devSpaceContentAPI";
                CompanyFeatureEntitlements2["DevSpacePoPAPI"] = "devSpacePoPAPI";
                CompanyFeatureEntitlements2["DevSpaceBrandedApps"] = "devSpaceBrandedApps";
                CompanyFeatureEntitlements2["DevSpaceAppHosting"] = "devSpaceAppHosting";
                CompanyFeatureEntitlements2["DevSpaceRemoteTestingLab"] = "devSpaceRemoteTestingLab";
                CompanyFeatureEntitlements2["DevSpaceCustomHardwareOnboarding"] = "devSpaceCustomHardwareOnboarding";
                CompanyFeatureEntitlements2["CustomRolesDefinition"] = "customRolesDefinition";
                CompanyFeatureEntitlements2["MFA"] = "mfa";
                CompanyFeatureEntitlements2["CompanyNetworkManagement"] = "companyNetworkManagement";
            })(CompanyFeatureEntitlements || (exports.CompanyFeatureEntitlements = CompanyFeatureEntitlements = {}));
            exports.CompanyFeatureEntitlementsSchema = zod_1.z.nativeEnum(CompanyFeatureEntitlements);
        }
    });
    // node_modules/@signageos/common-types/dist/Subscription/subscription.js
    var require_subscription = __commonJS({
        "node_modules/@signageos/common-types/dist/Subscription/subscription.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SubscriptionTypeSchema = exports.SubscriptionType = void 0;
            var zod_1 = require_zod();
            var SubscriptionType;
            (function(SubscriptionType2) {
                SubscriptionType2["Open"] = "open";
                SubscriptionType2["Basic"] = "basic";
                SubscriptionType2["Medium"] = "medium";
                SubscriptionType2["All"] = "all";
                SubscriptionType2["Platform"] = "platform";
            })(SubscriptionType || (exports.SubscriptionType = SubscriptionType = {}));
            exports.SubscriptionTypeSchema = zod_1.z.nativeEnum(SubscriptionType);
        }
    });
    // node_modules/@signageos/common-types/dist/Device/MonitoringLog/TelemetryIntervals.js
    var require_TelemetryIntervals = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/MonitoringLog/TelemetryIntervals.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.MinScreenthotIntervalsByPlan = exports.MinScreenshotIntervalsByPlan = exports.MinScreenshotIntervalsByFent = exports.MinTelemetryIntervalsByPlan = exports.MinTelemetryIntervalsByFent = exports.DEFAULT_MIN_TELEMETRY_INTERVAL = exports.MinTelemetryIntervals = exports.TelemetryCheckIntervalsSchema = exports.PositiveNumberOptionalSchema = exports.TelemetryConfigurationCheckInterval = void 0;
            var FeatureEntitlements_1 = require_FeatureEntitlements();
            var subscription_1 = require_subscription();
            var zod_1 = require_zod();
            var TelemetryConfigurationCheckInterval;
            (function(TelemetryConfigurationCheckInterval2) {
                TelemetryConfigurationCheckInterval2["SCREENSHOTS"] = "screenshots";
                TelemetryConfigurationCheckInterval2["TEMPERATURE"] = "temperature";
                TelemetryConfigurationCheckInterval2["APPLICATION_VERSION"] = "applicationVersion";
                TelemetryConfigurationCheckInterval2["FRONT_DISPLAY_VERSION"] = "frontDisplayVersion";
                TelemetryConfigurationCheckInterval2["BRIGHTNESS"] = "brightness";
                TelemetryConfigurationCheckInterval2["DATETIME"] = "datetime";
                TelemetryConfigurationCheckInterval2["DEBUG"] = "debug";
                TelemetryConfigurationCheckInterval2["FIRMWARE_VERSION"] = "firmwareVersion";
                TelemetryConfigurationCheckInterval2["ORIENTATION"] = "orientation";
                TelemetryConfigurationCheckInterval2["POWER_ACTIONS_SCHEDULE"] = "powerActionsSchedule";
                TelemetryConfigurationCheckInterval2["PROPRIETARY_TIMERS"] = "proprietaryTimers";
                TelemetryConfigurationCheckInterval2["REMOTE_CONTROL"] = "remoteControl";
                TelemetryConfigurationCheckInterval2["RESOLUTION"] = "resolution";
                TelemetryConfigurationCheckInterval2["TIMERS"] = "timers";
                TelemetryConfigurationCheckInterval2["VOLUME"] = "volume";
                TelemetryConfigurationCheckInterval2["STORAGE"] = "storage";
                TelemetryConfigurationCheckInterval2["BATTERY"] = "battery";
                TelemetryConfigurationCheckInterval2["POLICY"] = "policy";
                TelemetryConfigurationCheckInterval2["PEER_RECOVERY"] = "peerRecovery";
                TelemetryConfigurationCheckInterval2["AUTO_RECOVERY"] = "autoRecovery";
                TelemetryConfigurationCheckInterval2["EXTENDED_MANAGEMENT"] = "extendedManagement";
                TelemetryConfigurationCheckInterval2["APP_MODULES"] = "appModules";
                TelemetryConfigurationCheckInterval2["RUNNER"] = "runner";
                TelemetryConfigurationCheckInterval2["RUNNER_CUSTOM"] = "runnerCustom";
                TelemetryConfigurationCheckInterval2["PLUGIN"] = "plugin";
                TelemetryConfigurationCheckInterval2["CPU_USAGE"] = "cpuUsage";
                TelemetryConfigurationCheckInterval2["MEMORY_USAGE"] = "memoryUsage";
                TelemetryConfigurationCheckInterval2["SUPRA"] = "supra";
                TelemetryConfigurationCheckInterval2["DEFAULT"] = "default";
            })(TelemetryConfigurationCheckInterval || (exports.TelemetryConfigurationCheckInterval = TelemetryConfigurationCheckInterval = {}));
            exports.PositiveNumberOptionalSchema = zod_1.z.number().positive().optional();
            var _obj;
            exports.TelemetryCheckIntervalsSchema = zod_1.z.object((_obj = {}, _define_property(_obj, TelemetryConfigurationCheckInterval.SCREENSHOTS, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.TEMPERATURE, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.APPLICATION_VERSION, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.FRONT_DISPLAY_VERSION, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.BRIGHTNESS, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.DATETIME, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.DEBUG, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.FIRMWARE_VERSION, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.ORIENTATION, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.POWER_ACTIONS_SCHEDULE, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.PROPRIETARY_TIMERS, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.REMOTE_CONTROL, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.RESOLUTION, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.TIMERS, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.VOLUME, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.STORAGE, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.BATTERY, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.POLICY, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.PEER_RECOVERY, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.AUTO_RECOVERY, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.EXTENDED_MANAGEMENT, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.APP_MODULES, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.RUNNER, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.RUNNER_CUSTOM, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.PLUGIN, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.CPU_USAGE, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.MEMORY_USAGE, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.SUPRA, exports.PositiveNumberOptionalSchema), _define_property(_obj, TelemetryConfigurationCheckInterval.DEFAULT, exports.PositiveNumberOptionalSchema), _obj)).strict();
            var BLAZING_FAST_TELEMETRY_INTERVAL = 5 * 60 * 1e3;
            var SUPER_FAST_TELEMETRY_INTERVAL = 15 * 60 * 1e3;
            var FAST_TELEMETRY_INTERVAL = 60 * 60 * 1e3;
            var SLOW_TELEMETRY_INTERVAL = 3 * 60 * 60 * 1e3;
            var SUPER_SLOW_TELEMETRY_INTERVAL = 6 * 60 * 60 * 1e3;
            var KEEP_ALIVE_TELEMETRY_INTERVAL = 24 * 60 * 60 * 1e3;
            var _obj1;
            exports.MinTelemetryIntervals = (_obj1 = {}, _define_property(_obj1, TelemetryConfigurationCheckInterval.SCREENSHOTS, SUPER_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.TEMPERATURE, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.APPLICATION_VERSION, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.FRONT_DISPLAY_VERSION, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.BRIGHTNESS, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.DATETIME, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.DEBUG, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.FIRMWARE_VERSION, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.ORIENTATION, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.POWER_ACTIONS_SCHEDULE, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.PROPRIETARY_TIMERS, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.REMOTE_CONTROL, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.RESOLUTION, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.TIMERS, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.VOLUME, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.STORAGE, SLOW_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.BATTERY, SLOW_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.POLICY, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.PEER_RECOVERY, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.AUTO_RECOVERY, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.EXTENDED_MANAGEMENT, SLOW_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.APP_MODULES, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.RUNNER, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.RUNNER_CUSTOM, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.PLUGIN, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.CPU_USAGE, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.MEMORY_USAGE, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.SUPRA, FAST_TELEMETRY_INTERVAL), _define_property(_obj1, TelemetryConfigurationCheckInterval.DEFAULT, FAST_TELEMETRY_INTERVAL), _obj1);
            exports.DEFAULT_MIN_TELEMETRY_INTERVAL = FAST_TELEMETRY_INTERVAL;
            var _obj2;
            exports.MinTelemetryIntervalsByFent = (_obj2 = {}, _define_property(_obj2, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalDevSpace, KEEP_ALIVE_TELEMETRY_INTERVAL), _define_property(_obj2, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalBasic, SUPER_SLOW_TELEMETRY_INTERVAL), _define_property(_obj2, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalPro, SLOW_TELEMETRY_INTERVAL), _define_property(_obj2, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalUltra, BLAZING_FAST_TELEMETRY_INTERVAL), _obj2);
            var _obj3;
            exports.MinTelemetryIntervalsByPlan = (_obj3 = {}, _define_property(_obj3, subscription_1.SubscriptionType.Open, KEEP_ALIVE_TELEMETRY_INTERVAL), _define_property(_obj3, subscription_1.SubscriptionType.Basic, SUPER_SLOW_TELEMETRY_INTERVAL), _define_property(_obj3, subscription_1.SubscriptionType.Medium, SLOW_TELEMETRY_INTERVAL), _define_property(_obj3, subscription_1.SubscriptionType.All, BLAZING_FAST_TELEMETRY_INTERVAL), _define_property(_obj3, subscription_1.SubscriptionType.Platform, BLAZING_FAST_TELEMETRY_INTERVAL), _obj3);
            var _obj4;
            exports.MinScreenshotIntervalsByFent = (_obj4 = {}, _define_property(_obj4, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalDevSpace, KEEP_ALIVE_TELEMETRY_INTERVAL), _define_property(_obj4, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalBasic, KEEP_ALIVE_TELEMETRY_INTERVAL), _define_property(_obj4, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalPro, FAST_TELEMETRY_INTERVAL), _define_property(_obj4, FeatureEntitlements_1.OrganizationFeatureEntitlements.TelemetryIntervalUltra, SUPER_FAST_TELEMETRY_INTERVAL), _obj4);
            var _obj5;
            exports.MinScreenshotIntervalsByPlan = (_obj5 = {}, _define_property(_obj5, subscription_1.SubscriptionType.Open, KEEP_ALIVE_TELEMETRY_INTERVAL), _define_property(_obj5, subscription_1.SubscriptionType.Basic, KEEP_ALIVE_TELEMETRY_INTERVAL), _define_property(_obj5, subscription_1.SubscriptionType.Medium, FAST_TELEMETRY_INTERVAL), _define_property(_obj5, subscription_1.SubscriptionType.All, SUPER_FAST_TELEMETRY_INTERVAL), _define_property(_obj5, subscription_1.SubscriptionType.Platform, SUPER_FAST_TELEMETRY_INTERVAL), _obj5);
            exports.MinScreenthotIntervalsByPlan = exports.MinScreenshotIntervalsByPlan;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Network/NetworkInterface.js
    var require_NetworkInterface = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Network/NetworkInterface.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NetworkInterfacesSchema = exports.NetworkInterfaceSchema = exports.NetworkInterfaceType = exports.OptionalMacAddressSchema = exports.MacAddressSchema = void 0;
            var zod_1 = require_zod();
            exports.MacAddressSchema = zod_1.z.string().refine(function(value) {
                var macAddressRegex = /^([0-9A-Fa-f]{2}([:-]| )?){6}$/;
                return macAddressRegex.test(value);
            }, "Mac address must be in the format XX:XX:XX:XX:XX:XX where X is a hexadecimal character").transform(function(value) {
                return value.replace(/[:-\s]/g, "").replace(/(.{2})/g, "$1:").slice(0, -1).toLowerCase();
            });
            exports.OptionalMacAddressSchema = zod_1.z.string().refine(function(value) {
                if (value === "N/A") {
                    return true;
                }
                var macAddressRegex = /^([0-9A-Fa-f]{2}([:-]| )?){6}$/;
                return macAddressRegex.test(value);
            }, "Mac address must be in the format XX:XX:XX:XX:XX:XX where X is a hexadecimal character");
            exports.NetworkInterfaceType = [
                /** Wireless LAN. `wl*`. */ "wifi",
                /** Ethernet. `en*`, `eth*`. */ "ethernet",
                /** VPN or Tunnel Interface. `ppp*`, `vpn*`, `tun*`. */ "vpn",
                /** Wireless WAN. `ww*`. */ "mobile"
            ];
            var BaseNetworkInterfaceSchema = zod_1.z.object({
                name: zod_1.z.string().max(255),
                macAddress: exports.MacAddressSchema,
                disabled: zod_1.z["boolean"]().optional(),
                gateway: zod_1.z.string().optional(),
                localAddress: zod_1.z.string().optional(),
                netmask: zod_1.z.string().optional(),
                dns: zod_1.z.array(zod_1.z.string()).optional()
            });
            var WifiNetworkInterfaceSchema = BaseNetworkInterfaceSchema.extend({
                type: zod_1.z.literal("wifi"),
                wifiStrength: zod_1.z.number().optional(),
                wifiSsid: zod_1.z.string().optional()
            });
            var EthernetNetworkInterfaceSchema = BaseNetworkInterfaceSchema.extend({
                type: zod_1.z.literal("ethernet")
            });
            var VpnNetworkInterfaceSchema = BaseNetworkInterfaceSchema.extend({
                type: zod_1.z.literal("vpn"),
                macAddress: exports.OptionalMacAddressSchema
            });
            var MobileNetworkInterfaceSchema = BaseNetworkInterfaceSchema.extend({
                type: zod_1.z.literal("mobile")
            });
            exports.NetworkInterfaceSchema = zod_1.z.discriminatedUnion("type", [
                WifiNetworkInterfaceSchema,
                EthernetNetworkInterfaceSchema,
                VpnNetworkInterfaceSchema,
                MobileNetworkInterfaceSchema
            ]);
            exports.NetworkInterfacesSchema = exports.NetworkInterfaceSchema;
        }
    });
    // node_modules/@signageos/common-types/dist/Timing/FinishEventType.js
    var require_FinishEventType = __commonJS({
        "node_modules/@signageos/common-types/dist/Timing/FinishEventType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.FinishEventTypeSchema = exports.FinishEventType = void 0;
            var zod_1 = require_zod();
            var FinishEventType;
            (function(FinishEventType2) {
                FinishEventType2["DURATION"] = "DURATION";
                FinishEventType2["IDLE_TIMEOUT"] = "IDLE_TIMEOUT";
                FinishEventType2["SCREEN_TAP"] = "SCREEN_TAP";
            })(FinishEventType || (exports.FinishEventType = FinishEventType = {}));
            exports.FinishEventTypeSchema = zod_1.z.nativeEnum(FinishEventType);
        }
    });
    // node_modules/@signageos/common-types/dist/Timing/AppletSettings.js
    var require_AppletSettings = __commonJS({
        "node_modules/@signageos/common-types/dist/Timing/AppletSettings.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.AppletSettingsSchema = void 0;
            var zod_1 = require_zod();
            var FinishEventType_1 = require_FinishEventType();
            exports.AppletSettingsSchema = zod_1.z.object({
                appletUid: zod_1.z.string(),
                appletVersion: zod_1.z.string(),
                /** @deprecated don't use anymore; will be removed in the future */ startsAt: zod_1.z.date().optional(),
                /** @deprecated don't use anymore; will be removed in the future */ endsAt: zod_1.z.date().optional(),
                configuration: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()),
                /** @deprecated don't use anymore; will be removed in the future */ finishEvent: zod_1.z.object({
                    type: FinishEventType_1.FinishEventTypeSchema,
                    data: zod_1.z.any().optional()
                }).optional(),
                /** @deprecated don't use anymore; will be removed in the future */ position: zod_1.z.number().optional()
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Timer/ProprietaryTimerType.js
    var require_ProprietaryTimerType = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Timer/ProprietaryTimerType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ProprietaryTimerTypeSchema = void 0;
            var zod_1 = require_zod();
            exports.ProprietaryTimerTypeSchema = zod_1.z.custom(function(val) {
                return /^TIMER_\d+$/g.test(val);
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Package/Android/specs.js
    var require_specs = __commonJS({
        "node_modules/@signageos/common-types/dist/Package/Android/specs.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.AndroidInstalledSpecsSchema = exports.AndroidInstallationFromUriSpecsSchema = exports.AndroidPackageSpecsSchema = exports.AndroidIdentificationSpecsSchema = exports.Abis = void 0;
            var zod_1 = require_zod();
            exports.Abis = [
                "x86",
                "x86_64",
                "armeabi-v7a",
                "arm64-v8a"
            ];
            var AbiSchema = zod_1.z["enum"](exports.Abis).or(zod_1.z.string());
            exports.AndroidIdentificationSpecsSchema = zod_1.z.object({
                /**
         * Internal package name of android application.
         * Java notation, e.g.: io.signageos.android
         */ packageName: zod_1.z.string()
            });
            exports.AndroidPackageSpecsSchema = zod_1.z.object({
                /**
         * Application ID as specified in the APK manifest, i.e. `com.example.app`.
         * See [definition](https://developer.android.com/guide/topics/manifest/manifest-element#package).
         */ packageName: zod_1.z.string(),
                /**
         * Min SDK version as specified in the APK manifest.
         * See [definition](https://developer.android.com/guide/topics/manifest/uses-sdk-element#target).
         */ sdkVersion: zod_1.z.number(),
                /**
         * List of supported ABIs.
         * If the package doesn't contain any native code (and can run on any CPU) this will be `undefined`.
         * Read more about [Android ABIs](https://developer.android.com/ndk/guides/abis).
         */ supportedAbis: zod_1.z.array(AbiSchema).optional(),
                /**
         * - `true`: This APK may be loaded as a library by other apps.
         *   In practice, it needs to provide 32-bit native code
         *   on 64-bit devices capable of running in 32-bit mode.
         *   Can ony be installed on devices that support *all* of {@link supportedAbis}.
         *   An example of such app is the WebView.
         * - `false` (default): This is a standalone APK.
         *   Can be installed on devices that support *any* of {@link supportedAbis}.
         */ multiArch: zod_1.z["boolean"]().nullable().optional(),
                /**
         * Version code as specifed in the APK manifest.
         * See [definition](https://developer.android.com/guide/topics/manifest/manifest-element#vcode).
         */ versionCode: zod_1.z.number().optional(),
                /**
         * Target SDK version as specified in the APK manifest.
         * See [definition](https://developer.android.com/guide/topics/manifest/uses-sdk-element#target).
         */ targetSdkVersion: zod_1.z.number().optional()
            });
            exports.AndroidInstallationFromUriSpecsSchema = zod_1.z.object({
                /** `packageName` as defined by the APK manifest, i.e. com.example.app */ packageName: zod_1.z.string(),
                /** SHA-256 hash of the APK file. */ apkSha256: zod_1.z.string().optional(),
                /**
         * SHA-256 hash of the APK signature.
         * Older Core Apps did not have this field, so it can be omitted.
         */ signatureSha256: zod_1.z.string().optional()
            });
            exports.AndroidInstalledSpecsSchema = zod_1.z.object({
                /** `packageName` as defined by the APK manifest, i.e. com.example.app */ packageName: zod_1.z.string(),
                /** `versionCode` as defined by the APK manifest, i.e. 200050 */ versionCode: zod_1.z.number(),
                /** SHA-256 hash of the APK file. */ apkSha256: zod_1.z.string(),
                /**
         * `versionName` as defined by the APK manifest, i.e. 2.3.0.
         * Older Core Apps did not have this field, so it can be omitted.
         */ versionName: zod_1.z.string().optional(),
                /**
         * SHA-256 hash of the APK signature.
         * Older Core Apps did not have this field, so it can be omitted.
         */ signatureSha256: zod_1.z.string().optional(),
                flags: zod_1.z.array(zod_1.z["enum"]([
                    "SYSTEM",
                    "DEBUGGABLE",
                    "UPDATED_SYSTEM_APP",
                    "TEST_ONLY",
                    "EXTERNAL_STORAGE"
                ]).or(zod_1.z.string())).optional()
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Application/ApplicationType.js
    var require_ApplicationType = __commonJS({
        "node_modules/@signageos/common-types/dist/Application/ApplicationType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ApplicationTypeSchema = exports.ApplicationTypes = void 0;
            var zod_1 = require_zod();
            exports.ApplicationTypes = [
                "sssp",
                "tizen",
                "webos",
                "android",
                "chrome",
                "brightsign",
                "linux",
                "windows",
                "default",
                "chromeos"
            ];
            exports.ApplicationTypeSchema = zod_1.z["enum"](exports.ApplicationTypes);
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Package/DevicePackageInstallation.js
    var require_DevicePackageInstallation = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Package/DevicePackageInstallation.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DevicePackageInstallationSchema = exports.AndroidDevicePackageInstallationSchema = void 0;
            var zod_1 = require_zod();
            var specs_1 = require_specs();
            var ApplicationType_1 = require_ApplicationType();
            var BaseDevicePackageInstallationSchema = zod_1.z.strictObject({
                applicationType: ApplicationType_1.ApplicationTypeSchema,
                /**
         * Proprietary package name (platform independent)
         */ packageName: zod_1.z.string(),
                /**
         * organization uid which is a part of URL to download package
         */ ownerOrganizationUid: zod_1.z.string(),
                /**
         * Contains unique hash (usually checksum of package file) which is unique for every build
         * E.g.:
         * Android - apk file sha256 (equal to specs.apkSha256)
         * TODO other platforms
         */ buildHash: zod_1.z.string(),
                /**
         * Human readable version name
         * It's usually uniq for package real version but usually it's same for different builds (architectures)
         */ version: zod_1.z.string(),
                /**
         * Additional postfix of version to recognize different builds
         * Used for back compatibility in old android packages
         */ build: zod_1.z.string().nullable(),
                /**
         * Platform specific information differs for each application type
         */ specs: zod_1.z.object({})
            });
            exports.AndroidDevicePackageInstallationSchema = BaseDevicePackageInstallationSchema.extend({
                applicationType: zod_1.z.literal("android"),
                specs: specs_1.AndroidPackageSpecsSchema
            });
            exports.DevicePackageInstallationSchema = exports.AndroidDevicePackageInstallationSchema;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Package/DevicePackageUninstallation.js
    var require_DevicePackageUninstallation = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Package/DevicePackageUninstallation.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DevicePackageUninstallationSchema = exports.AndroidDevicePackageUninstallationSchema = void 0;
            var zod_1 = require_zod();
            var ApplicationType_1 = require_ApplicationType();
            var specs_1 = require_specs();
            var BaseDevicePackageUninstallationSchema = zod_1.z.strictObject({
                applicationType: ApplicationType_1.ApplicationTypeSchema,
                /**
         * Proprietary package name (platform independent)
         */ packageName: zod_1.z.string(),
                /**
         * Platform specific information differs for each application type
         */ specs: zod_1.z.object({})
            });
            exports.AndroidDevicePackageUninstallationSchema = BaseDevicePackageUninstallationSchema.extend({
                applicationType: zod_1.z.literal("android"),
                specs: specs_1.AndroidIdentificationSpecsSchema
            });
            exports.DevicePackageUninstallationSchema = exports.AndroidDevicePackageUninstallationSchema;
        }
    });
    // node_modules/@signageos/common-types/dist/Plugin/PluginSettings.js
    var require_PluginSettings = __commonJS({
        "node_modules/@signageos/common-types/dist/Plugin/PluginSettings.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PluginSettingsSchema = void 0;
            var zod_1 = require_zod();
            exports.PluginSettingsSchema = zod_1.z.object({
                // resolved by device policy manager into PluginVersion
                pluginUid: zod_1.z.string(),
                pluginVersion: zod_1.z.string(),
                // contributes to assignment
                configuration: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
                // call to set
                set: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Runner/RunnerSettings.js
    var require_RunnerSettings = __commonJS({
        "node_modules/@signageos/common-types/dist/Runner/RunnerSettings.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.RunnerSettingsSchema = void 0;
            var zod_1 = require_zod();
            exports.RunnerSettingsSchema = zod_1.z.object({
                // resolved by device policy manager into RunnerVersion
                runnerUid: zod_1.z.string(),
                runnerVersion: zod_1.z.string(),
                // contributes to assignment
                configuration: zod_1.z.record(zod_1.z.string(), zod_1.z.any())
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Device/FeatureFlag.js
    var require_FeatureFlag = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/FeatureFlag.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceFeatureFlagsSchema = exports.DeviceFeatureFlag = void 0;
            var zod_1 = require_zod();
            var DeviceFeatureFlag;
            (function(DeviceFeatureFlag2) {
                DeviceFeatureFlag2["ScreenshotCapture"] = "screenshotCapture";
                DeviceFeatureFlag2["SystemLogs"] = "systemLogs";
                DeviceFeatureFlag2["CpuUsage"] = "cpuUsage";
                DeviceFeatureFlag2["MemoryUsage"] = "memoryUsage";
                DeviceFeatureFlag2["Plugins"] = "plugins";
                DeviceFeatureFlag2["Runners"] = "runners";
                DeviceFeatureFlag2["CustomScripts"] = "customScripts";
                DeviceFeatureFlag2["ScreenshotAnalysis"] = "screenshotAnalysis";
            })(DeviceFeatureFlag || (exports.DeviceFeatureFlag = DeviceFeatureFlag = {}));
            exports.DeviceFeatureFlagsSchema = zod_1.z.record(zod_1.z.nativeEnum(DeviceFeatureFlag), zod_1.z["boolean"]());
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Settings/SonyExtendedControlSettings.js
    var require_SonyExtendedControlSettings = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Settings/SonyExtendedControlSettings.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SonyExtendedControlSettingsSchema = void 0;
            var zod_1 = require_zod();
            var SonySettingsBaseSchema = zod_1.z.object({
                "rs232c-control": zod_1.z.object({
                    value: zod_1.z.union([
                        zod_1.z["boolean"](),
                        zod_1.z["enum"]([
                            "Off",
                            "Standard",
                            "VDA"
                        ])
                    ])["default"]("Standard")
                }).strict().optional(),
                "picture-mode-hdmi1": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Graphics",
                        "Photo",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Graphics", "Photo", "Custom').optional(),
                "auto-picture-mode-enabled-hdmi1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().describe("Power consumption may increase at: true").optional(),
                "light-sensor-enabled-hdmi1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-hdmi1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-light-enabled-hdmi1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-hdmi1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-hdmi1": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-hdmi2": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Graphics",
                        "Photo",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Graphics", "Photo", "Custom').optional(),
                "auto-picture-mode-enabled-hdmi2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().describe("Power consumption may increase at: true").optional(),
                "light-sensor-enabled-hdmi2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-hdmi2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-hdmi2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-hdmi2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-hdmi2": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-hdmi3": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Graphics",
                        "Photo",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Graphics", "Photo", "Custom').optional(),
                "auto-picture-mode-enabled-hdmi3": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().describe("Power consumption may increase at: true").optional(),
                "light-sensor-enabled-hdmi3": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-hdmi3": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-hdmi3": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-hdmi3": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-hdmi3": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-hdmi4": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Graphics",
                        "Photo",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Graphics", "Photo", "Custom').optional(),
                "auto-picture-mode-enabled-hdmi4": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().describe("Power consumption may increase at: true").optional(),
                "light-sensor-enabled-hdmi4": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-hdmi4": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-hdmi4": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-hdmi4": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-hdmi4": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-video1": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Custom').optional(),
                "light-sensor-enabled-video1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-video1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-video1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-video1": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-video1": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-video2": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Custom').optional(),
                "light-sensor-enabled-video2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-video2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-video2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-video2": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-video2": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-app-video": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Custom').optional(),
                "light-sensor-enabled-app-video": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-app-video": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-app-video": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-app-video": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-app-video": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-app-photo": zod_1.z.object({
                    value: zod_1.z.literal("Photo")["default"]("Photo")
                }).strict().describe("Power consumption may increase at: Photo").optional(),
                "light-sensor-enabled-app-photo": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-app-photo": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-app-photo": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-app-photo": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-app-photo": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-app-game": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Game",
                        "Graphics"
                    ])["default"]("Game")
                }).strict().describe('Power consumption may increase at: Game", "Graphics').optional(),
                "light-sensor-enabled-app-game": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-app-game": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-app-game": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-app-game": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-app-game": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "picture-mode-app-general": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Vivid",
                        "Standard",
                        "Cinema",
                        "Game",
                        "Graphics",
                        "Photo",
                        "Custom"
                    ])["default"]("Standard")
                }).strict().describe('Power consumption may increase at: Vivid", "Standard", "Cinema", "Game", "Graphics", "Photo", "Custom').optional(),
                "light-sensor-enabled-app-general": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().describe("Power consumption may increase at: false").optional(),
                "ambient-light-sensor-enabled-app-general": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-light-enabled-app-general": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ambient-light-sensor-gamma-enabled-app-general": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "brightness-app-general": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(0).lte(50)["default"](35)
                }).strict().describe("Power consumption may increase at: 0").optional(),
                "ip-assignment": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "DHCP",
                        "Static"
                    ])["default"]("DHCP")
                }).strict().optional(),
                "ipv4-address": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"))["default"]("192.168.1.128")
                }).strict().optional(),
                "ipv4-prefix-length": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(8).lte(32)["default"](24)
                }).strict().optional(),
                "ipv4-gateway": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$|^$"))["default"]("192.168.1.1")
                }).strict().optional(),
                "ipv4-dns-servers": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(?:((?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]))(?:,((?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])))?)?$|^$"))["default"]("8.8.8.8,8.8.4.4")
                }).strict().optional(),
                "proxy-enabled": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "None",
                        "Static"
                    ])["default"]("None")
                }).strict().optional(),
                "proxy-host": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^.+$"))["default"]("proxy.example.com")
                }).strict().optional(),
                "proxy-port": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(1).lte(65535)["default"](8080)
                }).strict().optional(),
                "proxy-exclusive-list": zod_1.z.object({
                    value: zod_1.z.string()["default"]("example.com,mycomp.test.com,localhost")
                }).strict().optional(),
                "wifi-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "wifi-ssid": zod_1.z.object({
                    value: zod_1.z.string().min(1).max(32)["default"]("")
                }).strict().optional(),
                "wifi-security": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "None",
                        "Wep",
                        "Wpa"
                    ])["default"]("None")
                }).strict().optional(),
                "wifi-wep-value": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^[\\x20-\\x7E]+$"))["default"]("")
                }).strict().optional(),
                "wifi-wpa-value": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^[\\x20-\\x7E]+$")).min(8).max(63)["default"]("")
                }).strict().optional(),
                "wifi-connected": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "wifi-ip-assignment": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "DHCP",
                        "Static"
                    ])["default"]("DHCP")
                }).strict().optional(),
                "wifi-ipv4-address": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"))["default"]("192.168.1.128")
                }).strict().optional(),
                "wifi-ipv4-prefix-length": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(8).lte(32)["default"](24)
                }).strict().optional(),
                "wifi-ipv4-gateway": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$|^$"))["default"]("192.168.1.1")
                }).strict().optional(),
                "wifi-ipv4-dns-servers": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(?:((?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]))(?:,((?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])))?)?$|^$"))["default"]("8.8.8.8,8.8.4.4")
                }).strict().optional(),
                "wifi-proxy-enabled": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "None",
                        "Static"
                    ])["default"]("None")
                }).strict().optional(),
                "wifi-proxy-host": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^.+$"))["default"]("proxy.example.com")
                }).strict().optional(),
                "wifi-proxy-port": zod_1.z.object({
                    value: zod_1.z.number()["int"]().gte(1).lte(65535)["default"](8080)
                }).strict().optional(),
                "wifi-proxy-exclusive-list": zod_1.z.object({
                    value: zod_1.z.string()["default"]("example.com,mycomp.test.com,localhost")
                }).strict().optional(),
                "ip-control-authentication": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Normal",
                        "None",
                        "PSK",
                        "Normal PSK"
                    ])["default"]("Normal")
                }).strict().optional(),
                "ip-control-authentication-psk": zod_1.z.object({
                    value: zod_1.z.string()["default"]("")
                }).strict().optional(),
                "simple-ip-control-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().describe("Power consumption may increase at: true").optional(),
                "control4-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "system-software-update-automatically-check": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "device-name": zod_1.z.object({
                    value: zod_1.z.string()["default"]("")
                }).strict().optional(),
                "power-saving": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Off",
                        "Low",
                        "High"
                    ])["default"]("Off")
                }).strict().describe("Power consumption may increase at: Off").optional(),
                "idle-tv-standby": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "15min",
                        "30min",
                        "1h",
                        "2h",
                        "4h",
                        "8h",
                        "12h",
                        "24h",
                        "Never"
                    ])["default"]("4h")
                }).strict().describe('Power consumption may increase at: 8h", "12h", "24h", "Never').optional(),
                "auto-shut-off-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "stay-awake-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "time-zone": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Auto",
                        "GreenwichMeanTime",
                        "Tokyo"
                    ])["default"]("Auto")
                }).strict().optional(),
                language: zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "af-ZA",
                        "az-AZ",
                        "bs-BA",
                        "ca-ES",
                        "cs-CZ",
                        "da-DK",
                        "de-DE",
                        "de-LI",
                        "de-AT",
                        "de-CH",
                        "et-EE",
                        "en-AU",
                        "en-CA",
                        "en-IN",
                        "en-NZ",
                        "en-SG",
                        "en-GB",
                        "en-US",
                        "en-XC",
                        "es-ES",
                        "es-US",
                        "es-MX",
                        "eu-ES",
                        "fil-PH",
                        "fr-BE",
                        "fr-CA",
                        "fr-FR",
                        "fr-CH",
                        "gl-ES",
                        "hr-HR",
                        "in-ID",
                        "zu-ZA",
                        "is-IS",
                        "it-IT",
                        "it-CH",
                        "sw-TZ",
                        "lv-LV",
                        "lt-LT",
                        "hu-HU",
                        "ms-MY",
                        "nl-BE",
                        "nl-NL",
                        "nb-NO",
                        "uz-UZ",
                        "pl-PL",
                        "pt-BR",
                        "pt-PT",
                        "ro-RO",
                        "sq-AL",
                        "sk-SK",
                        "sl-SI",
                        "sr-Latn-RS",
                        "fi-FI",
                        "sv-SE",
                        "vi-VN",
                        "tr-TR",
                        "el-GR",
                        "be-BY",
                        "bg-BG",
                        "ky-KG",
                        "kk-KZ",
                        "mk-MK",
                        "mn-MN",
                        "ru-RU",
                        "sr-RS",
                        "uk-UA",
                        "iw-IL",
                        "ur-PK",
                        "ar-EG",
                        "fa-IR",
                        "am-ET",
                        "ne-NP",
                        "mr-IN",
                        "hi-IN",
                        "as-IN",
                        "bn-BD",
                        "pa-IN",
                        "gu-IN",
                        "or-IN",
                        "ta-IN",
                        "te-IN",
                        "kn-IN",
                        "ml-IN",
                        "th-TH",
                        "lo-LA",
                        "my-MM",
                        "ko-KR",
                        "zh-CN",
                        "zh-HK",
                        "zh-TW",
                        "ja-JP"
                    ])["default"]("en-US")
                }).strict().optional(),
                "bluetooth-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ac-power-on": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Standard",
                        "AlwaysOn",
                        "AlwaysStandby"
                    ])["default"]("Standard")
                }).strict().optional(),
                "pc-input-optimization-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "wake-up-on-signal": zod_1.z.object({
                    value: zod_1.z.union([
                        zod_1.z["boolean"](),
                        zod_1.z["enum"]([
                            "Disable",
                            "AlwaysEnabled",
                            "InputChangeOnly",
                            "SpecifiedHours"
                        ])
                    ])["default"]("Disable")
                }).strict().optional(),
                "wake-up-on-signal-detect-start-time": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^([01]\\d|2[0-3]):[0-5]\\d$"))["default"]("00:00")
                }).strict().describe("Setting values must satisfy the following relationship.").optional(),
                "wake-up-on-signal-detect-end-time": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^([01]\\d|2[0-3]):[0-5]\\d$"))["default"]("00:00")
                }).strict().describe("Setting values must satisfy the following relationship.").optional(),
                "home-key-behavior": zod_1.z.object({
                    value: zod_1.z.union([
                        zod_1.z["boolean"](),
                        zod_1.z["enum"]([
                            "Standard",
                            "Custom",
                            "Toggle",
                            "Disabled",
                            "HomeMenu"
                        ])
                    ])["default"]("Standard")
                }).strict().optional(),
                "custom-home-uri": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^.+$"))["default"]("")
                }).strict().optional(),
                "ntp-server": zod_1.z.object({
                    value: zod_1.z.string()["default"]("")
                }).strict().optional(),
                "pro-mode-lock": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^(?:(?!0000$)\\d{4}|)$|^$"))["default"]("")
                }).strict().optional(),
                "charge-usb-during-standby-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().describe("Power consumption may increase at: true").optional(),
                "import-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "install-bpk-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "launch-web-app-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "web-apps-installation-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "font-scale": zod_1.z.object({
                    value: zod_1.z.number().multipleOf(0.01).gte(0.25).lte(5)["default"](1)
                }).strict().optional(),
                "initial-input-source": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Default",
                        "ExternalInput",
                        "StartupApp",
                        "AndroidApps"
                    ])["default"]("Default")
                }).strict().optional(),
                "initial-input-source-external-input": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "hdmi1",
                        "hdmi2",
                        "hdmi3",
                        "hdmi4",
                        "video1"
                    ])["default"]("hdmi1")
                }).strict().optional(),
                "initial-input-source-startup-app-uri": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^.+$"))["default"]("")
                }).strict().optional(),
                "initial-input-source-android-app-package": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^.+$"))["default"]("")
                }).strict().optional(),
                "initial-input-source-android-app-activity": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^.+$"))["default"]("")
                }).strict().optional(),
                "initial-input-source-android-app-intent-data": zod_1.z.object({
                    value: zod_1.z.string()["default"]("")
                }).strict().optional(),
                "initial-input-source-android-app-intent-extra-key": zod_1.z.object({
                    value: zod_1.z.string()["default"]("")
                }).strict().optional(),
                "initial-input-source-android-app-intent-extra-value": zod_1.z.object({
                    value: zod_1.z.string()["default"]("")
                }).strict().optional(),
                "power-scheduling": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Daily",
                        "Weekly",
                        "Off"
                    ])["default"]("Off")
                }).strict().optional(),
                "power-scheduling-on-time": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^([01]\\d|2[0-3]):[0-5]\\d$"))["default"]("00:00")
                }).strict().describe("Setting values must satisfy the following relationship.").optional(),
                "power-scheduling-off-time": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^([01]\\d|2[0-3]):[0-5]\\d$"))["default"]("00:00")
                }).strict().describe("Setting values must satisfy the following relationship.").optional(),
                "power-scheduling-weekly": zod_1.z.object({
                    value: zod_1.z.array(zod_1.z["enum"]([
                        "Monday",
                        "Tuesday",
                        "Wednesday",
                        "Thursday",
                        "Friday",
                        "Saturday",
                        "Sunday"
                    ])).min(1).refine(function(arr) {
                        return arr.every(function(item, i) {
                            return arr.indexOf(item) === i;
                        });
                    }, "All items must be unique!")
                }).strict().describe("At least one day of the week must be selected.").optional(),
                "periodic-restart": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "Daily",
                        "Weekly",
                        "Off"
                    ])["default"]("Off")
                }).strict().optional(),
                "periodic-restart-time": zod_1.z.object({
                    value: zod_1.z.string().regex(new RegExp("^([01]\\d|2[0-3]):[0-5]\\d$"))["default"]("00:00")
                }).strict().optional(),
                "periodic-restart-weekly": zod_1.z.object({
                    value: zod_1.z.array(zod_1.z["enum"]([
                        "Monday",
                        "Tuesday",
                        "Wednesday",
                        "Thursday",
                        "Friday",
                        "Saturday",
                        "Sunday"
                    ])).min(1).refine(function(arr) {
                        return arr.every(function(item, i) {
                            return arr.indexOf(item) === i;
                        });
                    }, "All items must be unique!")
                }).strict().describe("At least one day of the week must be selected.").optional(),
                "periodic-restart-force": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](false)
                }).strict().optional(),
                "display-key-control-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "ir-remote-control-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "bluetooth-remote-control-enabled": zod_1.z.object({
                    value: zod_1.z["boolean"]()["default"](true)
                }).strict().optional(),
                "external-input-restriction-hdmi1": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "UseWithLabels",
                        "UseWithoutLabels",
                        "NotUse"
                    ])["default"]("UseWithLabels")
                }).strict().optional(),
                "external-input-restriction-hdmi2": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "UseWithLabels",
                        "UseWithoutLabels",
                        "NotUse"
                    ])["default"]("UseWithLabels")
                }).strict().optional(),
                "external-input-restriction-hdmi3": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "UseWithLabels",
                        "UseWithoutLabels",
                        "NotUse"
                    ])["default"]("UseWithLabels")
                }).strict().optional(),
                "external-input-restriction-hdmi4": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "UseWithLabels",
                        "UseWithoutLabels",
                        "NotUse"
                    ])["default"]("UseWithLabels")
                }).strict().optional(),
                "external-input-restriction-video1": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "UseWithLabels",
                        "UseWithoutLabels",
                        "NotUse"
                    ])["default"]("UseWithLabels")
                }).strict().optional(),
                "external-input-restriction-video2": zod_1.z.object({
                    value: zod_1.z["enum"]([
                        "UseWithLabels",
                        "UseWithoutLabels",
                        "NotUse"
                    ])["default"]("UseWithLabels")
                }).strict().optional(),
                "enabled-apps": zod_1.z.object({
                    value: zod_1.z.array(zod_1.z.object({
                        packageName: zod_1.z.string(),
                        appName: zod_1.z.string(),
                        availableValues: zod_1.z.array(zod_1.z["enum"]([
                            "enabled",
                            "limited-enabled",
                            "disabled"
                        ])).optional(),
                        value: zod_1.z["enum"]([
                            "enabled",
                            "limited-enabled",
                            "disabled"
                        ])
                    }))
                }).strict().optional()
            }).strict();
            exports.SonyExtendedControlSettingsSchema = SonySettingsBaseSchema.partial().superRefine(function(data, ctx) {
                var _a2, _b2, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21;
                if (data["ambient-light-sensor-light-enabled-hdmi1"] && !data["ambient-light-sensor-enabled-hdmi1"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-enabled-hdmi1" is required when "ambient-light-sensor-light-enabled-hdmi1" is present',
                        path: [
                            "ambient-light-sensor-enabled-hdmi1"
                        ]
                    });
                }
                if (data["ambient-light-sensor-gamma-enabled-hdmi1"] && !data["ambient-light-sensor-enabled-hdmi1"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-enabled-hdmi1" is required when "ambient-light-sensor-gamma-enabled-hdmi1" is present',
                        path: [
                            "ambient-light-sensor-enabled-hdmi1"
                        ]
                    });
                }
                if (((_a2 = data["ambient-light-sensor-enabled-hdmi2"]) === null || _a2 === void 0 ? void 0 : _a2.value) === true && !data["ambient-light-sensor-light-enabled-hdmi2"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-hdmi2" is required when "ambient-light-sensor-enabled-hdmi2" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-hdmi2"
                        ]
                    });
                }
                if (((_b2 = data["ambient-light-sensor-enabled-hdmi2"]) === null || _b2 === void 0 ? void 0 : _b2.value) === true && !data["ambient-light-sensor-gamma-enabled-hdmi2"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-hdmi2" is required when "ambient-light-sensor-enabled-hdmi2" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-hdmi2"
                        ]
                    });
                }
                if (((_c = data["ambient-light-sensor-enabled-hdmi3"]) === null || _c === void 0 ? void 0 : _c.value) === true && !data["ambient-light-sensor-light-enabled-hdmi3"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-hdmi3" is required when "ambient-light-sensor-enabled-hdmi3" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-hdmi3"
                        ]
                    });
                }
                if (((_d = data["ambient-light-sensor-enabled-hdmi3"]) === null || _d === void 0 ? void 0 : _d.value) === true && !data["ambient-light-sensor-gamma-enabled-hdmi3"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-hdmi3" is required when "ambient-light-sensor-enabled-hdmi3" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-hdmi3"
                        ]
                    });
                }
                if (((_e = data["ambient-light-sensor-enabled-hdmi4"]) === null || _e === void 0 ? void 0 : _e.value) === true && !data["ambient-light-sensor-light-enabled-hdmi4"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-hdmi4" is required when "ambient-light-sensor-enabled-hdmi4" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-hdmi4"
                        ]
                    });
                }
                if (((_f = data["ambient-light-sensor-enabled-hdmi4"]) === null || _f === void 0 ? void 0 : _f.value) === true && !data["ambient-light-sensor-gamma-enabled-hdmi4"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-hdmi4" is required when "ambient-light-sensor-enabled-hdmi4" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-hdmi4"
                        ]
                    });
                }
                if (((_g = data["ambient-light-sensor-enabled-video1"]) === null || _g === void 0 ? void 0 : _g.value) === true && !data["ambient-light-sensor-light-enabled-video1"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-video1" is required when "ambient-light-sensor-enabled-video1" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-video1"
                        ]
                    });
                }
                if (((_h = data["ambient-light-sensor-enabled-video1"]) === null || _h === void 0 ? void 0 : _h.value) === true && !data["ambient-light-sensor-gamma-enabled-video1"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-video1" is required when "ambient-light-sensor-enabled-video1" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-video1"
                        ]
                    });
                }
                if (((_j = data["ambient-light-sensor-enabled-video2"]) === null || _j === void 0 ? void 0 : _j.value) === true && !data["ambient-light-sensor-light-enabled-video2"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-video2" is required when "ambient-light-sensor-enabled-video2" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-video2"
                        ]
                    });
                }
                if (((_k = data["ambient-light-sensor-enabled-video2"]) === null || _k === void 0 ? void 0 : _k.value) === true && !data["ambient-light-sensor-gamma-enabled-video2"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-video2" is required when "ambient-light-sensor-enabled-video2" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-video2"
                        ]
                    });
                }
                if (((_l = data["ambient-light-sensor-enabled-app-video"]) === null || _l === void 0 ? void 0 : _l.value) === true && !data["ambient-light-sensor-light-enabled-app-video"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-app-video" is required when "ambient-light-sensor-enabled-app-video" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-app-video"
                        ]
                    });
                }
                if (((_m = data["ambient-light-sensor-enabled-app-video"]) === null || _m === void 0 ? void 0 : _m.value) === true && !data["ambient-light-sensor-gamma-enabled-app-video"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-app-video" is required when "ambient-light-sensor-enabled-app-video" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-app-video"
                        ]
                    });
                }
                if (((_o = data["ambient-light-sensor-enabled-app-photo"]) === null || _o === void 0 ? void 0 : _o.value) === true && !data["ambient-light-sensor-light-enabled-app-photo"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-app-photo" is required when "ambient-light-sensor-enabled-app-photo" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-app-photo"
                        ]
                    });
                }
                if (((_p = data["ambient-light-sensor-enabled-app-photo"]) === null || _p === void 0 ? void 0 : _p.value) === true && !data["ambient-light-sensor-gamma-enabled-app-photo"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-app-photo" is required when "ambient-light-sensor-enabled-app-photo" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-app-photo"
                        ]
                    });
                }
                if (((_q = data["ambient-light-sensor-enabled-app-game"]) === null || _q === void 0 ? void 0 : _q.value) === true && !data["ambient-light-sensor-light-enabled-app-game"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-app-game" is required when "ambient-light-sensor-enabled-app-game" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-app-game"
                        ]
                    });
                }
                if (((_r = data["ambient-light-sensor-enabled-app-game"]) === null || _r === void 0 ? void 0 : _r.value) === true && !data["ambient-light-sensor-gamma-enabled-app-game"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-app-game" is required when "ambient-light-sensor-enabled-app-game" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-app-game"
                        ]
                    });
                }
                if (((_s = data["ambient-light-sensor-enabled-app-general"]) === null || _s === void 0 ? void 0 : _s.value) === true && !data["ambient-light-sensor-light-enabled-app-general"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-light-enabled-app-general" is required when "ambient-light-sensor-enabled-app-general" is "true"',
                        path: [
                            "ambient-light-sensor-light-enabled-app-general"
                        ]
                    });
                }
                if (((_t = data["ambient-light-sensor-enabled-app-general"]) === null || _t === void 0 ? void 0 : _t.value) === true && !data["ambient-light-sensor-gamma-enabled-app-general"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ambient-light-sensor-gamma-enabled-app-general" is required when "ambient-light-sensor-enabled-app-general" is "true"',
                        path: [
                            "ambient-light-sensor-gamma-enabled-app-general"
                        ]
                    });
                }
                if (((_u = data["ip-assignment"]) === null || _u === void 0 ? void 0 : _u.value) === "Static" && !data["ipv4-address"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ipv4-address" is required when "ip-assignment" is "Static"',
                        path: [
                            "ipv4-address"
                        ]
                    });
                }
                if (((_v = data["ip-assignment"]) === null || _v === void 0 ? void 0 : _v.value) === "Static" && !data["ipv4-prefix-length"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ipv4-prefix-length" is required when "ip-assignment" is "Static"',
                        path: [
                            "ipv4-prefix-length"
                        ]
                    });
                }
                if (((_w = data["proxy-enabled"]) === null || _w === void 0 ? void 0 : _w.value) === "Static" && !data["proxy-host"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"proxy-host" is required when "proxy-enabled" is "Static"',
                        path: [
                            "proxy-host"
                        ]
                    });
                }
                if (((_x = data["proxy-enabled"]) === null || _x === void 0 ? void 0 : _x.value) === "Static" && !data["proxy-port"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"proxy-port" is required when "proxy-enabled" is "Static"',
                        path: [
                            "proxy-port"
                        ]
                    });
                }
                if (((_y = data["wifi-security"]) === null || _y === void 0 ? void 0 : _y.value) === "Wep" && !data["wifi-wep-value"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wifi-wep-value" is required when "wifi-security" is "Wep"',
                        path: [
                            "wifi-wep-value"
                        ]
                    });
                }
                if (((_z = data["wifi-security"]) === null || _z === void 0 ? void 0 : _z.value) === "Wpa" && !data["wifi-wpa-value"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wifi-wpa-value" is required when "wifi-security" is "Wpa"',
                        path: [
                            "wifi-wpa-value"
                        ]
                    });
                }
                if (((_0 = data["wifi-ip-assignment"]) === null || _0 === void 0 ? void 0 : _0.value) === "Static" && !data["wifi-ipv4-address"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wifi-ipv4-address" is required when "wifi-ip-assignment" is "Static"',
                        path: [
                            "wifi-ipv4-address"
                        ]
                    });
                }
                if (((_1 = data["wifi-ip-assignment"]) === null || _1 === void 0 ? void 0 : _1.value) === "Static" && !data["wifi-ipv4-prefix-length"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wifi-ipv4-prefix-length" is required when "wifi-ip-assignment" is "Static"',
                        path: [
                            "wifi-ipv4-prefix-length"
                        ]
                    });
                }
                if (((_2 = data["wifi-proxy-enabled"]) === null || _2 === void 0 ? void 0 : _2.value) === "Static" && !data["wifi-proxy-host"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wifi-proxy-host" is required when "wifi-proxy-enabled" is "Static"',
                        path: [
                            "wifi-proxy-host"
                        ]
                    });
                }
                if (((_3 = data["wifi-proxy-enabled"]) === null || _3 === void 0 ? void 0 : _3.value) === "Static" && !data["wifi-proxy-port"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wifi-proxy-port" is required when "wifi-proxy-enabled" is "Static"',
                        path: [
                            "wifi-proxy-port"
                        ]
                    });
                }
                if (data["ip-control-authentication-psk"] && !data["ip-control-authentication"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"ip-control-authentication" is required when "ip-control-authentication-psk" is present',
                        path: [
                            "ip-control-authentication"
                        ]
                    });
                }
                if (((_4 = data["wake-up-on-signal"]) === null || _4 === void 0 ? void 0 : _4.value) === "SpecifiedHours" && !data["wake-up-on-signal-detect-start-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wake-up-on-signal-detect-start-time" is required when "wake-up-on-signal" is "SpecifiedHours"',
                        path: [
                            "wake-up-on-signal-detect-start-time"
                        ]
                    });
                }
                if (((_5 = data["wake-up-on-signal"]) === null || _5 === void 0 ? void 0 : _5.value) === "SpecifiedHours" && !data["wake-up-on-signal-detect-end-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"wake-up-on-signal-detect-end-time" is required when "wake-up-on-signal" is "SpecifiedHours"',
                        path: [
                            "wake-up-on-signal-detect-end-time"
                        ]
                    });
                }
                if (((_6 = data["home-key-behavior"]) === null || _6 === void 0 ? void 0 : _6.value) === "Custom" && !data["custom-home-uri"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"custom-home-uri" is required when "home-key-behavior" is "Custom"',
                        path: [
                            "custom-home-uri"
                        ]
                    });
                }
                if (((_7 = data["home-key-behavior"]) === null || _7 === void 0 ? void 0 : _7.value) === "Toggle" && !data["custom-home-uri"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"custom-home-uri" is required when "home-key-behavior" is "Toggle"',
                        path: [
                            "custom-home-uri"
                        ]
                    });
                }
                if (((_8 = data["initial-input-source"]) === null || _8 === void 0 ? void 0 : _8.value) === "ExternalInput" && !data["initial-input-source-external-input"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"initial-input-source-external-input" is required when "initial-input-source" is "ExternalInput"',
                        path: [
                            "initial-input-source-external-input"
                        ]
                    });
                }
                if (((_9 = data["initial-input-source"]) === null || _9 === void 0 ? void 0 : _9.value) === "StartupApp" && !data["initial-input-source-startup-app-uri"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"initial-input-source-startup-app-uri" is required when "initial-input-source" is "StartupApp"',
                        path: [
                            "initial-input-source-startup-app-uri"
                        ]
                    });
                }
                if (((_10 = data["initial-input-source"]) === null || _10 === void 0 ? void 0 : _10.value) === "AndroidApps" && !data["initial-input-source-android-app-package"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"initial-input-source-android-app-package" is required when "initial-input-source" is "AndroidApps"',
                        path: [
                            "initial-input-source-android-app-package"
                        ]
                    });
                }
                if (((_11 = data["initial-input-source"]) === null || _11 === void 0 ? void 0 : _11.value) === "AndroidApps" && !data["initial-input-source-android-app-activity"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"initial-input-source-android-app-activity" is required when "initial-input-source" is "AndroidApps"',
                        path: [
                            "initial-input-source-android-app-activity"
                        ]
                    });
                }
                if (((_12 = data["power-scheduling"]) === null || _12 === void 0 ? void 0 : _12.value) === "Daily" && !data["power-scheduling-on-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"power-scheduling-on-time" is required when "power-scheduling" is "Daily"',
                        path: [
                            "power-scheduling-on-time"
                        ]
                    });
                }
                if (((_13 = data["power-scheduling"]) === null || _13 === void 0 ? void 0 : _13.value) === "Daily" && !data["power-scheduling-off-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"power-scheduling-off-time" is required when "power-scheduling" is "Daily"',
                        path: [
                            "power-scheduling-off-time"
                        ]
                    });
                }
                if (((_14 = data["power-scheduling"]) === null || _14 === void 0 ? void 0 : _14.value) === "Weekly" && !data["power-scheduling-on-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"power-scheduling-on-time" is required when "power-scheduling" is "Weekly"',
                        path: [
                            "power-scheduling-on-time"
                        ]
                    });
                }
                if (((_15 = data["power-scheduling"]) === null || _15 === void 0 ? void 0 : _15.value) === "Weekly" && !data["power-scheduling-off-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"power-scheduling-off-time" is required when "power-scheduling" is "Weekly"',
                        path: [
                            "power-scheduling-off-time"
                        ]
                    });
                }
                if (((_16 = data["power-scheduling"]) === null || _16 === void 0 ? void 0 : _16.value) === "Weekly" && !data["power-scheduling-weekly"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"power-scheduling-weekly" is required when "power-scheduling" is "Weekly"',
                        path: [
                            "power-scheduling-weekly"
                        ]
                    });
                }
                if (((_17 = data["periodic-restart"]) === null || _17 === void 0 ? void 0 : _17.value) === "Daily" && !data["periodic-restart-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"periodic-restart-time" is required when "periodic-restart" is "Daily"',
                        path: [
                            "periodic-restart-time"
                        ]
                    });
                }
                if (((_18 = data["periodic-restart"]) === null || _18 === void 0 ? void 0 : _18.value) === "Daily" && !data["periodic-restart-force"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"periodic-restart-force" is required when "periodic-restart" is "Daily"',
                        path: [
                            "periodic-restart-force"
                        ]
                    });
                }
                if (((_19 = data["periodic-restart"]) === null || _19 === void 0 ? void 0 : _19.value) === "Weekly" && !data["periodic-restart-time"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"periodic-restart-time" is required when "periodic-restart" is "Weekly"',
                        path: [
                            "periodic-restart-time"
                        ]
                    });
                }
                if (((_20 = data["periodic-restart"]) === null || _20 === void 0 ? void 0 : _20.value) === "Weekly" && !data["periodic-restart-weekly"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"periodic-restart-weekly" is required when "periodic-restart" is "Weekly"',
                        path: [
                            "periodic-restart-weekly"
                        ]
                    });
                }
                if (((_21 = data["periodic-restart"]) === null || _21 === void 0 ? void 0 : _21.value) === "Weekly" && !data["periodic-restart-force"]) {
                    ctx.addIssue({
                        code: zod_1.z.ZodIssueCode.custom,
                        message: '"periodic-restart-force" is required when "periodic-restart" is "Weekly"',
                        path: [
                            "periodic-restart-force"
                        ]
                    });
                }
            });
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Settings/DeviceSettings.js
    var require_DeviceSettings = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Settings/DeviceSettings.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SocketDriver = exports.LongWeekdayEnum = exports.ShortWeekdayEnum = exports.DeviceSettingsSchemas = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var ResolutionList_1 = require_ResolutionList();
            var Orientation_1 = __importDefault(require_Orientation());
            var VideoOrientation_1 = __importDefault(require_VideoOrientation());
            var PowerActionType_1 = __importDefault(require_PowerActionType());
            var Weekday_1 = __importDefault(require_Weekday());
            var NativeTimerType_1 = require_NativeTimerType();
            var socketDriver_1 = require_socketDriver();
            var zod_1 = require_zod();
            var TelemetryIntervals_1 = require_TelemetryIntervals();
            var PowerTimerWeekdayEnum_1 = require_PowerTimerWeekdayEnum();
            Object.defineProperty(exports, "ShortWeekdayEnum", {
                enumerable: true,
                get: function get() {
                    return PowerTimerWeekdayEnum_1.ShortWeekdayEnum;
                }
            });
            Object.defineProperty(exports, "LongWeekdayEnum", {
                enumerable: true,
                get: function get() {
                    return PowerTimerWeekdayEnum_1.LongWeekdayEnum;
                }
            });
            var NetworkInterface_1 = require_NetworkInterface();
            var AppletSettings_1 = require_AppletSettings();
            var ProprietaryTimerType_1 = require_ProprietaryTimerType();
            var DevicePackageInstallation_1 = require_DevicePackageInstallation();
            var DevicePackageUninstallation_1 = require_DevicePackageUninstallation();
            var PluginSettings_1 = require_PluginSettings();
            var RunnerSettings_1 = require_RunnerSettings();
            var FeatureFlag_1 = require_FeatureFlag();
            var SonyExtendedControlSettings_1 = require_SonyExtendedControlSettings();
            var _obj;
            exports.DeviceSettingsSchemas = (_obj = {}, _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.VOLUME, zod_1.z.strictObject({
                volume: zod_1.z.number().min(0).max(100)
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.BRIGHTNESS, zod_1.z.strictObject({
                brightness: zod_1.z.number().min(0).max(100)
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.TIMERS, zod_1.z.array(// TODO Migrate data as `NativeTimer`
            zod_1.z.strictObject({
                type: zod_1.z.nativeEnum(NativeTimerType_1.NativeTimerType),
                weekdays: zod_1.z.array(zod_1.z.nativeEnum(PowerTimerWeekdayEnum_1.LongWeekdayEnum)),
                timeOn: zod_1.z.string().nullable(),
                timeOff: zod_1.z.string().nullable(),
                volume: zod_1.z.number().min(0).max(100)
            }))), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PROPRIETARY_TIMERS, zod_1.z.array(// TODO Migrate data as `ProprietaryTimer`
            zod_1.z.object({
                // Allow extra properties (like volume) to be backward compatible
                type: ProprietaryTimerType_1.ProprietaryTimerTypeSchema,
                weekdays: zod_1.z.array(zod_1.z.nativeEnum(PowerTimerWeekdayEnum_1.LongWeekdayEnum)),
                timeOn: zod_1.z.string().nullable(),
                timeOff: zod_1.z.string().nullable(),
                keepAppletRunning: zod_1.z["boolean"]().optional()
            }))), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.RESOLUTION, ResolutionList_1.ResolutionItemSchema), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.ORIENTATION, zod_1.z.strictObject({
                orientation: zod_1.z.nativeEnum(Orientation_1["default"]),
                videoOrientation: zod_1.z.nativeEnum(VideoOrientation_1["default"]).optional()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.REMOTE_CONTROL, zod_1.z.strictObject({
                enabled: zod_1.z["boolean"]()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.APPLICATION_VERSION, zod_1.z.strictObject({
                version: zod_1.z.string()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.FIRMWARE_VERSION, zod_1.z.strictObject({
                version: zod_1.z.string()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.DEBUG, zod_1.z.strictObject({
                appletEnabled: zod_1.z["boolean"](),
                nativeEnabled: zod_1.z["boolean"]()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.DATETIME, zod_1.z.strictObject({
                timezone: zod_1.z.string().nullable(),
                ntpServer: zod_1.z.string().nullable()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.POWER_ACTIONS_SCHEDULE, zod_1.z.array(zod_1.z.strictObject({
                uid: zod_1.z.string(),
                powerType: zod_1.z.nativeEnum(PowerActionType_1["default"]),
                weekdays: zod_1.z.array(zod_1.z.nativeEnum(Weekday_1["default"])),
                time: zod_1.z.string()
            }))), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.TEMPERATURE, zod_1.z.strictObject({
                temperatureLimit: zod_1.z.number()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.AUTO_RECOVERY, zod_1.z.strictObject({
                enabled: zod_1.z["boolean"](),
                healthcheckIntervalMs: zod_1.z.number().optional(),
                autoEnableTimeoutMs: zod_1.z.number().optional()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PEER_RECOVERY, zod_1.z.strictObject({
                enabled: zod_1.z["boolean"](),
                urlLauncherAddress: zod_1.z.string().optional(),
                autoEnableTimeoutMs: zod_1.z.number().optional()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PROXY, zod_1.z.strictObject({
                enabled: zod_1.z["boolean"](),
                uri: zod_1.z.string().nullable()
            })), /**
         * Connection method is a special case of device settings type and it's only enum value or null
         * instead of interface definition as it is in other cases. Null value represents 'auto' connection method.
         */ _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.CONNECTION_METHOD, zod_1.z.nativeEnum(socketDriver_1.SocketDriver).nullable()), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PACKAGES, zod_1.z.object({
                toInstall: zod_1.z.array(DevicePackageInstallation_1.DevicePackageInstallationSchema),
                toUninstall: zod_1.z.array(DevicePackageUninstallation_1.DevicePackageUninstallationSchema)
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.TELEMETRY_INTERVALS, zod_1.z.object({
                telemetryIntervals: TelemetryIntervals_1.TelemetryCheckIntervalsSchema
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.APPLET, AppletSettings_1.AppletSettingsSchema), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.EXTENDED_MANAGEMENT, zod_1.z.strictObject({
                url: zod_1.z.string().nullable()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.EXTENDED_CONTROL, zod_1.z.strictObject({
                configurations: zod_1.z.array(zod_1.z.strictObject({
                    brand: zod_1.z.literal("Sony"),
                    settings: SonyExtendedControlSettings_1.SonyExtendedControlSettingsSchema
                })).min(1)
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.NETWORK_INTERFACES, zod_1.z.array(NetworkInterface_1.NetworkInterfacesSchema)), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.DISPLAY_POWER_ON, zod_1.z.strictObject({
                powerOn: zod_1.z["boolean"]()
            })), /** @deprecated Use {@link DeviceSettingsType.FEATURE_FLAGS} instead */ _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.SCREENSHOT_CAPTURE, zod_1.z.strictObject({
                enabled: zod_1.z["boolean"]()
            })), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PLUGIN, PluginSettings_1.PluginSettingsSchema), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.RUNNER, RunnerSettings_1.RunnerSettingsSchema), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.FEATURE_FLAGS, FeatureFlag_1.DeviceFeatureFlagsSchema), _obj);
            exports.SocketDriver = socketDriver_1.SocketDriver;
        }
    });
    // node_modules/@signageos/common-types/dist/TypeScript/object.js
    var require_object = __commonJS({
        "node_modules/@signageos/common-types/dist/TypeScript/object.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getObjectValues = void 0;
            exports.getObjectValues = Object.values;
        }
    });
    // node_modules/@signageos/common-types/dist/Policy/IPolicyItem.js
    var require_IPolicyItem = __commonJS({
        "node_modules/@signageos/common-types/dist/Policy/IPolicyItem.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PolicyItemSchema = exports.PolicyItemSchemas = exports.createPolicyItemBaseSchema = void 0;
            exports.isPolicyItemOfType = isPolicyItemOfType;
            var zod_1 = require_zod();
            var DeviceSettings_1 = require_DeviceSettings();
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var ApplicationType_1 = require_ApplicationType();
            var object_1 = require_object();
            function isPolicyItemOfType(policyItem, type) {
                return policyItem.type === type;
            }
            var createPolicyItemBaseSchema = function(type, valueSchema) {
                return zod_1.z.strictObject({
                    type: zod_1.z.literal(type),
                    applicationType: ApplicationType_1.ApplicationTypeSchema.optional(),
                    value: valueSchema,
                    /** Automatically set the current date when updatedAt is missing to prevent mistakes and make it back compatible */ updatedAt: zod_1.z.date()["default"](function() {
                        return /* @__PURE__ */ new Date();
                    })
                });
            };
            exports.createPolicyItemBaseSchema = createPolicyItemBaseSchema;
            var _obj;
            exports.PolicyItemSchemas = (_obj = {}, _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.VOLUME, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.VOLUME, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.VOLUME])), // Values for brightness is the only differs from general DeviceSettings
            _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.BRIGHTNESS, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.BRIGHTNESS, zod_1.z.array(DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.BRIGHTNESS].extend({
                time: zod_1.z.string()
            })))), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.TIMERS, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.TIMERS, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.TIMERS])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PROPRIETARY_TIMERS, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.PROPRIETARY_TIMERS, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.PROPRIETARY_TIMERS])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.RESOLUTION, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.RESOLUTION, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.RESOLUTION])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.ORIENTATION, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.ORIENTATION, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.ORIENTATION])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.REMOTE_CONTROL, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.REMOTE_CONTROL, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.REMOTE_CONTROL])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.APPLICATION_VERSION, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.APPLICATION_VERSION, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.APPLICATION_VERSION])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.FIRMWARE_VERSION, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.FIRMWARE_VERSION, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.FIRMWARE_VERSION])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.DEBUG, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.DEBUG, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.DEBUG])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.DATETIME, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.DATETIME, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.DATETIME])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.POWER_ACTIONS_SCHEDULE, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.POWER_ACTIONS_SCHEDULE, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.POWER_ACTIONS_SCHEDULE])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.TEMPERATURE, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.TEMPERATURE, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.TEMPERATURE])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.AUTO_RECOVERY, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.AUTO_RECOVERY, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.AUTO_RECOVERY])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PEER_RECOVERY, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.PEER_RECOVERY, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.PEER_RECOVERY])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PROXY, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.PROXY, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.PROXY])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.CONNECTION_METHOD, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.CONNECTION_METHOD, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.CONNECTION_METHOD])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PACKAGES, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.PACKAGES, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.PACKAGES])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.TELEMETRY_INTERVALS, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.TELEMETRY_INTERVALS, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.TELEMETRY_INTERVALS])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.APPLET, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.APPLET, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.APPLET])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.EXTENDED_MANAGEMENT, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.EXTENDED_MANAGEMENT, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.EXTENDED_MANAGEMENT])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.EXTENDED_CONTROL, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.EXTENDED_CONTROL, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.EXTENDED_CONTROL])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.NETWORK_INTERFACES, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.NETWORK_INTERFACES, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.NETWORK_INTERFACES])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.DISPLAY_POWER_ON, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.DISPLAY_POWER_ON, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.DISPLAY_POWER_ON])), /** @deprecated Use {@link DeviceSettingsType.FEATURE_FLAGS} instead */ _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.SCREENSHOT_CAPTURE, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.SCREENSHOT_CAPTURE, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.SCREENSHOT_CAPTURE])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.PLUGIN, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.PLUGIN, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.PLUGIN])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.RUNNER, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.RUNNER, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.RUNNER])), _define_property(_obj, DeviceSettingsType_1.DeviceSettingsType.FEATURE_FLAGS, (0, exports.createPolicyItemBaseSchema)(DeviceSettingsType_1.DeviceSettingsType.FEATURE_FLAGS, DeviceSettings_1.DeviceSettingsSchemas[DeviceSettingsType_1.DeviceSettingsType.FEATURE_FLAGS])), _obj);
            exports.PolicyItemSchema = zod_1.z.discriminatedUnion("type", (0, object_1.getObjectValues)(exports.PolicyItemSchemas));
        }
    });
    // node_modules/@signageos/common-types/dist/Device/SystemLogs/systemLogs.js
    var require_systemLogs = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/SystemLogs/systemLogs.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SystemLogPayloadSchemas = exports.DisplayConnectedOverSerialSchema = exports.PowerActionPerformedSchema = exports.PolicyChangedSchema = exports.AppletRunningSchema = exports.NetworkChangedSchema = exports.AppletStartedSchema = exports.ApplicationStartedSchema = exports.TimeSettingsChangedSchema = exports.DeviceAliveSchema = exports.SocketConnectionFailedSchema = exports.SocketDisconnectedSchema = exports.SocketConnectedSchema = exports.DisplayConnectedOverSerial = exports.PowerActionPerformed = exports.PolicyChanged = exports.AppletRunning = exports.NetworkChanged = exports.AppletStarted = exports.ApplicationStarted = exports.TimeSettingsChanged = exports.DeviceAlive = exports.SocketConnectionFailed = exports.SocketDisconnected = exports.SocketConnected = void 0;
            var zod_1 = require_zod();
            var IPolicyItem_1 = require_IPolicyItem();
            var NetworkInterface_1 = require_NetworkInterface();
            var PowerActionType_1 = __importDefault(require_PowerActionType());
            exports.SocketConnected = "SocketConnected";
            exports.SocketDisconnected = "SocketDisconnected";
            exports.SocketConnectionFailed = "SocketConnectionFailed";
            exports.DeviceAlive = "DeviceAlive";
            exports.TimeSettingsChanged = "TimeSettingsChanged";
            exports.ApplicationStarted = "ApplicationStarted";
            exports.AppletStarted = "AppletStarted";
            exports.NetworkChanged = "NetworkChanged";
            exports.AppletRunning = "AppletRunning";
            exports.PolicyChanged = "PolicyChanged";
            exports.PowerActionPerformed = "PowerActionPerformed";
            exports.DisplayConnectedOverSerial = "DisplayConnectedOverSerial";
            exports.SocketConnectedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.SocketConnected),
                socketName: zod_1.z.string().optional()
            });
            exports.SocketDisconnectedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.SocketDisconnected),
                socketName: zod_1.z.string().optional(),
                reason: zod_1.z.string().optional(),
                context: zod_1.z.any().optional()
            });
            exports.SocketConnectionFailedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.SocketConnectionFailed),
                errorMessage: zod_1.z.string(),
                socketName: zod_1.z.string().optional()
            });
            exports.DeviceAliveSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.DeviceAlive)
            });
            exports.TimeSettingsChangedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.TimeSettingsChanged)
            });
            exports.ApplicationStartedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.ApplicationStarted),
                startedAt: zod_1.z.date()
            });
            exports.AppletStartedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.AppletStarted),
                appletUid: zod_1.z.string(),
                appletVersion: zod_1.z.string()
            });
            exports.NetworkChangedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.NetworkChanged),
                data: zod_1.z.array(NetworkInterface_1.NetworkInterfaceSchema)
            });
            exports.AppletRunningSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.AppletRunning),
                appletUid: zod_1.z.string()
            });
            exports.PolicyChangedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.PolicyChanged),
                actual: zod_1.z.array(IPolicyItem_1.PolicyItemSchema),
                difference: zod_1.z.array(IPolicyItem_1.PolicyItemSchema),
                updatedAt: zod_1.z.number()
            });
            exports.PowerActionPerformedSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.PowerActionPerformed),
                action: zod_1.z.nativeEnum(PowerActionType_1["default"])
            });
            exports.DisplayConnectedOverSerialSchema = zod_1.z.object({
                type: zod_1.z.literal(exports.DisplayConnectedOverSerial),
                display: zod_1.z.string()
            });
            exports.SystemLogPayloadSchemas = zod_1.z.discriminatedUnion("type", [
                exports.SocketConnectedSchema,
                exports.SocketDisconnectedSchema,
                exports.SocketConnectionFailedSchema,
                exports.DeviceAliveSchema,
                exports.TimeSettingsChangedSchema,
                exports.ApplicationStartedSchema,
                exports.AppletStartedSchema,
                exports.NetworkChangedSchema,
                exports.AppletRunningSchema,
                exports.PowerActionPerformedSchema,
                exports.PolicyChangedSchema,
                exports.DisplayConnectedOverSerialSchema
            ]);
        }
    });
    // node_modules/@signageos/actions/dist/SystemLog/systemLogActions.js
    var require_systemLogActions = __commonJS({
        "node_modules/@signageos/actions/dist/SystemLog/systemLogActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SystemLogSchema = exports.SystemLog = void 0;
            var zod_1 = require_zod();
            var systemLogs_1 = require_systemLogs();
            exports.SystemLog = "System.SystemLog";
            exports.SystemLogSchema = zod_1.z.strictObject({
                type: zod_1.z.literal(exports.SystemLog),
                payload: systemLogs_1.SystemLogPayloadSchemas
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/offlineActionsConfiguration.js
    var require_offlineActionsConfiguration = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/offlineActionsConfiguration.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.defaultActionLimits = void 0;
            var activeAppletActions_1 = require_activeAppletActions();
            var systemLogActions_1 = require_systemLogActions();
            var _obj;
            exports.defaultActionLimits = (_obj = {}, _define_property(_obj, activeAppletActions_1.ActiveAppletDispatchCommand, {
                limit: 30,
                windowSecs: 60
            }), _define_property(_obj, systemLogActions_1.SystemLog, {
                limit: 30,
                windowSecs: 60
            }), _obj);
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/featureFlags.js
    var require_featureFlags = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/featureFlags.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.defaultFeatureFlags = void 0;
            var FeatureFlag_1 = require_FeatureFlag();
            function getDefaultDeviceFeatureFlags() {
                return Object.keys(FeatureFlag_1.DeviceFeatureFlag).reduce(function(prev, current2) {
                    var _neverFeatureFlag;
                    switch(current2){
                        case FeatureFlag_1.DeviceFeatureFlag.ScreenshotCapture:
                            prev[FeatureFlag_1.DeviceFeatureFlag.ScreenshotCapture] = true;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.SystemLogs:
                            prev[FeatureFlag_1.DeviceFeatureFlag.SystemLogs] = true;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.CustomScripts:
                            prev[FeatureFlag_1.DeviceFeatureFlag.CustomScripts] = true;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.Runners:
                            prev[FeatureFlag_1.DeviceFeatureFlag.Runners] = true;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.Plugins:
                            prev[FeatureFlag_1.DeviceFeatureFlag.Plugins] = true;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.CpuUsage:
                            prev[FeatureFlag_1.DeviceFeatureFlag.CpuUsage] = false;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.MemoryUsage:
                            prev[FeatureFlag_1.DeviceFeatureFlag.MemoryUsage] = false;
                            return prev;
                        case FeatureFlag_1.DeviceFeatureFlag.ScreenshotAnalysis:
                            prev[FeatureFlag_1.DeviceFeatureFlag.ScreenshotAnalysis] = true;
                            return prev;
                        default:
                            _neverFeatureFlag = current2;
                            return prev;
                    }
                }, {});
            }
            exports.defaultFeatureFlags = getDefaultDeviceFeatureFlags();
        }
    });
    // node_modules/@signageos/front-display/es6/Util/urlEvaluator.js
    var require_urlEvaluator = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/urlEvaluator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getCachedUrl = exports.invalidateUrl = exports.chooseUrl = void 0;
            var constants_1 = require_constants();
            var fetch_1 = require_fetch();
            var globalThis_1 = __importDefault(require_globalThis());
            var TIMEOUT_ERROR = "TimeoutError";
            var connectToPingUrl = function(uri) {
                var fetchFn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : fetch_1.fetch;
                return __awaiter(void 0, void 0, void 0, function() {
                    var _a2, pingUrl, error, e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                pingUrl = uri + "/ping";
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    ,
                                    7
                                ]);
                                if (!((_a2 = globalThis_1["default"].AbortSignal) === null || _a2 === void 0 ? void 0 : _a2.timeout)) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    fetchFn(pingUrl, {
                                        signal: globalThis_1["default"].AbortSignal.timeout(constants_1.NORMALLY)
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 3:
                                return [
                                    4,
                                    fetchFn(pingUrl, void 0, constants_1.NORMALLY, TIMEOUT_ERROR)
                                ];
                            case 4:
                                _state.sent();
                                _state.label = 5;
                            case 5:
                                return [
                                    3,
                                    7
                                ];
                            case 6:
                                e = _state.sent();
                                error = e;
                                return [
                                    3,
                                    7
                                ];
                            case 7:
                                return [
                                    2,
                                    {
                                        uri: uri,
                                        error: error
                                    }
                                ];
                        }
                    });
                });
            };
            var cachedUrl = null;
            var ongoingSelection = null;
            function chooseUrl(urls) {
                var fetchFn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    var selectedUrl;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                ongoingSelection = ongoingSelection !== null && ongoingSelection !== void 0 ? ongoingSelection : selectUrl(urls, fetchFn);
                                return [
                                    4,
                                    ongoingSelection
                                ];
                            case 1:
                                selectedUrl = _state.sent();
                                ongoingSelection = null;
                                return [
                                    2,
                                    selectedUrl
                                ];
                        }
                    });
                });
            }
            exports.chooseUrl = chooseUrl;
            function selectUrl(urls) {
                var fetchFn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    var error, i, result17;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (cachedUrl) {
                                    return [
                                        2,
                                        cachedUrl
                                    ];
                                }
                                i = 0;
                                _state.label = 1;
                            case 1:
                                if (!(i < urls.length)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    connectToPingUrl(urls[i], fetchFn)
                                ];
                            case 2:
                                result17 = _state.sent();
                                if (!result17.error) {
                                    cachedUrl = result17.uri;
                                    return [
                                        2,
                                        result17.uri
                                    ];
                                }
                                error = result17.error;
                                _state.label = 3;
                            case 3:
                                i++;
                                return [
                                    3,
                                    1
                                ];
                            case 4:
                                ongoingSelection = null;
                                throw error !== null && error !== void 0 ? error : new Error("Cannot determine working url.");
                        }
                    });
                });
            }
            function invalidateUrl() {
                cachedUrl = null;
            }
            exports.invalidateUrl = invalidateUrl;
            function getCachedUrl() {
                if (!cachedUrl) {
                    throw new Error("No url is cached");
                }
                return cachedUrl;
            }
            exports.getCachedUrl = getCachedUrl;
        }
    });
    // node_modules/url/node_modules/punycode/punycode.js
    var require_punycode = __commonJS({
        "node_modules/url/node_modules/punycode/punycode.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root) {
                var freeExports = (typeof exports === "undefined" ? "undefined" : _type_of(exports)) == "object" && exports && !exports.nodeType && exports;
                var freeModule = (typeof module === "undefined" ? "undefined" : _type_of(module)) == "object" && module && !module.nodeType && module;
                var freeGlobal = (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) == "object" && globalThis;
                if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {
                    root = freeGlobal;
                }
                var punycode, maxInt = 2147483647, base = 36, tMin = 1, tMax = 26, skew = 38, damp = 700, initialBias = 72, initialN = 128, delimiter = "-", regexPunycode = /^xn--/, regexNonASCII = /[^\x20-\x7E]/, regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, errors = {
                    overflow: "Overflow: input needs wider integers to process",
                    "not-basic": "Illegal input >= 0x80 (not a basic code point)",
                    "invalid-input": "Invalid input"
                }, baseMinusTMin = base - tMin, floor = Math.floor, stringFromCharCode = String.fromCharCode, key;
                function error(type) {
                    throw new RangeError(errors[type]);
                }
                function map(array4, fn) {
                    var length = array4.length;
                    var result17 = [];
                    while(length--){
                        result17[length] = fn(array4[length]);
                    }
                    return result17;
                }
                function mapDomain(string5, fn) {
                    var parts = string5.split("@");
                    var result17 = "";
                    if (parts.length > 1) {
                        result17 = parts[0] + "@";
                        string5 = parts[1];
                    }
                    string5 = string5.replace(regexSeparators, ".");
                    var labels = string5.split(".");
                    var encoded = map(labels, fn).join(".");
                    return result17 + encoded;
                }
                function ucs2decode(string5) {
                    var output = [], counter = 0, length = string5.length, value, extra;
                    while(counter < length){
                        value = string5.charCodeAt(counter++);
                        if (value >= 55296 && value <= 56319 && counter < length) {
                            extra = string5.charCodeAt(counter++);
                            if ((extra & 64512) == 56320) {
                                output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
                            } else {
                                output.push(value);
                                counter--;
                            }
                        } else {
                            output.push(value);
                        }
                    }
                    return output;
                }
                function ucs2encode(array4) {
                    return map(array4, function(value) {
                        var output = "";
                        if (value > 65535) {
                            value -= 65536;
                            output += stringFromCharCode(value >>> 10 & 1023 | 55296);
                            value = 56320 | value & 1023;
                        }
                        output += stringFromCharCode(value);
                        return output;
                    }).join("");
                }
                function basicToDigit(codePoint) {
                    if (codePoint - 48 < 10) {
                        return codePoint - 22;
                    }
                    if (codePoint - 65 < 26) {
                        return codePoint - 65;
                    }
                    if (codePoint - 97 < 26) {
                        return codePoint - 97;
                    }
                    return base;
                }
                function digitToBasic(digit, flag) {
                    return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
                }
                function adapt(delta, numPoints, firstTime) {
                    var k = 0;
                    delta = firstTime ? floor(delta / damp) : delta >> 1;
                    delta += floor(delta / numPoints);
                    for(; delta > baseMinusTMin * tMax >> 1; k += base){
                        delta = floor(delta / baseMinusTMin);
                    }
                    return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
                }
                function decode3(input) {
                    var output = [], inputLength = input.length, out, i = 0, n = initialN, bias = initialBias, basic, j, index, oldi, w, k, digit, t, baseMinusT;
                    basic = input.lastIndexOf(delimiter);
                    if (basic < 0) {
                        basic = 0;
                    }
                    for(j = 0; j < basic; ++j){
                        if (input.charCodeAt(j) >= 128) {
                            error("not-basic");
                        }
                        output.push(input.charCodeAt(j));
                    }
                    for(index = basic > 0 ? basic + 1 : 0; index < inputLength;){
                        for(oldi = i, w = 1, k = base;; k += base){
                            if (index >= inputLength) {
                                error("invalid-input");
                            }
                            digit = basicToDigit(input.charCodeAt(index++));
                            if (digit >= base || digit > floor((maxInt - i) / w)) {
                                error("overflow");
                            }
                            i += digit * w;
                            t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
                            if (digit < t) {
                                break;
                            }
                            baseMinusT = base - t;
                            if (w > floor(maxInt / baseMinusT)) {
                                error("overflow");
                            }
                            w *= baseMinusT;
                        }
                        out = output.length + 1;
                        bias = adapt(i - oldi, out, oldi == 0);
                        if (floor(i / out) > maxInt - n) {
                            error("overflow");
                        }
                        n += floor(i / out);
                        i %= out;
                        output.splice(i++, 0, n);
                    }
                    return ucs2encode(output);
                }
                function encode3(input) {
                    var n, delta, handledCPCount, basicLength, bias, j, m, q, k, t, currentValue, output = [], inputLength, handledCPCountPlusOne, baseMinusT, qMinusT;
                    input = ucs2decode(input);
                    inputLength = input.length;
                    n = initialN;
                    delta = 0;
                    bias = initialBias;
                    for(j = 0; j < inputLength; ++j){
                        currentValue = input[j];
                        if (currentValue < 128) {
                            output.push(stringFromCharCode(currentValue));
                        }
                    }
                    handledCPCount = basicLength = output.length;
                    if (basicLength) {
                        output.push(delimiter);
                    }
                    while(handledCPCount < inputLength){
                        for(m = maxInt, j = 0; j < inputLength; ++j){
                            currentValue = input[j];
                            if (currentValue >= n && currentValue < m) {
                                m = currentValue;
                            }
                        }
                        handledCPCountPlusOne = handledCPCount + 1;
                        if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
                            error("overflow");
                        }
                        delta += (m - n) * handledCPCountPlusOne;
                        n = m;
                        for(j = 0; j < inputLength; ++j){
                            currentValue = input[j];
                            if (currentValue < n && ++delta > maxInt) {
                                error("overflow");
                            }
                            if (currentValue == n) {
                                for(q = delta, k = base;; k += base){
                                    t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
                                    if (q < t) {
                                        break;
                                    }
                                    qMinusT = q - t;
                                    baseMinusT = base - t;
                                    output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));
                                    q = floor(qMinusT / baseMinusT);
                                }
                                output.push(stringFromCharCode(digitToBasic(q, 0)));
                                bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
                                delta = 0;
                                ++handledCPCount;
                            }
                        }
                        ++delta;
                        ++n;
                    }
                    return output.join("");
                }
                function toUnicode(input) {
                    return mapDomain(input, function(string5) {
                        return regexPunycode.test(string5) ? decode3(string5.slice(4).toLowerCase()) : string5;
                    });
                }
                function toASCII(input) {
                    return mapDomain(input, function(string5) {
                        return regexNonASCII.test(string5) ? "xn--" + encode3(string5) : string5;
                    });
                }
                punycode = {
                    /**
           * A string representing the current Punycode.js version number.
           * @memberOf punycode
           * @type String
           */ version: "1.4.1",
                    /**
           * An object of methods to convert from JavaScript's internal character
           * representation (UCS-2) to Unicode code points, and back.
           * @see <https://mathiasbynens.be/notes/javascript-encoding>
           * @memberOf punycode
           * @type Object
           */ ucs2: {
                        decode: ucs2decode,
                        encode: ucs2encode
                    },
                    decode: decode3,
                    encode: encode3,
                    toASCII: toASCII,
                    toUnicode: toUnicode
                };
                if (typeof define == "function" && _type_of(define.amd) == "object" && define.amd) {
                    define("punycode", function() {
                        return punycode;
                    });
                } else if (freeExports && freeModule) {
                    if (module.exports == freeExports) {
                        freeModule.exports = punycode;
                    } else {
                        for(key in punycode){
                            punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
                        }
                    }
                } else {
                    root.punycode = punycode;
                }
            })(exports);
        }
    });
    // node_modules/es-errors/type.js
    var require_type = __commonJS({
        "node_modules/es-errors/type.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = TypeError;
        }
    });
    // (disabled):node_modules/object-inspect/util.inspect
    var require_util2 = __commonJS({
        "(disabled):node_modules/object-inspect/util.inspect": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // node_modules/object-inspect/index.js
    var require_object_inspect = __commonJS({
        "node_modules/object-inspect/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hasMap = typeof Map === "function" && Map.prototype;
            var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null;
            var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null;
            var mapForEach = hasMap && Map.prototype.forEach;
            var hasSet = typeof Set === "function" && Set.prototype;
            var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null;
            var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null;
            var setForEach = hasSet && Set.prototype.forEach;
            var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype;
            var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
            var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype;
            var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
            var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype;
            var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
            var booleanValueOf = Boolean.prototype.valueOf;
            var objectToString = Object.prototype.toString;
            var functionToString = Function.prototype.toString;
            var $match = String.prototype.match;
            var $slice = String.prototype.slice;
            var $replace = String.prototype.replace;
            var $toUpperCase = String.prototype.toUpperCase;
            var $toLowerCase = String.prototype.toLowerCase;
            var $test = RegExp.prototype.test;
            var $concat = Array.prototype.concat;
            var $join = Array.prototype.join;
            var $arrSlice = Array.prototype.slice;
            var $floor = Math.floor;
            var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null;
            var gOPS = Object.getOwnPropertySymbols;
            var symToString = typeof Symbol === "function" && _type_of(Symbol.iterator) === "symbol" ? Symbol.prototype.toString : null;
            var hasShammedSymbols = typeof Symbol === "function" && _type_of(Symbol.iterator) === "object";
            var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (_type_of(Symbol.toStringTag) === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null;
            var isEnumerable = Object.prototype.propertyIsEnumerable;
            var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) {
                return O.__proto__;
            } : null);
            function addNumericSeparator(num, str) {
                if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) {
                    return str;
                }
                var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
                if (typeof num === "number") {
                    var int = num < 0 ? -$floor(-num) : $floor(num);
                    if (int !== num) {
                        var intStr = String(int);
                        var dec = $slice.call(str, intStr.length + 1);
                        return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, "");
                    }
                }
                return $replace.call(str, sepRegex, "$&_");
            }
            var utilInspect = require_util2();
            var inspectCustom = utilInspect.custom;
            var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
            var quotes = {
                __proto__: null,
                double: '"',
                single: "'"
            };
            var quoteREs = {
                __proto__: null,
                double: /(["\\])/g,
                single: /(['\\])/g
            };
            module.exports = function inspect_(obj, options, depth, seen) {
                var opts = options || {};
                if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) {
                    throw new TypeError('option "quoteStyle" must be "single" or "double"');
                }
                if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {
                    throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
                }
                var customInspect = has(opts, "customInspect") ? opts.customInspect : true;
                if (typeof customInspect !== "boolean" && customInspect !== "symbol") {
                    throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");
                }
                if (has(opts, "indent") && opts.indent !== null && opts.indent !== "	" && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {
                    throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
                }
                if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") {
                    throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
                }
                var numericSeparator = opts.numericSeparator;
                if (typeof obj === "undefined") {
                    return "undefined";
                }
                if (obj === null) {
                    return "null";
                }
                if (typeof obj === "boolean") {
                    return obj ? "true" : "false";
                }
                if (typeof obj === "string") {
                    return inspectString(obj, opts);
                }
                if (typeof obj === "number") {
                    if (obj === 0) {
                        return Infinity / obj > 0 ? "0" : "-0";
                    }
                    var str = String(obj);
                    return numericSeparator ? addNumericSeparator(obj, str) : str;
                }
                if ((typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "bigint") {
                    var bigIntStr = String(obj) + "n";
                    return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
                }
                var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth;
                if (typeof depth === "undefined") {
                    depth = 0;
                }
                if (depth >= maxDepth && maxDepth > 0 && (typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "object") {
                    return isArray(obj) ? "[Array]" : "[Object]";
                }
                var indent = getIndent(opts, depth);
                if (typeof seen === "undefined") {
                    seen = [];
                } else if (indexOf(seen, obj) >= 0) {
                    return "[Circular]";
                }
                function inspect(value, from, noIndent) {
                    if (from) {
                        seen = $arrSlice.call(seen);
                        seen.push(from);
                    }
                    if (noIndent) {
                        var newOpts = {
                            depth: opts.depth
                        };
                        if (has(opts, "quoteStyle")) {
                            newOpts.quoteStyle = opts.quoteStyle;
                        }
                        return inspect_(value, newOpts, depth + 1, seen);
                    }
                    return inspect_(value, opts, depth + 1, seen);
                }
                if (typeof obj === "function" && !isRegExp(obj)) {
                    var name = nameOf(obj);
                    var keys = arrObjKeys(obj, inspect);
                    return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : "");
                }
                if (isSymbol(obj)) {
                    var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj);
                    return (typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "object" && !hasShammedSymbols ? markBoxed(symString) : symString;
                }
                if (isElement(obj)) {
                    var s = "<" + $toLowerCase.call(String(obj.nodeName));
                    var attrs = obj.attributes || [];
                    for(var i = 0; i < attrs.length; i++){
                        s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts);
                    }
                    s += ">";
                    if (obj.childNodes && obj.childNodes.length) {
                        s += "...";
                    }
                    s += "</" + $toLowerCase.call(String(obj.nodeName)) + ">";
                    return s;
                }
                if (isArray(obj)) {
                    if (obj.length === 0) {
                        return "[]";
                    }
                    var xs = arrObjKeys(obj, inspect);
                    if (indent && !singleLineValues(xs)) {
                        return "[" + indentedJoin(xs, indent) + "]";
                    }
                    return "[ " + $join.call(xs, ", ") + " ]";
                }
                if (isError(obj)) {
                    var parts = arrObjKeys(obj, inspect);
                    if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) {
                        return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }";
                    }
                    if (parts.length === 0) {
                        return "[" + String(obj) + "]";
                    }
                    return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }";
                }
                if ((typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "object" && customInspect) {
                    if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) {
                        return utilInspect(obj, {
                            depth: maxDepth - depth
                        });
                    } else if (customInspect !== "symbol" && typeof obj.inspect === "function") {
                        return obj.inspect();
                    }
                }
                if (isMap(obj)) {
                    var mapParts = [];
                    if (mapForEach) {
                        mapForEach.call(obj, function(value, key) {
                            mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj));
                        });
                    }
                    return collectionOf("Map", mapSize.call(obj), mapParts, indent);
                }
                if (isSet(obj)) {
                    var setParts = [];
                    if (setForEach) {
                        setForEach.call(obj, function(value) {
                            setParts.push(inspect(value, obj));
                        });
                    }
                    return collectionOf("Set", setSize.call(obj), setParts, indent);
                }
                if (isWeakMap(obj)) {
                    return weakCollectionOf("WeakMap");
                }
                if (isWeakSet(obj)) {
                    return weakCollectionOf("WeakSet");
                }
                if (isWeakRef(obj)) {
                    return weakCollectionOf("WeakRef");
                }
                if (isNumber(obj)) {
                    return markBoxed(inspect(Number(obj)));
                }
                if (isBigInt(obj)) {
                    return markBoxed(inspect(bigIntValueOf.call(obj)));
                }
                if (isBoolean(obj)) {
                    return markBoxed(booleanValueOf.call(obj));
                }
                if (isString(obj)) {
                    return markBoxed(inspect(String(obj)));
                }
                if (typeof window !== "undefined" && obj === window) {
                    return "{ [object Window] }";
                }
                if (typeof globalThis !== "undefined" && obj === globalThis || typeof globalThis !== "undefined" && obj === globalThis) {
                    return "{ [object globalThis] }";
                }
                if (!isDate(obj) && !isRegExp(obj)) {
                    var ys = arrObjKeys(obj, inspect);
                    var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
                    var protoTag = obj instanceof Object ? "" : "null prototype";
                    var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : "";
                    var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : "";
                    var tag2 = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : "");
                    if (ys.length === 0) {
                        return tag2 + "{}";
                    }
                    if (indent) {
                        return tag2 + "{" + indentedJoin(ys, indent) + "}";
                    }
                    return tag2 + "{ " + $join.call(ys, ", ") + " }";
                }
                return String(obj);
            };
            function wrapQuotes(s, defaultStyle, opts) {
                var style = opts.quoteStyle || defaultStyle;
                var quoteChar = quotes[style];
                return quoteChar + s + quoteChar;
            }
            function quote(s) {
                return $replace.call(String(s), /"/g, "&quot;");
            }
            function canTrustToString(obj) {
                return !toStringTag || !((typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined"));
            }
            function isArray(obj) {
                return toStr(obj) === "[object Array]" && canTrustToString(obj);
            }
            function isDate(obj) {
                return toStr(obj) === "[object Date]" && canTrustToString(obj);
            }
            function isRegExp(obj) {
                return toStr(obj) === "[object RegExp]" && canTrustToString(obj);
            }
            function isError(obj) {
                return toStr(obj) === "[object Error]" && canTrustToString(obj);
            }
            function isString(obj) {
                return toStr(obj) === "[object String]" && canTrustToString(obj);
            }
            function isNumber(obj) {
                return toStr(obj) === "[object Number]" && canTrustToString(obj);
            }
            function isBoolean(obj) {
                return toStr(obj) === "[object Boolean]" && canTrustToString(obj);
            }
            function isSymbol(obj) {
                if (hasShammedSymbols) {
                    return obj && (typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "object" && obj instanceof Symbol;
                }
                if ((typeof obj === "undefined" ? "undefined" : _type_of(obj)) === "symbol") {
                    return true;
                }
                if (!obj || (typeof obj === "undefined" ? "undefined" : _type_of(obj)) !== "object" || !symToString) {
                    return false;
                }
                try {
                    symToString.call(obj);
                    return true;
                } catch (e) {}
                return false;
            }
            function isBigInt(obj) {
                if (!obj || (typeof obj === "undefined" ? "undefined" : _type_of(obj)) !== "object" || !bigIntValueOf) {
                    return false;
                }
                try {
                    bigIntValueOf.call(obj);
                    return true;
                } catch (e) {}
                return false;
            }
            var hasOwn = Object.prototype.hasOwnProperty || function(key) {
                return key in this;
            };
            function has(obj, key) {
                return hasOwn.call(obj, key);
            }
            function toStr(obj) {
                return objectToString.call(obj);
            }
            function nameOf(f) {
                if (f.name) {
                    return f.name;
                }
                var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
                if (m) {
                    return m[1];
                }
                return null;
            }
            function indexOf(xs, x) {
                if (xs.indexOf) {
                    return xs.indexOf(x);
                }
                for(var i = 0, l = xs.length; i < l; i++){
                    if (xs[i] === x) {
                        return i;
                    }
                }
                return -1;
            }
            function isMap(x) {
                if (!mapSize || !x || (typeof x === "undefined" ? "undefined" : _type_of(x)) !== "object") {
                    return false;
                }
                try {
                    mapSize.call(x);
                    try {
                        setSize.call(x);
                    } catch (s) {
                        return true;
                    }
                    return x instanceof Map;
                } catch (e) {}
                return false;
            }
            function isWeakMap(x) {
                if (!weakMapHas || !x || (typeof x === "undefined" ? "undefined" : _type_of(x)) !== "object") {
                    return false;
                }
                try {
                    weakMapHas.call(x, weakMapHas);
                    try {
                        weakSetHas.call(x, weakSetHas);
                    } catch (s) {
                        return true;
                    }
                    return x instanceof WeakMap;
                } catch (e) {}
                return false;
            }
            function isWeakRef(x) {
                if (!weakRefDeref || !x || (typeof x === "undefined" ? "undefined" : _type_of(x)) !== "object") {
                    return false;
                }
                try {
                    weakRefDeref.call(x);
                    return true;
                } catch (e) {}
                return false;
            }
            function isSet(x) {
                if (!setSize || !x || (typeof x === "undefined" ? "undefined" : _type_of(x)) !== "object") {
                    return false;
                }
                try {
                    setSize.call(x);
                    try {
                        mapSize.call(x);
                    } catch (m) {
                        return true;
                    }
                    return x instanceof Set;
                } catch (e) {}
                return false;
            }
            function isWeakSet(x) {
                if (!weakSetHas || !x || (typeof x === "undefined" ? "undefined" : _type_of(x)) !== "object") {
                    return false;
                }
                try {
                    weakSetHas.call(x, weakSetHas);
                    try {
                        weakMapHas.call(x, weakMapHas);
                    } catch (s) {
                        return true;
                    }
                    return x instanceof WeakSet;
                } catch (e) {}
                return false;
            }
            function isElement(x) {
                if (!x || (typeof x === "undefined" ? "undefined" : _type_of(x)) !== "object") {
                    return false;
                }
                if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) {
                    return true;
                }
                return typeof x.nodeName === "string" && typeof x.getAttribute === "function";
            }
            function inspectString(str, opts) {
                if (str.length > opts.maxStringLength) {
                    var remaining = str.length - opts.maxStringLength;
                    var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : "");
                    return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
                }
                var quoteRE = quoteREs[opts.quoteStyle || "single"];
                quoteRE.lastIndex = 0;
                var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte);
                return wrapQuotes(s, "single", opts);
            }
            function lowbyte(c) {
                var n = c.charCodeAt(0);
                var x = {
                    8: "b",
                    9: "t",
                    10: "n",
                    12: "f",
                    13: "r"
                }[n];
                if (x) {
                    return "\\" + x;
                }
                return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16));
            }
            function markBoxed(str) {
                return "Object(" + str + ")";
            }
            function weakCollectionOf(type) {
                return type + " { ? }";
            }
            function collectionOf(type, size, entries, indent) {
                var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", ");
                return type + " (" + size + ") {" + joinedEntries + "}";
            }
            function singleLineValues(xs) {
                for(var i = 0; i < xs.length; i++){
                    if (indexOf(xs[i], "\n") >= 0) {
                        return false;
                    }
                }
                return true;
            }
            function getIndent(opts, depth) {
                var baseIndent;
                if (opts.indent === "	") {
                    baseIndent = "	";
                } else if (typeof opts.indent === "number" && opts.indent > 0) {
                    baseIndent = $join.call(Array(opts.indent + 1), " ");
                } else {
                    return null;
                }
                return {
                    base: baseIndent,
                    prev: $join.call(Array(depth + 1), baseIndent)
                };
            }
            function indentedJoin(xs, indent) {
                if (xs.length === 0) {
                    return "";
                }
                var lineJoiner = "\n" + indent.prev + indent.base;
                return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev;
            }
            function arrObjKeys(obj, inspect) {
                var isArr = isArray(obj);
                var xs = [];
                if (isArr) {
                    xs.length = obj.length;
                    for(var i = 0; i < obj.length; i++){
                        xs[i] = has(obj, i) ? inspect(obj[i], obj) : "";
                    }
                }
                var syms = typeof gOPS === "function" ? gOPS(obj) : [];
                var symMap;
                if (hasShammedSymbols) {
                    symMap = {};
                    for(var k = 0; k < syms.length; k++){
                        symMap["$" + syms[k]] = syms[k];
                    }
                }
                for(var key in obj){
                    if (!has(obj, key)) {
                        continue;
                    }
                    if (isArr && String(Number(key)) === key && key < obj.length) {
                        continue;
                    }
                    if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) {
                        continue;
                    } else if ($test.call(/[^\w$]/, key)) {
                        xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj));
                    } else {
                        xs.push(key + ": " + inspect(obj[key], obj));
                    }
                }
                if (typeof gOPS === "function") {
                    for(var j = 0; j < syms.length; j++){
                        if (isEnumerable.call(obj, syms[j])) {
                            xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj));
                        }
                    }
                }
                return xs;
            }
        }
    });
    // node_modules/side-channel-list/index.js
    var require_side_channel_list = __commonJS({
        "node_modules/side-channel-list/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inspect = require_object_inspect();
            var $TypeError = require_type();
            var listGetNode = function listGetNode(list, key, isDelete) {
                var prev = list;
                var curr;
                for(; (curr = prev.next) != null; prev = curr){
                    if (curr.key === key) {
                        prev.next = curr.next;
                        if (!isDelete) {
                            curr.next = /** @type {NonNullable<typeof list.next>} */ list.next;
                            list.next = curr;
                        }
                        return curr;
                    }
                }
            };
            var listGet = function listGet(objects, key) {
                if (!objects) {
                    return void 0;
                }
                var node = listGetNode(objects, key);
                return node && node.value;
            };
            var listSet = function listSet(objects, key, value) {
                var node = listGetNode(objects, key);
                if (node) {
                    node.value = value;
                } else {
                    objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */ {
                        // eslint-disable-line no-param-reassign, no-extra-parens
                        key: key,
                        next: objects.next,
                        value: value
                    };
                }
            };
            var listHas = function listHas(objects, key) {
                if (!objects) {
                    return false;
                }
                return !!listGetNode(objects, key);
            };
            var listDelete = function listDelete(objects, key) {
                if (objects) {
                    return listGetNode(objects, key, true);
                }
            };
            module.exports = function getSideChannelList() {
                var $o;
                var channel4 = {
                    assert: function assert(key) {
                        if (!channel4.has(key)) {
                            throw new $TypeError("Side channel does not contain " + inspect(key));
                        }
                    },
                    "delete": function(key) {
                        var deletedNode = listDelete($o, key);
                        if (deletedNode && $o && !$o.next) {
                            $o = void 0;
                        }
                        return !!deletedNode;
                    },
                    get: function get(key) {
                        return listGet($o, key);
                    },
                    has: function has(key) {
                        return listHas($o, key);
                    },
                    set: function set(key, value) {
                        if (!$o) {
                            $o = {
                                next: void 0
                            };
                        }
                        listSet(/** @type {NonNullable<typeof $o>} */ $o, key, value);
                    }
                };
                return channel4;
            };
        }
    });
    // node_modules/es-object-atoms/index.js
    var require_es_object_atoms = __commonJS({
        "node_modules/es-object-atoms/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Object;
        }
    });
    // node_modules/es-errors/index.js
    var require_es_errors = __commonJS({
        "node_modules/es-errors/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Error;
        }
    });
    // node_modules/es-errors/eval.js
    var require_eval = __commonJS({
        "node_modules/es-errors/eval.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = EvalError;
        }
    });
    // node_modules/es-errors/range.js
    var require_range = __commonJS({
        "node_modules/es-errors/range.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = RangeError;
        }
    });
    // node_modules/es-errors/ref.js
    var require_ref = __commonJS({
        "node_modules/es-errors/ref.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = ReferenceError;
        }
    });
    // node_modules/es-errors/syntax.js
    var require_syntax = __commonJS({
        "node_modules/es-errors/syntax.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = SyntaxError;
        }
    });
    // node_modules/es-errors/uri.js
    var require_uri = __commonJS({
        "node_modules/es-errors/uri.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = URIError;
        }
    });
    // node_modules/math-intrinsics/abs.js
    var require_abs = __commonJS({
        "node_modules/math-intrinsics/abs.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Math.abs;
        }
    });
    // node_modules/math-intrinsics/floor.js
    var require_floor = __commonJS({
        "node_modules/math-intrinsics/floor.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Math.floor;
        }
    });
    // node_modules/math-intrinsics/max.js
    var require_max = __commonJS({
        "node_modules/math-intrinsics/max.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Math.max;
        }
    });
    // node_modules/math-intrinsics/min.js
    var require_min = __commonJS({
        "node_modules/math-intrinsics/min.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Math.min;
        }
    });
    // node_modules/math-intrinsics/pow.js
    var require_pow = __commonJS({
        "node_modules/math-intrinsics/pow.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Math.pow;
        }
    });
    // node_modules/math-intrinsics/round.js
    var require_round = __commonJS({
        "node_modules/math-intrinsics/round.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Math.round;
        }
    });
    // node_modules/math-intrinsics/isNaN.js
    var require_isNaN = __commonJS({
        "node_modules/math-intrinsics/isNaN.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Number.isNaN || function isNaN2(a) {
                return a !== a;
            };
        }
    });
    // node_modules/math-intrinsics/sign.js
    var require_sign = __commonJS({
        "node_modules/math-intrinsics/sign.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $isNaN = require_isNaN();
            module.exports = function sign2(number) {
                if ($isNaN(number) || number === 0) {
                    return number;
                }
                return number < 0 ? -1 : 1;
            };
        }
    });
    // node_modules/gopd/gOPD.js
    var require_gOPD = __commonJS({
        "node_modules/gopd/gOPD.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Object.getOwnPropertyDescriptor;
        }
    });
    // node_modules/gopd/index.js
    var require_gopd = __commonJS({
        "node_modules/gopd/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $gOPD = require_gOPD();
            if ($gOPD) {
                try {
                    $gOPD([], "length");
                } catch (e) {
                    $gOPD = null;
                }
            }
            module.exports = $gOPD;
        }
    });
    // node_modules/es-define-property/index.js
    var require_es_define_property = __commonJS({
        "node_modules/es-define-property/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $defineProperty = Object.defineProperty || false;
            if ($defineProperty) {
                try {
                    $defineProperty({}, "a", {
                        value: 1
                    });
                } catch (e) {
                    $defineProperty = false;
                }
            }
            module.exports = $defineProperty;
        }
    });
    // node_modules/has-symbols/shams.js
    var require_shams = __commonJS({
        "node_modules/has-symbols/shams.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function hasSymbols() {
                if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
                    return false;
                }
                if (_type_of(Symbol.iterator) === "symbol") {
                    return true;
                }
                var obj = {};
                var sym = Symbol("test");
                var symObj = Object(sym);
                if (typeof sym === "string") {
                    return false;
                }
                if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
                    return false;
                }
                if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
                    return false;
                }
                var symVal = 42;
                obj[sym] = symVal;
                for(var _2 in obj){
                    return false;
                }
                if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
                    return false;
                }
                if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
                    return false;
                }
                var syms = Object.getOwnPropertySymbols(obj);
                if (syms.length !== 1 || syms[0] !== sym) {
                    return false;
                }
                if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
                    return false;
                }
                if (typeof Object.getOwnPropertyDescriptor === "function") {
                    var descriptor = /** @type {PropertyDescriptor} */ Object.getOwnPropertyDescriptor(obj, sym);
                    if (descriptor.value !== symVal || descriptor.enumerable !== true) {
                        return false;
                    }
                }
                return true;
            };
        }
    });
    // node_modules/has-symbols/index.js
    var require_has_symbols = __commonJS({
        "node_modules/has-symbols/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var origSymbol = typeof Symbol !== "undefined" && Symbol;
            var hasSymbolSham = require_shams();
            module.exports = function hasNativeSymbols() {
                if (typeof origSymbol !== "function") {
                    return false;
                }
                if (typeof Symbol !== "function") {
                    return false;
                }
                if (_type_of(origSymbol("foo")) !== "symbol") {
                    return false;
                }
                if (_type_of(Symbol("bar")) !== "symbol") {
                    return false;
                }
                return hasSymbolSham();
            };
        }
    });
    // node_modules/get-proto/Reflect.getPrototypeOf.js
    var require_Reflect_getPrototypeOf = __commonJS({
        "node_modules/get-proto/Reflect.getPrototypeOf.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
        }
    });
    // node_modules/get-proto/Object.getPrototypeOf.js
    var require_Object_getPrototypeOf = __commonJS({
        "node_modules/get-proto/Object.getPrototypeOf.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $Object = require_es_object_atoms();
            module.exports = $Object.getPrototypeOf || null;
        }
    });
    // node_modules/function-bind/implementation.js
    var require_implementation = __commonJS({
        "node_modules/function-bind/implementation.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
            var toStr = Object.prototype.toString;
            var max = Math.max;
            var funcType = "[object Function]";
            var concatty = function concatty2(a, b) {
                var arr = [];
                for(var i = 0; i < a.length; i += 1){
                    arr[i] = a[i];
                }
                for(var j = 0; j < b.length; j += 1){
                    arr[j + a.length] = b[j];
                }
                return arr;
            };
            var slicy = function slicy2(arrLike, offset) {
                var arr = [];
                for(var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1){
                    arr[j] = arrLike[i];
                }
                return arr;
            };
            var joiny = function joiny(arr, joiner) {
                var str = "";
                for(var i = 0; i < arr.length; i += 1){
                    str += arr[i];
                    if (i + 1 < arr.length) {
                        str += joiner;
                    }
                }
                return str;
            };
            module.exports = function bind(that) {
                var target = this;
                if (typeof target !== "function" || toStr.apply(target) !== funcType) {
                    throw new TypeError(ERROR_MESSAGE + target);
                }
                var args = slicy(arguments, 1);
                var bound;
                var binder = function binder() {
                    if (this instanceof bound) {
                        var result17 = target.apply(this, concatty(args, arguments));
                        if (Object(result17) === result17) {
                            return result17;
                        }
                        return this;
                    }
                    return target.apply(that, concatty(args, arguments));
                };
                var boundLength = max(0, target.length - args.length);
                var boundArgs = [];
                for(var i = 0; i < boundLength; i++){
                    boundArgs[i] = "$" + i;
                }
                bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
                if (target.prototype) {
                    var Empty = function Empty2() {};
                    Empty.prototype = target.prototype;
                    bound.prototype = new Empty();
                    Empty.prototype = null;
                }
                return bound;
            };
        }
    });
    // node_modules/function-bind/index.js
    var require_function_bind = __commonJS({
        "node_modules/function-bind/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var implementation = require_implementation();
            module.exports = Function.prototype.bind || implementation;
        }
    });
    // node_modules/call-bind-apply-helpers/functionCall.js
    var require_functionCall = __commonJS({
        "node_modules/call-bind-apply-helpers/functionCall.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Function.prototype.call;
        }
    });
    // node_modules/call-bind-apply-helpers/functionApply.js
    var require_functionApply = __commonJS({
        "node_modules/call-bind-apply-helpers/functionApply.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Function.prototype.apply;
        }
    });
    // node_modules/call-bind-apply-helpers/reflectApply.js
    var require_reflectApply = __commonJS({
        "node_modules/call-bind-apply-helpers/reflectApply.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
        }
    });
    // node_modules/call-bind-apply-helpers/actualApply.js
    var require_actualApply = __commonJS({
        "node_modules/call-bind-apply-helpers/actualApply.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var bind = require_function_bind();
            var $apply = require_functionApply();
            var $call = require_functionCall();
            var $reflectApply = require_reflectApply();
            module.exports = $reflectApply || bind.call($call, $apply);
        }
    });
    // node_modules/call-bind-apply-helpers/index.js
    var require_call_bind_apply_helpers = __commonJS({
        "node_modules/call-bind-apply-helpers/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var bind = require_function_bind();
            var $TypeError = require_type();
            var $call = require_functionCall();
            var $actualApply = require_actualApply();
            module.exports = function callBindBasic(args) {
                if (args.length < 1 || typeof args[0] !== "function") {
                    throw new $TypeError("a function is required");
                }
                return $actualApply(bind, $call, args);
            };
        }
    });
    // node_modules/dunder-proto/get.js
    var require_get = __commonJS({
        "node_modules/dunder-proto/get.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var callBind = require_call_bind_apply_helpers();
            var gOPD = require_gopd();
            var hasProtoAccessor;
            try {
                hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ [].__proto__ === Array.prototype;
            } catch (e) {
                if (!e || (typeof e === "undefined" ? "undefined" : _type_of(e)) !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") {
                    throw e;
                }
            }
            var desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ "__proto__");
            var $Object = Object;
            var $getPrototypeOf = $Object.getPrototypeOf;
            module.exports = desc && typeof desc.get === "function" ? callBind([
                desc.get
            ]) : typeof $getPrototypeOf === "function" ? /** @type {import('./get')} */ function getDunder(value) {
                return $getPrototypeOf(value == null ? value : $Object(value));
            } : false;
        }
    });
    // node_modules/get-proto/index.js
    var require_get_proto = __commonJS({
        "node_modules/get-proto/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var reflectGetProto = require_Reflect_getPrototypeOf();
            var originalGetProto = require_Object_getPrototypeOf();
            var getDunderProto = require_get();
            module.exports = reflectGetProto ? function getProto(O) {
                return reflectGetProto(O);
            } : originalGetProto ? function getProto(O) {
                if (!O || (typeof O === "undefined" ? "undefined" : _type_of(O)) !== "object" && typeof O !== "function") {
                    throw new TypeError("getProto: not an object");
                }
                return originalGetProto(O);
            } : getDunderProto ? function getProto(O) {
                return getDunderProto(O);
            } : null;
        }
    });
    // node_modules/hasown/index.js
    var require_hasown = __commonJS({
        "node_modules/hasown/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var call2 = Function.prototype.call;
            var $hasOwn = Object.prototype.hasOwnProperty;
            var bind = require_function_bind();
            module.exports = bind.call(call2, $hasOwn);
        }
    });
    // node_modules/get-intrinsic/index.js
    var require_get_intrinsic = __commonJS({
        "node_modules/get-intrinsic/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var undefined2;
            var $Object = require_es_object_atoms();
            var $Error = require_es_errors();
            var $EvalError = require_eval();
            var $RangeError = require_range();
            var $ReferenceError = require_ref();
            var $SyntaxError = require_syntax();
            var $TypeError = require_type();
            var $URIError = require_uri();
            var abs = require_abs();
            var floor = require_floor();
            var max = require_max();
            var min = require_min();
            var pow = require_pow();
            var round = require_round();
            var sign2 = require_sign();
            var $Function = Function;
            var getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {
                try {
                    return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
                } catch (e) {}
            };
            var $gOPD = require_gopd();
            var $defineProperty = require_es_define_property();
            var throwTypeError = function throwTypeError() {
                throw new $TypeError();
            };
            var ThrowTypeError = $gOPD ? function() {
                try {
                    arguments.callee;
                    return throwTypeError;
                } catch (calleeThrows) {
                    try {
                        return $gOPD(arguments, "callee").get;
                    } catch (gOPDthrows) {
                        return throwTypeError;
                    }
                }
            }() : throwTypeError;
            var hasSymbols = require_has_symbols()();
            var getProto = require_get_proto();
            var $ObjectGPO = require_Object_getPrototypeOf();
            var $ReflectGPO = require_Reflect_getPrototypeOf();
            var $apply = require_functionApply();
            var $call = require_functionCall();
            var needsEval = {};
            var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
            var INTRINSICS = {
                __proto__: null,
                "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
                "%Array%": Array,
                "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
                "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
                "%AsyncFromSyncIteratorPrototype%": undefined2,
                "%AsyncFunction%": needsEval,
                "%AsyncGenerator%": needsEval,
                "%AsyncGeneratorFunction%": needsEval,
                "%AsyncIteratorPrototype%": needsEval,
                "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
                "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
                "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
                "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
                "%Boolean%": Boolean,
                "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
                "%Date%": Date,
                "%decodeURI%": decodeURI,
                "%decodeURIComponent%": decodeURIComponent,
                "%encodeURI%": encodeURI,
                "%encodeURIComponent%": encodeURIComponent,
                "%Error%": $Error,
                "%eval%": eval,
                // eslint-disable-line no-eval
                "%EvalError%": $EvalError,
                "%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array,
                "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
                "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
                "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
                "%Function%": $Function,
                "%GeneratorFunction%": needsEval,
                "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
                "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
                "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
                "%isFinite%": isFinite,
                "%isNaN%": isNaN,
                "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
                "%JSON%": (typeof JSON === "undefined" ? "undefined" : _type_of(JSON)) === "object" ? JSON : undefined2,
                "%Map%": typeof Map === "undefined" ? undefined2 : Map,
                "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto(/* @__PURE__ */ new Map()[Symbol.iterator]()),
                "%Math%": Math,
                "%Number%": Number,
                "%Object%": $Object,
                "%Object.getOwnPropertyDescriptor%": $gOPD,
                "%parseFloat%": parseFloat,
                "%parseInt%": parseInt,
                "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
                "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
                "%RangeError%": $RangeError,
                "%ReferenceError%": $ReferenceError,
                "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
                "%RegExp%": RegExp,
                "%Set%": typeof Set === "undefined" ? undefined2 : Set,
                "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto(/* @__PURE__ */ new Set()[Symbol.iterator]()),
                "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
                "%String%": String,
                "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
                "%Symbol%": hasSymbols ? Symbol : undefined2,
                "%SyntaxError%": $SyntaxError,
                "%ThrowTypeError%": ThrowTypeError,
                "%TypedArray%": TypedArray,
                "%TypeError%": $TypeError,
                "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
                "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
                "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
                "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
                "%URIError%": $URIError,
                "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
                "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
                "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet,
                "%Function.prototype.call%": $call,
                "%Function.prototype.apply%": $apply,
                "%Object.defineProperty%": $defineProperty,
                "%Object.getPrototypeOf%": $ObjectGPO,
                "%Math.abs%": abs,
                "%Math.floor%": floor,
                "%Math.max%": max,
                "%Math.min%": min,
                "%Math.pow%": pow,
                "%Math.round%": round,
                "%Math.sign%": sign2,
                "%Reflect.getPrototypeOf%": $ReflectGPO
            };
            if (getProto) {
                try {
                    null.error;
                } catch (e) {
                    errorProto = getProto(getProto(e));
                    INTRINSICS["%Error.prototype%"] = errorProto;
                }
            }
            var errorProto;
            var doEval = function doEval2(name) {
                var value;
                if (name === "%AsyncFunction%") {
                    value = getEvalledConstructor("async function () {}");
                } else if (name === "%GeneratorFunction%") {
                    value = getEvalledConstructor("function* () {}");
                } else if (name === "%AsyncGeneratorFunction%") {
                    value = getEvalledConstructor("async function* () {}");
                } else if (name === "%AsyncGenerator%") {
                    var fn = doEval2("%AsyncGeneratorFunction%");
                    if (fn) {
                        value = fn.prototype;
                    }
                } else if (name === "%AsyncIteratorPrototype%") {
                    var gen = doEval2("%AsyncGenerator%");
                    if (gen && getProto) {
                        value = getProto(gen.prototype);
                    }
                }
                INTRINSICS[name] = value;
                return value;
            };
            var LEGACY_ALIASES = {
                __proto__: null,
                "%ArrayBufferPrototype%": [
                    "ArrayBuffer",
                    "prototype"
                ],
                "%ArrayPrototype%": [
                    "Array",
                    "prototype"
                ],
                "%ArrayProto_entries%": [
                    "Array",
                    "prototype",
                    "entries"
                ],
                "%ArrayProto_forEach%": [
                    "Array",
                    "prototype",
                    "forEach"
                ],
                "%ArrayProto_keys%": [
                    "Array",
                    "prototype",
                    "keys"
                ],
                "%ArrayProto_values%": [
                    "Array",
                    "prototype",
                    "values"
                ],
                "%AsyncFunctionPrototype%": [
                    "AsyncFunction",
                    "prototype"
                ],
                "%AsyncGenerator%": [
                    "AsyncGeneratorFunction",
                    "prototype"
                ],
                "%AsyncGeneratorPrototype%": [
                    "AsyncGeneratorFunction",
                    "prototype",
                    "prototype"
                ],
                "%BooleanPrototype%": [
                    "Boolean",
                    "prototype"
                ],
                "%DataViewPrototype%": [
                    "DataView",
                    "prototype"
                ],
                "%DatePrototype%": [
                    "Date",
                    "prototype"
                ],
                "%ErrorPrototype%": [
                    "Error",
                    "prototype"
                ],
                "%EvalErrorPrototype%": [
                    "EvalError",
                    "prototype"
                ],
                "%Float32ArrayPrototype%": [
                    "Float32Array",
                    "prototype"
                ],
                "%Float64ArrayPrototype%": [
                    "Float64Array",
                    "prototype"
                ],
                "%FunctionPrototype%": [
                    "Function",
                    "prototype"
                ],
                "%Generator%": [
                    "GeneratorFunction",
                    "prototype"
                ],
                "%GeneratorPrototype%": [
                    "GeneratorFunction",
                    "prototype",
                    "prototype"
                ],
                "%Int8ArrayPrototype%": [
                    "Int8Array",
                    "prototype"
                ],
                "%Int16ArrayPrototype%": [
                    "Int16Array",
                    "prototype"
                ],
                "%Int32ArrayPrototype%": [
                    "Int32Array",
                    "prototype"
                ],
                "%JSONParse%": [
                    "JSON",
                    "parse"
                ],
                "%JSONStringify%": [
                    "JSON",
                    "stringify"
                ],
                "%MapPrototype%": [
                    "Map",
                    "prototype"
                ],
                "%NumberPrototype%": [
                    "Number",
                    "prototype"
                ],
                "%ObjectPrototype%": [
                    "Object",
                    "prototype"
                ],
                "%ObjProto_toString%": [
                    "Object",
                    "prototype",
                    "toString"
                ],
                "%ObjProto_valueOf%": [
                    "Object",
                    "prototype",
                    "valueOf"
                ],
                "%PromisePrototype%": [
                    "Promise",
                    "prototype"
                ],
                "%PromiseProto_then%": [
                    "Promise",
                    "prototype",
                    "then"
                ],
                "%Promise_all%": [
                    "Promise",
                    "all"
                ],
                "%Promise_reject%": [
                    "Promise",
                    "reject"
                ],
                "%Promise_resolve%": [
                    "Promise",
                    "resolve"
                ],
                "%RangeErrorPrototype%": [
                    "RangeError",
                    "prototype"
                ],
                "%ReferenceErrorPrototype%": [
                    "ReferenceError",
                    "prototype"
                ],
                "%RegExpPrototype%": [
                    "RegExp",
                    "prototype"
                ],
                "%SetPrototype%": [
                    "Set",
                    "prototype"
                ],
                "%SharedArrayBufferPrototype%": [
                    "SharedArrayBuffer",
                    "prototype"
                ],
                "%StringPrototype%": [
                    "String",
                    "prototype"
                ],
                "%SymbolPrototype%": [
                    "Symbol",
                    "prototype"
                ],
                "%SyntaxErrorPrototype%": [
                    "SyntaxError",
                    "prototype"
                ],
                "%TypedArrayPrototype%": [
                    "TypedArray",
                    "prototype"
                ],
                "%TypeErrorPrototype%": [
                    "TypeError",
                    "prototype"
                ],
                "%Uint8ArrayPrototype%": [
                    "Uint8Array",
                    "prototype"
                ],
                "%Uint8ClampedArrayPrototype%": [
                    "Uint8ClampedArray",
                    "prototype"
                ],
                "%Uint16ArrayPrototype%": [
                    "Uint16Array",
                    "prototype"
                ],
                "%Uint32ArrayPrototype%": [
                    "Uint32Array",
                    "prototype"
                ],
                "%URIErrorPrototype%": [
                    "URIError",
                    "prototype"
                ],
                "%WeakMapPrototype%": [
                    "WeakMap",
                    "prototype"
                ],
                "%WeakSetPrototype%": [
                    "WeakSet",
                    "prototype"
                ]
            };
            var bind = require_function_bind();
            var hasOwn = require_hasown();
            var $concat = bind.call($call, Array.prototype.concat);
            var $spliceApply = bind.call($apply, Array.prototype.splice);
            var $replace = bind.call($call, String.prototype.replace);
            var $strSlice = bind.call($call, String.prototype.slice);
            var $exec = bind.call($call, RegExp.prototype.exec);
            var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
            var reEscapeChar = /\\(\\)?/g;
            var stringToPath = function stringToPath2(string5) {
                var first = $strSlice(string5, 0, 1);
                var last = $strSlice(string5, -1);
                if (first === "%" && last !== "%") {
                    throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
                } else if (last === "%" && first !== "%") {
                    throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
                }
                var result17 = [];
                $replace(string5, rePropName, function(match, number, quote, subString) {
                    result17[result17.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match;
                });
                return result17;
            };
            var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) {
                var intrinsicName = name;
                var alias;
                if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
                    alias = LEGACY_ALIASES[intrinsicName];
                    intrinsicName = "%" + alias[0] + "%";
                }
                if (hasOwn(INTRINSICS, intrinsicName)) {
                    var value = INTRINSICS[intrinsicName];
                    if (value === needsEval) {
                        value = doEval(intrinsicName);
                    }
                    if (typeof value === "undefined" && !allowMissing) {
                        throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
                    }
                    return {
                        alias: alias,
                        name: intrinsicName,
                        value: value
                    };
                }
                throw new $SyntaxError("intrinsic " + name + " does not exist!");
            };
            module.exports = function GetIntrinsic(name, allowMissing) {
                if (typeof name !== "string" || name.length === 0) {
                    throw new $TypeError("intrinsic name must be a non-empty string");
                }
                if (arguments.length > 1 && typeof allowMissing !== "boolean") {
                    throw new $TypeError('"allowMissing" argument must be a boolean');
                }
                if ($exec(/^%?[^%]*%?$/, name) === null) {
                    throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
                }
                var parts = stringToPath(name);
                var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
                var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
                var intrinsicRealName = intrinsic.name;
                var value = intrinsic.value;
                var skipFurtherCaching = false;
                var alias = intrinsic.alias;
                if (alias) {
                    intrinsicBaseName = alias[0];
                    $spliceApply(parts, $concat([
                        0,
                        1
                    ], alias));
                }
                for(var i = 1, isOwn = true; i < parts.length; i += 1){
                    var part = parts[i];
                    var first = $strSlice(part, 0, 1);
                    var last = $strSlice(part, -1);
                    if ((first === '"' || first === "'" || first === "`" || last === '"' || last === "'" || last === "`") && first !== last) {
                        throw new $SyntaxError("property names with quotes must have matching quotes");
                    }
                    if (part === "constructor" || !isOwn) {
                        skipFurtherCaching = true;
                    }
                    intrinsicBaseName += "." + part;
                    intrinsicRealName = "%" + intrinsicBaseName + "%";
                    if (hasOwn(INTRINSICS, intrinsicRealName)) {
                        value = INTRINSICS[intrinsicRealName];
                    } else if (value != null) {
                        if (!(part in value)) {
                            if (!allowMissing) {
                                throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
                            }
                            return void 0;
                        }
                        if ($gOPD && i + 1 >= parts.length) {
                            var desc = $gOPD(value, part);
                            isOwn = !!desc;
                            if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
                                value = desc.get;
                            } else {
                                value = value[part];
                            }
                        } else {
                            isOwn = hasOwn(value, part);
                            value = value[part];
                        }
                        if (isOwn && !skipFurtherCaching) {
                            INTRINSICS[intrinsicRealName] = value;
                        }
                    }
                }
                return value;
            };
        }
    });
    // node_modules/call-bound/index.js
    var require_call_bound = __commonJS({
        "node_modules/call-bound/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var GetIntrinsic = require_get_intrinsic();
            var callBindBasic = require_call_bind_apply_helpers();
            var $indexOf = callBindBasic([
                GetIntrinsic("%String.prototype.indexOf%")
            ]);
            module.exports = function callBoundIntrinsic(name, allowMissing) {
                var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ GetIntrinsic(name, !!allowMissing);
                if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) {
                    return callBindBasic(/** @type {const} */ [
                        intrinsic
                    ]);
                }
                return intrinsic;
            };
        }
    });
    // node_modules/side-channel-map/index.js
    var require_side_channel_map = __commonJS({
        "node_modules/side-channel-map/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var GetIntrinsic = require_get_intrinsic();
            var callBound = require_call_bound();
            var inspect = require_object_inspect();
            var $TypeError = require_type();
            var $Map = GetIntrinsic("%Map%", true);
            var $mapGet = callBound("Map.prototype.get", true);
            var $mapSet = callBound("Map.prototype.set", true);
            var $mapHas = callBound("Map.prototype.has", true);
            var $mapDelete = callBound("Map.prototype.delete", true);
            var $mapSize = callBound("Map.prototype.size", true);
            module.exports = !!$Map && /** @type {Exclude<import('.'), false>} */ function getSideChannelMap() {
                var $m;
                var channel4 = {
                    assert: function assert(key) {
                        if (!channel4.has(key)) {
                            throw new $TypeError("Side channel does not contain " + inspect(key));
                        }
                    },
                    "delete": function(key) {
                        if ($m) {
                            var result17 = $mapDelete($m, key);
                            if ($mapSize($m) === 0) {
                                $m = void 0;
                            }
                            return result17;
                        }
                        return false;
                    },
                    get: function get(key) {
                        if ($m) {
                            return $mapGet($m, key);
                        }
                    },
                    has: function has(key) {
                        if ($m) {
                            return $mapHas($m, key);
                        }
                        return false;
                    },
                    set: function set(key, value) {
                        if (!$m) {
                            $m = new $Map();
                        }
                        $mapSet($m, key, value);
                    }
                };
                return channel4;
            };
        }
    });
    // node_modules/side-channel-weakmap/index.js
    var require_side_channel_weakmap = __commonJS({
        "node_modules/side-channel-weakmap/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var GetIntrinsic = require_get_intrinsic();
            var callBound = require_call_bound();
            var inspect = require_object_inspect();
            var getSideChannelMap = require_side_channel_map();
            var $TypeError = require_type();
            var $WeakMap = GetIntrinsic("%WeakMap%", true);
            var $weakMapGet = callBound("WeakMap.prototype.get", true);
            var $weakMapSet = callBound("WeakMap.prototype.set", true);
            var $weakMapHas = callBound("WeakMap.prototype.has", true);
            var $weakMapDelete = callBound("WeakMap.prototype.delete", true);
            module.exports = $WeakMap ? /** @type {Exclude<import('.'), false>} */ function getSideChannelWeakMap() {
                var $wm;
                var $m;
                var channel4 = {
                    assert: function assert(key) {
                        if (!channel4.has(key)) {
                            throw new $TypeError("Side channel does not contain " + inspect(key));
                        }
                    },
                    "delete": function(key) {
                        if ($WeakMap && key && ((typeof key === "undefined" ? "undefined" : _type_of(key)) === "object" || typeof key === "function")) {
                            if ($wm) {
                                return $weakMapDelete($wm, key);
                            }
                        } else if (getSideChannelMap) {
                            if ($m) {
                                return $m["delete"](key);
                            }
                        }
                        return false;
                    },
                    get: function get(key) {
                        if ($WeakMap && key && ((typeof key === "undefined" ? "undefined" : _type_of(key)) === "object" || typeof key === "function")) {
                            if ($wm) {
                                return $weakMapGet($wm, key);
                            }
                        }
                        return $m && $m.get(key);
                    },
                    has: function has(key) {
                        if ($WeakMap && key && ((typeof key === "undefined" ? "undefined" : _type_of(key)) === "object" || typeof key === "function")) {
                            if ($wm) {
                                return $weakMapHas($wm, key);
                            }
                        }
                        return !!$m && $m.has(key);
                    },
                    set: function set(key, value) {
                        if ($WeakMap && key && ((typeof key === "undefined" ? "undefined" : _type_of(key)) === "object" || typeof key === "function")) {
                            if (!$wm) {
                                $wm = new $WeakMap();
                            }
                            $weakMapSet($wm, key, value);
                        } else if (getSideChannelMap) {
                            if (!$m) {
                                $m = getSideChannelMap();
                            }
                            $m.set(key, value);
                        }
                    }
                };
                return channel4;
            } : getSideChannelMap;
        }
    });
    // node_modules/side-channel/index.js
    var require_side_channel = __commonJS({
        "node_modules/side-channel/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $TypeError = require_type();
            var inspect = require_object_inspect();
            var getSideChannelList = require_side_channel_list();
            var getSideChannelMap = require_side_channel_map();
            var getSideChannelWeakMap = require_side_channel_weakmap();
            var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;
            module.exports = function getSideChannel() {
                var $channelData;
                var channel4 = {
                    assert: function assert(key) {
                        if (!channel4.has(key)) {
                            var keyDesc = key && Object(key) === key ? "the given object key" : inspect(key);
                            throw new $TypeError("Side channel does not contain " + keyDesc);
                        }
                    },
                    "delete": function(key) {
                        return !!$channelData && $channelData["delete"](key);
                    },
                    get: function get(key) {
                        return $channelData && $channelData.get(key);
                    },
                    has: function has(key) {
                        return !!$channelData && $channelData.has(key);
                    },
                    set: function set(key, value) {
                        if (!$channelData) {
                            $channelData = makeChannel();
                        }
                        $channelData.set(key, value);
                    }
                };
                return channel4;
            };
        }
    });
    // node_modules/url/node_modules/qs/lib/formats.js
    var require_formats = __commonJS({
        "node_modules/url/node_modules/qs/lib/formats.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var replace = String.prototype.replace;
            var percentTwenties = /%20/g;
            var Format = {
                RFC1738: "RFC1738",
                RFC3986: "RFC3986"
            };
            module.exports = {
                "default": Format.RFC3986,
                formatters: {
                    RFC1738: function RFC1738(value) {
                        return replace.call(value, percentTwenties, "+");
                    },
                    RFC3986: function RFC3986(value) {
                        return String(value);
                    }
                },
                RFC1738: Format.RFC1738,
                RFC3986: Format.RFC3986
            };
        }
    });
    // node_modules/url/node_modules/qs/lib/utils.js
    var require_utils = __commonJS({
        "node_modules/url/node_modules/qs/lib/utils.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var formats = require_formats();
            var getSideChannel = require_side_channel();
            var defineProperty = require_es_define_property();
            var has = Object.prototype.hasOwnProperty;
            var isArray = Array.isArray;
            var overflowChannel = getSideChannel();
            var markOverflow = function markOverflow2(obj, maxIndex) {
                overflowChannel.set(obj, maxIndex);
                return obj;
            };
            var isOverflow = function isOverflow2(obj) {
                return overflowChannel.has(obj);
            };
            var getMaxIndex = function getMaxIndex2(obj) {
                return overflowChannel.get(obj);
            };
            var setMaxIndex = function setMaxIndex2(obj, maxIndex) {
                overflowChannel.set(obj, maxIndex);
            };
            var hexTable = function() {
                var array4 = [];
                for(var i = 0; i < 256; ++i){
                    array4[array4.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase();
                }
                return array4;
            }();
            var compactQueue = function compactQueue2(queue2) {
                while(queue2.length > 1){
                    var item = queue2.pop();
                    var obj = item.obj[item.prop];
                    if (isArray(obj)) {
                        var compacted = [];
                        for(var j = 0; j < obj.length; ++j){
                            if (typeof obj[j] !== "undefined") {
                                compacted[compacted.length] = obj[j];
                            }
                        }
                        item.obj[item.prop] = compacted;
                    }
                }
            };
            var arrayToObject = function arrayToObject2(source, options) {
                var obj = options && options.plainObjects ? {
                    __proto__: null
                } : {};
                for(var i = 0; i < source.length; ++i){
                    if (typeof source[i] !== "undefined") {
                        obj[i] = source[i];
                    }
                }
                return obj;
            };
            var setProperty = function setProperty2(obj, key, value) {
                if (key === "__proto__" && defineProperty) {
                    defineProperty(obj, key, {
                        configurable: true,
                        enumerable: true,
                        value: value,
                        writable: true
                    });
                } else {
                    obj[key] = value;
                }
            };
            var merge = function merge2(target, source, options) {
                if (!source) {
                    return target;
                }
                if ((typeof source === "undefined" ? "undefined" : _type_of(source)) !== "object" && typeof source !== "function") {
                    if (isArray(target)) {
                        var nextIndex = target.length;
                        if (options && typeof options.arrayLimit === "number" && nextIndex >= options.arrayLimit) {
                            if (options.throwOnLimitExceeded) {
                                throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                            }
                            return markOverflow(arrayToObject(target.concat(source), options), nextIndex);
                        }
                        target[nextIndex] = source;
                    } else if (target && (typeof target === "undefined" ? "undefined" : _type_of(target)) === "object") {
                        if (isOverflow(target)) {
                            var newIndex = getMaxIndex(target) + 1;
                            target[newIndex] = source;
                            setMaxIndex(target, newIndex);
                        } else if (options && options.strictMerge) {
                            return [
                                target,
                                source
                            ];
                        } else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {
                            target[source] = true;
                        }
                    } else {
                        return [
                            target,
                            source
                        ];
                    }
                    return target;
                }
                if (!target || (typeof target === "undefined" ? "undefined" : _type_of(target)) !== "object") {
                    if (isOverflow(source)) {
                        var sourceKeys = Object.keys(source);
                        var result17 = options && options.plainObjects ? {
                            __proto__: null,
                            0: target
                        } : {
                            0: target
                        };
                        for(var m = 0; m < sourceKeys.length; m++){
                            var oldKey = parseInt(sourceKeys[m], 10);
                            result17[oldKey + 1] = source[sourceKeys[m]];
                        }
                        return markOverflow(result17, getMaxIndex(source) + 1);
                    }
                    var combined = [
                        target
                    ].concat(source);
                    if (options && typeof options.arrayLimit === "number" && combined.length > options.arrayLimit) {
                        if (options.throwOnLimitExceeded) {
                            throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                        }
                        return markOverflow(arrayToObject(combined, options), combined.length - 1);
                    }
                    return combined;
                }
                var mergeTarget = target;
                if (isArray(target) && !isArray(source)) {
                    mergeTarget = arrayToObject(target, options);
                }
                if (isArray(target) && isArray(source)) {
                    source.forEach(function(item, i) {
                        if (has.call(target, i)) {
                            var targetItem = target[i];
                            if (targetItem && (typeof targetItem === "undefined" ? "undefined" : _type_of(targetItem)) === "object" && item && (typeof item === "undefined" ? "undefined" : _type_of(item)) === "object") {
                                target[i] = merge2(targetItem, item, options);
                            } else {
                                target[target.length] = item;
                            }
                        } else {
                            target[i] = item;
                        }
                    });
                    if (options && typeof options.arrayLimit === "number" && target.length > options.arrayLimit) {
                        if (options.throwOnLimitExceeded) {
                            throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                        }
                        return markOverflow(arrayToObject(target, options), target.length - 1);
                    }
                    return target;
                }
                return Object.keys(source).reduce(function(acc, key) {
                    var value = source[key];
                    if (has.call(acc, key)) {
                        setProperty(acc, key, merge2(acc[key], value, options));
                    } else {
                        setProperty(acc, key, value);
                    }
                    if (isOverflow(source) && !isOverflow(acc)) {
                        markOverflow(acc, getMaxIndex(source));
                    }
                    if (isOverflow(acc)) {
                        var keyNum = parseInt(key, 10);
                        if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {
                            setMaxIndex(acc, keyNum);
                        }
                    }
                    return acc;
                }, mergeTarget);
            };
            var assign = function assignSingleSource(target, source) {
                return Object.keys(source).reduce(function(acc, key) {
                    setProperty(acc, key, source[key]);
                    return acc;
                }, target);
            };
            var decode3 = function decode3(str, defaultDecoder, charset) {
                var strWithoutPlus = str.replace(/\+/g, " ");
                if (charset === "iso-8859-1") {
                    return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
                }
                try {
                    return decodeURIComponent(strWithoutPlus);
                } catch (e) {
                    return strWithoutPlus;
                }
            };
            var limit = 1024;
            var encode3 = function encode4(str, defaultEncoder, charset, kind, format) {
                if (str.length === 0) {
                    return str;
                }
                var string5 = str;
                if ((typeof str === "undefined" ? "undefined" : _type_of(str)) === "symbol") {
                    string5 = Symbol.prototype.toString.call(str);
                } else if (typeof str !== "string") {
                    string5 = String(str);
                }
                if (charset === "iso-8859-1") {
                    return escape(string5).replace(/%u[0-9a-f]{4}/gi, function($0) {
                        return "%26%23" + parseInt($0.slice(2), 16) + "%3B";
                    });
                }
                var out = "";
                for(var j = 0; j < string5.length; j += limit){
                    var segment = string5.length >= limit ? string5.slice(j, j + limit) : string5;
                    if (j + limit < string5.length) {
                        var last = segment.charCodeAt(segment.length - 1);
                        if (last >= 55296 && last <= 56319) {
                            segment = segment.slice(0, -1);
                            j -= 1;
                        }
                    }
                    var arr = [];
                    for(var i = 0; i < segment.length; ++i){
                        var c = segment.charCodeAt(i);
                        if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) {
                            arr[arr.length] = segment.charAt(i);
                            continue;
                        }
                        if (c < 128) {
                            arr[arr.length] = hexTable[c];
                            continue;
                        }
                        if (c < 2048) {
                            arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
                            continue;
                        }
                        if (c < 55296 || c >= 57344) {
                            arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
                            continue;
                        }
                        i += 1;
                        c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
                        arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
                    }
                    out += arr.join("");
                }
                return out;
            };
            var compact = function compact2(value) {
                var queue2 = [
                    {
                        obj: {
                            o: value
                        },
                        prop: "o"
                    }
                ];
                var refs = getSideChannel();
                for(var i = 0; i < queue2.length; ++i){
                    var item = queue2[i];
                    var obj = item.obj[item.prop];
                    var keys = Object.keys(obj);
                    for(var j = 0; j < keys.length; ++j){
                        var key = keys[j];
                        var val = obj[key];
                        if ((typeof val === "undefined" ? "undefined" : _type_of(val)) === "object" && val !== null && !refs.has(val)) {
                            queue2[queue2.length] = {
                                obj: obj,
                                prop: key
                            };
                            refs.set(val, true);
                        }
                    }
                }
                compactQueue(queue2);
                return value;
            };
            var isRegExp = function isRegExp2(obj) {
                return Object.prototype.toString.call(obj) === "[object RegExp]";
            };
            var isBuffer = function isBuffer2(obj) {
                if (!obj || (typeof obj === "undefined" ? "undefined" : _type_of(obj)) !== "object") {
                    return false;
                }
                return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
            };
            var combine = function combine2(a, b, arrayLimit, plainObjects, throwOnLimitExceeded) {
                if (isOverflow(a)) {
                    if (throwOnLimitExceeded) {
                        throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                    }
                    var newIndex = getMaxIndex(a) + 1;
                    a[newIndex] = b;
                    setMaxIndex(a, newIndex);
                    return a;
                }
                var result17 = [].concat(a, b);
                if (result17.length > arrayLimit) {
                    if (throwOnLimitExceeded) {
                        throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                    }
                    return markOverflow(arrayToObject(result17, {
                        plainObjects: plainObjects
                    }), result17.length - 1);
                }
                return result17;
            };
            var maybeMap = function maybeMap2(val, fn) {
                if (isArray(val)) {
                    var mapped = [];
                    for(var i = 0; i < val.length; i += 1){
                        mapped[mapped.length] = fn(val[i]);
                    }
                    return mapped;
                }
                return fn(val);
            };
            module.exports = {
                arrayToObject: arrayToObject,
                assign: assign,
                combine: combine,
                compact: compact,
                decode: decode3,
                encode: encode3,
                isBuffer: isBuffer,
                isOverflow: isOverflow,
                isRegExp: isRegExp,
                markOverflow: markOverflow,
                maybeMap: maybeMap,
                merge: merge
            };
        }
    });
    // node_modules/url/node_modules/qs/lib/stringify.js
    var require_stringify = __commonJS({
        "node_modules/url/node_modules/qs/lib/stringify.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getSideChannel = require_side_channel();
            var utils = require_utils();
            var formats = require_formats();
            var has = Object.prototype.hasOwnProperty;
            var arrayPrefixGenerators = {
                brackets: function brackets(prefix) {
                    return prefix + "[]";
                },
                comma: "comma",
                indices: function indices(prefix, key) {
                    return prefix + "[" + key + "]";
                },
                repeat: function repeat(prefix) {
                    return prefix;
                }
            };
            var isArray = Array.isArray;
            var push = Array.prototype.push;
            var pushToArray = function pushToArray(arr, valueOrArray) {
                push.apply(arr, isArray(valueOrArray) ? valueOrArray : [
                    valueOrArray
                ]);
            };
            var toISO = Date.prototype.toISOString;
            var defaultFormat = formats["default"];
            var defaults = {
                addQueryPrefix: false,
                allowDots: false,
                allowEmptyArrays: false,
                arrayFormat: "indices",
                charset: "utf-8",
                charsetSentinel: false,
                commaRoundTrip: false,
                delimiter: "&",
                encode: true,
                encodeDotInKeys: false,
                encoder: utils.encode,
                encodeValuesOnly: false,
                filter: void 0,
                format: defaultFormat,
                formatter: formats.formatters[defaultFormat],
                // deprecated
                indices: false,
                serializeDate: function serializeDate(date) {
                    return toISO.call(date);
                },
                skipNulls: false,
                strictNullHandling: false
            };
            var isNonNullishPrimitive = function isNonNullishPrimitive2(v) {
                return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || (typeof v === "undefined" ? "undefined" : _type_of(v)) === "symbol" || (typeof v === "undefined" ? "undefined" : _type_of(v)) === "bigint";
            };
            var sentinel = {};
            var stringify = function stringify2(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder2, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {
                var obj = object;
                var tmpSc = sideChannel;
                var step = 0;
                var findFlag = false;
                while((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag){
                    var pos = tmpSc.get(object);
                    step += 1;
                    if (typeof pos !== "undefined") {
                        if (pos === step) {
                            throw new RangeError("Cyclic object value");
                        } else {
                            findFlag = true;
                        }
                    }
                    if (typeof tmpSc.get(sentinel) === "undefined") {
                        step = 0;
                    }
                }
                if (typeof filter === "function") {
                    obj = filter(prefix, obj);
                } else if (obj instanceof Date) {
                    obj = serializeDate(obj);
                } else if (generateArrayPrefix === "comma" && isArray(obj)) {
                    obj = utils.maybeMap(obj, function(value2) {
                        if (value2 instanceof Date) {
                            return serializeDate(value2);
                        }
                        return value2;
                    });
                }
                if (obj === null) {
                    if (strictNullHandling) {
                        return formatter(encoder2 && !encodeValuesOnly ? encoder2(prefix, defaults.encoder, charset, "key", format) : prefix);
                    }
                    obj = "";
                }
                if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
                    if (encoder2) {
                        var keyValue = encodeValuesOnly ? prefix : encoder2(prefix, defaults.encoder, charset, "key", format);
                        return [
                            formatter(keyValue) + "=" + formatter(encoder2(obj, defaults.encoder, charset, "value", format))
                        ];
                    }
                    return [
                        formatter(prefix) + "=" + formatter(String(obj))
                    ];
                }
                var values = [];
                if (typeof obj === "undefined") {
                    return values;
                }
                var objKeys;
                if (generateArrayPrefix === "comma" && isArray(obj)) {
                    if (encodeValuesOnly && encoder2) {
                        obj = utils.maybeMap(obj, function(v) {
                            return v == null ? v : encoder2(v);
                        });
                    }
                    objKeys = [
                        {
                            value: obj.length > 0 ? obj.join(",") || null : void 0
                        }
                    ];
                } else if (isArray(filter)) {
                    objKeys = filter;
                } else {
                    var keys = Object.keys(obj);
                    objKeys = sort ? keys.sort(sort) : keys;
                }
                var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix);
                var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
                if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
                    return adjustedPrefix + "[]";
                }
                for(var j = 0; j < objKeys.length; ++j){
                    var key = objKeys[j];
                    var value = (typeof key === "undefined" ? "undefined" : _type_of(key)) === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key];
                    if (skipNulls && value === null) {
                        continue;
                    }
                    var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
                    var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
                    sideChannel.set(object, step);
                    var valueSideChannel = getSideChannel();
                    valueSideChannel.set(sentinel, sideChannel);
                    pushToArray(values, stringify2(value, keyPrefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder2, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));
                }
                return values;
            };
            var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
                if (!opts) {
                    return defaults;
                }
                if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
                    throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
                }
                if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
                    throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
                }
                if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
                    throw new TypeError("Encoder has to be a function.");
                }
                var charset = opts.charset || defaults.charset;
                if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
                    throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
                }
                var format = formats["default"];
                if (typeof opts.format !== "undefined") {
                    if (!has.call(formats.formatters, opts.format)) {
                        throw new TypeError("Unknown format option provided.");
                    }
                    format = opts.format;
                }
                var formatter = formats.formatters[format];
                var filter = defaults.filter;
                if (typeof opts.filter === "function" || isArray(opts.filter)) {
                    filter = opts.filter;
                }
                var arrayFormat;
                if (opts.arrayFormat in arrayPrefixGenerators) {
                    arrayFormat = opts.arrayFormat;
                } else if ("indices" in opts) {
                    arrayFormat = opts.indices ? "indices" : "repeat";
                } else {
                    arrayFormat = defaults.arrayFormat;
                }
                if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
                    throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
                }
                var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
                return {
                    addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix,
                    allowDots: allowDots,
                    allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
                    arrayFormat: arrayFormat,
                    charset: charset,
                    charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
                    commaRoundTrip: !!opts.commaRoundTrip,
                    delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter,
                    encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode,
                    encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
                    encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder,
                    encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
                    filter: filter,
                    format: format,
                    formatter: formatter,
                    serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate,
                    skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls,
                    sort: typeof opts.sort === "function" ? opts.sort : null,
                    strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
                };
            };
            module.exports = function(object, opts) {
                var obj = object;
                var options = normalizeStringifyOptions(opts);
                var objKeys;
                var filter;
                if (typeof options.filter === "function") {
                    filter = options.filter;
                    obj = filter("", obj);
                } else if (isArray(options.filter)) {
                    filter = options.filter;
                    objKeys = filter;
                }
                var keys = [];
                if ((typeof obj === "undefined" ? "undefined" : _type_of(obj)) !== "object" || obj === null) {
                    return "";
                }
                var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
                var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
                if (!objKeys) {
                    objKeys = Object.keys(obj);
                }
                if (options.sort) {
                    objKeys.sort(options.sort);
                }
                var sideChannel = getSideChannel();
                for(var i = 0; i < objKeys.length; ++i){
                    var key = objKeys[i];
                    if (typeof key === "undefined" || key === null) {
                        continue;
                    }
                    var value = obj[key];
                    if (options.skipNulls && value === null) {
                        continue;
                    }
                    pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
                }
                var joined = keys.join(options.delimiter);
                var prefix = options.addQueryPrefix === true ? "?" : "";
                if (options.charsetSentinel) {
                    if (options.charset === "iso-8859-1") {
                        prefix += "utf8=%26%2310003%3B" + options.delimiter;
                    } else {
                        prefix += "utf8=%E2%9C%93" + options.delimiter;
                    }
                }
                return joined.length > 0 ? prefix + joined : "";
            };
        }
    });
    // node_modules/url/node_modules/qs/lib/parse.js
    var require_parse = __commonJS({
        "node_modules/url/node_modules/qs/lib/parse.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils();
            var has = Object.prototype.hasOwnProperty;
            var isArray = Array.isArray;
            var defaults = {
                allowDots: false,
                allowEmptyArrays: false,
                allowPrototypes: false,
                allowSparse: false,
                arrayLimit: 20,
                charset: "utf-8",
                charsetSentinel: false,
                comma: false,
                decodeDotInKeys: false,
                decoder: utils.decode,
                delimiter: "&",
                depth: 5,
                duplicates: "combine",
                ignoreQueryPrefix: false,
                interpretNumericEntities: false,
                parameterLimit: 1e3,
                parseArrays: true,
                plainObjects: false,
                strictDepth: false,
                strictMerge: true,
                strictNullHandling: false,
                throwOnLimitExceeded: false
            };
            var interpretNumericEntities = function interpretNumericEntities(str) {
                return str.replace(/&#(\d+);/g, function($0, numberStr) {
                    return String.fromCharCode(parseInt(numberStr, 10));
                });
            };
            var parseArrayValue = function parseArrayValue(val, options, currentArrayLength, isFlatArrayValue) {
                if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
                    if (isFlatArrayValue && options.throwOnLimitExceeded) {
                        var commaCount = 0;
                        var commaIndex = val.indexOf(",");
                        while(commaIndex > -1){
                            commaCount += 1;
                            if (commaCount >= options.arrayLimit) {
                                throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                            }
                            commaIndex = val.indexOf(",", commaIndex + 1);
                        }
                    }
                    return val.split(",");
                }
                if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
                    throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                }
                return val;
            };
            var isoSentinel = "utf8=%26%2310003%3B";
            var charsetSentinel = "utf8=%E2%9C%93";
            var parseValues = function parseQueryStringValues(str, options) {
                var obj = {
                    __proto__: null
                };
                var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
                cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
                var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
                var parts = cleanStr.split(options.delimiter, options.throwOnLimitExceeded && typeof limit !== "undefined" ? limit + 1 : limit);
                if (options.throwOnLimitExceeded && typeof limit !== "undefined" && parts.length > limit) {
                    throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed.");
                }
                var skipIndex = -1;
                var i;
                var charset = options.charset;
                if (options.charsetSentinel) {
                    for(i = 0; i < parts.length; ++i){
                        if (parts[i].indexOf("utf8=") === 0) {
                            if (parts[i] === charsetSentinel) {
                                charset = "utf-8";
                            } else if (parts[i] === isoSentinel) {
                                charset = "iso-8859-1";
                            }
                            skipIndex = i;
                            i = parts.length;
                        }
                    }
                }
                for(i = 0; i < parts.length; ++i){
                    if (i === skipIndex) {
                        continue;
                    }
                    var part = parts[i];
                    var bracketEqualsPos = part.indexOf("]=");
                    var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
                    var key;
                    var val;
                    if (pos === -1) {
                        key = options.decoder(part, defaults.decoder, charset, "key");
                        val = options.strictNullHandling ? null : "";
                    } else {
                        key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key");
                        if (key !== null) {
                            val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options, isArray(obj[key]) ? obj[key].length : 0, part.indexOf("[]=") === -1), function(encodedVal) {
                                return options.decoder(encodedVal, defaults.decoder, charset, "value");
                            });
                        }
                    }
                    if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
                        val = interpretNumericEntities(String(val));
                    }
                    if (part.indexOf("[]=") > -1) {
                        val = isArray(val) ? [
                            val
                        ] : val;
                    }
                    if (options.comma && isArray(val) && val.length > options.arrayLimit) {
                        val = utils.combine([], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
                    }
                    if (key !== null) {
                        var existing = has.call(obj, key);
                        if (existing && (options.duplicates === "combine" || part.indexOf("[]=") > -1)) {
                            obj[key] = utils.combine(obj[key], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
                        } else if (!existing || options.duplicates === "last") {
                            obj[key] = val;
                        }
                    }
                }
                return obj;
            };
            var parseObject = function parseObject(chain, val, options, valuesParsed) {
                var currentArrayLength = 0;
                if (chain.length > 0 && chain[chain.length - 1] === "[]") {
                    var parentKey = chain.slice(0, -1).join("");
                    currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
                }
                var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
                for(var i = chain.length - 1; i >= 0; --i){
                    var obj;
                    var root = chain[i];
                    if (root === "[]" && options.parseArrays) {
                        if (utils.isOverflow(leaf)) {
                            obj = leaf;
                        } else {
                            obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine([], leaf, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
                        }
                    } else {
                        obj = options.plainObjects ? {
                            __proto__: null
                        } : {};
                        var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
                        var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
                        var index = parseInt(decodedRoot, 10);
                        var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays;
                        if (!options.parseArrays && decodedRoot === "") {
                            obj = {
                                0: leaf
                            };
                        } else if (isValidArrayIndex && index < options.arrayLimit) {
                            obj = [];
                            obj[index] = leaf;
                        } else if (isValidArrayIndex && options.throwOnLimitExceeded) {
                            throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
                        } else if (isValidArrayIndex) {
                            obj[index] = leaf;
                            utils.markOverflow(obj, index);
                        } else if (decodedRoot !== "__proto__") {
                            obj[decodedRoot] = leaf;
                        }
                    }
                    leaf = obj;
                }
                return leaf;
            };
            var splitKeyIntoSegments = function splitKeyIntoSegments2(originalKey, options) {
                var key = options.allowDots ? originalKey.replace(/\.([^.[]+)/g, "[$1]") : originalKey;
                if (options.depth <= 0) {
                    if (!options.plainObjects && has.call(Object.prototype, key)) {
                        if (!options.allowPrototypes) {
                            return;
                        }
                    }
                    return [
                        key
                    ];
                }
                var segments = [];
                var first = key.indexOf("[");
                var parent2 = first >= 0 ? key.slice(0, first) : key;
                if (parent2) {
                    if (!options.plainObjects && has.call(Object.prototype, parent2)) {
                        if (!options.allowPrototypes) {
                            return;
                        }
                    }
                    segments[segments.length] = parent2;
                }
                var n = key.length;
                var open = first;
                var collected = 0;
                while(open >= 0 && collected < options.depth){
                    var level = 1;
                    var i = open + 1;
                    var close = -1;
                    while(i < n && close < 0){
                        var cu = key.charCodeAt(i);
                        if (cu === 91) {
                            level += 1;
                        } else if (cu === 93) {
                            level -= 1;
                            if (level === 0) {
                                close = i;
                            }
                        }
                        i += 1;
                    }
                    if (close < 0) {
                        segments[segments.length] = "[" + key.slice(open) + "]";
                        return segments;
                    }
                    var seg = key.slice(open, close + 1);
                    var content = seg.slice(1, -1);
                    if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) {
                        return;
                    }
                    segments[segments.length] = seg;
                    collected += 1;
                    open = key.indexOf("[", close + 1);
                }
                if (open >= 0) {
                    if (options.strictDepth === true) {
                        throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
                    }
                    segments[segments.length] = "[" + key.slice(open) + "]";
                }
                return segments;
            };
            var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
                if (!givenKey) {
                    return;
                }
                var keys = splitKeyIntoSegments(givenKey, options);
                if (!keys) {
                    return;
                }
                return parseObject(keys, val, options, valuesParsed);
            };
            var normalizeParseOptions = function normalizeParseOptions2(opts) {
                if (!opts) {
                    return defaults;
                }
                if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
                    throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
                }
                if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
                    throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
                }
                if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
                    throw new TypeError("Decoder has to be a function.");
                }
                if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
                    throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
                }
                if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") {
                    throw new TypeError("`throwOnLimitExceeded` option must be a boolean");
                }
                var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset;
                var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates;
                if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
                    throw new TypeError("The duplicates option must be either combine, first, or last");
                }
                var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
                return {
                    allowDots: allowDots,
                    allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
                    allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes,
                    allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse,
                    arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit,
                    charset: charset,
                    charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
                    comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma,
                    decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
                    decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder,
                    delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
                    // eslint-disable-next-line no-implicit-coercion, no-extra-parens
                    depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth,
                    duplicates: duplicates,
                    ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
                    interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
                    parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit,
                    parseArrays: opts.parseArrays !== false,
                    plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects,
                    strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth,
                    strictMerge: typeof opts.strictMerge === "boolean" ? !!opts.strictMerge : defaults.strictMerge,
                    strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling,
                    throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false
                };
            };
            module.exports = function(str, opts) {
                var options = normalizeParseOptions(opts);
                if (str === "" || str === null || typeof str === "undefined") {
                    return options.plainObjects ? {
                        __proto__: null
                    } : {};
                }
                var tempObj = typeof str === "string" ? parseValues(str, options) : str;
                var obj = options.plainObjects ? {
                    __proto__: null
                } : {};
                var keys = Object.keys(tempObj);
                for(var i = 0; i < keys.length; ++i){
                    var key = keys[i];
                    var newObj = parseKeys(key, tempObj[key], options, typeof str === "string");
                    obj = utils.merge(obj, newObj, options);
                }
                if (options.allowSparse === true) {
                    return obj;
                }
                return utils.compact(obj);
            };
        }
    });
    // node_modules/url/node_modules/qs/lib/index.js
    var require_lib4 = __commonJS({
        "node_modules/url/node_modules/qs/lib/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var stringify = require_stringify();
            var parse2 = require_parse();
            var formats = require_formats();
            module.exports = {
                formats: formats,
                parse: parse2,
                stringify: stringify
            };
        }
    });
    // node_modules/url/url.js
    var require_url = __commonJS({
        "node_modules/url/url.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var punycode = require_punycode();
            function Url() {
                this.protocol = null;
                this.slashes = null;
                this.auth = null;
                this.host = null;
                this.port = null;
                this.hostname = null;
                this.hash = null;
                this.search = null;
                this.query = null;
                this.pathname = null;
                this.path = null;
                this.href = null;
            }
            var protocolPattern = /^([a-z0-9.+-]+:)/i;
            var portPattern = /:[0-9]*$/;
            var simplePathPattern = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/;
            var delims = [
                "<",
                ">",
                '"',
                "`",
                " ",
                "\r",
                "\n",
                "	"
            ];
            var unwise = [
                "{",
                "}",
                "|",
                "\\",
                "^",
                "`"
            ].concat(delims);
            var autoEscape = [
                "'"
            ].concat(unwise);
            var nonHostChars = [
                "%",
                "/",
                "?",
                ";",
                "#"
            ].concat(autoEscape);
            var hostEndingChars = [
                "/",
                "?",
                "#"
            ];
            var hostnameMaxLen = 255;
            var hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/;
            var hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/;
            var unsafeProtocol = {
                javascript: true,
                "javascript:": true
            };
            var hostlessProtocol = {
                javascript: true,
                "javascript:": true
            };
            var slashedProtocol = {
                http: true,
                https: true,
                ftp: true,
                gopher: true,
                file: true,
                "http:": true,
                "https:": true,
                "ftp:": true,
                "gopher:": true,
                "file:": true
            };
            var querystring = require_lib4();
            function urlParse(url, parseQueryString, slashesDenoteHost) {
                if (url && (typeof url === "undefined" ? "undefined" : _type_of(url)) === "object" && url instanceof Url) {
                    return url;
                }
                var u = new Url();
                u.parse(url, parseQueryString, slashesDenoteHost);
                return u;
            }
            Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
                if (typeof url !== "string") {
                    throw new TypeError("Parameter 'url' must be a string, not " + (typeof url === "undefined" ? "undefined" : _type_of(url)));
                }
                var queryIndex = url.indexOf("?"), splitter = queryIndex !== -1 && queryIndex < url.indexOf("#") ? "?" : "#", uSplit = url.split(splitter), slashRegex = /\\/g;
                uSplit[0] = uSplit[0].replace(slashRegex, "/");
                url = uSplit.join(splitter);
                var rest = url;
                rest = rest.trim();
                if (!slashesDenoteHost && url.split("#").length === 1) {
                    var simplePath = simplePathPattern.exec(rest);
                    if (simplePath) {
                        this.path = rest;
                        this.href = rest;
                        this.pathname = simplePath[1];
                        if (simplePath[2]) {
                            this.search = simplePath[2];
                            if (parseQueryString) {
                                this.query = querystring.parse(this.search.substr(1));
                            } else {
                                this.query = this.search.substr(1);
                            }
                        } else if (parseQueryString) {
                            this.search = "";
                            this.query = {};
                        }
                        return this;
                    }
                }
                var proto = protocolPattern.exec(rest);
                if (proto) {
                    proto = proto[0];
                    var lowerProto = proto.toLowerCase();
                    this.protocol = lowerProto;
                    rest = rest.substr(proto.length);
                }
                if (slashesDenoteHost || proto || rest.match(/^\/\/[^@/]+@[^@/]+/)) {
                    var slashes = rest.substr(0, 2) === "//";
                    if (slashes && !(proto && hostlessProtocol[proto])) {
                        rest = rest.substr(2);
                        this.slashes = true;
                    }
                }
                if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {
                    var hostEnd = -1;
                    for(var i = 0; i < hostEndingChars.length; i++){
                        var hec = rest.indexOf(hostEndingChars[i]);
                        if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {
                            hostEnd = hec;
                        }
                    }
                    var auth, atSign;
                    if (hostEnd === -1) {
                        atSign = rest.lastIndexOf("@");
                    } else {
                        atSign = rest.lastIndexOf("@", hostEnd);
                    }
                    if (atSign !== -1) {
                        auth = rest.slice(0, atSign);
                        rest = rest.slice(atSign + 1);
                        this.auth = decodeURIComponent(auth);
                    }
                    hostEnd = -1;
                    for(var i = 0; i < nonHostChars.length; i++){
                        var hec = rest.indexOf(nonHostChars[i]);
                        if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {
                            hostEnd = hec;
                        }
                    }
                    if (hostEnd === -1) {
                        hostEnd = rest.length;
                    }
                    this.host = rest.slice(0, hostEnd);
                    rest = rest.slice(hostEnd);
                    this.parseHost();
                    this.hostname = this.hostname || "";
                    var ipv6Hostname = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]";
                    if (!ipv6Hostname) {
                        var hostparts = this.hostname.split(/\./);
                        for(var i = 0, l = hostparts.length; i < l; i++){
                            var part = hostparts[i];
                            if (!part) {
                                continue;
                            }
                            if (!part.match(hostnamePartPattern)) {
                                var newpart = "";
                                for(var j = 0, k = part.length; j < k; j++){
                                    if (part.charCodeAt(j) > 127) {
                                        newpart += "x";
                                    } else {
                                        newpart += part[j];
                                    }
                                }
                                if (!newpart.match(hostnamePartPattern)) {
                                    var validParts = hostparts.slice(0, i);
                                    var notHost = hostparts.slice(i + 1);
                                    var bit = part.match(hostnamePartStart);
                                    if (bit) {
                                        validParts.push(bit[1]);
                                        notHost.unshift(bit[2]);
                                    }
                                    if (notHost.length) {
                                        rest = "/" + notHost.join(".") + rest;
                                    }
                                    this.hostname = validParts.join(".");
                                    break;
                                }
                            }
                        }
                    }
                    if (this.hostname.length > hostnameMaxLen) {
                        this.hostname = "";
                    } else {
                        this.hostname = this.hostname.toLowerCase();
                    }
                    if (!ipv6Hostname) {
                        this.hostname = punycode.toASCII(this.hostname);
                    }
                    var p = this.port ? ":" + this.port : "";
                    var h = this.hostname || "";
                    this.host = h + p;
                    this.href += this.host;
                    if (ipv6Hostname) {
                        this.hostname = this.hostname.substr(1, this.hostname.length - 2);
                        if (rest[0] !== "/") {
                            rest = "/" + rest;
                        }
                    }
                }
                if (!unsafeProtocol[lowerProto]) {
                    for(var i = 0, l = autoEscape.length; i < l; i++){
                        var ae = autoEscape[i];
                        if (rest.indexOf(ae) === -1) {
                            continue;
                        }
                        var esc = encodeURIComponent(ae);
                        if (esc === ae) {
                            esc = escape(ae);
                        }
                        rest = rest.split(ae).join(esc);
                    }
                }
                var hash = rest.indexOf("#");
                if (hash !== -1) {
                    this.hash = rest.substr(hash);
                    rest = rest.slice(0, hash);
                }
                var qm = rest.indexOf("?");
                if (qm !== -1) {
                    this.search = rest.substr(qm);
                    this.query = rest.substr(qm + 1);
                    if (parseQueryString) {
                        this.query = querystring.parse(this.query);
                    }
                    rest = rest.slice(0, qm);
                } else if (parseQueryString) {
                    this.search = "";
                    this.query = {};
                }
                if (rest) {
                    this.pathname = rest;
                }
                if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {
                    this.pathname = "/";
                }
                if (this.pathname || this.search) {
                    var p = this.pathname || "";
                    var s = this.search || "";
                    this.path = p + s;
                }
                this.href = this.format();
                return this;
            };
            function urlFormat(obj) {
                if (typeof obj === "string") {
                    obj = urlParse(obj);
                }
                if (!(obj instanceof Url)) {
                    return Url.prototype.format.call(obj);
                }
                return obj.format();
            }
            Url.prototype.format = function() {
                var auth = this.auth || "";
                if (auth) {
                    auth = encodeURIComponent(auth);
                    auth = auth.replace(/%3A/i, ":");
                    auth += "@";
                }
                var protocol = this.protocol || "", pathname = this.pathname || "", hash = this.hash || "", host = false, query = "";
                if (this.host) {
                    host = auth + this.host;
                } else if (this.hostname) {
                    host = auth + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]");
                    if (this.port) {
                        host += ":" + this.port;
                    }
                }
                if (this.query && _type_of(this.query) === "object" && Object.keys(this.query).length) {
                    query = querystring.stringify(this.query, {
                        arrayFormat: "repeat",
                        addQueryPrefix: false
                    });
                }
                var search = this.search || query && "?" + query || "";
                if (protocol && protocol.substr(-1) !== ":") {
                    protocol += ":";
                }
                if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {
                    host = "//" + (host || "");
                    if (pathname && pathname.charAt(0) !== "/") {
                        pathname = "/" + pathname;
                    }
                } else if (!host) {
                    host = "";
                }
                if (hash && hash.charAt(0) !== "#") {
                    hash = "#" + hash;
                }
                if (search && search.charAt(0) !== "?") {
                    search = "?" + search;
                }
                pathname = pathname.replace(/[?#]/g, function(match) {
                    return encodeURIComponent(match);
                });
                search = search.replace("#", "%23");
                return protocol + host + pathname + search + hash;
            };
            function urlResolve(source, relative) {
                return urlParse(source, false, true).resolve(relative);
            }
            Url.prototype.resolve = function(relative) {
                return this.resolveObject(urlParse(relative, false, true)).format();
            };
            function urlResolveObject(source, relative) {
                if (!source) {
                    return relative;
                }
                return urlParse(source, false, true).resolveObject(relative);
            }
            Url.prototype.resolveObject = function(relative) {
                if (typeof relative === "string") {
                    var rel = new Url();
                    rel.parse(relative, false, true);
                    relative = rel;
                }
                var result17 = new Url();
                var tkeys = Object.keys(this);
                for(var tk = 0; tk < tkeys.length; tk++){
                    var tkey = tkeys[tk];
                    result17[tkey] = this[tkey];
                }
                result17.hash = relative.hash;
                if (relative.href === "") {
                    result17.href = result17.format();
                    return result17;
                }
                if (relative.slashes && !relative.protocol) {
                    var rkeys = Object.keys(relative);
                    for(var rk = 0; rk < rkeys.length; rk++){
                        var rkey = rkeys[rk];
                        if (rkey !== "protocol") {
                            result17[rkey] = relative[rkey];
                        }
                    }
                    if (slashedProtocol[result17.protocol] && result17.hostname && !result17.pathname) {
                        result17.pathname = "/";
                        result17.path = result17.pathname;
                    }
                    result17.href = result17.format();
                    return result17;
                }
                if (relative.protocol && relative.protocol !== result17.protocol) {
                    if (!slashedProtocol[relative.protocol]) {
                        var keys = Object.keys(relative);
                        for(var v = 0; v < keys.length; v++){
                            var k = keys[v];
                            result17[k] = relative[k];
                        }
                        result17.href = result17.format();
                        return result17;
                    }
                    result17.protocol = relative.protocol;
                    if (!relative.host && !hostlessProtocol[relative.protocol]) {
                        var relPath = (relative.pathname || "").split("/");
                        while(relPath.length && !(relative.host = relPath.shift())){}
                        if (!relative.host) {
                            relative.host = "";
                        }
                        if (!relative.hostname) {
                            relative.hostname = "";
                        }
                        if (relPath[0] !== "") {
                            relPath.unshift("");
                        }
                        if (relPath.length < 2) {
                            relPath.unshift("");
                        }
                        result17.pathname = relPath.join("/");
                    } else {
                        result17.pathname = relative.pathname;
                    }
                    result17.search = relative.search;
                    result17.query = relative.query;
                    result17.host = relative.host || "";
                    result17.auth = relative.auth;
                    result17.hostname = relative.hostname || relative.host;
                    result17.port = relative.port;
                    if (result17.pathname || result17.search) {
                        var p = result17.pathname || "";
                        var s = result17.search || "";
                        result17.path = p + s;
                    }
                    result17.slashes = result17.slashes || relative.slashes;
                    result17.href = result17.format();
                    return result17;
                }
                var isSourceAbs = result17.pathname && result17.pathname.charAt(0) === "/", isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === "/", mustEndAbs = isRelAbs || isSourceAbs || result17.host && relative.pathname, removeAllDots = mustEndAbs, srcPath = result17.pathname && result17.pathname.split("/") || [], relPath = relative.pathname && relative.pathname.split("/") || [], psychotic = result17.protocol && !slashedProtocol[result17.protocol];
                if (psychotic) {
                    result17.hostname = "";
                    result17.port = null;
                    if (result17.host) {
                        if (srcPath[0] === "") {
                            srcPath[0] = result17.host;
                        } else {
                            srcPath.unshift(result17.host);
                        }
                    }
                    result17.host = "";
                    if (relative.protocol) {
                        relative.hostname = null;
                        relative.port = null;
                        if (relative.host) {
                            if (relPath[0] === "") {
                                relPath[0] = relative.host;
                            } else {
                                relPath.unshift(relative.host);
                            }
                        }
                        relative.host = null;
                    }
                    mustEndAbs = mustEndAbs && (relPath[0] === "" || srcPath[0] === "");
                }
                if (isRelAbs) {
                    result17.host = relative.host || relative.host === "" ? relative.host : result17.host;
                    result17.hostname = relative.hostname || relative.hostname === "" ? relative.hostname : result17.hostname;
                    result17.search = relative.search;
                    result17.query = relative.query;
                    srcPath = relPath;
                } else if (relPath.length) {
                    if (!srcPath) {
                        srcPath = [];
                    }
                    srcPath.pop();
                    srcPath = srcPath.concat(relPath);
                    result17.search = relative.search;
                    result17.query = relative.query;
                } else if (relative.search != null) {
                    if (psychotic) {
                        result17.host = srcPath.shift();
                        result17.hostname = result17.host;
                        var authInHost = result17.host && result17.host.indexOf("@") > 0 ? result17.host.split("@") : false;
                        if (authInHost) {
                            result17.auth = authInHost.shift();
                            result17.hostname = authInHost.shift();
                            result17.host = result17.hostname;
                        }
                    }
                    result17.search = relative.search;
                    result17.query = relative.query;
                    if (result17.pathname !== null || result17.search !== null) {
                        result17.path = (result17.pathname ? result17.pathname : "") + (result17.search ? result17.search : "");
                    }
                    result17.href = result17.format();
                    return result17;
                }
                if (!srcPath.length) {
                    result17.pathname = null;
                    if (result17.search) {
                        result17.path = "/" + result17.search;
                    } else {
                        result17.path = null;
                    }
                    result17.href = result17.format();
                    return result17;
                }
                var last = srcPath.slice(-1)[0];
                var hasTrailingSlash = (result17.host || relative.host || srcPath.length > 1) && (last === "." || last === "..") || last === "";
                var up = 0;
                for(var i = srcPath.length; i >= 0; i--){
                    last = srcPath[i];
                    if (last === ".") {
                        srcPath.splice(i, 1);
                    } else if (last === "..") {
                        srcPath.splice(i, 1);
                        up++;
                    } else if (up) {
                        srcPath.splice(i, 1);
                        up--;
                    }
                }
                if (!mustEndAbs && !removeAllDots) {
                    for(; up--; up){
                        srcPath.unshift("..");
                    }
                }
                if (mustEndAbs && srcPath[0] !== "" && (!srcPath[0] || srcPath[0].charAt(0) !== "/")) {
                    srcPath.unshift("");
                }
                if (hasTrailingSlash && srcPath.join("/").substr(-1) !== "/") {
                    srcPath.push("");
                }
                var isAbsolute = srcPath[0] === "" || srcPath[0] && srcPath[0].charAt(0) === "/";
                if (psychotic) {
                    result17.hostname = isAbsolute ? "" : srcPath.length ? srcPath.shift() : "";
                    result17.host = result17.hostname;
                    var authInHost = result17.host && result17.host.indexOf("@") > 0 ? result17.host.split("@") : false;
                    if (authInHost) {
                        result17.auth = authInHost.shift();
                        result17.hostname = authInHost.shift();
                        result17.host = result17.hostname;
                    }
                }
                mustEndAbs = mustEndAbs || result17.host && srcPath.length;
                if (mustEndAbs && !isAbsolute) {
                    srcPath.unshift("");
                }
                if (srcPath.length > 0) {
                    result17.pathname = srcPath.join("/");
                } else {
                    result17.pathname = null;
                    result17.path = null;
                }
                if (result17.pathname !== null || result17.search !== null) {
                    result17.path = (result17.pathname ? result17.pathname : "") + (result17.search ? result17.search : "");
                }
                result17.auth = relative.auth || result17.auth;
                result17.slashes = result17.slashes || relative.slashes;
                result17.href = result17.format();
                return result17;
            };
            Url.prototype.parseHost = function() {
                var host = this.host;
                var port = portPattern.exec(host);
                if (port) {
                    port = port[0];
                    if (port !== ":") {
                        this.port = port.substr(1);
                    }
                    host = host.substr(0, host.length - port.length);
                }
                if (host) {
                    this.hostname = host;
                }
            };
            exports.parse = urlParse;
            exports.resolve = urlResolve;
            exports.resolveObject = urlResolveObject;
            exports.format = urlFormat;
            exports.Url = Url;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationHelper.js
    var require_deviceConfigurationHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getNoSslUrl = exports.adjustSsl = exports.getConfigurationUrl = exports.getConfigurationBaseUrl = exports.createGetConfigUrl = void 0;
            var urlEvaluator_1 = require_urlEvaluator();
            var url_1 = __importDefault(require_url());
            var fetch_1 = require_fetch();
            function createGetConfigUrl(nativeDriver, defaultConfig) {
                var fetchFn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fetch_1.fetch;
                return function() {
                    var fetchFunction = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fetchFn;
                    return getConfigurationBaseUrl(nativeDriver, defaultConfig, fetchFunction);
                };
            }
            exports.createGetConfigUrl = createGetConfigUrl;
            function getConfigurationBaseUrl(nativeDriver, defaultConfig) {
                var fetchFn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    var overideConfigUri;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.getConfigurationBaseUrl()
                                ];
                            case 1:
                                overideConfigUri = _state.sent();
                                return [
                                    2,
                                    overideConfigUri || (0, urlEvaluator_1.chooseUrl)(defaultConfig.configUrls, fetchFn)
                                ];
                        }
                    });
                });
            }
            exports.getConfigurationBaseUrl = getConfigurationBaseUrl;
            function getConfigurationUrl(baseUrl, noSsl, deviceUid) {
                var configUri = "".concat(baseUrl, "/configuration/").concat(deviceUid);
                return adjustSsl(configUri, noSsl);
            }
            exports.getConfigurationUrl = getConfigurationUrl;
            function adjustSsl(uri, noSsl) {
                return noSsl ? getNoSslUrl(uri) : uri;
            }
            exports.adjustSsl = adjustSsl;
            function getNoSslUrl(uri) {
                var parsedConfigUri = url_1["default"].parse(uri, true);
                parsedConfigUri.protocol = "http:";
                parsedConfigUri.query.signResponse = "1";
                var signedConfigUri = url_1["default"].format(parsedConfigUri);
                return signedConfigUri;
            }
            exports.getNoSslUrl = getNoSslUrl;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationCheckerSaga.js
    var require_deviceConfigurationCheckerSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationCheckerSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkDeviceConfigurationSaga = void 0;
            var progressiveWait_1 = require_progressiveWait();
            var wait_1 = __importDefault(require_wait());
            var deviceConfigurationVerifier_1 = require_deviceConfigurationVerifier();
            var debug_1 = __importDefault(require_browser2());
            var deviceConfigurationActions_1 = require_deviceConfigurationActions();
            var fetch_1 = require_fetch();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var telemetryIntervals_1 = require_telemetryIntervals();
            var offlineActionsConfiguration_1 = require_offlineActionsConfiguration();
            var featureFlags_1 = require_featureFlags();
            var constants_1 = require_constants();
            var deviceConfigurationHelper_1 = require_deviceConfigurationHelper();
            var lodash_1 = require_lodash();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Device:Configuration:deviceConfigurationChecker");
            var NO_CONFIG_STATUS = 404;
            var DEFAULT_CONFIG_PATH = "/configuration-default.us1";
            function checkDeviceConfigurationSaga(deviceUid, defaultConfig, getConfigUrl, publicKey) {
                var fetchFn, threadName, minCheckInterval, lastConfig, errorProgressiveWait, tries, configUrl, config, isUpdated, error;
                var _arguments = arguments;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            fetchFn = _arguments.length > 4 && _arguments[4] !== void 0 ? _arguments[4] : fetch_1.fetch, threadName = _arguments.length > 5 ? _arguments[5] : void 0, minCheckInterval = _arguments.length > 6 && _arguments[6] !== void 0 ? _arguments[6] : constants_1.SLOWLY;
                            lastConfig = {
                                updatedAt: null,
                                platformUri: null,
                                socketDriver: null,
                                staticBaseUrl: null,
                                uploadBaseUrl: null,
                                weinreUri: null,
                                extendedManagementUrl: null,
                                subscriptionType: null,
                                checkInterval: null,
                                telemetryIntervals: null,
                                cacheInvalidationInterval: null,
                                checkTimeBeforeConnection: false,
                                offlineActionsLimits: null,
                                featureFlags: null,
                                screenshotRotationPortrait: null,
                                telemetryInvalidatedAt: null
                            };
                            errorProgressiveWait = (0, progressiveWait_1.createProgressiveWait)(constants_1.SHORTLY, 2, constants_1.TIMEOUT);
                            tries = 0;
                            _state.label = 1;
                        case 1:
                            if (!true) return [
                                3,
                                12
                            ];
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                8,
                                ,
                                11
                            ]);
                            debug4(threadName, "Start checking", {
                                tries: tries
                            });
                            return [
                                4,
                                (0, effects_1.call)(getConfigUrl)
                            ];
                        case 3:
                            configUrl = _state.sent();
                            return [
                                4,
                                getConfig(deviceUid, defaultConfig, configUrl, shouldSkipSsl(tries), publicKey, fetchFn, threadName)
                            ];
                        case 4:
                            config = _state.sent();
                            debug4("Retrieved config", config, lastConfig);
                            errorProgressiveWait.reset();
                            isUpdated = config.updatedAt !== lastConfig.updatedAt;
                            if (!(isUpdated || config.platformUri !== lastConfig.platformUri || config.socketDriver !== lastConfig.socketDriver || config.staticBaseUrl !== lastConfig.staticBaseUrl || config.uploadBaseUrl !== lastConfig.uploadBaseUrl || config.subscriptionType !== lastConfig.subscriptionType || config.checkInterval !== lastConfig.checkInterval || config.checkTimeBeforeConnection !== lastConfig.checkTimeBeforeConnection || !(0, telemetryIntervals_1.areTelemetryIntervalsSame)(config.telemetryIntervals, lastConfig.telemetryIntervals) || config.cacheInvalidationInterval !== lastConfig.cacheInvalidationInterval || !(0, lodash_1.isEqual)(config.offlineActionsLimits, lastConfig.offlineActionsLimits) || !(0, lodash_1.isEqual)(config.featureFlags, lastConfig.featureFlags) || config.screenshotRotationPortrait !== lastConfig.screenshotRotationPortrait || config.telemetryInvalidatedAt !== lastConfig.telemetryInvalidatedAt)) return [
                                3,
                                6
                            ];
                            debug4(threadName, "Config changed");
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceConfigurationActions_1.ConfigurationChanged,
                                    config: config
                                })
                            ];
                        case 5:
                            _state.sent();
                            lastConfig = config;
                            _state.label = 6;
                        case 6:
                            tries = 0;
                            return [
                                4,
                                (0, wait_1["default"])(Math.max(config.checkInterval || 0, minCheckInterval))
                            ];
                        case 7:
                            _state.sent();
                            return [
                                3,
                                11
                            ];
                        case 8:
                            error = _state.sent();
                            debug4(threadName, "Checking erred", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceConfigurationActions_1.ConfigurationCheckFailed,
                                    error: error
                                })
                            ];
                        case 9:
                            _state.sent();
                            tries++;
                            return [
                                4,
                                errorProgressiveWait.wait()
                            ];
                        case 10:
                            _state.sent();
                            return [
                                3,
                                11
                            ];
                        case 11:
                            return [
                                3,
                                1
                            ];
                        case 12:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.checkDeviceConfigurationSaga = checkDeviceConfigurationSaga;
            function getConfig(deviceUid, defaultConfig, configUrl, noSsl, publicKey, fetchFn, threadName) {
                return __awaiter(this, void 0, void 0, function() {
                    var overrideConfig;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getOverrideConfig(deviceUid, configUrl, noSsl, publicKey, fetchFn, threadName)
                                ];
                            case 1:
                                overrideConfig = _state.sent();
                                return [
                                    2,
                                    {
                                        updatedAt: overrideConfig.updatedAt,
                                        platformUri: overrideConfig.platformUri || defaultConfig.platformUri,
                                        socketDriver: overrideConfig.socketDriver || "ws",
                                        staticBaseUrl: overrideConfig.staticBaseUrl || defaultConfig.staticBaseUrl,
                                        uploadBaseUrl: overrideConfig.uploadBaseUrl || defaultConfig.uploadBaseUrl,
                                        weinreUri: overrideConfig.weinreUri || defaultConfig.weinreUri,
                                        extendedManagementUrl: overrideConfig.extendedManagementUrl || defaultConfig.extendedManagementUrl,
                                        subscriptionType: overrideConfig.subscriptionType || defaultConfig.subscriptionType,
                                        checkInterval: overrideConfig.checkInterval || defaultConfig.checkInterval,
                                        telemetryIntervals: overrideConfig.telemetryIntervals || defaultConfig.telemetryIntervals || telemetryIntervals_1.defaultTelemetryIntervals,
                                        cacheInvalidationInterval: overrideConfig.cacheInvalidationInterval || defaultConfig.cacheInvalidationInterval,
                                        checkTimeBeforeConnection: overrideConfig.checkTimeBeforeConnection || defaultConfig.checkTimeBeforeConnection,
                                        offlineActionsLimits: overrideConfig.offlineActionsLimits || defaultConfig.offlineActionsLimits || offlineActionsConfiguration_1.defaultActionLimits,
                                        featureFlags: overrideConfig.featureFlags || defaultConfig.featureFlags || featureFlags_1.defaultFeatureFlags,
                                        screenshotRotationPortrait: overrideConfig.screenshotRotationPortrait || defaultConfig.screenshotRotationPortrait,
                                        telemetryInvalidatedAt: overrideConfig.telemetryInvalidatedAt || defaultConfig.telemetryInvalidatedAt || null
                                    }
                                ];
                        }
                    });
                });
            }
            function getOverrideConfig(deviceUid, configUrl, noSsl, publicKey, fetchFn, threadName) {
                return __awaiter(this, void 0, void 0, function() {
                    var resp, config, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    fetchConfiguration(fetchFn, configUrl, noSsl, deviceUid, threadName)
                                ];
                            case 1:
                                resp = _state.sent();
                                return [
                                    4,
                                    resp.json()
                                ];
                            case 2:
                                config = _state.sent();
                                debug4(threadName, "Fetched config", config, {
                                    noSsl: noSsl
                                });
                                if (noSsl && (!("signature" in config) || !(0, deviceConfigurationVerifier_1.isConfigResponseVerified)(config, publicKey))) {
                                    throw new Error("Unverified message from server");
                                }
                                return [
                                    2,
                                    {
                                        updatedAt: config.updatedAt,
                                        platformUri: config.platformUri,
                                        socketDriver: config.socketDriver,
                                        staticBaseUrl: config.staticBaseUrl,
                                        uploadBaseUrl: config.uploadBaseUrl,
                                        weinreUri: config.weinreUri,
                                        extendedManagementUrl: config.extendedManagementUrl,
                                        subscriptionType: config.subscriptionType,
                                        checkInterval: config.checkInterval,
                                        telemetryIntervals: config.telemetryIntervals,
                                        cacheInvalidationInterval: config.cacheInvalidationInterval,
                                        checkTimeBeforeConnection: config.checkTimeBeforeConnection,
                                        offlineActionsLimits: config.offlineActionsLimits,
                                        featureFlags: config.featureFlags,
                                        screenshotRotationPortrait: config.screenshotRotationPortrait,
                                        telemetryInvalidatedAt: config.telemetryInvalidatedAt
                                    }
                                ];
                            case 3:
                                error = _state.sent();
                                debug4(threadName, "Erred fetching config", error);
                                if (error.request && error.request.status === 404 && _type_of(error.body) === "object") {
                                    return [
                                        2,
                                        {
                                            updatedAt: error.body.updatedAt,
                                            platformUri: error.body.platformUri,
                                            socketDriver: error.body.socketDriver,
                                            staticBaseUrl: error.body.staticBaseUrl,
                                            uploadBaseUrl: error.body.uploadBaseUrl,
                                            weinreUri: error.body.weinreUri,
                                            extendedManagementUrl: error.body.extendedManagementUrl,
                                            subscriptionType: error.body.subscriptionType,
                                            checkInterval: error.body.checkInterval,
                                            telemetryIntervals: error.body.telemetryIntervals,
                                            cacheInvalidationInterval: error.body.cacheInvalidationInterval,
                                            checkTimeBeforeConnection: error.body.checkTimeBeforeConnection,
                                            offlineActionsLimits: error.body.offlineActionsLimits,
                                            featureFlags: error.body.featureFlags,
                                            screenshotRotationPortrait: error.body.screenshotRotationPortrait,
                                            telemetryInvalidatedAt: error.body.telemetryInvalidatedAt
                                        }
                                    ];
                                } else {
                                    throw error;
                                }
                                return [
                                    3,
                                    4
                                ];
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function fetchConfiguration(fetchFn, configUrl, noSsl, deviceUid, threadName) {
                return __awaiter(this, void 0, void 0, function() {
                    var configurationUrl, configResponse, _tmp, defaultConfigResponse, _tmp1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                configurationUrl = (0, deviceConfigurationHelper_1.getConfigurationUrl)(configUrl, noSsl, deviceUid);
                                debug4(threadName, "Fetching config", configurationUrl, {
                                    noSsl: noSsl
                                });
                                return [
                                    4,
                                    fetchFn(configurationUrl, void 0, constants_1.NORMALLY)
                                ];
                            case 1:
                                configResponse = _state.sent();
                                _tmp = configResponse.ok || configResponse.status === NO_CONFIG_STATUS;
                                if (!_tmp) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    isResponseJson(configResponse)
                                ];
                            case 2:
                                _tmp = _state.sent();
                                _state.label = 3;
                            case 3:
                                if (_tmp) {
                                    return [
                                        2,
                                        configResponse
                                    ];
                                }
                                return [
                                    4,
                                    fetchDefaultConfig(fetchFn, configUrl, noSsl)
                                ];
                            case 4:
                                defaultConfigResponse = _state.sent();
                                _tmp1 = defaultConfigResponse.ok;
                                if (!_tmp1) return [
                                    3,
                                    6
                                ];
                                return [
                                    4,
                                    isResponseJson(defaultConfigResponse)
                                ];
                            case 5:
                                _tmp1 = _state.sent();
                                _state.label = 6;
                            case 6:
                                if (_tmp1) {
                                    return [
                                        2,
                                        defaultConfigResponse
                                    ];
                                }
                                throw new Error("Configuration is not available.");
                        }
                    });
                });
            }
            function fetchDefaultConfig(fetchFn, configUrl, noSsl) {
                return __awaiter(this, void 0, void 0, function() {
                    var defaultConfigurationUrl;
                    return _ts_generator(this, function(_state) {
                        defaultConfigurationUrl = (0, deviceConfigurationHelper_1.adjustSsl)("".concat(configUrl).concat(DEFAULT_CONFIG_PATH), noSsl);
                        return [
                            2,
                            fetchFn(defaultConfigurationUrl, void 0, constants_1.NORMALLY)
                        ];
                    });
                });
            }
            function isResponseJson(response) {
                return __awaiter(this, void 0, void 0, function() {
                    var e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    response.clone().json()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    true
                                ];
                            case 2:
                                e = _state.sent();
                                return [
                                    2,
                                    false
                                ];
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function shouldSkipSsl(tries) {
                return (tries + 1) % 3 === 0;
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationSagas.js
    var require_deviceConfigurationSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Configuration/deviceConfigurationSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.updatingConfiguration = void 0;
            var applicationActions_1 = require_applicationActions2();
            var socketActions_1 = require_socketActions();
            var wait_1 = __importDefault(require_wait());
            var debug_1 = __importDefault(require_browser2());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var debugConstants_1 = require_debugConstants();
            var IConfig_1 = require_IConfig();
            var Property_1 = __importDefault(require_Property());
            var deviceConfigurationActions_1 = require_deviceConfigurationActions();
            var deviceConfigurationCheckerSaga_1 = require_deviceConfigurationCheckerSaga();
            var deviceConfigurationHelper_1 = require_deviceConfigurationHelper();
            var telemetryIntervals_1 = require_telemetryIntervals();
            var constants_1 = require_constants();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Device:Configuration:deviceConfigurationSagas");
            function updatingConfiguration(getNativeDriver, getManagementDriver, propertyStorage, defaultConfig, publicKey, threadName) {
                var lastConfig;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            lastConfig = {
                                updatedAt: null,
                                platformUri: null,
                                socketDriver: null,
                                staticBaseUrl: null,
                                uploadBaseUrl: null,
                                weinreUri: null,
                                extendedManagementUrl: null,
                                subscriptionType: null,
                                checkInterval: null,
                                telemetryIntervals: null,
                                cacheInvalidationInterval: null,
                                checkTimeBeforeConnection: false,
                                offlineActionsLimits: null,
                                featureFlags: null,
                                screenshotRotationPortrait: null,
                                telemetryInvalidatedAt: null
                            };
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var deviceUid, getConfigUrl, overidenDefaultConfig, isEnabled;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    initiateSubscriptionType(propertyStorage, lastConfig, defaultConfig.subscriptionType)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    getNativeDriver().getDeviceUid()
                                                ];
                                            case 2:
                                                deviceUid = _state.sent();
                                                getConfigUrl = function() {
                                                    return (0, deviceConfigurationHelper_1.getConfigurationBaseUrl)(getNativeDriver(), defaultConfig);
                                                };
                                                overidenDefaultConfig = Object.assign({}, defaultConfig);
                                                return [
                                                    4,
                                                    getManagementDriver().isDebugEnabled()
                                                ];
                                            case 3:
                                                isEnabled = _state.sent();
                                                if (isEnabled) {
                                                    overidenDefaultConfig.checkInterval = debugConstants_1.DEBUG_CHECK_INTERVAL_MS;
                                                }
                                                return [
                                                    5,
                                                    _ts_values(__yieldStar((0, deviceConfigurationCheckerSaga_1.checkDeviceConfigurationSaga)(deviceUid, overidenDefaultConfig, getConfigUrl, publicKey, void 0, threadName)))
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceConfigurationActions_1.ConfigurationChanged, function(param) {
                                    var config;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                config = param.config;
                                                debug4(threadName, "new configuration", config);
                                                if (!(config.staticBaseUrl && config.staticBaseUrl !== lastConfig.staticBaseUrl)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        staticBaseUrl: config.staticBaseUrl
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                if (!(config.uploadBaseUrl && config.uploadBaseUrl !== lastConfig.uploadBaseUrl)) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        uploadBaseUrl: config.uploadBaseUrl
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                if (!!(0, telemetryIntervals_1.areTelemetryIntervalsSame)(config.telemetryIntervals, lastConfig.telemetryIntervals)) return [
                                                    3,
                                                    6
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        telemetryIntervals: config.telemetryIntervals
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                _state.label = 6;
                                            case 6:
                                                if (!(config.cacheInvalidationInterval && config.cacheInvalidationInterval !== lastConfig.cacheInvalidationInterval)) return [
                                                    3,
                                                    8
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        cacheInvalidationInterval: config.cacheInvalidationInterval
                                                    })
                                                ];
                                            case 7:
                                                _state.sent();
                                                _state.label = 8;
                                            case 8:
                                                if (!(config.offlineActionsLimits && config.offlineActionsLimits !== lastConfig.offlineActionsLimits)) return [
                                                    3,
                                                    10
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        offlineActionsLimits: config.offlineActionsLimits
                                                    })
                                                ];
                                            case 9:
                                                _state.sent();
                                                _state.label = 10;
                                            case 10:
                                                if (!(config.weinreUri !== lastConfig.weinreUri)) return [
                                                    3,
                                                    12
                                                ];
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].DEBUG_WEINRE_SERVER_URL, config.weinreUri)
                                                ];
                                            case 11:
                                                _state.sent();
                                                _state.label = 12;
                                            case 12:
                                                if (!(config.subscriptionType !== lastConfig.subscriptionType)) return [
                                                    3,
                                                    15
                                                ];
                                                return [
                                                    4,
                                                    putSubscriptionType(config.subscriptionType || defaultConfig.subscriptionType)
                                                ];
                                            case 13:
                                                _state.sent();
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].INITIAL_SUBSCRIPTION_TYPE, config.subscriptionType)
                                                ];
                                            case 14:
                                                _state.sent();
                                                _state.label = 15;
                                            case 15:
                                                if (!(config.featureFlags !== lastConfig.featureFlags)) return [
                                                    3,
                                                    17
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        featureFlags: config.featureFlags
                                                    })
                                                ];
                                            case 16:
                                                _state.sent();
                                                _state.label = 17;
                                            case 17:
                                                if (!(config.screenshotRotationPortrait !== lastConfig.screenshotRotationPortrait)) return [
                                                    3,
                                                    19
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        screenshotRotationPortrait: config.screenshotRotationPortrait
                                                    })
                                                ];
                                            case 18:
                                                _state.sent();
                                                _state.label = 19;
                                            case 19:
                                                if (!(config.telemetryInvalidatedAt !== lastConfig.telemetryInvalidatedAt)) return [
                                                    3,
                                                    21
                                                ];
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        telemetryInvalidatedAt: config.telemetryInvalidatedAt
                                                    })
                                                ];
                                            case 20:
                                                _state.sent();
                                                _state.label = 21;
                                            case 21:
                                                if (!(config.platformUri !== lastConfig.platformUri || config.socketDriver !== lastConfig.socketDriver || config.updatedAt !== lastConfig.updatedAt || config.subscriptionType !== lastConfig.subscriptionType || config.checkTimeBeforeConnection !== lastConfig.checkTimeBeforeConnection)) return [
                                                    3,
                                                    23
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: socketActions_1.PlatformConnect,
                                                        platformUri: config.platformUri,
                                                        driver: config.socketDriver,
                                                        checkTimeBeforeConnection: config.checkTimeBeforeConnection,
                                                        trigger: "Configuration changed"
                                                    })
                                                ];
                                            case 22:
                                                _state.sent();
                                                _state.label = 23;
                                            case 23:
                                                lastConfig = config;
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updatingConfiguration = updatingConfiguration;
            function putSubscriptionType(subscriptionType) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, dependencyInjection_1.injectDependencies)({
                                    subscriptionType: subscriptionType
                                })
                            ];
                        case 1:
                            _state.sent();
                            switch(subscriptionType){
                                case IConfig_1.SubscriptionType.platform:
                                    return [
                                        3,
                                        2
                                    ];
                                case IConfig_1.SubscriptionType.open:
                                    return [
                                        3,
                                        4
                                    ];
                            }
                            return [
                                3,
                                4
                            ];
                        case 2:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceConfigurationActions_1.ChangeSubscriptionToPlatform
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceConfigurationActions_1.ChangeSubscriptionToOpen
                                })
                            ];
                        case 5:
                            _state.sent();
                            _state.label = 6;
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            function initiateSubscriptionType(propertyStorage, lastConfig, defaultSubscriptionType) {
                var initialSubscriptionType;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].INITIAL_SUBSCRIPTION_TYPE, null)
                            ];
                        case 1:
                            initialSubscriptionType = _state.sent();
                            return [
                                4,
                                (0, wait_1["default"])(constants_1.DEBOUNCE)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                putSubscriptionType(initialSubscriptionType || defaultSubscriptionType)
                            ];
                        case 3:
                            _state.sent();
                            lastConfig.subscriptionType = initialSubscriptionType;
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Connect/deviceConnectActions.js
    var require_deviceConnectActions2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Connect/deviceConnectActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.putDeviceConnected = exports.DeviceConnected = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            exports.DeviceConnected = "Device.Connect.DeviceConnected";
            function putDeviceConnected(action) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: exports.DeviceConnected,
                                    appletUid: action.appletUid,
                                    appletVersion: action.appletVersion
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.putDeviceConnected = putDeviceConnected;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Connect/deviceConnectSagas.js
    var require_deviceConnectSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Connect/deviceConnectSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceConnectSaga = void 0;
            var deviceConnectActions_1 = require_deviceConnectActions();
            var socketActionCreator_1 = require_socketActionCreator();
            var dependencyInjection_1 = require_dependencyInjection();
            var deviceConnectActions_2 = require_deviceConnectActions2();
            function deviceConnectSaga() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, dependencyInjection_1.injectDependencies)({
                                    connectedBaseUrl: null
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceConnectActions_1.ConnectDevice, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        connectedBaseUrl: action.remoteIp
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, deviceConnectActions_2.putDeviceConnected)(action)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceConnectActions_1.DisconnectDevice, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.injectDependencies)({
                                                        connectedBaseUrl: null
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceConnectSaga = deviceConnectSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Offline/offlineActions.js
    var require_offlineActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Offline/offlineActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceAlive = exports.SaveOfflineAction = void 0;
            exports.SaveOfflineAction = "Offline.SaveAction";
            exports.DeviceAlive = "Offline.DeviceAlive";
        }
    });
    // node_modules/@signageos/front-display/es6/Saga/periodicTaskSaga.js
    var require_periodicTaskSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Saga/periodicTaskSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.runPeriodicTaskSagaUntilSuccessWhileOpen = exports.runPeriodicTaskSagaUntilSuccessWhilePlatform = exports.runPeriodicTaskSagaWhileOpen = exports.runPeriodicTaskSagaWhilePlatform = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var wait_1 = __importDefault(require_wait());
            var IConfig_1 = require_IConfig();
            var dependencyInjection_1 = require_dependencyInjection();
            function runPeriodicTaskSagaWhilePlatform(initDelayMs, periodMs, task) {
                var options = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
                return runPeriodicTaskSagaWhile(initDelayMs, periodMs, task, IConfig_1.SubscriptionType.platform, options);
            }
            exports.runPeriodicTaskSagaWhilePlatform = runPeriodicTaskSagaWhilePlatform;
            function runPeriodicTaskSagaWhileOpen(initDelayMs, periodMs, task) {
                var options = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
                return runPeriodicTaskSagaWhile(initDelayMs, periodMs, task, IConfig_1.SubscriptionType.open, options);
            }
            exports.runPeriodicTaskSagaWhileOpen = runPeriodicTaskSagaWhileOpen;
            function runPeriodicTaskSagaWhile(initDelayMs, periodMs, task, onlyWhenSubscriptionType) {
                var options = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {};
                var secondTelemetryDelayMs = periodMs;
                if (options.randomize) {
                    var randomInitialMultiplier = 0.5 + Math.random();
                    initDelayMs = Math.round(initDelayMs * randomInitialMultiplier);
                    secondTelemetryDelayMs = Math.round(Math.random() * periodMs);
                }
                return (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                    "subscriptionType"
                ], function(param) {
                    var currentSubscriptionType, doTheTask;
                    function invokeTask() {
                        var error;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    if (!doTheTask) return [
                                        3,
                                        4
                                    ];
                                    _state.label = 1;
                                case 1:
                                    _state.trys.push([
                                        1,
                                        3,
                                        ,
                                        4
                                    ]);
                                    return [
                                        4,
                                        task()
                                    ];
                                case 2:
                                    _state.sent();
                                    return [
                                        3,
                                        4
                                    ];
                                case 3:
                                    error = _state.sent();
                                    console.error(error);
                                    return [
                                        3,
                                        4
                                    ];
                                case 4:
                                    return [
                                        2
                                    ];
                            }
                        });
                    }
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                currentSubscriptionType = param.subscriptionType;
                                return [
                                    4,
                                    (0, effects_1.call)(wait_1["default"], initDelayMs)
                                ];
                            case 1:
                                _state.sent();
                                doTheTask = onlyWhenSubscriptionType === currentSubscriptionType;
                                return [
                                    4,
                                    invokeTask()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)(wait_1["default"], secondTelemetryDelayMs)
                                ];
                            case 3:
                                _state.sent();
                                _state.label = 4;
                            case 4:
                                if (!true) return [
                                    3,
                                    7
                                ];
                                return [
                                    4,
                                    invokeTask()
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)(wait_1["default"], periodMs)
                                ];
                            case 6:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 7:
                                return [
                                    2
                                ];
                        }
                    });
                }));
            }
            function runPeriodicTaskSagaUntilSuccessWhilePlatform(initDelayMs, periodMs, task) {
                return runPeriodicTaskSagaUntilSuccessWhile(initDelayMs, periodMs, task, IConfig_1.SubscriptionType.platform);
            }
            exports.runPeriodicTaskSagaUntilSuccessWhilePlatform = runPeriodicTaskSagaUntilSuccessWhilePlatform;
            function runPeriodicTaskSagaUntilSuccessWhileOpen(initDelayMs, periodMs, task) {
                return runPeriodicTaskSagaUntilSuccessWhile(initDelayMs, periodMs, task, IConfig_1.SubscriptionType.open);
            }
            exports.runPeriodicTaskSagaUntilSuccessWhileOpen = runPeriodicTaskSagaUntilSuccessWhileOpen;
            function runPeriodicTaskSagaUntilSuccessWhile(initDelayMs, periodMs, task, onlyWhenSubscriptionType) {
                return (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                    "subscriptionType"
                ], function(param) {
                    var currentSubscriptionType, doTheTask, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                currentSubscriptionType = param.subscriptionType;
                                return [
                                    4,
                                    (0, effects_1.call)(wait_1["default"], initDelayMs)
                                ];
                            case 1:
                                _state.sent();
                                _state.label = 2;
                            case 2:
                                if (!true) return [
                                    3,
                                    8
                                ];
                                doTheTask = onlyWhenSubscriptionType === currentSubscriptionType;
                                if (!doTheTask) return [
                                    3,
                                    6
                                ];
                                _state.label = 3;
                            case 3:
                                _state.trys.push([
                                    3,
                                    5,
                                    ,
                                    6
                                ]);
                                return [
                                    4,
                                    task()
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    3,
                                    8
                                ];
                            case 5:
                                error = _state.sent();
                                console.error("Periodic task failed, will retry:", error);
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                return [
                                    4,
                                    (0, effects_1.call)(wait_1["default"], periodMs)
                                ];
                            case 7:
                                _state.sent();
                                return [
                                    3,
                                    2
                                ];
                            case 8:
                                return [
                                    2
                                ];
                        }
                    });
                }));
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Status/deviceAliveSaga.js
    var require_deviceAliveSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Status/deviceAliveSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.notifyDeviceStatus = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var offlineActions_1 = require_offlineActions();
            var periodicTaskSaga_1 = require_periodicTaskSaga();
            function notifyDeviceStatus() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, periodicTaskSaga_1.runPeriodicTaskSagaWhilePlatform)(6e4, 6e4, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: offlineActions_1.DeviceAlive
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceStatus = notifyDeviceStatus;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Timer/deviceTimerActions.js
    var require_deviceTimerActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Timer/deviceTimerActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceTimerSettingsFailed = exports.SetDeviceTimerSettingsSucceeded = exports.SetDeviceTimerSettings = void 0;
            exports.SetDeviceTimerSettings = "Device.Timer.SyncTimerSettings";
            exports.SetDeviceTimerSettingsSucceeded = "Device.Timer.SyncTimerSettingsSucceed";
            exports.SetDeviceTimerSettingsFailed = "Device.Timer.SyncTimerSettingsFailed";
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Timer/TimerLevel.js
    var require_TimerLevel = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Timer/TimerLevel.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TimerLevel = void 0;
            var TimerLevel;
            (function(TimerLevel2) {
                TimerLevel2["Native"] = "NATIVE";
                TimerLevel2["Proprietary"] = "PROPRIETARY";
            })(TimerLevel || (exports.TimerLevel = TimerLevel = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Feature/responsible.js
    var require_responsible = __commonJS({
        "node_modules/@signageos/front-display/es6/Feature/responsible.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.whenResponsible = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var whenResponsible = function(requiredResponsibilities, saga) {
                return (0, dependencyInjection_1.withDependencies)([
                    "responsibilities"
                ], function(param) {
                    var responsibilities, _len, args, _key;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                responsibilities = param.responsibilities;
                                for(_len = _arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                                    args[_key - 1] = _arguments[_key];
                                }
                                requiredResponsibilities = requiredResponsibilities instanceof Array ? requiredResponsibilities : [
                                    requiredResponsibilities
                                ];
                                if (!requiredResponsibilities.every(function(responsibility) {
                                    return responsibilities.has(responsibility);
                                })) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    (0, effects_1.call).apply(this, [
                                        saga
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 1:
                                _state.sent();
                                _state.label = 2;
                            case 2:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.whenResponsible = whenResponsible;
        }
    });
    // node_modules/@signageos/front-display/es6/Feature/Responsibility.js
    var require_Responsibility = __commonJS({
        "node_modules/@signageos/front-display/es6/Feature/Responsibility.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Responsibility;
            (function(Responsibility2) {
                Responsibility2[Responsibility2["DEPROVISIONING"] = 0] = "DEPROVISIONING";
                Responsibility2[Responsibility2["TIME"] = 1] = "TIME";
                Responsibility2[Responsibility2["VOLUME"] = 2] = "VOLUME";
                Responsibility2[Responsibility2["POWER"] = 3] = "POWER";
                Responsibility2[Responsibility2["BRIGHTNESS"] = 4] = "BRIGHTNESS";
                Responsibility2[Responsibility2["DEBUG"] = 5] = "DEBUG";
                Responsibility2[Responsibility2["KIOSK"] = 6] = "KIOSK";
                Responsibility2[Responsibility2["SCREENSHOT"] = 7] = "SCREENSHOT";
                Responsibility2[Responsibility2["PACKAGES"] = 8] = "PACKAGES";
                Responsibility2[Responsibility2["FIRMWARE"] = 9] = "FIRMWARE";
                Responsibility2[Responsibility2["SERVLET"] = 10] = "SERVLET";
                Responsibility2[Responsibility2["SCREEN"] = 11] = "SCREEN";
                Responsibility2[Responsibility2["APP"] = 12] = "APP";
                Responsibility2[Responsibility2["BUNDLED_APPLET"] = 13] = "BUNDLED_APPLET";
                Responsibility2[Responsibility2["TIMERS"] = 14] = "TIMERS";
                Responsibility2[Responsibility2["SCHEDULED_POWER"] = 15] = "SCHEDULED_POWER";
                Responsibility2[Responsibility2["TEMPERATURE"] = 16] = "TEMPERATURE";
                Responsibility2[Responsibility2["BATTERY"] = 17] = "BATTERY";
                Responsibility2[Responsibility2["STORAGE"] = 18] = "STORAGE";
                Responsibility2[Responsibility2["DEVICE"] = 19] = "DEVICE";
                Responsibility2[Responsibility2["NETWORK"] = 20] = "NETWORK";
                Responsibility2[Responsibility2["TELEMETRY"] = 21] = "TELEMETRY";
                Responsibility2[Responsibility2["POLICY"] = 22] = "POLICY";
                Responsibility2[Responsibility2["PROXY"] = 23] = "PROXY";
                Responsibility2[Responsibility2["WIFI_STRENGTH"] = 24] = "WIFI_STRENGTH";
                Responsibility2[Responsibility2["AUTO_RECOVERY"] = 25] = "AUTO_RECOVERY";
                Responsibility2[Responsibility2["PEER_RECOVERY"] = 26] = "PEER_RECOVERY";
                Responsibility2[Responsibility2["CAPABILITIES_MANAGEMENT"] = 27] = "CAPABILITIES_MANAGEMENT";
                Responsibility2[Responsibility2["EXTENDED_MANAGEMENT"] = 28] = "EXTENDED_MANAGEMENT";
                Responsibility2[Responsibility2["VPN"] = 29] = "VPN";
                Responsibility2[Responsibility2["REMOTE_DESKTOP"] = 30] = "REMOTE_DESKTOP";
                Responsibility2[Responsibility2["CUSTOM_SCRIPTS"] = 31] = "CUSTOM_SCRIPTS";
                Responsibility2[Responsibility2["APP_MODULES"] = 32] = "APP_MODULES";
                Responsibility2[Responsibility2["DISPLAY_MANAGER"] = 33] = "DISPLAY_MANAGER";
                Responsibility2[Responsibility2["SECRET_MANAGEMENT"] = 34] = "SECRET_MANAGEMENT";
                Responsibility2[Responsibility2["PLUGINS"] = 35] = "PLUGINS";
                Responsibility2[Responsibility2["RUNNERS"] = 36] = "RUNNERS";
            })(Responsibility || (Responsibility = {}));
            exports["default"] = Responsibility;
        }
    });
    // node_modules/@signageos/front-display/es6/Feature/capable.js
    var require_capable = __commonJS({
        "node_modules/@signageos/front-display/es6/Feature/capable.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.whenFrontCapable = exports.whenCapable = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var whenCapable = function(requiredCapabilities, saga) {
                return (0, dependencyInjection_1.withDependencies)([
                    "managementDriver"
                ], function(param) {
                    var managementDriver, _len, args, _key, capableOfList;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                managementDriver = param.managementDriver;
                                for(_len = _arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                                    args[_key - 1] = _arguments[_key];
                                }
                                requiredCapabilities = requiredCapabilities instanceof Array ? requiredCapabilities : [
                                    requiredCapabilities
                                ];
                                return [
                                    4,
                                    (0, effects_1.all)(requiredCapabilities.map(function(cap) {
                                        return (0, effects_1.call)(function() {
                                            return managementDriver.managementSupports(cap);
                                        });
                                    }))
                                ];
                            case 1:
                                capableOfList = _state.sent();
                                if (!capableOfList.every(function(capable) {
                                    return capable;
                                })) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    (0, effects_1.call).apply(this, [
                                        saga
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 2:
                                _state.sent();
                                _state.label = 3;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.whenCapable = whenCapable;
            var whenFrontCapable = function(requiredCapabilities, saga) {
                return (0, dependencyInjection_1.withDependencies)([
                    "frontDriver"
                ], function(param) {
                    var frontDriver, _len, args, _key, capableOfList;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                frontDriver = param.frontDriver;
                                for(_len = _arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                                    args[_key - 1] = _arguments[_key];
                                }
                                requiredCapabilities = requiredCapabilities instanceof Array ? requiredCapabilities : [
                                    requiredCapabilities
                                ];
                                return [
                                    4,
                                    (0, effects_1.all)(requiredCapabilities.map(function(cap) {
                                        return (0, effects_1.call)(function() {
                                            return frontDriver.frontSupports(cap);
                                        });
                                    }))
                                ];
                            case 1:
                                capableOfList = _state.sent();
                                if (!capableOfList.every(function(capable) {
                                    return capable;
                                })) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    (0, effects_1.call).apply(this, [
                                        saga
                                    ].concat(_to_consumable_array(args)))
                                ];
                            case 2:
                                _state.sent();
                                _state.label = 3;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.whenFrontCapable = whenFrontCapable;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Capabilities/FrontCapability.js
    var require_FrontCapability = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Capabilities/FrontCapability.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.FrontCapabilities = void 0;
            var FrontCapabilities;
            (function(FrontCapabilities2) {
                FrontCapabilities2["FILE_SYSTEM_INTERNAL_STORAGE"] = "FILE_SYSTEM_INTERNAL_STORAGE";
                FrontCapabilities2["FILE_SYSTEM_EXTERNAL_STORAGE"] = "FILE_SYSTEM_EXTERNAL_STORAGE";
                FrontCapabilities2["FILE_SYSTEM_FILE_CHECKSUM"] = "FILE_SYSTEM_FILE_CHECKSUM";
                FrontCapabilities2["FILE_SYSTEM_LINK"] = "FILE_SYSTEM_LINK";
                FrontCapabilities2["TIMERS_PROPRIETARY"] = "TIMERS_PROPRIETARY";
                FrontCapabilities2["VIDEO_4K"] = "VIDEO_4K";
                FrontCapabilities2["SERIAL"] = "SERIAL";
                FrontCapabilities2["BARCODE_SCANNER"] = "BARCODE_SCANNER";
                FrontCapabilities2["FRONT_OSD"] = "FRONT_OSD";
                FrontCapabilities2["SUPRA"] = "SUPRA";
                FrontCapabilities2["FILE_SYSTEM_CREATE_ARCHIVE"] = "FILE_SYSTEM_CREATE_ARCHIVE";
                FrontCapabilities2["FILE_SYSTEM_ARCHIVE_EXTRACT_INFO"] = "FILE_SYSTEM_ARCHIVE_EXTRACT_INFO";
                FrontCapabilities2["BROWSER"] = "BROWSER";
                FrontCapabilities2["PROXIMITY_SENSOR"] = "PROXIMITY_SENSOR";
            })(FrontCapabilities || (exports.FrontCapabilities = FrontCapabilities = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Timer/deviceProprietaryTimerSagas.js
    var require_deviceProprietaryTimerSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Timer/deviceProprietaryTimerSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.setProprietaryTimer = exports.syncProprietaryTimerSaga = exports.setProprietaryTimerCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceTimerActions_1 = require_deviceTimerActions();
            var TimerLevel_1 = require_TimerLevel();
            var responsible_1 = require_responsible();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var FrontCapability_1 = require_FrontCapability();
            var dependencyInjection_1 = require_dependencyInjection();
            function setProprietaryTimerCallback(timerStorage, action) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!(action.level === TimerLevel_1.TimerLevel.Proprietary)) return [
                                3,
                                6
                            ];
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                4,
                                ,
                                6
                            ]);
                            return [
                                4,
                                (0, effects_1.call)(setProprietaryTimer, timerStorage, action)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTimerActions_1.SetDeviceTimerSettingsSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            error = _state.sent();
                            console.error("syncProprietaryTimerSagas", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTimerActions_1.SetDeviceTimerSettingsFailed,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setProprietaryTimerCallback = setProprietaryTimerCallback;
            exports.syncProprietaryTimerSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].TIMERS, (0, capable_1.whenFrontCapable)(FrontCapability_1.FrontCapabilities.TIMERS_PROPRIETARY, (0, dependencyInjection_1.withDependencies)([
                "proprietaryTimerStorage"
            ], function(param) {
                var proprietaryTimerStorage;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            proprietaryTimerStorage = param.proprietaryTimerStorage;
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceTimerActions_1.SetDeviceTimerSettings, setProprietaryTimerCallback, proprietaryTimerStorage)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            })));
            function setProprietaryTimer(timerStorage, action) {
                return __awaiter(this, void 0, void 0, function() {
                    var type, timeOn, timeOff, weekdays;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!(action.timeOn === null && action.timeOff === null)) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    timerStorage.deleteShortTimer(action.timerType)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                            case 2:
                                type = action.timerType, timeOn = action.timeOn, timeOff = action.timeOff, weekdays = action.weekdays;
                                return [
                                    4,
                                    timerStorage.setShortTimer({
                                        type: type,
                                        timeOn: timeOn,
                                        timeOff: timeOff,
                                        weekdays: weekdays,
                                        keepAppletRunning: action.level === TimerLevel_1.TimerLevel.Proprietary ? action.keepAppletRunning : void 0
                                    })
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.setProprietaryTimer = setProprietaryTimer;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Verification/deviceVerificationSagas.js
    var require_deviceVerificationSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Verification/deviceVerificationSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceVerification = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var authenticationActions_1 = require_authenticationActions();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceVerificationActions_1 = require_deviceVerificationActions();
            function deviceVerification(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, function() {
                                    var deviceUid, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().getDeviceUid()
                                                ];
                                            case 1:
                                                deviceUid = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceVerificationActions_1.CheckVerification,
                                                        uid: deviceUid
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("deviceVerification failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceVerification = deviceVerification;
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Capabilities/ManagementCapabilities.js
    var require_ManagementCapabilities = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Capabilities/ManagementCapabilities.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ManagementCapabilities = void 0;
            var ManagementCapabilities;
            (function(ManagementCapabilities2) {
                ManagementCapabilities2["MODEL"] = "MODEL";
                ManagementCapabilities2["SERIAL_NUMBER"] = "SERIAL_NUMBER";
                ManagementCapabilities2["BRAND"] = "BRAND";
                ManagementCapabilities2["OS_VERSION"] = "OS_VERSION";
                ManagementCapabilities2["BATTERY_STATUS"] = "BATTERY_STATUS";
                ManagementCapabilities2["STORAGE_UNITS"] = "STORAGE_UNITS";
                ManagementCapabilities2["TEMPERATURE"] = "TEMPERATURE";
                ManagementCapabilities2["SCREENSHOT_UPLOAD"] = "SCREENSHOT_UPLOAD";
                ManagementCapabilities2["NETWORK_INFO"] = "NETWORK_INFO";
                ManagementCapabilities2["WIFI"] = "WIFI";
                ManagementCapabilities2["WIFI_SCAN"] = "WIFI_SCAN";
                ManagementCapabilities2["WIFI_AP"] = "WIFI_AP";
                ManagementCapabilities2["WIFI_STRENGTH"] = "WIFI_STRENGTH";
                ManagementCapabilities2["TIMERS_PROPRIETARY"] = "TIMERS_PROPRIETARY";
                ManagementCapabilities2["BRIGHTNESS_SCHEDULING"] = "BRIGHTNESS_SCHEDULING";
                ManagementCapabilities2["TIMERS_NATIVE"] = "TIMERS_NATIVE";
                ManagementCapabilities2["SET_BRIGHTNESS"] = "SET_BRIGHTNESS";
                ManagementCapabilities2["GET_BRIGHTNESS"] = "GET_BRIGHTNESS";
                ManagementCapabilities2["SCREEN_RESIZE"] = "SCREEN_RESIZE";
                ManagementCapabilities2["SET_TIME"] = "SET_TIME";
                ManagementCapabilities2["SET_TIMEZONE"] = "SET_TIMEZONE";
                ManagementCapabilities2["GET_TIMEZONE"] = "GET_TIMEZONE";
                ManagementCapabilities2["NTP_TIME"] = "NTP_TIME";
                ManagementCapabilities2["APP_UPGRADE"] = "APP_UPGRADE";
                ManagementCapabilities2["FIRMWARE_UPGRADE"] = "FIRMWARE_UPGRADE";
                ManagementCapabilities2["PACKAGE_INSTALL"] = "PACKAGE_INSTALL";
                ManagementCapabilities2["NOTIFY_INSTALLED_PACKAGES"] = "NOTIFY_INSTALLED_PACKAGES";
                ManagementCapabilities2["SET_VOLUME"] = "SET_VOLUME";
                ManagementCapabilities2["GET_VOLUME"] = "GET_VOLUME";
                ManagementCapabilities2["SET_REMOTE_CONTROL_ENABLED"] = "SET_REMOTE_CONTROL_ENABLED";
                ManagementCapabilities2["SET_DEBUG"] = "SET_DEBUG";
                ManagementCapabilities2["SYSTEM_REBOOT"] = "SYSTEM_REBOOT";
                ManagementCapabilities2["APP_RESTART"] = "APP_RESTART";
                ManagementCapabilities2["DISPLAY_POWER"] = "DISPLAY_POWER";
                ManagementCapabilities2["SERVLET"] = "SERVLET";
                ManagementCapabilities2["HARDWARE_LED_SET_COLOR"] = "HARDWARE_LED_SET_COLOR";
                ManagementCapabilities2["PROXIMITY_SENSOR"] = "PROXIMITY_SENSOR";
                ManagementCapabilities2["FACTORY_RESET"] = "FACTORY_RESET";
                ManagementCapabilities2["ORIENTATION_LANDSCAPE"] = "ORIENTATION_LANDSCAPE";
                ManagementCapabilities2["ORIENTATION_PORTRAIT"] = "ORIENTATION_PORTRAIT";
                ManagementCapabilities2["ORIENTATION_LANDSCAPE_FLIPPED"] = "ORIENTATION_LANDSCAPE_FLIPPED";
                ManagementCapabilities2["ORIENTATION_PORTRAIT_FLIPPED"] = "ORIENTATION_PORTRAIT_FLIPPED";
                ManagementCapabilities2["ORIENTATION_AUTO"] = "ORIENTATION_AUTO";
                ManagementCapabilities2["SCHEDULE_POWER_ACTION"] = "SCHEDULE_POWER_ACTION";
                ManagementCapabilities2["EXTENDED_MANAGEMENT"] = "EXTENDED_MANAGEMENT";
                ManagementCapabilities2["SYSTEM_CPU"] = "SYSTEM_CPU";
                ManagementCapabilities2["SYSTEM_MEMORY"] = "SYSTEM_MEMORY";
                ManagementCapabilities2["PROXY"] = "PROXY";
                ManagementCapabilities2["AUTO_RECOVERY"] = "AUTO_RECOVERY";
                ManagementCapabilities2["PEER_RECOVERY"] = "PEER_RECOVERY";
                ManagementCapabilities2["FILE_SYSTEM_WIPEOUT"] = "FILE_SYSTEM_WIPEOUT";
                ManagementCapabilities2["REMOTE_DESKTOP"] = "REMOTE_DESKTOP";
                ManagementCapabilities2["HOTEL_MODE"] = "HOTEL_MODE";
                ManagementCapabilities2["VPN"] = "VPN";
                ManagementCapabilities2["CUSTOM_SCRIPTS"] = "CUSTOM_SCRIPTS";
                ManagementCapabilities2["NATIVE_COMMANDS_MDC"] = "NATIVE_COMMANDS_MDC";
                ManagementCapabilities2["DEVICE_OWNER"] = "DEVICE_OWNER";
                ManagementCapabilities2["ACCESSIBILITY_SERVICE"] = "ACCESSIBILITY_SERVICE";
                ManagementCapabilities2["DISPLAY_MANAGER"] = "DISPLAY_MANAGER";
                ManagementCapabilities2["SECRETS"] = "SECRETS";
                ManagementCapabilities2["HARDWARE_ACCELERATION"] = "HARDWARE_ACCELERATION";
                ManagementCapabilities2["WIFI_COUNTRY"] = "WIFI_COUNTRY";
                ManagementCapabilities2["STOP_PACKAGE"] = "STOP_PACKAGE";
                ManagementCapabilities2["PLUGINS"] = "PLUGINS";
                ManagementCapabilities2["RUNNERS"] = "RUNNERS";
                ManagementCapabilities2["NATIVE_COMMANDS_NMC"] = "NATIVE_COMMANDS_NMC";
                ManagementCapabilities2["ADB_SHELL"] = "ADB_SHELL";
                ManagementCapabilities2["ROOT_SHELL"] = "ROOT_SHELL";
                ManagementCapabilities2["WIFI_ENTERPRISE"] = "WIFI_ENTERPRISE";
                ManagementCapabilities2["CLEAR_PACKAGE_DATA"] = "CLEAR_PACKAGE_DATA";
                ManagementCapabilities2["ANDROID_REMOVE_ACCOUNTS"] = "ANDROID_REMOVE_ACCOUNTS";
                ManagementCapabilities2["EXTENDED_CONTROL"] = "EXTENDED_CONTROL";
                ManagementCapabilities2["SEND_UDP"] = "SEND_UDP";
                ManagementCapabilities2["KEEP_APPLET_RUNNING"] = "KEEP_APPLET_RUNNING";
            })(ManagementCapabilities || (exports.ManagementCapabilities = ManagementCapabilities = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Management/ManagementCapability.js
    var require_ManagementCapability = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Management/ManagementCapability.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = void 0;
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            Object.defineProperty(exports, "default", {
                enumerable: true,
                get: function get() {
                    return ManagementCapabilities_1.ManagementCapabilities;
                }
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Device/deviceSagas.js
    var require_deviceSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/deviceSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.notifyDeviceApplicationVersionCommon = exports.notifyDeviceFrontDisplayVersion = exports.notifyDeviceProxyInfo = exports.notifyDeviceInfo = exports.fallbackDeviceRegistration = void 0;
            var AuthenticationFailReason_1 = __importDefault(require_AuthenticationFailReason());
            var authenticationActions_1 = require_authenticationActions();
            var deviceApplicationActions_1 = require_deviceApplicationActions();
            var deviceFrontDisplayActions_1 = require_deviceFrontDisplayActions();
            var deviceActions_1 = require_deviceActions();
            var debug_1 = __importDefault(require_browser2());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var socketActionCreator_1 = require_socketActionCreator();
            var deviceActions_2 = require_deviceActions2();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Device:deviceSaga");
            function fallbackDeviceRegistration(getNativeDriver, autoVerification) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationFailed, function(action) {
                                    var nativeDriver, deviceUid, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                if (!(action.reason === AuthenticationFailReason_1["default"].MISSING_DEVICE)) return [
                                                    3,
                                                    3
                                                ];
                                                nativeDriver = getNativeDriver();
                                                return [
                                                    4,
                                                    nativeDriver.getDeviceUid()
                                                ];
                                            case 1:
                                                deviceUid = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceActions_1.RegisterDevice,
                                                        uid: deviceUid,
                                                        applicationType: nativeDriver.getApplicationType(),
                                                        autoVerification: autoVerification
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("fallbackDeviceRegistration failed", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.fallbackDeviceRegistration = fallbackDeviceRegistration;
            function notifyDeviceInfo(getNativeDriver) {
                var nativeDriver, applicationType, deviceModel, serialNumber, brand, osVersion, supportsModel, error, supportSN, error1, supportsBrand, error2, supportsOsVersion, error3, error4;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                23,
                                ,
                                24
                            ]);
                            nativeDriver = getNativeDriver();
                            applicationType = nativeDriver.getApplicationType();
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].MODEL)
                            ];
                        case 1:
                            supportsModel = _state.sent();
                            if (!supportsModel) return [
                                3,
                                5
                            ];
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                4,
                                ,
                                5
                            ]);
                            return [
                                4,
                                nativeDriver.systemInfo.getModel()
                            ];
                        case 3:
                            deviceModel = _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 4:
                            error = _state.sent();
                            console.error(error.message);
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].SERIAL_NUMBER)
                            ];
                        case 6:
                            supportSN = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceActions_2.UpdateSerialNumberSupport,
                                    supported: supportSN
                                })
                            ];
                        case 7:
                            _state.sent();
                            if (!supportSN) return [
                                3,
                                11
                            ];
                            _state.label = 8;
                        case 8:
                            _state.trys.push([
                                8,
                                10,
                                ,
                                11
                            ]);
                            return [
                                4,
                                nativeDriver.systemInfo.getSerialNumber()
                            ];
                        case 9:
                            serialNumber = _state.sent();
                            return [
                                3,
                                11
                            ];
                        case 10:
                            error1 = _state.sent();
                            console.error(error1.message);
                            return [
                                3,
                                11
                            ];
                        case 11:
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].BRAND)
                            ];
                        case 12:
                            supportsBrand = _state.sent();
                            if (!supportsBrand) return [
                                3,
                                16
                            ];
                            _state.label = 13;
                        case 13:
                            _state.trys.push([
                                13,
                                15,
                                ,
                                16
                            ]);
                            return [
                                4,
                                nativeDriver.systemInfo.getBrand()
                            ];
                        case 14:
                            brand = _state.sent();
                            return [
                                3,
                                16
                            ];
                        case 15:
                            error2 = _state.sent();
                            console.error(error2.message);
                            return [
                                3,
                                16
                            ];
                        case 16:
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].OS_VERSION)
                            ];
                        case 17:
                            supportsOsVersion = _state.sent();
                            if (!supportsOsVersion) return [
                                3,
                                21
                            ];
                            _state.label = 18;
                        case 18:
                            _state.trys.push([
                                18,
                                20,
                                ,
                                21
                            ]);
                            return [
                                4,
                                nativeDriver.systemInfo.getOSVersion()
                            ];
                        case 19:
                            osVersion = _state.sent();
                            return [
                                3,
                                21
                            ];
                        case 20:
                            error3 = _state.sent();
                            console.error(error3.message);
                            return [
                                3,
                                21
                            ];
                        case 21:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceActions_1.UpdateDeviceInfo,
                                    applicationType: applicationType,
                                    model: deviceModel,
                                    serialNumber: serialNumber,
                                    brand: brand,
                                    osVersion: osVersion
                                })
                            ];
                        case 22:
                            _state.sent();
                            return [
                                3,
                                24
                            ];
                        case 23:
                            error4 = _state.sent();
                            console.error("notifyDeviceInfo failed", error4);
                            return [
                                3,
                                24
                            ];
                        case 24:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceInfo = notifyDeviceInfo;
            function notifyDeviceProxyInfo(getNativeDriver) {
                var nativeDriver, supports, enabled, uri, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                6,
                                ,
                                7
                            ]);
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].PROXY)
                            ];
                        case 1:
                            supports = _state.sent();
                            if (!supports) return [
                                3,
                                5
                            ];
                            return [
                                4,
                                nativeDriver.proxy.isEnabled()
                            ];
                        case 2:
                            enabled = _state.sent();
                            return [
                                4,
                                nativeDriver.proxy.getConnectedTo()
                            ];
                        case 3:
                            uri = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceActions_1.UpdateDeviceInfo,
                                    proxy: {
                                        enabled: enabled,
                                        uri: uri
                                    }
                                })
                            ];
                        case 4:
                            _state.sent();
                            _state.label = 5;
                        case 5:
                            return [
                                3,
                                7
                            ];
                        case 6:
                            error = _state.sent();
                            console.error("notifyDeviceProxyInfo failed", error);
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceProxyInfo = notifyDeviceProxyInfo;
            function notifyDeviceFrontDisplayVersion(frontDisplayVersion) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceFrontDisplayActions_1.NotifyDeviceFrontDisplayVersion,
                                                        version: frontDisplayVersion
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("notifyDeviceFrontDisplayVersion failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceFrontDisplayVersion = notifyDeviceFrontDisplayVersion;
            function notifyDeviceApplicationVersionCommon(getNativeDriver, applicationVersion) {
                var deviceUid, error, error1;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                6,
                                ,
                                7
                            ]);
                            return [
                                4,
                                getNativeDriver().getDeviceUid()
                            ];
                        case 1:
                            deviceUid = _state.sent();
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                4,
                                ,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceApplicationActions_1.NotifyDeviceApplicationVersion,
                                    deviceUid: deviceUid,
                                    applicationVersion: applicationVersion
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 4:
                            error = _state.sent();
                            debug4("No fixed application version", error);
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                3,
                                7
                            ];
                        case 6:
                            error1 = _state.sent();
                            console.error("notifyDeviceApplicationVersion failed", error1);
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceApplicationVersionCommon = notifyDeviceApplicationVersionCommon;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Default/combinedDriver.js
    var require_combinedDriver = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Default/combinedDriver.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.normalizeFrontCacheDriver = exports.normalizeManagementCacheDriver = void 0;
            var normalizeManagementCacheDriver = function(managementCacheDriver) {
                if ("managementDriver" in managementCacheDriver) {
                    return managementCacheDriver;
                }
                return {
                    managementDriver: managementCacheDriver,
                    cacheDriver: managementCacheDriver
                };
            };
            exports.normalizeManagementCacheDriver = normalizeManagementCacheDriver;
            var normalizeFrontCacheDriver = function(combinedDriver) {
                if ("frontDriver" in combinedDriver) {
                    return combinedDriver;
                }
                return {
                    frontDriver: combinedDriver,
                    cacheDriver: combinedDriver
                };
            };
            exports.normalizeFrontCacheDriver = normalizeFrontCacheDriver;
        }
    });
    // node_modules/path-browserify/index.js
    var require_path_browserify = __commonJS({
        "node_modules/path-browserify/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function assertPath(path2) {
                if (typeof path2 !== "string") {
                    throw new TypeError("Path must be a string. Received " + JSON.stringify(path2));
                }
            }
            function normalizeStringPosix(path2, allowAboveRoot) {
                var res = "";
                var lastSegmentLength = 0;
                var lastSlash = -1;
                var dots = 0;
                var code;
                for(var i = 0; i <= path2.length; ++i){
                    if (i < path2.length) code = path2.charCodeAt(i);
                    else if (code === 47) break;
                    else code = 47;
                    if (code === 47) {
                        if (lastSlash === i - 1 || dots === 1) {} else if (lastSlash !== i - 1 && dots === 2) {
                            if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {
                                if (res.length > 2) {
                                    var lastSlashIndex = res.lastIndexOf("/");
                                    if (lastSlashIndex !== res.length - 1) {
                                        if (lastSlashIndex === -1) {
                                            res = "";
                                            lastSegmentLength = 0;
                                        } else {
                                            res = res.slice(0, lastSlashIndex);
                                            lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
                                        }
                                        lastSlash = i;
                                        dots = 0;
                                        continue;
                                    }
                                } else if (res.length === 2 || res.length === 1) {
                                    res = "";
                                    lastSegmentLength = 0;
                                    lastSlash = i;
                                    dots = 0;
                                    continue;
                                }
                            }
                            if (allowAboveRoot) {
                                if (res.length > 0) res += "/..";
                                else res = "..";
                                lastSegmentLength = 2;
                            }
                        } else {
                            if (res.length > 0) res += "/" + path2.slice(lastSlash + 1, i);
                            else res = path2.slice(lastSlash + 1, i);
                            lastSegmentLength = i - lastSlash - 1;
                        }
                        lastSlash = i;
                        dots = 0;
                    } else if (code === 46 && dots !== -1) {
                        ++dots;
                    } else {
                        dots = -1;
                    }
                }
                return res;
            }
            function _format(sep, pathObject) {
                var dir = pathObject.dir || pathObject.root;
                var base = pathObject.base || (pathObject.name || "") + (pathObject.ext || "");
                if (!dir) {
                    return base;
                }
                if (dir === pathObject.root) {
                    return dir + base;
                }
                return dir + sep + base;
            }
            var posix = {
                // path.resolve([from ...], to)
                resolve: function resolve() {
                    var resolvedPath = "";
                    var resolvedAbsolute = false;
                    var cwd;
                    for(var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--){
                        var path2;
                        if (i >= 0) path2 = arguments[i];
                        else {
                            if (cwd === void 0) cwd = process.cwd();
                            path2 = cwd;
                        }
                        assertPath(path2);
                        if (path2.length === 0) {
                            continue;
                        }
                        resolvedPath = path2 + "/" + resolvedPath;
                        resolvedAbsolute = path2.charCodeAt(0) === 47;
                    }
                    resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
                    if (resolvedAbsolute) {
                        if (resolvedPath.length > 0) return "/" + resolvedPath;
                        else return "/";
                    } else if (resolvedPath.length > 0) {
                        return resolvedPath;
                    } else {
                        return ".";
                    }
                },
                normalize: function normalize(path2) {
                    assertPath(path2);
                    if (path2.length === 0) return ".";
                    var isAbsolute = path2.charCodeAt(0) === 47;
                    var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;
                    path2 = normalizeStringPosix(path2, !isAbsolute);
                    if (path2.length === 0 && !isAbsolute) path2 = ".";
                    if (path2.length > 0 && trailingSeparator) path2 += "/";
                    if (isAbsolute) return "/" + path2;
                    return path2;
                },
                isAbsolute: function isAbsolute(path2) {
                    assertPath(path2);
                    return path2.length > 0 && path2.charCodeAt(0) === 47;
                },
                join: function join2() {
                    if (arguments.length === 0) return ".";
                    var joined;
                    for(var i = 0; i < arguments.length; ++i){
                        var arg = arguments[i];
                        assertPath(arg);
                        if (arg.length > 0) {
                            if (joined === void 0) joined = arg;
                            else joined += "/" + arg;
                        }
                    }
                    if (joined === void 0) return ".";
                    return posix.normalize(joined);
                },
                relative: function relative(from, to) {
                    assertPath(from);
                    assertPath(to);
                    if (from === to) return "";
                    from = posix.resolve(from);
                    to = posix.resolve(to);
                    if (from === to) return "";
                    var fromStart = 1;
                    for(; fromStart < from.length; ++fromStart){
                        if (from.charCodeAt(fromStart) !== 47) break;
                    }
                    var fromEnd = from.length;
                    var fromLen = fromEnd - fromStart;
                    var toStart = 1;
                    for(; toStart < to.length; ++toStart){
                        if (to.charCodeAt(toStart) !== 47) break;
                    }
                    var toEnd = to.length;
                    var toLen = toEnd - toStart;
                    var length = fromLen < toLen ? fromLen : toLen;
                    var lastCommonSep = -1;
                    var i = 0;
                    for(; i <= length; ++i){
                        if (i === length) {
                            if (toLen > length) {
                                if (to.charCodeAt(toStart + i) === 47) {
                                    return to.slice(toStart + i + 1);
                                } else if (i === 0) {
                                    return to.slice(toStart + i);
                                }
                            } else if (fromLen > length) {
                                if (from.charCodeAt(fromStart + i) === 47) {
                                    lastCommonSep = i;
                                } else if (i === 0) {
                                    lastCommonSep = 0;
                                }
                            }
                            break;
                        }
                        var fromCode = from.charCodeAt(fromStart + i);
                        var toCode = to.charCodeAt(toStart + i);
                        if (fromCode !== toCode) break;
                        else if (fromCode === 47) lastCommonSep = i;
                    }
                    var out = "";
                    for(i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i){
                        if (i === fromEnd || from.charCodeAt(i) === 47) {
                            if (out.length === 0) out += "..";
                            else out += "/..";
                        }
                    }
                    if (out.length > 0) return out + to.slice(toStart + lastCommonSep);
                    else {
                        toStart += lastCommonSep;
                        if (to.charCodeAt(toStart) === 47) ++toStart;
                        return to.slice(toStart);
                    }
                },
                _makeLong: function _makeLong(path2) {
                    return path2;
                },
                dirname: function dirname2(path2) {
                    assertPath(path2);
                    if (path2.length === 0) return ".";
                    var code = path2.charCodeAt(0);
                    var hasRoot = code === 47;
                    var end = -1;
                    var matchedSlash = true;
                    for(var i = path2.length - 1; i >= 1; --i){
                        code = path2.charCodeAt(i);
                        if (code === 47) {
                            if (!matchedSlash) {
                                end = i;
                                break;
                            }
                        } else {
                            matchedSlash = false;
                        }
                    }
                    if (end === -1) return hasRoot ? "/" : ".";
                    if (hasRoot && end === 1) return "//";
                    return path2.slice(0, end);
                },
                basename: function basename2(path2, ext) {
                    if (ext !== void 0 && typeof ext !== "string") throw new TypeError('"ext" argument must be a string');
                    assertPath(path2);
                    var start = 0;
                    var end = -1;
                    var matchedSlash = true;
                    var i;
                    if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {
                        if (ext.length === path2.length && ext === path2) return "";
                        var extIdx = ext.length - 1;
                        var firstNonSlashEnd = -1;
                        for(i = path2.length - 1; i >= 0; --i){
                            var code = path2.charCodeAt(i);
                            if (code === 47) {
                                if (!matchedSlash) {
                                    start = i + 1;
                                    break;
                                }
                            } else {
                                if (firstNonSlashEnd === -1) {
                                    matchedSlash = false;
                                    firstNonSlashEnd = i + 1;
                                }
                                if (extIdx >= 0) {
                                    if (code === ext.charCodeAt(extIdx)) {
                                        if (--extIdx === -1) {
                                            end = i;
                                        }
                                    } else {
                                        extIdx = -1;
                                        end = firstNonSlashEnd;
                                    }
                                }
                            }
                        }
                        if (start === end) end = firstNonSlashEnd;
                        else if (end === -1) end = path2.length;
                        return path2.slice(start, end);
                    } else {
                        for(i = path2.length - 1; i >= 0; --i){
                            if (path2.charCodeAt(i) === 47) {
                                if (!matchedSlash) {
                                    start = i + 1;
                                    break;
                                }
                            } else if (end === -1) {
                                matchedSlash = false;
                                end = i + 1;
                            }
                        }
                        if (end === -1) return "";
                        return path2.slice(start, end);
                    }
                },
                extname: function extname(path2) {
                    assertPath(path2);
                    var startDot = -1;
                    var startPart = 0;
                    var end = -1;
                    var matchedSlash = true;
                    var preDotState = 0;
                    for(var i = path2.length - 1; i >= 0; --i){
                        var code = path2.charCodeAt(i);
                        if (code === 47) {
                            if (!matchedSlash) {
                                startPart = i + 1;
                                break;
                            }
                            continue;
                        }
                        if (end === -1) {
                            matchedSlash = false;
                            end = i + 1;
                        }
                        if (code === 46) {
                            if (startDot === -1) startDot = i;
                            else if (preDotState !== 1) preDotState = 1;
                        } else if (startDot !== -1) {
                            preDotState = -1;
                        }
                    }
                    if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
                    preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
                    preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
                        return "";
                    }
                    return path2.slice(startDot, end);
                },
                format: function format(pathObject) {
                    if (pathObject === null || (typeof pathObject === "undefined" ? "undefined" : _type_of(pathObject)) !== "object") {
                        throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + (typeof pathObject === "undefined" ? "undefined" : _type_of(pathObject)));
                    }
                    return _format("/", pathObject);
                },
                parse: function parse2(path2) {
                    assertPath(path2);
                    var ret = {
                        root: "",
                        dir: "",
                        base: "",
                        ext: "",
                        name: ""
                    };
                    if (path2.length === 0) return ret;
                    var code = path2.charCodeAt(0);
                    var isAbsolute = code === 47;
                    var start;
                    if (isAbsolute) {
                        ret.root = "/";
                        start = 1;
                    } else {
                        start = 0;
                    }
                    var startDot = -1;
                    var startPart = 0;
                    var end = -1;
                    var matchedSlash = true;
                    var i = path2.length - 1;
                    var preDotState = 0;
                    for(; i >= start; --i){
                        code = path2.charCodeAt(i);
                        if (code === 47) {
                            if (!matchedSlash) {
                                startPart = i + 1;
                                break;
                            }
                            continue;
                        }
                        if (end === -1) {
                            matchedSlash = false;
                            end = i + 1;
                        }
                        if (code === 46) {
                            if (startDot === -1) startDot = i;
                            else if (preDotState !== 1) preDotState = 1;
                        } else if (startDot !== -1) {
                            preDotState = -1;
                        }
                    }
                    if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
                    preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
                    preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
                        if (end !== -1) {
                            if (startPart === 0 && isAbsolute) ret.base = ret.name = path2.slice(1, end);
                            else ret.base = ret.name = path2.slice(startPart, end);
                        }
                    } else {
                        if (startPart === 0 && isAbsolute) {
                            ret.name = path2.slice(1, startDot);
                            ret.base = path2.slice(1, end);
                        } else {
                            ret.name = path2.slice(startPart, startDot);
                            ret.base = path2.slice(startPart, end);
                        }
                        ret.ext = path2.slice(startDot, end);
                    }
                    if (startPart > 0) ret.dir = path2.slice(0, startPart - 1);
                    else if (isAbsolute) ret.dir = "/";
                    return ret;
                },
                sep: "/",
                delimiter: ":",
                win32: null,
                posix: null
            };
            posix.posix = posix;
            module.exports = posix;
        }
    });
    // node_modules/async-lock/lib/index.js
    var require_lib5 = __commonJS({
        "node_modules/async-lock/lib/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var AsyncLock = function AsyncLock1(opts) {
                opts = opts || {};
                this.Promise = opts.Promise || Promise;
                this.queues = {};
                this.domains = {};
                this.domainReentrant = opts.domainReentrant || false;
                this.timeout = opts.timeout || AsyncLock.DEFAULT_TIMEOUT;
                this.maxPending = opts.maxPending || AsyncLock.DEFAULT_MAX_PENDING;
            };
            AsyncLock.DEFAULT_TIMEOUT = 0;
            AsyncLock.DEFAULT_MAX_PENDING = 1e3;
            AsyncLock.prototype.acquire = function(key, fn, cb, opts) {
                if (Array.isArray(key)) {
                    return this._acquireBatch(key, fn, cb, opts);
                }
                if (typeof fn !== "function") {
                    throw new Error("You must pass a function to execute");
                }
                var deferred2 = null;
                if (typeof cb !== "function") {
                    opts = cb;
                    cb = null;
                    deferred2 = this._deferPromise();
                }
                opts = opts || {};
                var resolved = false;
                var timer = null;
                var self2 = this;
                var done3 = function done3(locked3, err, ret) {
                    if (locked3) {
                        if (self2.queues[key].length === 0) {
                            delete self2.queues[key];
                        }
                        delete self2.domains[key];
                    }
                    if (!resolved) {
                        if (!deferred2) {
                            if (typeof cb === "function") {
                                cb(err, ret);
                            }
                        } else {
                            if (err) {
                                deferred2.reject(err);
                            } else {
                                deferred2.resolve(ret);
                            }
                        }
                        resolved = true;
                    }
                    if (locked3) {
                        if (!!self2.queues[key] && self2.queues[key].length > 0) {
                            self2.queues[key].shift()();
                        }
                    }
                };
                var exec2 = function exec2(locked3) {
                    if (resolved) {
                        return done3(locked3);
                    }
                    if (timer) {
                        clearTimeout(timer);
                        timer = null;
                    }
                    if (locked3) {
                        self2.domains[key] = process.domain;
                    }
                    if (fn.length === 1) {
                        var called = false;
                        fn(function(err, ret) {
                            if (!called) {
                                called = true;
                                done3(locked3, err, ret);
                            }
                        });
                    } else {
                        self2._promiseTry(function() {
                            return fn();
                        }).then(function(ret) {
                            done3(locked3, void 0, ret);
                        }, function(error) {
                            done3(locked3, error);
                        });
                    }
                };
                if (!!process.domain) {
                    exec2 = process.domain.bind(exec2);
                }
                if (!self2.queues[key]) {
                    self2.queues[key] = [];
                    exec2(true);
                } else if (self2.domainReentrant && !!process.domain && process.domain === self2.domains[key]) {
                    exec2(false);
                } else if (self2.queues[key].length >= self2.maxPending) {
                    done3(false, new Error("Too much pending tasks"));
                } else {
                    self2.queues[key].push(function() {
                        exec2(true);
                    });
                    var timeout = opts.timeout || self2.timeout;
                    if (timeout) {
                        timer = setTimeout(function() {
                            timer = null;
                            done3(false, new Error("async-lock timed out"));
                        }, timeout);
                    }
                }
                if (deferred2) {
                    return deferred2.promise;
                }
            };
            AsyncLock.prototype._acquireBatch = function(keys, fn, cb, opts) {
                if (typeof cb !== "function") {
                    opts = cb;
                    cb = null;
                }
                var self2 = this;
                var getFn = function getFn(key, fn2) {
                    return function(cb2) {
                        self2.acquire(key, fn2, cb2, opts);
                    };
                };
                var fnx = fn;
                keys.reverse().forEach(function(key) {
                    fnx = getFn(key, fnx);
                });
                if (typeof cb === "function") {
                    fnx(cb);
                } else {
                    var deferred2 = this._deferPromise();
                    fnx(function(err, ret) {
                        if (err) {
                            deferred2.reject(err);
                        } else {
                            deferred2.resolve(ret);
                        }
                    });
                    return deferred2.promise;
                }
            };
            AsyncLock.prototype.isBusy = function(key) {
                if (!key) {
                    return Object.keys(this.queues).length > 0;
                } else {
                    return !!this.queues[key];
                }
            };
            AsyncLock.prototype._promiseTry = function(fn) {
                try {
                    return this.Promise.resolve(fn());
                } catch (e) {
                    return this.Promise.reject(e);
                }
            };
            AsyncLock.prototype._deferPromise = function() {
                if (typeof this.Promise.defer === "function") {
                    return this.Promise.defer();
                } else {
                    var result17 = {
                        reject: function reject(err) {
                            return Promise.resolve().then(function() {
                                result17.reject(err);
                            });
                        },
                        resolve: function resolve(ret) {
                            return Promise.resolve().then(function() {
                                result17.resolve(ret);
                            });
                        },
                        promise: void 0
                    };
                    result17.promise = new this.Promise(function(resolve, reject) {
                        result17.reject = reject;
                        result17.resolve = resolve;
                    });
                    return result17;
                }
            };
            module.exports = AsyncLock;
        }
    });
    // node_modules/async-lock/index.js
    var require_async_lock = __commonJS({
        "node_modules/async-lock/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_lib5();
        }
    });
    // node_modules/@signageos/front-display/es6/Lock/lockedDecorator.js
    var require_lockedDecorator = __commonJS({
        "node_modules/@signageos/front-display/es6/Lock/lockedDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.locked = void 0;
            var async_lock_1 = __importDefault(require_async_lock());
            var asyncLock = new async_lock_1["default"]();
            function locked3(key, options) {
                return function(_target, _propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        var _this = this;
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return asyncLock.acquire(key, function() {
                            return __awaiter(_this, void 0, void 0, function() {
                                var returnValuePromise;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            returnValuePromise = originalMethod.apply(this, args);
                                            if (!(returnValuePromise instanceof Promise)) {
                                                throw new Error("Synchronous methods must return Promise instance. But ".concat(JSON.stringify(returnValuePromise), " given."));
                                            }
                                            return [
                                                4,
                                                returnValuePromise
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }, options);
                    };
                };
            }
            exports.locked = locked3;
        }
    });
    // node_modules/safe-buffer/index.js
    var require_safe_buffer = __commonJS({
        "node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/randombytes/browser.js
    var require_browser4 = __commonJS({
        "node_modules/randombytes/browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var MAX_BYTES = 65536;
            var MAX_UINT32 = 4294967295;
            function oldBrowser() {
                throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11");
            }
            var Buffer3 = require_safe_buffer().Buffer;
            var crypto2 = globalThis.crypto || globalThis.msCrypto;
            if (crypto2 && crypto2.getRandomValues) {
                module.exports = randomBytes;
            } else {
                module.exports = oldBrowser;
            }
            function randomBytes(size, cb) {
                if (size > MAX_UINT32) throw new RangeError("requested too many random bytes");
                var bytes = Buffer3.allocUnsafe(size);
                if (size > 0) {
                    if (size > MAX_BYTES) {
                        for(var generated = 0; generated < size; generated += MAX_BYTES){
                            crypto2.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));
                        }
                    } else {
                        crypto2.getRandomValues(bytes);
                    }
                }
                if (typeof cb === "function") {
                    return process.nextTick(function() {
                        cb(null, bytes);
                    });
                }
                return bytes;
            }
        }
    });
    // node_modules/inherits/inherits_browser.js
    var require_inherits_browser = __commonJS({
        "node_modules/inherits/inherits_browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            if (typeof Object.create === "function") {
                module.exports = function inherits(ctor, superCtor) {
                    if (superCtor) {
                        ctor.super_ = superCtor;
                        ctor.prototype = Object.create(superCtor.prototype, {
                            constructor: {
                                value: ctor,
                                enumerable: false,
                                writable: true,
                                configurable: true
                            }
                        });
                    }
                };
            } else {
                module.exports = function inherits(ctor, superCtor) {
                    if (superCtor) {
                        ctor.super_ = superCtor;
                        var TempCtor = function TempCtor() {};
                        TempCtor.prototype = superCtor.prototype;
                        ctor.prototype = new TempCtor();
                        ctor.prototype.constructor = ctor;
                    }
                };
            }
        }
    });
    // node_modules/hash-base/node_modules/safe-buffer/index.js
    var require_safe_buffer2 = __commonJS({
        "node_modules/hash-base/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js
    var require_stream_browser = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_events().EventEmitter;
        }
    });
    // node_modules/has-tostringtag/shams.js
    var require_shams2 = __commonJS({
        "node_modules/has-tostringtag/shams.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hasSymbols = require_shams();
            module.exports = function hasToStringTagShams() {
                return hasSymbols() && !!Symbol.toStringTag;
            };
        }
    });
    // node_modules/is-arguments/index.js
    var require_is_arguments = __commonJS({
        "node_modules/is-arguments/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hasToStringTag = require_shams2()();
            var callBound = require_call_bound();
            var $toString = callBound("Object.prototype.toString");
            var isStandardArguments = function isArguments(value) {
                if (hasToStringTag && value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && Symbol.toStringTag in value) {
                    return false;
                }
                return $toString(value) === "[object Arguments]";
            };
            var isLegacyArguments = function isArguments(value) {
                if (isStandardArguments(value)) {
                    return true;
                }
                return value !== null && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "length" in value && typeof value.length === "number" && value.length >= 0 && $toString(value) !== "[object Array]" && "callee" in value && $toString(value.callee) === "[object Function]";
            };
            var supportsStandardArguments = function() {
                return isStandardArguments(arguments);
            }();
            isStandardArguments.isLegacyArguments = isLegacyArguments;
            module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
        }
    });
    // node_modules/is-regex/index.js
    var require_is_regex = __commonJS({
        "node_modules/is-regex/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var callBound = require_call_bound();
            var hasToStringTag = require_shams2()();
            var hasOwn = require_hasown();
            var gOPD = require_gopd();
            var fn;
            if (hasToStringTag) {
                $exec = callBound("RegExp.prototype.exec");
                isRegexMarker = {};
                throwRegexMarker = function throwRegexMarker() {
                    throw isRegexMarker;
                };
                badStringifier = {
                    toString: throwRegexMarker,
                    valueOf: throwRegexMarker
                };
                if (_type_of(Symbol.toPrimitive) === "symbol") {
                    badStringifier[Symbol.toPrimitive] = throwRegexMarker;
                }
                fn = function isRegex(value) {
                    if (!value || (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object") {
                        return false;
                    }
                    var descriptor = /** @type {NonNullable<typeof gOPD>} */ gOPD(/** @type {{ lastIndex?: unknown }} */ value, "lastIndex");
                    var hasLastIndexDataProperty = descriptor && hasOwn(descriptor, "value");
                    if (!hasLastIndexDataProperty) {
                        return false;
                    }
                    try {
                        $exec(value, /** @type {string} */ /** @type {unknown} */ badStringifier);
                    } catch (e) {
                        return e === isRegexMarker;
                    }
                };
            } else {
                $toString = callBound("Object.prototype.toString");
                regexClass = "[object RegExp]";
                fn = function isRegex(value) {
                    if (!value || (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object" && typeof value !== "function") {
                        return false;
                    }
                    return $toString(value) === regexClass;
                };
            }
            var $exec;
            var isRegexMarker;
            var throwRegexMarker;
            var badStringifier;
            var $toString;
            var regexClass;
            module.exports = fn;
        }
    });
    // node_modules/safe-regex-test/index.js
    var require_safe_regex_test = __commonJS({
        "node_modules/safe-regex-test/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var callBound = require_call_bound();
            var isRegex = require_is_regex();
            var $exec = callBound("RegExp.prototype.exec");
            var $TypeError = require_type();
            module.exports = function regexTester(regex) {
                if (!isRegex(regex)) {
                    throw new $TypeError("`regex` must be a RegExp");
                }
                return function test(s) {
                    return $exec(regex, s) !== null;
                };
            };
        }
    });
    // node_modules/generator-function/index.js
    var require_generator_function = __commonJS({
        "node_modules/generator-function/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var cached = /** @type {GeneratorFunctionConstructor} */ (function cached() {
                return _ts_generator(this, function(_state) {
                    return [
                        2
                    ];
                });
            }).constructor;
            module.exports = function() {
                return cached;
            };
        }
    });
    // node_modules/is-generator-function/index.js
    var require_is_generator_function = __commonJS({
        "node_modules/is-generator-function/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var callBound = require_call_bound();
            var safeRegexTest = require_safe_regex_test();
            var isFnRegex = safeRegexTest(/^\s*(?:function)?\*/);
            var hasToStringTag = require_shams2()();
            var getProto = require_get_proto();
            var toStr = callBound("Object.prototype.toString");
            var fnToStr = callBound("Function.prototype.toString");
            var getGeneratorFunction = require_generator_function();
            module.exports = function isGeneratorFunction(fn) {
                if (typeof fn !== "function") {
                    return false;
                }
                if (isFnRegex(fnToStr(fn))) {
                    return true;
                }
                if (!hasToStringTag) {
                    var str = toStr(fn);
                    return str === "[object GeneratorFunction]";
                }
                if (!getProto) {
                    return false;
                }
                var GeneratorFunction = getGeneratorFunction();
                return GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;
            };
        }
    });
    // node_modules/is-callable/index.js
    var require_is_callable = __commonJS({
        "node_modules/is-callable/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var fnToStr = Function.prototype.toString;
            var reflectApply = (typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && Reflect !== null && Reflect.apply;
            var badArrayLike;
            var isCallableMarker;
            if (typeof reflectApply === "function" && typeof Object.defineProperty === "function") {
                try {
                    badArrayLike = Object.defineProperty({}, "length", {
                        get: function get() {
                            throw isCallableMarker;
                        }
                    });
                    isCallableMarker = {};
                    reflectApply(function() {
                        throw 42;
                    }, null, badArrayLike);
                } catch (_2) {
                    if (_2 !== isCallableMarker) {
                        reflectApply = null;
                    }
                }
            } else {
                reflectApply = null;
            }
            var constructorRegex = /^\s*class\b/;
            var isES6ClassFn = function isES6ClassFunction(value) {
                try {
                    var fnStr = fnToStr.call(value);
                    return constructorRegex.test(fnStr);
                } catch (e) {
                    return false;
                }
            };
            var tryFunctionObject = function tryFunctionToStr(value) {
                try {
                    if (isES6ClassFn(value)) {
                        return false;
                    }
                    fnToStr.call(value);
                    return true;
                } catch (e) {
                    return false;
                }
            };
            var toStr = Object.prototype.toString;
            var objectClass = "[object Object]";
            var fnClass = "[object Function]";
            var genClass = "[object GeneratorFunction]";
            var ddaClass = "[object HTMLAllCollection]";
            var ddaClass2 = "[object HTML document.all class]";
            var ddaClass3 = "[object HTMLCollection]";
            var hasToStringTag = typeof Symbol === "function" && !!Symbol.toStringTag;
            var isIE68 = !(0 in [
                , 
            ]);
            var isDDA = function isDocumentDotAll() {
                return false;
            };
            if ((typeof document === "undefined" ? "undefined" : _type_of(document)) === "object") {
                all2 = document.all;
                if (toStr.call(all2) === toStr.call(document.all)) {
                    isDDA = function isDocumentDotAll(value) {
                        if ((isIE68 || !value) && (typeof value === "undefined" || (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object")) {
                            try {
                                var str = toStr.call(value);
                                return (str === ddaClass || str === ddaClass2 || str === ddaClass3 || str === objectClass) && value("") == null;
                            } catch (e) {}
                        }
                        return false;
                    };
                }
            }
            var all2;
            module.exports = reflectApply ? function isCallable(value) {
                if (isDDA(value)) {
                    return true;
                }
                if (!value) {
                    return false;
                }
                if (typeof value !== "function" && (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object") {
                    return false;
                }
                try {
                    reflectApply(value, null, badArrayLike);
                } catch (e) {
                    if (e !== isCallableMarker) {
                        return false;
                    }
                }
                return !isES6ClassFn(value) && tryFunctionObject(value);
            } : function isCallable(value) {
                if (isDDA(value)) {
                    return true;
                }
                if (!value) {
                    return false;
                }
                if (typeof value !== "function" && (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object") {
                    return false;
                }
                if (hasToStringTag) {
                    return tryFunctionObject(value);
                }
                if (isES6ClassFn(value)) {
                    return false;
                }
                var strClass = toStr.call(value);
                if (strClass !== fnClass && strClass !== genClass && !/^\[object HTML/.test(strClass)) {
                    return false;
                }
                return tryFunctionObject(value);
            };
        }
    });
    // node_modules/for-each/index.js
    var require_for_each = __commonJS({
        "node_modules/for-each/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isCallable = require_is_callable();
            var toStr = Object.prototype.toString;
            var hasOwnProperty = Object.prototype.hasOwnProperty;
            var forEachArray = function forEachArray2(array4, iterator3, receiver) {
                for(var i = 0, len = array4.length; i < len; i++){
                    if (hasOwnProperty.call(array4, i)) {
                        if (receiver == null) {
                            iterator3(array4[i], i, array4);
                        } else {
                            iterator3.call(receiver, array4[i], i, array4);
                        }
                    }
                }
            };
            var forEachString = function forEachString2(string5, iterator3, receiver) {
                for(var i = 0, len = string5.length; i < len; i++){
                    if (receiver == null) {
                        iterator3(string5.charAt(i), i, string5);
                    } else {
                        iterator3.call(receiver, string5.charAt(i), i, string5);
                    }
                }
            };
            var forEachObject = function forEachObject2(object, iterator3, receiver) {
                for(var k in object){
                    if (hasOwnProperty.call(object, k)) {
                        if (receiver == null) {
                            iterator3(object[k], k, object);
                        } else {
                            iterator3.call(receiver, object[k], k, object);
                        }
                    }
                }
            };
            function isArray(x) {
                return toStr.call(x) === "[object Array]";
            }
            module.exports = function forEach(list, iterator3, thisArg) {
                if (!isCallable(iterator3)) {
                    throw new TypeError("iterator must be a function");
                }
                var receiver;
                if (arguments.length >= 3) {
                    receiver = thisArg;
                }
                if (isArray(list)) {
                    forEachArray(list, iterator3, receiver);
                } else if (typeof list === "string") {
                    forEachString(list, iterator3, receiver);
                } else {
                    forEachObject(list, iterator3, receiver);
                }
            };
        }
    });
    // node_modules/possible-typed-array-names/index.js
    var require_possible_typed_array_names = __commonJS({
        "node_modules/possible-typed-array-names/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = [
                "Float16Array",
                "Float32Array",
                "Float64Array",
                "Int8Array",
                "Int16Array",
                "Int32Array",
                "Uint8Array",
                "Uint8ClampedArray",
                "Uint16Array",
                "Uint32Array",
                "BigInt64Array",
                "BigUint64Array"
            ];
        }
    });
    // node_modules/available-typed-arrays/index.js
    var require_available_typed_arrays = __commonJS({
        "node_modules/available-typed-arrays/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var possibleNames = require_possible_typed_array_names();
            var g = typeof globalThis === "undefined" ? globalThis : globalThis;
            module.exports = function availableTypedArrays() {
                var out = [];
                for(var i = 0; i < possibleNames.length; i++){
                    if (typeof g[possibleNames[i]] === "function") {
                        out[out.length] = possibleNames[i];
                    }
                }
                return out;
            };
        }
    });
    // node_modules/define-data-property/index.js
    var require_define_data_property = __commonJS({
        "node_modules/define-data-property/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $defineProperty = require_es_define_property();
            var $SyntaxError = require_syntax();
            var $TypeError = require_type();
            var gopd = require_gopd();
            module.exports = function defineDataProperty(obj, property, value) {
                if (!obj || (typeof obj === "undefined" ? "undefined" : _type_of(obj)) !== "object" && typeof obj !== "function") {
                    throw new $TypeError("`obj` must be an object or a function`");
                }
                if (typeof property !== "string" && (typeof property === "undefined" ? "undefined" : _type_of(property)) !== "symbol") {
                    throw new $TypeError("`property` must be a string or a symbol`");
                }
                if (arguments.length > 3 && typeof arguments[3] !== "boolean" && arguments[3] !== null) {
                    throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null");
                }
                if (arguments.length > 4 && typeof arguments[4] !== "boolean" && arguments[4] !== null) {
                    throw new $TypeError("`nonWritable`, if provided, must be a boolean or null");
                }
                if (arguments.length > 5 && typeof arguments[5] !== "boolean" && arguments[5] !== null) {
                    throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null");
                }
                if (arguments.length > 6 && typeof arguments[6] !== "boolean") {
                    throw new $TypeError("`loose`, if provided, must be a boolean");
                }
                var nonEnumerable = arguments.length > 3 ? arguments[3] : null;
                var nonWritable = arguments.length > 4 ? arguments[4] : null;
                var nonConfigurable = arguments.length > 5 ? arguments[5] : null;
                var loose = arguments.length > 6 ? arguments[6] : false;
                var desc = !!gopd && gopd(obj, property);
                if ($defineProperty) {
                    $defineProperty(obj, property, {
                        configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,
                        enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,
                        value: value,
                        writable: nonWritable === null && desc ? desc.writable : !nonWritable
                    });
                } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) {
                    obj[property] = value;
                } else {
                    throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");
                }
            };
        }
    });
    // node_modules/has-property-descriptors/index.js
    var require_has_property_descriptors = __commonJS({
        "node_modules/has-property-descriptors/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $defineProperty = require_es_define_property();
            var hasPropertyDescriptors = function hasPropertyDescriptors2() {
                return !!$defineProperty;
            };
            hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
                if (!$defineProperty) {
                    return null;
                }
                try {
                    return $defineProperty([], "length", {
                        value: 1
                    }).length !== 1;
                } catch (e) {
                    return true;
                }
            };
            module.exports = hasPropertyDescriptors;
        }
    });
    // node_modules/set-function-length/index.js
    var require_set_function_length = __commonJS({
        "node_modules/set-function-length/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var GetIntrinsic = require_get_intrinsic();
            var define2 = require_define_data_property();
            var hasDescriptors = require_has_property_descriptors()();
            var gOPD = require_gopd();
            var $TypeError = require_type();
            var $floor = GetIntrinsic("%Math.floor%");
            module.exports = function setFunctionLength(fn, length) {
                if (typeof fn !== "function") {
                    throw new $TypeError("`fn` is not a function");
                }
                if (typeof length !== "number" || length < 0 || length > 4294967295 || $floor(length) !== length) {
                    throw new $TypeError("`length` must be a positive 32-bit integer");
                }
                var loose = arguments.length > 2 && !!arguments[2];
                var functionLengthIsConfigurable = true;
                var functionLengthIsWritable = true;
                if ("length" in fn && gOPD) {
                    var desc = gOPD(fn, "length");
                    if (desc && !desc.configurable) {
                        functionLengthIsConfigurable = false;
                    }
                    if (desc && !desc.writable) {
                        functionLengthIsWritable = false;
                    }
                }
                if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {
                    if (hasDescriptors) {
                        define2(/** @type {Parameters<define>[0]} */ fn, "length", length, true, true);
                    } else {
                        define2(/** @type {Parameters<define>[0]} */ fn, "length", length);
                    }
                }
                return fn;
            };
        }
    });
    // node_modules/call-bind-apply-helpers/applyBind.js
    var require_applyBind = __commonJS({
        "node_modules/call-bind-apply-helpers/applyBind.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var bind = require_function_bind();
            var $apply = require_functionApply();
            var actualApply = require_actualApply();
            module.exports = function applyBind() {
                return actualApply(bind, $apply, arguments);
            };
        }
    });
    // node_modules/call-bind/index.js
    var require_call_bind = __commonJS({
        "node_modules/call-bind/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var setFunctionLength = require_set_function_length();
            var $defineProperty = require_es_define_property();
            var callBindBasic = require_call_bind_apply_helpers();
            var applyBind = require_applyBind();
            module.exports = function callBind(originalFunction) {
                var func3 = callBindBasic(arguments);
                var adjustedLength = 1 + originalFunction.length - (arguments.length - 1);
                return setFunctionLength(func3, adjustedLength > 0 ? adjustedLength : 0, true);
            };
            if ($defineProperty) {
                $defineProperty(module.exports, "apply", {
                    value: applyBind
                });
            } else {
                module.exports.apply = applyBind;
            }
        }
    });
    // node_modules/which-typed-array/index.js
    var require_which_typed_array = __commonJS({
        "node_modules/which-typed-array/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var forEach = require_for_each();
            var availableTypedArrays = require_available_typed_arrays();
            var callBind = require_call_bind();
            var callBound = require_call_bound();
            var gOPD = require_gopd();
            var getProto = require_get_proto();
            var $toString = callBound("Object.prototype.toString");
            var hasToStringTag = require_shams2()();
            var g = typeof globalThis === "undefined" ? globalThis : globalThis;
            var typedArrays = availableTypedArrays();
            var $slice = callBound("String.prototype.slice");
            var $indexOf = callBound("Array.prototype.indexOf", true) || function indexOf(array4, value) {
                for(var i = 0; i < array4.length; i += 1){
                    if (array4[i] === value) {
                        return i;
                    }
                }
                return -1;
            };
            var cache = {
                __proto__: null
            };
            if (hasToStringTag && gOPD && getProto) {
                forEach(typedArrays, function(typedArray) {
                    var arr = new g[typedArray]();
                    if (Symbol.toStringTag in arr && getProto) {
                        var proto = getProto(arr);
                        var descriptor = gOPD(proto, Symbol.toStringTag);
                        if (!descriptor && proto) {
                            var superProto = getProto(proto);
                            descriptor = gOPD(superProto, Symbol.toStringTag);
                        }
                        if (descriptor && descriptor.get) {
                            var bound = callBind(descriptor.get);
                            cache[/** @type {`$${TypedArrayName}`} */ "$" + typedArray] = bound;
                        }
                    }
                });
            } else {
                forEach(typedArrays, function(typedArray) {
                    var arr = new g[typedArray]();
                    var fn = arr.slice || arr.set;
                    if (fn) {
                        var bound = /** @type {BoundSlice | BoundSet} */ // @ts-expect-error TODO FIXME
                        callBind(fn);
                        cache[/** @type {`$${TypedArrayName}`} */ "$" + typedArray] = bound;
                    }
                });
            }
            function tryTypedArrays(value) {
                var found = false;
                forEach(/** @type {Record<`$${TypedArrayName}`, Getter>} */ cache, /** @param {Getter} getter @param {`$${TypedArrayName}`} typedArray */ function(getter, typedArray) {
                    if (!found) {
                        try {
                            if ("$" + getter(value) === typedArray) {
                                found = /** @type {TypedArrayName} */ $slice(typedArray, 1);
                            }
                        } catch (e) {}
                    }
                });
                return found;
            }
            function trySlices(value) {
                var found = false;
                forEach(/** @type {Record<`$${TypedArrayName}`, Getter>} */ cache, /** @param {Getter} getter @param {`$${TypedArrayName}`} name */ function(getter, name) {
                    if (!found) {
                        try {
                            getter(value);
                            found = /** @type {TypedArrayName} */ $slice(name, 1);
                        } catch (e) {}
                    }
                });
                return found;
            }
            function isTATag(tag2) {
                return $indexOf(typedArrays, tag2) > -1;
            }
            module.exports = function whichTypedArray(value) {
                if (!value || (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object") {
                    return false;
                }
                if (!hasToStringTag) {
                    var tag2 = $slice($toString(value), 8, -1);
                    if (isTATag(tag2)) {
                        return tag2;
                    }
                    if (tag2 !== "Object") {
                        return false;
                    }
                    return trySlices(value);
                }
                if (!gOPD) {
                    return null;
                }
                return tryTypedArrays(value);
            };
        }
    });
    // node_modules/is-typed-array/index.js
    var require_is_typed_array = __commonJS({
        "node_modules/is-typed-array/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var whichTypedArray = require_which_typed_array();
            module.exports = function isTypedArray(value) {
                return !!whichTypedArray(value);
            };
        }
    });
    // node_modules/util/support/types.js
    var require_types2 = __commonJS({
        "node_modules/util/support/types.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isArgumentsObject = require_is_arguments();
            var isGeneratorFunction = require_is_generator_function();
            var whichTypedArray = require_which_typed_array();
            var isTypedArray = require_is_typed_array();
            function uncurryThis(f) {
                return f.call.bind(f);
            }
            var BigIntSupported = typeof BigInt !== "undefined";
            var SymbolSupported = typeof Symbol !== "undefined";
            var ObjectToString = uncurryThis(Object.prototype.toString);
            var numberValue = uncurryThis(Number.prototype.valueOf);
            var stringValue = uncurryThis(String.prototype.valueOf);
            var booleanValue = uncurryThis(Boolean.prototype.valueOf);
            if (BigIntSupported) {
                bigIntValue = uncurryThis(BigInt.prototype.valueOf);
            }
            var bigIntValue;
            if (SymbolSupported) {
                symbolValue = uncurryThis(Symbol.prototype.valueOf);
            }
            var symbolValue;
            function checkBoxedPrimitive(value, prototypeValueOf) {
                if ((typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object") {
                    return false;
                }
                try {
                    prototypeValueOf(value);
                    return true;
                } catch (e) {
                    return false;
                }
            }
            exports.isArgumentsObject = isArgumentsObject;
            exports.isGeneratorFunction = isGeneratorFunction;
            exports.isTypedArray = isTypedArray;
            function isPromise(input) {
                return typeof Promise !== "undefined" && input instanceof Promise || input !== null && (typeof input === "undefined" ? "undefined" : _type_of(input)) === "object" && typeof input.then === "function" && typeof input["catch"] === "function";
            }
            exports.isPromise = isPromise;
            function isArrayBufferView(value) {
                if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) {
                    return ArrayBuffer.isView(value);
                }
                return isTypedArray(value) || isDataView(value);
            }
            exports.isArrayBufferView = isArrayBufferView;
            function isUint8Array(value) {
                return whichTypedArray(value) === "Uint8Array";
            }
            exports.isUint8Array = isUint8Array;
            function isUint8ClampedArray(value) {
                return whichTypedArray(value) === "Uint8ClampedArray";
            }
            exports.isUint8ClampedArray = isUint8ClampedArray;
            function isUint16Array(value) {
                return whichTypedArray(value) === "Uint16Array";
            }
            exports.isUint16Array = isUint16Array;
            function isUint32Array(value) {
                return whichTypedArray(value) === "Uint32Array";
            }
            exports.isUint32Array = isUint32Array;
            function isInt8Array(value) {
                return whichTypedArray(value) === "Int8Array";
            }
            exports.isInt8Array = isInt8Array;
            function isInt16Array(value) {
                return whichTypedArray(value) === "Int16Array";
            }
            exports.isInt16Array = isInt16Array;
            function isInt32Array(value) {
                return whichTypedArray(value) === "Int32Array";
            }
            exports.isInt32Array = isInt32Array;
            function isFloat32Array(value) {
                return whichTypedArray(value) === "Float32Array";
            }
            exports.isFloat32Array = isFloat32Array;
            function isFloat64Array(value) {
                return whichTypedArray(value) === "Float64Array";
            }
            exports.isFloat64Array = isFloat64Array;
            function isBigInt64Array(value) {
                return whichTypedArray(value) === "BigInt64Array";
            }
            exports.isBigInt64Array = isBigInt64Array;
            function isBigUint64Array(value) {
                return whichTypedArray(value) === "BigUint64Array";
            }
            exports.isBigUint64Array = isBigUint64Array;
            function isMapToString(value) {
                return ObjectToString(value) === "[object Map]";
            }
            isMapToString.working = typeof Map !== "undefined" && isMapToString(/* @__PURE__ */ new Map());
            function isMap(value) {
                if (typeof Map === "undefined") {
                    return false;
                }
                return isMapToString.working ? isMapToString(value) : value instanceof Map;
            }
            exports.isMap = isMap;
            function isSetToString(value) {
                return ObjectToString(value) === "[object Set]";
            }
            isSetToString.working = typeof Set !== "undefined" && isSetToString(/* @__PURE__ */ new Set());
            function isSet(value) {
                if (typeof Set === "undefined") {
                    return false;
                }
                return isSetToString.working ? isSetToString(value) : value instanceof Set;
            }
            exports.isSet = isSet;
            function isWeakMapToString(value) {
                return ObjectToString(value) === "[object WeakMap]";
            }
            isWeakMapToString.working = typeof WeakMap !== "undefined" && isWeakMapToString(/* @__PURE__ */ new WeakMap());
            function isWeakMap(value) {
                if (typeof WeakMap === "undefined") {
                    return false;
                }
                return isWeakMapToString.working ? isWeakMapToString(value) : value instanceof WeakMap;
            }
            exports.isWeakMap = isWeakMap;
            function isWeakSetToString(value) {
                return ObjectToString(value) === "[object WeakSet]";
            }
            isWeakSetToString.working = typeof WeakSet !== "undefined" && isWeakSetToString(/* @__PURE__ */ new WeakSet());
            function isWeakSet(value) {
                return isWeakSetToString(value);
            }
            exports.isWeakSet = isWeakSet;
            function isArrayBufferToString(value) {
                return ObjectToString(value) === "[object ArrayBuffer]";
            }
            isArrayBufferToString.working = typeof ArrayBuffer !== "undefined" && isArrayBufferToString(new ArrayBuffer());
            function isArrayBuffer(value) {
                if (typeof ArrayBuffer === "undefined") {
                    return false;
                }
                return isArrayBufferToString.working ? isArrayBufferToString(value) : value instanceof ArrayBuffer;
            }
            exports.isArrayBuffer = isArrayBuffer;
            function isDataViewToString(value) {
                return ObjectToString(value) === "[object DataView]";
            }
            isDataViewToString.working = typeof ArrayBuffer !== "undefined" && typeof DataView !== "undefined" && isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1));
            function isDataView(value) {
                if (typeof DataView === "undefined") {
                    return false;
                }
                return isDataViewToString.working ? isDataViewToString(value) : value instanceof DataView;
            }
            exports.isDataView = isDataView;
            var SharedArrayBufferCopy = typeof SharedArrayBuffer !== "undefined" ? SharedArrayBuffer : void 0;
            function isSharedArrayBufferToString(value) {
                return ObjectToString(value) === "[object SharedArrayBuffer]";
            }
            function isSharedArrayBuffer(value) {
                if (typeof SharedArrayBufferCopy === "undefined") {
                    return false;
                }
                if (typeof isSharedArrayBufferToString.working === "undefined") {
                    isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());
                }
                return isSharedArrayBufferToString.working ? isSharedArrayBufferToString(value) : value instanceof SharedArrayBufferCopy;
            }
            exports.isSharedArrayBuffer = isSharedArrayBuffer;
            function isAsyncFunction(value) {
                return ObjectToString(value) === "[object AsyncFunction]";
            }
            exports.isAsyncFunction = isAsyncFunction;
            function isMapIterator(value) {
                return ObjectToString(value) === "[object Map Iterator]";
            }
            exports.isMapIterator = isMapIterator;
            function isSetIterator(value) {
                return ObjectToString(value) === "[object Set Iterator]";
            }
            exports.isSetIterator = isSetIterator;
            function isGeneratorObject(value) {
                return ObjectToString(value) === "[object Generator]";
            }
            exports.isGeneratorObject = isGeneratorObject;
            function isWebAssemblyCompiledModule(value) {
                return ObjectToString(value) === "[object WebAssembly.Module]";
            }
            exports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;
            function isNumberObject(value) {
                return checkBoxedPrimitive(value, numberValue);
            }
            exports.isNumberObject = isNumberObject;
            function isStringObject(value) {
                return checkBoxedPrimitive(value, stringValue);
            }
            exports.isStringObject = isStringObject;
            function isBooleanObject(value) {
                return checkBoxedPrimitive(value, booleanValue);
            }
            exports.isBooleanObject = isBooleanObject;
            function isBigIntObject(value) {
                return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);
            }
            exports.isBigIntObject = isBigIntObject;
            function isSymbolObject(value) {
                return SymbolSupported && checkBoxedPrimitive(value, symbolValue);
            }
            exports.isSymbolObject = isSymbolObject;
            function isBoxedPrimitive(value) {
                return isNumberObject(value) || isStringObject(value) || isBooleanObject(value) || isBigIntObject(value) || isSymbolObject(value);
            }
            exports.isBoxedPrimitive = isBoxedPrimitive;
            function isAnyArrayBuffer(value) {
                return typeof Uint8Array !== "undefined" && (isArrayBuffer(value) || isSharedArrayBuffer(value));
            }
            exports.isAnyArrayBuffer = isAnyArrayBuffer;
            [
                "isProxy",
                "isExternal",
                "isModuleNamespaceObject"
            ].forEach(function(method) {
                Object.defineProperty(exports, method, {
                    enumerable: false,
                    value: function value() {
                        throw new Error(method + " is not supported in userland");
                    }
                });
            });
        }
    });
    // node_modules/util/support/isBufferBrowser.js
    var require_isBufferBrowser = __commonJS({
        "node_modules/util/support/isBufferBrowser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function isBuffer(arg) {
                return arg && (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object" && typeof arg.copy === "function" && typeof arg.fill === "function" && typeof arg.readUInt8 === "function";
            };
        }
    });
    // node_modules/util/util.js
    var require_util3 = __commonJS({
        "node_modules/util/util.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(obj) {
                var keys = Object.keys(obj);
                var descriptors = {};
                for(var i = 0; i < keys.length; i++){
                    descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);
                }
                return descriptors;
            };
            var formatRegExp = /%[sdj%]/g;
            exports.format = function(f) {
                if (!isString(f)) {
                    var objects = [];
                    for(var i = 0; i < arguments.length; i++){
                        objects.push(inspect(arguments[i]));
                    }
                    return objects.join(" ");
                }
                var i = 1;
                var args = arguments;
                var len = args.length;
                var str = String(f).replace(formatRegExp, function(x2) {
                    if (x2 === "%%") return "%";
                    if (i >= len) return x2;
                    switch(x2){
                        case "%s":
                            return String(args[i++]);
                        case "%d":
                            return Number(args[i++]);
                        case "%j":
                            try {
                                return JSON.stringify(args[i++]);
                            } catch (_2) {
                                return "[Circular]";
                            }
                        default:
                            return x2;
                    }
                });
                for(var x = args[i]; i < len; x = args[++i]){
                    if (isNull(x) || !isObject2(x)) {
                        str += " " + x;
                    } else {
                        str += " " + inspect(x);
                    }
                }
                return str;
            };
            exports.deprecate = function(fn, msg) {
                if (typeof process !== "undefined" && process.noDeprecation === true) {
                    return fn;
                }
                if (typeof process === "undefined") {
                    return function() {
                        return exports.deprecate(fn, msg).apply(this, arguments);
                    };
                }
                var warned = false;
                function deprecated() {
                    if (!warned) {
                        if (process.throwDeprecation) {
                            throw new Error(msg);
                        } else if (process.traceDeprecation) {
                            console.trace(msg);
                        } else {
                            console.error(msg);
                        }
                        warned = true;
                    }
                    return fn.apply(this, arguments);
                }
                return deprecated;
            };
            var debugs = {};
            var debugEnvRegex = /^$/;
            if (process.env.NODE_DEBUG) {
                debugEnv = process.env.NODE_DEBUG;
                debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase();
                debugEnvRegex = new RegExp("^" + debugEnv + "$", "i");
            }
            var debugEnv;
            exports.debuglog = function(set) {
                set = set.toUpperCase();
                if (!debugs[set]) {
                    if (debugEnvRegex.test(set)) {
                        var pid = process.pid;
                        debugs[set] = function() {
                            var msg = exports.format.apply(exports, arguments);
                            console.error("%s %d: %s", set, pid, msg);
                        };
                    } else {
                        debugs[set] = function() {};
                    }
                }
                return debugs[set];
            };
            function inspect(obj, opts) {
                var ctx = {
                    seen: [],
                    stylize: stylizeNoColor
                };
                if (arguments.length >= 3) ctx.depth = arguments[2];
                if (arguments.length >= 4) ctx.colors = arguments[3];
                if (isBoolean(opts)) {
                    ctx.showHidden = opts;
                } else if (opts) {
                    exports._extend(ctx, opts);
                }
                if (isUndefined2(ctx.showHidden)) ctx.showHidden = false;
                if (isUndefined2(ctx.depth)) ctx.depth = 2;
                if (isUndefined2(ctx.colors)) ctx.colors = false;
                if (isUndefined2(ctx.customInspect)) ctx.customInspect = true;
                if (ctx.colors) ctx.stylize = stylizeWithColor;
                return formatValue(ctx, obj, ctx.depth);
            }
            exports.inspect = inspect;
            inspect.colors = {
                bold: [
                    1,
                    22
                ],
                italic: [
                    3,
                    23
                ],
                underline: [
                    4,
                    24
                ],
                inverse: [
                    7,
                    27
                ],
                white: [
                    37,
                    39
                ],
                grey: [
                    90,
                    39
                ],
                black: [
                    30,
                    39
                ],
                blue: [
                    34,
                    39
                ],
                cyan: [
                    36,
                    39
                ],
                green: [
                    32,
                    39
                ],
                magenta: [
                    35,
                    39
                ],
                red: [
                    31,
                    39
                ],
                yellow: [
                    33,
                    39
                ]
            };
            inspect.styles = {
                special: "cyan",
                number: "yellow",
                boolean: "yellow",
                undefined: "grey",
                "null": "bold",
                string: "green",
                date: "magenta",
                // "name": intentionally not styling
                regexp: "red"
            };
            function stylizeWithColor(str, styleType) {
                var style = inspect.styles[styleType];
                if (style) {
                    return "\x1B[" + inspect.colors[style][0] + "m" + str + "\x1B[" + inspect.colors[style][1] + "m";
                } else {
                    return str;
                }
            }
            function stylizeNoColor(str, styleType) {
                return str;
            }
            function arrayToHash(array4) {
                var hash = {};
                array4.forEach(function(val, idx) {
                    hash[val] = true;
                });
                return hash;
            }
            function formatValue(ctx, value, recurseTimes) {
                if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special
                value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.
                !(value.constructor && value.constructor.prototype === value)) {
                    var ret = value.inspect(recurseTimes, ctx);
                    if (!isString(ret)) {
                        ret = formatValue(ctx, ret, recurseTimes);
                    }
                    return ret;
                }
                var primitive = formatPrimitive(ctx, value);
                if (primitive) {
                    return primitive;
                }
                var keys = Object.keys(value);
                var visibleKeys = arrayToHash(keys);
                if (ctx.showHidden) {
                    keys = Object.getOwnPropertyNames(value);
                }
                if (isError(value) && (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0)) {
                    return formatError(value);
                }
                if (keys.length === 0) {
                    if (isFunction(value)) {
                        var name = value.name ? ": " + value.name : "";
                        return ctx.stylize("[Function" + name + "]", "special");
                    }
                    if (isRegExp(value)) {
                        return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
                    }
                    if (isDate(value)) {
                        return ctx.stylize(Date.prototype.toString.call(value), "date");
                    }
                    if (isError(value)) {
                        return formatError(value);
                    }
                }
                var base = "", array4 = false, braces = [
                    "{",
                    "}"
                ];
                if (isArray(value)) {
                    array4 = true;
                    braces = [
                        "[",
                        "]"
                    ];
                }
                if (isFunction(value)) {
                    var n = value.name ? ": " + value.name : "";
                    base = " [Function" + n + "]";
                }
                if (isRegExp(value)) {
                    base = " " + RegExp.prototype.toString.call(value);
                }
                if (isDate(value)) {
                    base = " " + Date.prototype.toUTCString.call(value);
                }
                if (isError(value)) {
                    base = " " + formatError(value);
                }
                if (keys.length === 0 && (!array4 || value.length == 0)) {
                    return braces[0] + base + braces[1];
                }
                if (recurseTimes < 0) {
                    if (isRegExp(value)) {
                        return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
                    } else {
                        return ctx.stylize("[Object]", "special");
                    }
                }
                ctx.seen.push(value);
                var output;
                if (array4) {
                    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
                } else {
                    output = keys.map(function(key) {
                        return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array4);
                    });
                }
                ctx.seen.pop();
                return reduceToSingleString(output, base, braces);
            }
            function formatPrimitive(ctx, value) {
                if (isUndefined2(value)) return ctx.stylize("undefined", "undefined");
                if (isString(value)) {
                    var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
                    return ctx.stylize(simple, "string");
                }
                if (isNumber(value)) return ctx.stylize("" + value, "number");
                if (isBoolean(value)) return ctx.stylize("" + value, "boolean");
                if (isNull(value)) return ctx.stylize("null", "null");
            }
            function formatError(value) {
                return "[" + Error.prototype.toString.call(value) + "]";
            }
            function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
                var output = [];
                for(var i = 0, l = value.length; i < l; ++i){
                    if (hasOwnProperty(value, String(i))) {
                        output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));
                    } else {
                        output.push("");
                    }
                }
                keys.forEach(function(key) {
                    if (!key.match(/^\d+$/)) {
                        output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));
                    }
                });
                return output;
            }
            function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array4) {
                var name, str, desc;
                desc = Object.getOwnPropertyDescriptor(value, key) || {
                    value: value[key]
                };
                if (desc.get) {
                    if (desc.set) {
                        str = ctx.stylize("[Getter/Setter]", "special");
                    } else {
                        str = ctx.stylize("[Getter]", "special");
                    }
                } else {
                    if (desc.set) {
                        str = ctx.stylize("[Setter]", "special");
                    }
                }
                if (!hasOwnProperty(visibleKeys, key)) {
                    name = "[" + key + "]";
                }
                if (!str) {
                    if (ctx.seen.indexOf(desc.value) < 0) {
                        if (isNull(recurseTimes)) {
                            str = formatValue(ctx, desc.value, null);
                        } else {
                            str = formatValue(ctx, desc.value, recurseTimes - 1);
                        }
                        if (str.indexOf("\n") > -1) {
                            if (array4) {
                                str = str.split("\n").map(function(line) {
                                    return "  " + line;
                                }).join("\n").slice(2);
                            } else {
                                str = "\n" + str.split("\n").map(function(line) {
                                    return "   " + line;
                                }).join("\n");
                            }
                        }
                    } else {
                        str = ctx.stylize("[Circular]", "special");
                    }
                }
                if (isUndefined2(name)) {
                    if (array4 && key.match(/^\d+$/)) {
                        return str;
                    }
                    name = JSON.stringify("" + key);
                    if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
                        name = name.slice(1, -1);
                        name = ctx.stylize(name, "name");
                    } else {
                        name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'");
                        name = ctx.stylize(name, "string");
                    }
                }
                return name + ": " + str;
            }
            function reduceToSingleString(output, base, braces) {
                var numLinesEst = 0;
                var length = output.reduce(function(prev, cur) {
                    numLinesEst++;
                    if (cur.indexOf("\n") >= 0) numLinesEst++;
                    return prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1;
                }, 0);
                if (length > 60) {
                    return braces[0] + (base === "" ? "" : base + "\n ") + " " + output.join(",\n  ") + " " + braces[1];
                }
                return braces[0] + base + " " + output.join(", ") + " " + braces[1];
            }
            exports.types = require_types2();
            function isArray(ar) {
                return Array.isArray(ar);
            }
            exports.isArray = isArray;
            function isBoolean(arg) {
                return typeof arg === "boolean";
            }
            exports.isBoolean = isBoolean;
            function isNull(arg) {
                return arg === null;
            }
            exports.isNull = isNull;
            function isNullOrUndefined(arg) {
                return arg == null;
            }
            exports.isNullOrUndefined = isNullOrUndefined;
            function isNumber(arg) {
                return typeof arg === "number";
            }
            exports.isNumber = isNumber;
            function isString(arg) {
                return typeof arg === "string";
            }
            exports.isString = isString;
            function isSymbol(arg) {
                return (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "symbol";
            }
            exports.isSymbol = isSymbol;
            function isUndefined2(arg) {
                return arg === void 0;
            }
            exports.isUndefined = isUndefined2;
            function isRegExp(re) {
                return isObject2(re) && objectToString(re) === "[object RegExp]";
            }
            exports.isRegExp = isRegExp;
            exports.types.isRegExp = isRegExp;
            function isObject2(arg) {
                return (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object" && arg !== null;
            }
            exports.isObject = isObject2;
            function isDate(d) {
                return isObject2(d) && objectToString(d) === "[object Date]";
            }
            exports.isDate = isDate;
            exports.types.isDate = isDate;
            function isError(e) {
                return isObject2(e) && (objectToString(e) === "[object Error]" || e instanceof Error);
            }
            exports.isError = isError;
            exports.types.isNativeError = isError;
            function isFunction(arg) {
                return typeof arg === "function";
            }
            exports.isFunction = isFunction;
            function isPrimitive(arg) {
                return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "symbol" || // ES6 symbol
                typeof arg === "undefined";
            }
            exports.isPrimitive = isPrimitive;
            exports.isBuffer = require_isBufferBrowser();
            function objectToString(o) {
                return Object.prototype.toString.call(o);
            }
            function pad(n) {
                return n < 10 ? "0" + n.toString(10) : n.toString(10);
            }
            var months = [
                "Jan",
                "Feb",
                "Mar",
                "Apr",
                "May",
                "Jun",
                "Jul",
                "Aug",
                "Sep",
                "Oct",
                "Nov",
                "Dec"
            ];
            function timestamp() {
                var d = /* @__PURE__ */ new Date();
                var time = [
                    pad(d.getHours()),
                    pad(d.getMinutes()),
                    pad(d.getSeconds())
                ].join(":");
                return [
                    d.getDate(),
                    months[d.getMonth()],
                    time
                ].join(" ");
            }
            exports.log = function() {
                console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments));
            };
            exports.inherits = require_inherits_browser();
            exports._extend = function(origin, add) {
                if (!add || !isObject2(add)) return origin;
                var keys = Object.keys(add);
                var i = keys.length;
                while(i--){
                    origin[keys[i]] = add[keys[i]];
                }
                return origin;
            };
            function hasOwnProperty(obj, prop) {
                return Object.prototype.hasOwnProperty.call(obj, prop);
            }
            var kCustomPromisifiedSymbol = typeof Symbol !== "undefined" ? Symbol("util.promisify.custom") : void 0;
            exports.promisify = function promisify(original) {
                if (typeof original !== "function") throw new TypeError('The "original" argument must be of type Function');
                if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {
                    var fn = original[kCustomPromisifiedSymbol];
                    if (typeof fn !== "function") {
                        throw new TypeError('The "util.promisify.custom" argument must be of type Function');
                    }
                    Object.defineProperty(fn, kCustomPromisifiedSymbol, {
                        value: fn,
                        enumerable: false,
                        writable: false,
                        configurable: true
                    });
                    return fn;
                }
                function fn() {
                    var promiseResolve, promiseReject;
                    var promise3 = new Promise(function(resolve, reject) {
                        promiseResolve = resolve;
                        promiseReject = reject;
                    });
                    var args = [];
                    for(var i = 0; i < arguments.length; i++){
                        args.push(arguments[i]);
                    }
                    args.push(function(err, value) {
                        if (err) {
                            promiseReject(err);
                        } else {
                            promiseResolve(value);
                        }
                    });
                    try {
                        original.apply(this, args);
                    } catch (err) {
                        promiseReject(err);
                    }
                    return promise3;
                }
                Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
                if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {
                    value: fn,
                    enumerable: false,
                    writable: false,
                    configurable: true
                });
                return Object.defineProperties(fn, getOwnPropertyDescriptors(original));
            };
            exports.promisify.custom = kCustomPromisifiedSymbol;
            function callbackifyOnRejected(reason, cb) {
                if (!reason) {
                    var newReason = new Error("Promise was rejected with a falsy value");
                    newReason.reason = reason;
                    reason = newReason;
                }
                return cb(reason);
            }
            function callbackify(original) {
                if (typeof original !== "function") {
                    throw new TypeError('The "original" argument must be of type Function');
                }
                function callbackified() {
                    var args = [];
                    for(var i = 0; i < arguments.length; i++){
                        args.push(arguments[i]);
                    }
                    var maybeCb = args.pop();
                    if (typeof maybeCb !== "function") {
                        throw new TypeError("The last argument must be of type Function");
                    }
                    var self2 = this;
                    var cb = function cb() {
                        return maybeCb.apply(self2, arguments);
                    };
                    original.apply(this, args).then(function(ret) {
                        process.nextTick(cb.bind(null, null, ret));
                    }, function(rej) {
                        process.nextTick(callbackifyOnRejected.bind(null, rej, cb));
                    });
                }
                Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));
                Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));
                return callbackified;
            }
            exports.callbackify = callbackify;
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js
    var require_buffer_list = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function ownKeys(object, enumerableOnly) {
                var keys = Object.keys(object);
                if (Object.getOwnPropertySymbols) {
                    var symbols = Object.getOwnPropertySymbols(object);
                    enumerableOnly && (symbols = symbols.filter(function(sym) {
                        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
                    })), keys.push.apply(keys, symbols);
                }
                return keys;
            }
            function _objectSpread(target) {
                for(var i = 1; i < arguments.length; i++){
                    var source = null != arguments[i] ? arguments[i] : {};
                    i % 2 ? ownKeys(Object(source), true).forEach(function(key) {
                        _defineProperty(target, key, source[key]);
                    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
                        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
                    });
                }
                return target;
            }
            function _defineProperty(obj, key, value) {
                key = _toPropertyKey(key);
                if (key in obj) {
                    Object.defineProperty(obj, key, {
                        value: value,
                        enumerable: true,
                        configurable: true,
                        writable: true
                    });
                } else {
                    obj[key] = value;
                }
                return obj;
            }
            function _classCallCheck(instance, Constructor) {
                if (!(instance instanceof Constructor)) {
                    throw new TypeError("Cannot call a class as a function");
                }
            }
            function _defineProperties(target, props) {
                for(var i = 0; i < props.length; i++){
                    var descriptor = props[i];
                    descriptor.enumerable = descriptor.enumerable || false;
                    descriptor.configurable = true;
                    if ("value" in descriptor) descriptor.writable = true;
                    Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
                }
            }
            function _createClass(Constructor, protoProps, staticProps) {
                if (protoProps) _defineProperties(Constructor.prototype, protoProps);
                if (staticProps) _defineProperties(Constructor, staticProps);
                Object.defineProperty(Constructor, "prototype", {
                    writable: false
                });
                return Constructor;
            }
            function _toPropertyKey(arg) {
                var key = _toPrimitive(arg, "string");
                return (typeof key === "undefined" ? "undefined" : _type_of(key)) === "symbol" ? key : String(key);
            }
            function _toPrimitive(input, hint) {
                if ((typeof input === "undefined" ? "undefined" : _type_of(input)) !== "object" || input === null) return input;
                var prim = input[Symbol.toPrimitive];
                if (prim !== void 0) {
                    var res = prim.call(input, hint || "default");
                    if ((typeof res === "undefined" ? "undefined" : _type_of(res)) !== "object") return res;
                    throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return (hint === "string" ? String : Number)(input);
            }
            var _require = require_buffer();
            var Buffer3 = _require.Buffer;
            var _require2 = require_util3();
            var inspect = _require2.inspect;
            var custom = inspect && inspect.custom || "inspect";
            function copyBuffer(src, target, offset) {
                Buffer3.prototype.copy.call(src, target, offset);
            }
            module.exports = /* @__PURE__ */ function() {
                function BufferList() {
                    _classCallCheck(this, BufferList);
                    this.head = null;
                    this.tail = null;
                    this.length = 0;
                }
                _createClass(BufferList, [
                    {
                        key: "push",
                        value: function push(v) {
                            var entry = {
                                data: v,
                                next: null
                            };
                            if (this.length > 0) this.tail.next = entry;
                            else this.head = entry;
                            this.tail = entry;
                            ++this.length;
                        }
                    },
                    {
                        key: "unshift",
                        value: function unshift(v) {
                            var entry = {
                                data: v,
                                next: this.head
                            };
                            if (this.length === 0) this.tail = entry;
                            this.head = entry;
                            ++this.length;
                        }
                    },
                    {
                        key: "shift",
                        value: function shift() {
                            if (this.length === 0) return;
                            var ret = this.head.data;
                            if (this.length === 1) this.head = this.tail = null;
                            else this.head = this.head.next;
                            --this.length;
                            return ret;
                        }
                    },
                    {
                        key: "clear",
                        value: function clear3() {
                            this.head = this.tail = null;
                            this.length = 0;
                        }
                    },
                    {
                        key: "join",
                        value: function join2(s) {
                            if (this.length === 0) return "";
                            var p = this.head;
                            var ret = "" + p.data;
                            while(p = p.next)ret += s + p.data;
                            return ret;
                        }
                    },
                    {
                        key: "concat",
                        value: function concat2(n) {
                            if (this.length === 0) return Buffer3.alloc(0);
                            var ret = Buffer3.allocUnsafe(n >>> 0);
                            var p = this.head;
                            var i = 0;
                            while(p){
                                copyBuffer(p.data, ret, i);
                                i += p.data.length;
                                p = p.next;
                            }
                            return ret;
                        }
                    },
                    {
                        key: "consume",
                        value: function consume(n, hasStrings) {
                            var ret;
                            if (n < this.head.data.length) {
                                ret = this.head.data.slice(0, n);
                                this.head.data = this.head.data.slice(n);
                            } else if (n === this.head.data.length) {
                                ret = this.shift();
                            } else {
                                ret = hasStrings ? this._getString(n) : this._getBuffer(n);
                            }
                            return ret;
                        }
                    },
                    {
                        key: "first",
                        value: function first() {
                            return this.head.data;
                        }
                    },
                    {
                        key: "_getString",
                        value: function _getString(n) {
                            var p = this.head;
                            var c = 1;
                            var ret = p.data;
                            n -= ret.length;
                            while(p = p.next){
                                var str = p.data;
                                var nb = n > str.length ? str.length : n;
                                if (nb === str.length) ret += str;
                                else ret += str.slice(0, n);
                                n -= nb;
                                if (n === 0) {
                                    if (nb === str.length) {
                                        ++c;
                                        if (p.next) this.head = p.next;
                                        else this.head = this.tail = null;
                                    } else {
                                        this.head = p;
                                        p.data = str.slice(nb);
                                    }
                                    break;
                                }
                                ++c;
                            }
                            this.length -= c;
                            return ret;
                        }
                    },
                    {
                        key: "_getBuffer",
                        value: function _getBuffer(n) {
                            var ret = Buffer3.allocUnsafe(n);
                            var p = this.head;
                            var c = 1;
                            p.data.copy(ret);
                            n -= p.data.length;
                            while(p = p.next){
                                var buf = p.data;
                                var nb = n > buf.length ? buf.length : n;
                                buf.copy(ret, ret.length - n, 0, nb);
                                n -= nb;
                                if (n === 0) {
                                    if (nb === buf.length) {
                                        ++c;
                                        if (p.next) this.head = p.next;
                                        else this.head = this.tail = null;
                                    } else {
                                        this.head = p;
                                        p.data = buf.slice(nb);
                                    }
                                    break;
                                }
                                ++c;
                            }
                            this.length -= c;
                            return ret;
                        }
                    },
                    {
                        key: custom,
                        value: function value(_2, options) {
                            return inspect(this, _objectSpread(_objectSpread({}, options), {}, {
                                // Only inspect one level.
                                depth: 0,
                                // It should not recurse.
                                customInspect: false
                            }));
                        }
                    }
                ]);
                return BufferList;
            }();
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js
    var require_destroy = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function destroy(err, cb) {
                var _this = this;
                var readableDestroyed = this._readableState && this._readableState.destroyed;
                var writableDestroyed = this._writableState && this._writableState.destroyed;
                if (readableDestroyed || writableDestroyed) {
                    if (cb) {
                        cb(err);
                    } else if (err) {
                        if (!this._writableState) {
                            process.nextTick(emitErrorNT, this, err);
                        } else if (!this._writableState.errorEmitted) {
                            this._writableState.errorEmitted = true;
                            process.nextTick(emitErrorNT, this, err);
                        }
                    }
                    return this;
                }
                if (this._readableState) {
                    this._readableState.destroyed = true;
                }
                if (this._writableState) {
                    this._writableState.destroyed = true;
                }
                this._destroy(err || null, function(err2) {
                    if (!cb && err2) {
                        if (!_this._writableState) {
                            process.nextTick(emitErrorAndCloseNT, _this, err2);
                        } else if (!_this._writableState.errorEmitted) {
                            _this._writableState.errorEmitted = true;
                            process.nextTick(emitErrorAndCloseNT, _this, err2);
                        } else {
                            process.nextTick(emitCloseNT, _this);
                        }
                    } else if (cb) {
                        process.nextTick(emitCloseNT, _this);
                        cb(err2);
                    } else {
                        process.nextTick(emitCloseNT, _this);
                    }
                });
                return this;
            }
            function emitErrorAndCloseNT(self2, err) {
                emitErrorNT(self2, err);
                emitCloseNT(self2);
            }
            function emitCloseNT(self2) {
                if (self2._writableState && !self2._writableState.emitClose) return;
                if (self2._readableState && !self2._readableState.emitClose) return;
                self2.emit("close");
            }
            function undestroy() {
                if (this._readableState) {
                    this._readableState.destroyed = false;
                    this._readableState.reading = false;
                    this._readableState.ended = false;
                    this._readableState.endEmitted = false;
                }
                if (this._writableState) {
                    this._writableState.destroyed = false;
                    this._writableState.ended = false;
                    this._writableState.ending = false;
                    this._writableState.finalCalled = false;
                    this._writableState.prefinished = false;
                    this._writableState.finished = false;
                    this._writableState.errorEmitted = false;
                }
            }
            function emitErrorNT(self2, err) {
                self2.emit("error", err);
            }
            function errorOrDestroy(stream, err) {
                var rState = stream._readableState;
                var wState = stream._writableState;
                if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);
                else stream.emit("error", err);
            }
            module.exports = {
                destroy: destroy,
                undestroy: undestroy,
                errorOrDestroy: errorOrDestroy
            };
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js
    var require_errors_browser = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function _inheritsLoose(subClass, superClass) {
                subClass.prototype = Object.create(superClass.prototype);
                subClass.prototype.constructor = subClass;
                subClass.__proto__ = superClass;
            }
            var codes = {};
            function createErrorType(code, message2, Base) {
                if (!Base) {
                    Base = Error;
                }
                function getMessage(arg1, arg2, arg3) {
                    if (typeof message2 === "string") {
                        return message2;
                    } else {
                        return message2(arg1, arg2, arg3);
                    }
                }
                var NodeError = /* @__PURE__ */ function(_Base) {
                    _inheritsLoose(NodeError2, _Base);
                    function NodeError2(arg1, arg2, arg3) {
                        return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;
                    }
                    return NodeError2;
                }(Base);
                NodeError.prototype.name = Base.name;
                NodeError.prototype.code = code;
                codes[code] = NodeError;
            }
            function oneOf(expected, thing) {
                if (Array.isArray(expected)) {
                    var len = expected.length;
                    expected = expected.map(function(i) {
                        return String(i);
                    });
                    if (len > 2) {
                        return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];
                    } else if (len === 2) {
                        return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);
                    } else {
                        return "of ".concat(thing, " ").concat(expected[0]);
                    }
                } else {
                    return "of ".concat(thing, " ").concat(String(expected));
                }
            }
            function startsWith(str, search, pos) {
                return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;
            }
            function endsWith(str, search, this_len) {
                if (this_len === void 0 || this_len > str.length) {
                    this_len = str.length;
                }
                return str.substring(this_len - search.length, this_len) === search;
            }
            function includes(str, search, start) {
                if (typeof start !== "number") {
                    start = 0;
                }
                if (start + search.length > str.length) {
                    return false;
                } else {
                    return str.indexOf(search, start) !== -1;
                }
            }
            createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {
                return 'The value "' + value + '" is invalid for option "' + name + '"';
            }, TypeError);
            createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {
                var determiner;
                if (typeof expected === "string" && startsWith(expected, "not ")) {
                    determiner = "must not be";
                    expected = expected.replace(/^not /, "");
                } else {
                    determiner = "must be";
                }
                var msg;
                if (endsWith(name, " argument")) {
                    msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));
                } else {
                    var type = includes(name, ".") ? "property" : "argument";
                    msg = 'The "'.concat(name, '" ').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));
                }
                msg += ". Received type ".concat(typeof actual === "undefined" ? "undefined" : _type_of(actual));
                return msg;
            }, TypeError);
            createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");
            createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {
                return "The " + name + " method is not implemented";
            });
            createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");
            createErrorType("ERR_STREAM_DESTROYED", function(name) {
                return "Cannot call " + name + " after a stream was destroyed";
            });
            createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");
            createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");
            createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");
            createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);
            createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {
                return "Unknown encoding: " + arg;
            }, TypeError);
            createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");
            module.exports.codes = codes;
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js
    var require_state = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;
            function highWaterMarkFrom(options, isDuplex, duplexKey) {
                return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
            }
            function getHighWaterMark(state, options, duplexKey, isDuplex) {
                var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
                if (hwm != null) {
                    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
                        var name = isDuplex ? duplexKey : "highWaterMark";
                        throw new ERR_INVALID_OPT_VALUE(name, hwm);
                    }
                    return Math.floor(hwm);
                }
                return state.objectMode ? 16 : 16 * 1024;
            }
            module.exports = {
                getHighWaterMark: getHighWaterMark
            };
        }
    });
    // node_modules/util-deprecate/browser.js
    var require_browser5 = __commonJS({
        "node_modules/util-deprecate/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = deprecate;
            function deprecate(fn, msg) {
                if (config("noDeprecation")) {
                    return fn;
                }
                var warned = false;
                function deprecated() {
                    if (!warned) {
                        if (config("throwDeprecation")) {
                            throw new Error(msg);
                        } else if (config("traceDeprecation")) {
                            console.trace(msg);
                        } else {
                            console.warn(msg);
                        }
                        warned = true;
                    }
                    return fn.apply(this, arguments);
                }
                return deprecated;
            }
            function config(name) {
                try {
                    if (!globalThis.localStorage) return false;
                } catch (_2) {
                    return false;
                }
                var val = globalThis.localStorage[name];
                if (null == val) return false;
                return String(val).toLowerCase() === "true";
            }
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js
    var require_stream_writable = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Writable;
            function CorkedRequest(state) {
                var _this = this;
                this.next = null;
                this.entry = null;
                this.finish = function() {
                    onCorkedFinish(_this, state);
                };
            }
            var Duplex;
            Writable.WritableState = WritableState;
            var internalUtil = {
                deprecate: require_browser5()
            };
            var Stream = require_stream_browser();
            var Buffer3 = require_buffer().Buffer;
            var OurUint8Array = (typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {}).Uint8Array || function() {};
            function _uint8ArrayToBuffer(chunk) {
                return Buffer3.from(chunk);
            }
            function _isUint8Array(obj) {
                return Buffer3.isBuffer(obj) || obj instanceof OurUint8Array;
            }
            var destroyImpl = require_destroy();
            var _require = require_state();
            var getHighWaterMark = _require.getHighWaterMark;
            var _require$codes = require_errors_browser().codes;
            var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;
            var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;
            var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;
            var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;
            var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
            var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;
            var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;
            var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;
            var errorOrDestroy = destroyImpl.errorOrDestroy;
            require_inherits_browser()(Writable, Stream);
            function nop() {}
            function WritableState(options, stream, isDuplex) {
                Duplex = Duplex || require_stream_duplex();
                options = options || {};
                if (typeof isDuplex !== "boolean") isDuplex = stream instanceof Duplex;
                this.objectMode = !!options.objectMode;
                if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
                this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);
                this.finalCalled = false;
                this.needDrain = false;
                this.ending = false;
                this.ended = false;
                this.finished = false;
                this.destroyed = false;
                var noDecode = options.decodeStrings === false;
                this.decodeStrings = !noDecode;
                this.defaultEncoding = options.defaultEncoding || "utf8";
                this.length = 0;
                this.writing = false;
                this.corked = 0;
                this.sync = true;
                this.bufferProcessing = false;
                this.onwrite = function(er) {
                    onwrite(stream, er);
                };
                this.writecb = null;
                this.writelen = 0;
                this.bufferedRequest = null;
                this.lastBufferedRequest = null;
                this.pendingcb = 0;
                this.prefinished = false;
                this.errorEmitted = false;
                this.emitClose = options.emitClose !== false;
                this.autoDestroy = !!options.autoDestroy;
                this.bufferedRequestCount = 0;
                this.corkedRequestsFree = new CorkedRequest(this);
            }
            WritableState.prototype.getBuffer = function getBuffer() {
                var current2 = this.bufferedRequest;
                var out = [];
                while(current2){
                    out.push(current2);
                    current2 = current2.next;
                }
                return out;
            };
            (function() {
                try {
                    Object.defineProperty(WritableState.prototype, "buffer", {
                        get: internalUtil.deprecate(function writableStateBufferGetter() {
                            return this.getBuffer();
                        }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")
                    });
                } catch (_2) {}
            })();
            var realHasInstance;
            if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {
                realHasInstance = Function.prototype[Symbol.hasInstance];
                Object.defineProperty(Writable, Symbol.hasInstance, {
                    value: function value(object) {
                        if (realHasInstance.call(this, object)) return true;
                        if (this !== Writable) return false;
                        return object && object._writableState instanceof WritableState;
                    }
                });
            } else {
                realHasInstance = function realHasInstance2(object) {
                    return object instanceof this;
                };
            }
            function Writable(options) {
                Duplex = Duplex || require_stream_duplex();
                var isDuplex = this instanceof Duplex;
                if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);
                this._writableState = new WritableState(options, this, isDuplex);
                this.writable = true;
                if (options) {
                    if (typeof options.write === "function") this._write = options.write;
                    if (typeof options.writev === "function") this._writev = options.writev;
                    if (typeof options.destroy === "function") this._destroy = options.destroy;
                    if (typeof options["final"] === "function") this._final = options["final"];
                }
                Stream.call(this);
            }
            Writable.prototype.pipe = function() {
                errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());
            };
            function writeAfterEnd(stream, cb) {
                var er = new ERR_STREAM_WRITE_AFTER_END();
                errorOrDestroy(stream, er);
                process.nextTick(cb, er);
            }
            function validChunk(stream, state, chunk, cb) {
                var er;
                if (chunk === null) {
                    er = new ERR_STREAM_NULL_VALUES();
                } else if (typeof chunk !== "string" && !state.objectMode) {
                    er = new ERR_INVALID_ARG_TYPE("chunk", [
                        "string",
                        "Buffer"
                    ], chunk);
                }
                if (er) {
                    errorOrDestroy(stream, er);
                    process.nextTick(cb, er);
                    return false;
                }
                return true;
            }
            Writable.prototype.write = function(chunk, encoding, cb) {
                var state = this._writableState;
                var ret = false;
                var isBuf = !state.objectMode && _isUint8Array(chunk);
                if (isBuf && !Buffer3.isBuffer(chunk)) {
                    chunk = _uint8ArrayToBuffer(chunk);
                }
                if (typeof encoding === "function") {
                    cb = encoding;
                    encoding = null;
                }
                if (isBuf) encoding = "buffer";
                else if (!encoding) encoding = state.defaultEncoding;
                if (typeof cb !== "function") cb = nop;
                if (state.ending) writeAfterEnd(this, cb);
                else if (isBuf || validChunk(this, state, chunk, cb)) {
                    state.pendingcb++;
                    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
                }
                return ret;
            };
            Writable.prototype.cork = function() {
                this._writableState.corked++;
            };
            Writable.prototype.uncork = function() {
                var state = this._writableState;
                if (state.corked) {
                    state.corked--;
                    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
                }
            };
            Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
                if (typeof encoding === "string") encoding = encoding.toLowerCase();
                if (!([
                    "hex",
                    "utf8",
                    "utf-8",
                    "ascii",
                    "binary",
                    "base64",
                    "ucs2",
                    "ucs-2",
                    "utf16le",
                    "utf-16le",
                    "raw"
                ].indexOf((encoding + "").toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);
                this._writableState.defaultEncoding = encoding;
                return this;
            };
            Object.defineProperty(Writable.prototype, "writableBuffer", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState && this._writableState.getBuffer();
                }
            });
            function decodeChunk(state, chunk, encoding) {
                if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {
                    chunk = Buffer3.from(chunk, encoding);
                }
                return chunk;
            }
            Object.defineProperty(Writable.prototype, "writableHighWaterMark", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState.highWaterMark;
                }
            });
            function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
                if (!isBuf) {
                    var newChunk = decodeChunk(state, chunk, encoding);
                    if (chunk !== newChunk) {
                        isBuf = true;
                        encoding = "buffer";
                        chunk = newChunk;
                    }
                }
                var len = state.objectMode ? 1 : chunk.length;
                state.length += len;
                var ret = state.length < state.highWaterMark;
                if (!ret) state.needDrain = true;
                if (state.writing || state.corked) {
                    var last = state.lastBufferedRequest;
                    state.lastBufferedRequest = {
                        chunk: chunk,
                        encoding: encoding,
                        isBuf: isBuf,
                        callback: cb,
                        next: null
                    };
                    if (last) {
                        last.next = state.lastBufferedRequest;
                    } else {
                        state.bufferedRequest = state.lastBufferedRequest;
                    }
                    state.bufferedRequestCount += 1;
                } else {
                    doWrite(stream, state, false, len, chunk, encoding, cb);
                }
                return ret;
            }
            function doWrite(stream, state, writev, len, chunk, encoding, cb) {
                state.writelen = len;
                state.writecb = cb;
                state.writing = true;
                state.sync = true;
                if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED("write"));
                else if (writev) stream._writev(chunk, state.onwrite);
                else stream._write(chunk, encoding, state.onwrite);
                state.sync = false;
            }
            function onwriteError(stream, state, sync, er, cb) {
                --state.pendingcb;
                if (sync) {
                    process.nextTick(cb, er);
                    process.nextTick(finishMaybe, stream, state);
                    stream._writableState.errorEmitted = true;
                    errorOrDestroy(stream, er);
                } else {
                    cb(er);
                    stream._writableState.errorEmitted = true;
                    errorOrDestroy(stream, er);
                    finishMaybe(stream, state);
                }
            }
            function onwriteStateUpdate(state) {
                state.writing = false;
                state.writecb = null;
                state.length -= state.writelen;
                state.writelen = 0;
            }
            function onwrite(stream, er) {
                var state = stream._writableState;
                var sync = state.sync;
                var cb = state.writecb;
                if (typeof cb !== "function") throw new ERR_MULTIPLE_CALLBACK();
                onwriteStateUpdate(state);
                if (er) onwriteError(stream, state, sync, er, cb);
                else {
                    var finished = needFinish(state) || stream.destroyed;
                    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
                        clearBuffer(stream, state);
                    }
                    if (sync) {
                        process.nextTick(afterWrite, stream, state, finished, cb);
                    } else {
                        afterWrite(stream, state, finished, cb);
                    }
                }
            }
            function afterWrite(stream, state, finished, cb) {
                if (!finished) onwriteDrain(stream, state);
                state.pendingcb--;
                cb();
                finishMaybe(stream, state);
            }
            function onwriteDrain(stream, state) {
                if (state.length === 0 && state.needDrain) {
                    state.needDrain = false;
                    stream.emit("drain");
                }
            }
            function clearBuffer(stream, state) {
                state.bufferProcessing = true;
                var entry = state.bufferedRequest;
                if (stream._writev && entry && entry.next) {
                    var l = state.bufferedRequestCount;
                    var buffer = new Array(l);
                    var holder = state.corkedRequestsFree;
                    holder.entry = entry;
                    var count = 0;
                    var allBuffers = true;
                    while(entry){
                        buffer[count] = entry;
                        if (!entry.isBuf) allBuffers = false;
                        entry = entry.next;
                        count += 1;
                    }
                    buffer.allBuffers = allBuffers;
                    doWrite(stream, state, true, state.length, buffer, "", holder.finish);
                    state.pendingcb++;
                    state.lastBufferedRequest = null;
                    if (holder.next) {
                        state.corkedRequestsFree = holder.next;
                        holder.next = null;
                    } else {
                        state.corkedRequestsFree = new CorkedRequest(state);
                    }
                    state.bufferedRequestCount = 0;
                } else {
                    while(entry){
                        var chunk = entry.chunk;
                        var encoding = entry.encoding;
                        var cb = entry.callback;
                        var len = state.objectMode ? 1 : chunk.length;
                        doWrite(stream, state, false, len, chunk, encoding, cb);
                        entry = entry.next;
                        state.bufferedRequestCount--;
                        if (state.writing) {
                            break;
                        }
                    }
                    if (entry === null) state.lastBufferedRequest = null;
                }
                state.bufferedRequest = entry;
                state.bufferProcessing = false;
            }
            Writable.prototype._write = function(chunk, encoding, cb) {
                cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));
            };
            Writable.prototype._writev = null;
            Writable.prototype.end = function(chunk, encoding, cb) {
                var state = this._writableState;
                if (typeof chunk === "function") {
                    cb = chunk;
                    chunk = null;
                    encoding = null;
                } else if (typeof encoding === "function") {
                    cb = encoding;
                    encoding = null;
                }
                if (chunk !== null && chunk !== void 0) this.write(chunk, encoding);
                if (state.corked) {
                    state.corked = 1;
                    this.uncork();
                }
                if (!state.ending) endWritable(this, state, cb);
                return this;
            };
            Object.defineProperty(Writable.prototype, "writableLength", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState.length;
                }
            });
            function needFinish(state) {
                return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
            }
            function callFinal(stream, state) {
                stream._final(function(err) {
                    state.pendingcb--;
                    if (err) {
                        errorOrDestroy(stream, err);
                    }
                    state.prefinished = true;
                    stream.emit("prefinish");
                    finishMaybe(stream, state);
                });
            }
            function prefinish(stream, state) {
                if (!state.prefinished && !state.finalCalled) {
                    if (typeof stream._final === "function" && !state.destroyed) {
                        state.pendingcb++;
                        state.finalCalled = true;
                        process.nextTick(callFinal, stream, state);
                    } else {
                        state.prefinished = true;
                        stream.emit("prefinish");
                    }
                }
            }
            function finishMaybe(stream, state) {
                var need = needFinish(state);
                if (need) {
                    prefinish(stream, state);
                    if (state.pendingcb === 0) {
                        state.finished = true;
                        stream.emit("finish");
                        if (state.autoDestroy) {
                            var rState = stream._readableState;
                            if (!rState || rState.autoDestroy && rState.endEmitted) {
                                stream.destroy();
                            }
                        }
                    }
                }
                return need;
            }
            function endWritable(stream, state, cb) {
                state.ending = true;
                finishMaybe(stream, state);
                if (cb) {
                    if (state.finished) process.nextTick(cb);
                    else stream.once("finish", cb);
                }
                state.ended = true;
                stream.writable = false;
            }
            function onCorkedFinish(corkReq, state, err) {
                var entry = corkReq.entry;
                corkReq.entry = null;
                while(entry){
                    var cb = entry.callback;
                    state.pendingcb--;
                    cb(err);
                    entry = entry.next;
                }
                state.corkedRequestsFree.next = corkReq;
            }
            Object.defineProperty(Writable.prototype, "destroyed", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    if (this._writableState === void 0) {
                        return false;
                    }
                    return this._writableState.destroyed;
                },
                set: function set(value) {
                    if (!this._writableState) {
                        return;
                    }
                    this._writableState.destroyed = value;
                }
            });
            Writable.prototype.destroy = destroyImpl.destroy;
            Writable.prototype._undestroy = destroyImpl.undestroy;
            Writable.prototype._destroy = function(err, cb) {
                cb(err);
            };
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js
    var require_stream_duplex = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var objectKeys = Object.keys || function(obj) {
                var keys2 = [];
                for(var key in obj)keys2.push(key);
                return keys2;
            };
            module.exports = Duplex;
            var Readable = require_stream_readable();
            var Writable = require_stream_writable();
            require_inherits_browser()(Duplex, Readable);
            {
                keys = objectKeys(Writable.prototype);
                for(v = 0; v < keys.length; v++){
                    method = keys[v];
                    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
                }
            }
            var keys;
            var method;
            var v;
            function Duplex(options) {
                if (!(this instanceof Duplex)) return new Duplex(options);
                Readable.call(this, options);
                Writable.call(this, options);
                this.allowHalfOpen = true;
                if (options) {
                    if (options.readable === false) this.readable = false;
                    if (options.writable === false) this.writable = false;
                    if (options.allowHalfOpen === false) {
                        this.allowHalfOpen = false;
                        this.once("end", onend);
                    }
                }
            }
            Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState.highWaterMark;
                }
            });
            Object.defineProperty(Duplex.prototype, "writableBuffer", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState && this._writableState.getBuffer();
                }
            });
            Object.defineProperty(Duplex.prototype, "writableLength", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState.length;
                }
            });
            function onend() {
                if (this._writableState.ended) return;
                process.nextTick(onEndNT, this);
            }
            function onEndNT(self2) {
                self2.end();
            }
            Object.defineProperty(Duplex.prototype, "destroyed", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    if (this._readableState === void 0 || this._writableState === void 0) {
                        return false;
                    }
                    return this._readableState.destroyed && this._writableState.destroyed;
                },
                set: function set(value) {
                    if (this._readableState === void 0 || this._writableState === void 0) {
                        return;
                    }
                    this._readableState.destroyed = value;
                    this._writableState.destroyed = value;
                }
            });
        }
    });
    // node_modules/string_decoder/lib/string_decoder.js
    var require_string_decoder = __commonJS({
        "node_modules/string_decoder/lib/string_decoder.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            var isEncoding = Buffer3.isEncoding || function(encoding) {
                encoding = "" + encoding;
                switch(encoding && encoding.toLowerCase()){
                    case "hex":
                    case "utf8":
                    case "utf-8":
                    case "ascii":
                    case "binary":
                    case "base64":
                    case "ucs2":
                    case "ucs-2":
                    case "utf16le":
                    case "utf-16le":
                    case "raw":
                        return true;
                    default:
                        return false;
                }
            };
            function _normalizeEncoding(enc) {
                if (!enc) return "utf8";
                var retried;
                while(true){
                    switch(enc){
                        case "utf8":
                        case "utf-8":
                            return "utf8";
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return "utf16le";
                        case "latin1":
                        case "binary":
                            return "latin1";
                        case "base64":
                        case "ascii":
                        case "hex":
                            return enc;
                        default:
                            if (retried) return;
                            enc = ("" + enc).toLowerCase();
                            retried = true;
                    }
                }
            }
            function normalizeEncoding(enc) {
                var nenc = _normalizeEncoding(enc);
                if (typeof nenc !== "string" && (Buffer3.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc);
                return nenc || enc;
            }
            exports.StringDecoder = StringDecoder;
            function StringDecoder(encoding) {
                this.encoding = normalizeEncoding(encoding);
                var nb;
                switch(this.encoding){
                    case "utf16le":
                        this.text = utf16Text;
                        this.end = utf16End;
                        nb = 4;
                        break;
                    case "utf8":
                        this.fillLast = utf8FillLast;
                        nb = 4;
                        break;
                    case "base64":
                        this.text = base64Text;
                        this.end = base64End;
                        nb = 3;
                        break;
                    default:
                        this.write = simpleWrite;
                        this.end = simpleEnd;
                        return;
                }
                this.lastNeed = 0;
                this.lastTotal = 0;
                this.lastChar = Buffer3.allocUnsafe(nb);
            }
            StringDecoder.prototype.write = function(buf) {
                if (buf.length === 0) return "";
                var r;
                var i;
                if (this.lastNeed) {
                    r = this.fillLast(buf);
                    if (r === void 0) return "";
                    i = this.lastNeed;
                    this.lastNeed = 0;
                } else {
                    i = 0;
                }
                if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
                return r || "";
            };
            StringDecoder.prototype.end = utf8End;
            StringDecoder.prototype.text = utf8Text;
            StringDecoder.prototype.fillLast = function(buf) {
                if (this.lastNeed <= buf.length) {
                    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
                    return this.lastChar.toString(this.encoding, 0, this.lastTotal);
                }
                buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
                this.lastNeed -= buf.length;
            };
            function utf8CheckByte(byte) {
                if (byte <= 127) return 0;
                else if (byte >> 5 === 6) return 2;
                else if (byte >> 4 === 14) return 3;
                else if (byte >> 3 === 30) return 4;
                return byte >> 6 === 2 ? -1 : -2;
            }
            function utf8CheckIncomplete(self2, buf, i) {
                var j = buf.length - 1;
                if (j < i) return 0;
                var nb = utf8CheckByte(buf[j]);
                if (nb >= 0) {
                    if (nb > 0) self2.lastNeed = nb - 1;
                    return nb;
                }
                if (--j < i || nb === -2) return 0;
                nb = utf8CheckByte(buf[j]);
                if (nb >= 0) {
                    if (nb > 0) self2.lastNeed = nb - 2;
                    return nb;
                }
                if (--j < i || nb === -2) return 0;
                nb = utf8CheckByte(buf[j]);
                if (nb >= 0) {
                    if (nb > 0) {
                        if (nb === 2) nb = 0;
                        else self2.lastNeed = nb - 3;
                    }
                    return nb;
                }
                return 0;
            }
            function utf8CheckExtraBytes(self2, buf, p) {
                if ((buf[0] & 192) !== 128) {
                    self2.lastNeed = 0;
                    return "\uFFFD";
                }
                if (self2.lastNeed > 1 && buf.length > 1) {
                    if ((buf[1] & 192) !== 128) {
                        self2.lastNeed = 1;
                        return "\uFFFD";
                    }
                    if (self2.lastNeed > 2 && buf.length > 2) {
                        if ((buf[2] & 192) !== 128) {
                            self2.lastNeed = 2;
                            return "\uFFFD";
                        }
                    }
                }
            }
            function utf8FillLast(buf) {
                var p = this.lastTotal - this.lastNeed;
                var r = utf8CheckExtraBytes(this, buf, p);
                if (r !== void 0) return r;
                if (this.lastNeed <= buf.length) {
                    buf.copy(this.lastChar, p, 0, this.lastNeed);
                    return this.lastChar.toString(this.encoding, 0, this.lastTotal);
                }
                buf.copy(this.lastChar, p, 0, buf.length);
                this.lastNeed -= buf.length;
            }
            function utf8Text(buf, i) {
                var total = utf8CheckIncomplete(this, buf, i);
                if (!this.lastNeed) return buf.toString("utf8", i);
                this.lastTotal = total;
                var end = buf.length - (total - this.lastNeed);
                buf.copy(this.lastChar, 0, end);
                return buf.toString("utf8", i, end);
            }
            function utf8End(buf) {
                var r = buf && buf.length ? this.write(buf) : "";
                if (this.lastNeed) return r + "\uFFFD";
                return r;
            }
            function utf16Text(buf, i) {
                if ((buf.length - i) % 2 === 0) {
                    var r = buf.toString("utf16le", i);
                    if (r) {
                        var c = r.charCodeAt(r.length - 1);
                        if (c >= 55296 && c <= 56319) {
                            this.lastNeed = 2;
                            this.lastTotal = 4;
                            this.lastChar[0] = buf[buf.length - 2];
                            this.lastChar[1] = buf[buf.length - 1];
                            return r.slice(0, -1);
                        }
                    }
                    return r;
                }
                this.lastNeed = 1;
                this.lastTotal = 2;
                this.lastChar[0] = buf[buf.length - 1];
                return buf.toString("utf16le", i, buf.length - 1);
            }
            function utf16End(buf) {
                var r = buf && buf.length ? this.write(buf) : "";
                if (this.lastNeed) {
                    var end = this.lastTotal - this.lastNeed;
                    return r + this.lastChar.toString("utf16le", 0, end);
                }
                return r;
            }
            function base64Text(buf, i) {
                var n = (buf.length - i) % 3;
                if (n === 0) return buf.toString("base64", i);
                this.lastNeed = 3 - n;
                this.lastTotal = 3;
                if (n === 1) {
                    this.lastChar[0] = buf[buf.length - 1];
                } else {
                    this.lastChar[0] = buf[buf.length - 2];
                    this.lastChar[1] = buf[buf.length - 1];
                }
                return buf.toString("base64", i, buf.length - n);
            }
            function base64End(buf) {
                var r = buf && buf.length ? this.write(buf) : "";
                if (this.lastNeed) return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);
                return r;
            }
            function simpleWrite(buf) {
                return buf.toString(this.encoding);
            }
            function simpleEnd(buf) {
                return buf && buf.length ? this.write(buf) : "";
            }
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
    var require_end_of_stream = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;
            function once2(callback) {
                var called = false;
                return function() {
                    if (called) return;
                    called = true;
                    for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                        args[_key] = arguments[_key];
                    }
                    callback.apply(this, args);
                };
            }
            function noop3() {}
            function isRequest(stream) {
                return stream.setHeader && typeof stream.abort === "function";
            }
            function eos(stream, opts, callback) {
                if (typeof opts === "function") return eos(stream, null, opts);
                if (!opts) opts = {};
                callback = once2(callback || noop3);
                var readable = opts.readable || opts.readable !== false && stream.readable;
                var writable = opts.writable || opts.writable !== false && stream.writable;
                var onlegacyfinish = function onlegacyfinish2() {
                    if (!stream.writable) onfinish();
                };
                var writableEnded = stream._writableState && stream._writableState.finished;
                var onfinish = function onfinish2() {
                    writable = false;
                    writableEnded = true;
                    if (!readable) callback.call(stream);
                };
                var readableEnded = stream._readableState && stream._readableState.endEmitted;
                var onend = function onend2() {
                    readable = false;
                    readableEnded = true;
                    if (!writable) callback.call(stream);
                };
                var onerror = function onerror2(err) {
                    callback.call(stream, err);
                };
                var onclose = function onclose2() {
                    var err;
                    if (readable && !readableEnded) {
                        if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
                        return callback.call(stream, err);
                    }
                    if (writable && !writableEnded) {
                        if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
                        return callback.call(stream, err);
                    }
                };
                var onrequest = function onrequest2() {
                    stream.req.on("finish", onfinish);
                };
                if (isRequest(stream)) {
                    stream.on("complete", onfinish);
                    stream.on("abort", onclose);
                    if (stream.req) onrequest();
                    else stream.on("request", onrequest);
                } else if (writable && !stream._writableState) {
                    stream.on("end", onlegacyfinish);
                    stream.on("close", onlegacyfinish);
                }
                stream.on("end", onend);
                stream.on("finish", onfinish);
                if (opts.error !== false) stream.on("error", onerror);
                stream.on("close", onclose);
                return function() {
                    stream.removeListener("complete", onfinish);
                    stream.removeListener("abort", onclose);
                    stream.removeListener("request", onrequest);
                    if (stream.req) stream.req.removeListener("finish", onfinish);
                    stream.removeListener("end", onlegacyfinish);
                    stream.removeListener("close", onlegacyfinish);
                    stream.removeListener("finish", onfinish);
                    stream.removeListener("end", onend);
                    stream.removeListener("error", onerror);
                    stream.removeListener("close", onclose);
                };
            }
            module.exports = eos;
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js
    var require_async_iterator = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var _Object$setPrototypeO;
            function _defineProperty(obj, key, value) {
                key = _toPropertyKey(key);
                if (key in obj) {
                    Object.defineProperty(obj, key, {
                        value: value,
                        enumerable: true,
                        configurable: true,
                        writable: true
                    });
                } else {
                    obj[key] = value;
                }
                return obj;
            }
            function _toPropertyKey(arg) {
                var key = _toPrimitive(arg, "string");
                return (typeof key === "undefined" ? "undefined" : _type_of(key)) === "symbol" ? key : String(key);
            }
            function _toPrimitive(input, hint) {
                if ((typeof input === "undefined" ? "undefined" : _type_of(input)) !== "object" || input === null) return input;
                var prim = input[Symbol.toPrimitive];
                if (prim !== void 0) {
                    var res = prim.call(input, hint || "default");
                    if ((typeof res === "undefined" ? "undefined" : _type_of(res)) !== "object") return res;
                    throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return (hint === "string" ? String : Number)(input);
            }
            var finished = require_end_of_stream();
            var kLastResolve = Symbol("lastResolve");
            var kLastReject = Symbol("lastReject");
            var kError = Symbol("error");
            var kEnded = Symbol("ended");
            var kLastPromise = Symbol("lastPromise");
            var kHandlePromise = Symbol("handlePromise");
            var kStream = Symbol("stream");
            function createIterResult(value, done3) {
                return {
                    value: value,
                    done: done3
                };
            }
            function readAndResolve(iter) {
                var resolve = iter[kLastResolve];
                if (resolve !== null) {
                    var data = iter[kStream].read();
                    if (data !== null) {
                        iter[kLastPromise] = null;
                        iter[kLastResolve] = null;
                        iter[kLastReject] = null;
                        resolve(createIterResult(data, false));
                    }
                }
            }
            function onReadable(iter) {
                process.nextTick(readAndResolve, iter);
            }
            function wrapForNext(lastPromise, iter) {
                return function(resolve, reject) {
                    lastPromise.then(function() {
                        if (iter[kEnded]) {
                            resolve(createIterResult(void 0, true));
                            return;
                        }
                        iter[kHandlePromise](resolve, reject);
                    }, reject);
                };
            }
            var AsyncIteratorPrototype = Object.getPrototypeOf(function() {});
            var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {
                get stream () {
                    return this[kStream];
                },
                next: function next() {
                    var _this = this;
                    var error = this[kError];
                    if (error !== null) {
                        return Promise.reject(error);
                    }
                    if (this[kEnded]) {
                        return Promise.resolve(createIterResult(void 0, true));
                    }
                    if (this[kStream].destroyed) {
                        return new Promise(function(resolve, reject) {
                            process.nextTick(function() {
                                if (_this[kError]) {
                                    reject(_this[kError]);
                                } else {
                                    resolve(createIterResult(void 0, true));
                                }
                            });
                        });
                    }
                    var lastPromise = this[kLastPromise];
                    var promise3;
                    if (lastPromise) {
                        promise3 = new Promise(wrapForNext(lastPromise, this));
                    } else {
                        var data = this[kStream].read();
                        if (data !== null) {
                            return Promise.resolve(createIterResult(data, false));
                        }
                        promise3 = new Promise(this[kHandlePromise]);
                    }
                    this[kLastPromise] = promise3;
                    return promise3;
                }
            }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {
                return this;
            }), _defineProperty(_Object$setPrototypeO, "return", function _return() {
                var _this2 = this;
                return new Promise(function(resolve, reject) {
                    _this2[kStream].destroy(null, function(err) {
                        if (err) {
                            reject(err);
                            return;
                        }
                        resolve(createIterResult(void 0, true));
                    });
                });
            }), _Object$setPrototypeO), AsyncIteratorPrototype);
            var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {
                var _Object$create;
                var iterator3 = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {
                    value: stream,
                    writable: true
                }), _defineProperty(_Object$create, kLastResolve, {
                    value: null,
                    writable: true
                }), _defineProperty(_Object$create, kLastReject, {
                    value: null,
                    writable: true
                }), _defineProperty(_Object$create, kError, {
                    value: null,
                    writable: true
                }), _defineProperty(_Object$create, kEnded, {
                    value: stream._readableState.endEmitted,
                    writable: true
                }), _defineProperty(_Object$create, kHandlePromise, {
                    value: function value(resolve, reject) {
                        var data = iterator3[kStream].read();
                        if (data) {
                            iterator3[kLastPromise] = null;
                            iterator3[kLastResolve] = null;
                            iterator3[kLastReject] = null;
                            resolve(createIterResult(data, false));
                        } else {
                            iterator3[kLastResolve] = resolve;
                            iterator3[kLastReject] = reject;
                        }
                    },
                    writable: true
                }), _Object$create));
                iterator3[kLastPromise] = null;
                finished(stream, function(err) {
                    if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {
                        var reject = iterator3[kLastReject];
                        if (reject !== null) {
                            iterator3[kLastPromise] = null;
                            iterator3[kLastResolve] = null;
                            iterator3[kLastReject] = null;
                            reject(err);
                        }
                        iterator3[kError] = err;
                        return;
                    }
                    var resolve = iterator3[kLastResolve];
                    if (resolve !== null) {
                        iterator3[kLastPromise] = null;
                        iterator3[kLastResolve] = null;
                        iterator3[kLastReject] = null;
                        resolve(createIterResult(void 0, true));
                    }
                    iterator3[kEnded] = true;
                });
                stream.on("readable", onReadable.bind(null, iterator3));
                return iterator3;
            };
            module.exports = createReadableStreamAsyncIterator;
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js
    var require_from_browser = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function() {
                throw new Error("Readable.from is not available in the browser");
            };
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js
    var require_stream_readable = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Readable;
            var Duplex;
            Readable.ReadableState = ReadableState;
            var EE = require_events().EventEmitter;
            var EElistenerCount = function EElistenerCount2(emitter, type) {
                return emitter.listeners(type).length;
            };
            var Stream = require_stream_browser();
            var Buffer3 = require_buffer().Buffer;
            var OurUint8Array = (typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {}).Uint8Array || function() {};
            function _uint8ArrayToBuffer(chunk) {
                return Buffer3.from(chunk);
            }
            function _isUint8Array(obj) {
                return Buffer3.isBuffer(obj) || obj instanceof OurUint8Array;
            }
            var debugUtil = require_util3();
            var debug4;
            if (debugUtil && debugUtil.debuglog) {
                debug4 = debugUtil.debuglog("stream");
            } else {
                debug4 = function debug5() {};
            }
            var BufferList = require_buffer_list();
            var destroyImpl = require_destroy();
            var _require = require_state();
            var getHighWaterMark = _require.getHighWaterMark;
            var _require$codes = require_errors_browser().codes;
            var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;
            var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;
            var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;
            var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
            var StringDecoder;
            var createReadableStreamAsyncIterator;
            var from;
            require_inherits_browser()(Readable, Stream);
            var errorOrDestroy = destroyImpl.errorOrDestroy;
            var kProxyEvents = [
                "error",
                "close",
                "destroy",
                "pause",
                "resume"
            ];
            function prependListener(emitter, event, fn) {
                if (typeof emitter.prependListener === "function") return emitter.prependListener(event, fn);
                if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);
                else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);
                else emitter._events[event] = [
                    fn,
                    emitter._events[event]
                ];
            }
            function ReadableState(options, stream, isDuplex) {
                Duplex = Duplex || require_stream_duplex();
                options = options || {};
                if (typeof isDuplex !== "boolean") isDuplex = stream instanceof Duplex;
                this.objectMode = !!options.objectMode;
                if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
                this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);
                this.buffer = new BufferList();
                this.length = 0;
                this.pipes = null;
                this.pipesCount = 0;
                this.flowing = null;
                this.ended = false;
                this.endEmitted = false;
                this.reading = false;
                this.sync = true;
                this.needReadable = false;
                this.emittedReadable = false;
                this.readableListening = false;
                this.resumeScheduled = false;
                this.paused = true;
                this.emitClose = options.emitClose !== false;
                this.autoDestroy = !!options.autoDestroy;
                this.destroyed = false;
                this.defaultEncoding = options.defaultEncoding || "utf8";
                this.awaitDrain = 0;
                this.readingMore = false;
                this.decoder = null;
                this.encoding = null;
                if (options.encoding) {
                    if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;
                    this.decoder = new StringDecoder(options.encoding);
                    this.encoding = options.encoding;
                }
            }
            function Readable(options) {
                Duplex = Duplex || require_stream_duplex();
                if (!(this instanceof Readable)) return new Readable(options);
                var isDuplex = this instanceof Duplex;
                this._readableState = new ReadableState(options, this, isDuplex);
                this.readable = true;
                if (options) {
                    if (typeof options.read === "function") this._read = options.read;
                    if (typeof options.destroy === "function") this._destroy = options.destroy;
                }
                Stream.call(this);
            }
            Object.defineProperty(Readable.prototype, "destroyed", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    if (this._readableState === void 0) {
                        return false;
                    }
                    return this._readableState.destroyed;
                },
                set: function set(value) {
                    if (!this._readableState) {
                        return;
                    }
                    this._readableState.destroyed = value;
                }
            });
            Readable.prototype.destroy = destroyImpl.destroy;
            Readable.prototype._undestroy = destroyImpl.undestroy;
            Readable.prototype._destroy = function(err, cb) {
                cb(err);
            };
            Readable.prototype.push = function(chunk, encoding) {
                var state = this._readableState;
                var skipChunkCheck;
                if (!state.objectMode) {
                    if (typeof chunk === "string") {
                        encoding = encoding || state.defaultEncoding;
                        if (encoding !== state.encoding) {
                            chunk = Buffer3.from(chunk, encoding);
                            encoding = "";
                        }
                        skipChunkCheck = true;
                    }
                } else {
                    skipChunkCheck = true;
                }
                return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
            };
            Readable.prototype.unshift = function(chunk) {
                return readableAddChunk(this, chunk, null, true, false);
            };
            function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
                debug4("readableAddChunk", chunk);
                var state = stream._readableState;
                if (chunk === null) {
                    state.reading = false;
                    onEofChunk(stream, state);
                } else {
                    var er;
                    if (!skipChunkCheck) er = chunkInvalid(state, chunk);
                    if (er) {
                        errorOrDestroy(stream, er);
                    } else if (state.objectMode || chunk && chunk.length > 0) {
                        if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer3.prototype) {
                            chunk = _uint8ArrayToBuffer(chunk);
                        }
                        if (addToFront) {
                            if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());
                            else addChunk(stream, state, chunk, true);
                        } else if (state.ended) {
                            errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());
                        } else if (state.destroyed) {
                            return false;
                        } else {
                            state.reading = false;
                            if (state.decoder && !encoding) {
                                chunk = state.decoder.write(chunk);
                                if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);
                                else maybeReadMore(stream, state);
                            } else {
                                addChunk(stream, state, chunk, false);
                            }
                        }
                    } else if (!addToFront) {
                        state.reading = false;
                        maybeReadMore(stream, state);
                    }
                }
                return !state.ended && (state.length < state.highWaterMark || state.length === 0);
            }
            function addChunk(stream, state, chunk, addToFront) {
                if (state.flowing && state.length === 0 && !state.sync) {
                    state.awaitDrain = 0;
                    stream.emit("data", chunk);
                } else {
                    state.length += state.objectMode ? 1 : chunk.length;
                    if (addToFront) state.buffer.unshift(chunk);
                    else state.buffer.push(chunk);
                    if (state.needReadable) emitReadable(stream);
                }
                maybeReadMore(stream, state);
            }
            function chunkInvalid(state, chunk) {
                var er;
                if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {
                    er = new ERR_INVALID_ARG_TYPE("chunk", [
                        "string",
                        "Buffer",
                        "Uint8Array"
                    ], chunk);
                }
                return er;
            }
            Readable.prototype.isPaused = function() {
                return this._readableState.flowing === false;
            };
            Readable.prototype.setEncoding = function(enc) {
                if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;
                var decoder2 = new StringDecoder(enc);
                this._readableState.decoder = decoder2;
                this._readableState.encoding = this._readableState.decoder.encoding;
                var p = this._readableState.buffer.head;
                var content = "";
                while(p !== null){
                    content += decoder2.write(p.data);
                    p = p.next;
                }
                this._readableState.buffer.clear();
                if (content !== "") this._readableState.buffer.push(content);
                this._readableState.length = content.length;
                return this;
            };
            var MAX_HWM = 1073741824;
            function computeNewHighWaterMark(n) {
                if (n >= MAX_HWM) {
                    n = MAX_HWM;
                } else {
                    n--;
                    n |= n >>> 1;
                    n |= n >>> 2;
                    n |= n >>> 4;
                    n |= n >>> 8;
                    n |= n >>> 16;
                    n++;
                }
                return n;
            }
            function howMuchToRead(n, state) {
                if (n <= 0 || state.length === 0 && state.ended) return 0;
                if (state.objectMode) return 1;
                if (n !== n) {
                    if (state.flowing && state.length) return state.buffer.head.data.length;
                    else return state.length;
                }
                if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
                if (n <= state.length) return n;
                if (!state.ended) {
                    state.needReadable = true;
                    return 0;
                }
                return state.length;
            }
            Readable.prototype.read = function(n) {
                debug4("read", n);
                n = parseInt(n, 10);
                var state = this._readableState;
                var nOrig = n;
                if (n !== 0) state.emittedReadable = false;
                if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {
                    debug4("read: emitReadable", state.length, state.ended);
                    if (state.length === 0 && state.ended) endReadable(this);
                    else emitReadable(this);
                    return null;
                }
                n = howMuchToRead(n, state);
                if (n === 0 && state.ended) {
                    if (state.length === 0) endReadable(this);
                    return null;
                }
                var doRead = state.needReadable;
                debug4("need readable", doRead);
                if (state.length === 0 || state.length - n < state.highWaterMark) {
                    doRead = true;
                    debug4("length less than watermark", doRead);
                }
                if (state.ended || state.reading) {
                    doRead = false;
                    debug4("reading or ended", doRead);
                } else if (doRead) {
                    debug4("do read");
                    state.reading = true;
                    state.sync = true;
                    if (state.length === 0) state.needReadable = true;
                    this._read(state.highWaterMark);
                    state.sync = false;
                    if (!state.reading) n = howMuchToRead(nOrig, state);
                }
                var ret;
                if (n > 0) ret = fromList(n, state);
                else ret = null;
                if (ret === null) {
                    state.needReadable = state.length <= state.highWaterMark;
                    n = 0;
                } else {
                    state.length -= n;
                    state.awaitDrain = 0;
                }
                if (state.length === 0) {
                    if (!state.ended) state.needReadable = true;
                    if (nOrig !== n && state.ended) endReadable(this);
                }
                if (ret !== null) this.emit("data", ret);
                return ret;
            };
            function onEofChunk(stream, state) {
                debug4("onEofChunk");
                if (state.ended) return;
                if (state.decoder) {
                    var chunk = state.decoder.end();
                    if (chunk && chunk.length) {
                        state.buffer.push(chunk);
                        state.length += state.objectMode ? 1 : chunk.length;
                    }
                }
                state.ended = true;
                if (state.sync) {
                    emitReadable(stream);
                } else {
                    state.needReadable = false;
                    if (!state.emittedReadable) {
                        state.emittedReadable = true;
                        emitReadable_(stream);
                    }
                }
            }
            function emitReadable(stream) {
                var state = stream._readableState;
                debug4("emitReadable", state.needReadable, state.emittedReadable);
                state.needReadable = false;
                if (!state.emittedReadable) {
                    debug4("emitReadable", state.flowing);
                    state.emittedReadable = true;
                    process.nextTick(emitReadable_, stream);
                }
            }
            function emitReadable_(stream) {
                var state = stream._readableState;
                debug4("emitReadable_", state.destroyed, state.length, state.ended);
                if (!state.destroyed && (state.length || state.ended)) {
                    stream.emit("readable");
                    state.emittedReadable = false;
                }
                state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;
                flow(stream);
            }
            function maybeReadMore(stream, state) {
                if (!state.readingMore) {
                    state.readingMore = true;
                    process.nextTick(maybeReadMore_, stream, state);
                }
            }
            function maybeReadMore_(stream, state) {
                while(!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)){
                    var len = state.length;
                    debug4("maybeReadMore read 0");
                    stream.read(0);
                    if (len === state.length) break;
                }
                state.readingMore = false;
            }
            Readable.prototype._read = function(n) {
                errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));
            };
            Readable.prototype.pipe = function(dest, pipeOpts) {
                var src = this;
                var state = this._readableState;
                switch(state.pipesCount){
                    case 0:
                        state.pipes = dest;
                        break;
                    case 1:
                        state.pipes = [
                            state.pipes,
                            dest
                        ];
                        break;
                    default:
                        state.pipes.push(dest);
                        break;
                }
                state.pipesCount += 1;
                debug4("pipe count=%d opts=%j", state.pipesCount, pipeOpts);
                var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
                var endFn = doEnd ? onend : unpipe;
                if (state.endEmitted) process.nextTick(endFn);
                else src.once("end", endFn);
                dest.on("unpipe", onunpipe);
                function onunpipe(readable, unpipeInfo) {
                    debug4("onunpipe");
                    if (readable === src) {
                        if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
                            unpipeInfo.hasUnpiped = true;
                            cleanup();
                        }
                    }
                }
                function onend() {
                    debug4("onend");
                    dest.end();
                }
                var ondrain = pipeOnDrain(src);
                dest.on("drain", ondrain);
                var cleanedUp = false;
                function cleanup() {
                    debug4("cleanup");
                    dest.removeListener("close", onclose);
                    dest.removeListener("finish", onfinish);
                    dest.removeListener("drain", ondrain);
                    dest.removeListener("error", onerror);
                    dest.removeListener("unpipe", onunpipe);
                    src.removeListener("end", onend);
                    src.removeListener("end", unpipe);
                    src.removeListener("data", ondata);
                    cleanedUp = true;
                    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
                }
                src.on("data", ondata);
                function ondata(chunk) {
                    debug4("ondata");
                    var ret = dest.write(chunk);
                    debug4("dest.write", ret);
                    if (ret === false) {
                        if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
                            debug4("false write response, pause", state.awaitDrain);
                            state.awaitDrain++;
                        }
                        src.pause();
                    }
                }
                function onerror(er) {
                    debug4("onerror", er);
                    unpipe();
                    dest.removeListener("error", onerror);
                    if (EElistenerCount(dest, "error") === 0) errorOrDestroy(dest, er);
                }
                prependListener(dest, "error", onerror);
                function onclose() {
                    dest.removeListener("finish", onfinish);
                    unpipe();
                }
                dest.once("close", onclose);
                function onfinish() {
                    debug4("onfinish");
                    dest.removeListener("close", onclose);
                    unpipe();
                }
                dest.once("finish", onfinish);
                function unpipe() {
                    debug4("unpipe");
                    src.unpipe(dest);
                }
                dest.emit("pipe", src);
                if (!state.flowing) {
                    debug4("pipe resume");
                    src.resume();
                }
                return dest;
            };
            function pipeOnDrain(src) {
                return function pipeOnDrainFunctionResult() {
                    var state = src._readableState;
                    debug4("pipeOnDrain", state.awaitDrain);
                    if (state.awaitDrain) state.awaitDrain--;
                    if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {
                        state.flowing = true;
                        flow(src);
                    }
                };
            }
            Readable.prototype.unpipe = function(dest) {
                var state = this._readableState;
                var unpipeInfo = {
                    hasUnpiped: false
                };
                if (state.pipesCount === 0) return this;
                if (state.pipesCount === 1) {
                    if (dest && dest !== state.pipes) return this;
                    if (!dest) dest = state.pipes;
                    state.pipes = null;
                    state.pipesCount = 0;
                    state.flowing = false;
                    if (dest) dest.emit("unpipe", this, unpipeInfo);
                    return this;
                }
                if (!dest) {
                    var dests = state.pipes;
                    var len = state.pipesCount;
                    state.pipes = null;
                    state.pipesCount = 0;
                    state.flowing = false;
                    for(var i = 0; i < len; i++)dests[i].emit("unpipe", this, {
                        hasUnpiped: false
                    });
                    return this;
                }
                var index = indexOf(state.pipes, dest);
                if (index === -1) return this;
                state.pipes.splice(index, 1);
                state.pipesCount -= 1;
                if (state.pipesCount === 1) state.pipes = state.pipes[0];
                dest.emit("unpipe", this, unpipeInfo);
                return this;
            };
            Readable.prototype.on = function(ev, fn) {
                var res = Stream.prototype.on.call(this, ev, fn);
                var state = this._readableState;
                if (ev === "data") {
                    state.readableListening = this.listenerCount("readable") > 0;
                    if (state.flowing !== false) this.resume();
                } else if (ev === "readable") {
                    if (!state.endEmitted && !state.readableListening) {
                        state.readableListening = state.needReadable = true;
                        state.flowing = false;
                        state.emittedReadable = false;
                        debug4("on readable", state.length, state.reading);
                        if (state.length) {
                            emitReadable(this);
                        } else if (!state.reading) {
                            process.nextTick(nReadingNextTick, this);
                        }
                    }
                }
                return res;
            };
            Readable.prototype.addListener = Readable.prototype.on;
            Readable.prototype.removeListener = function(ev, fn) {
                var res = Stream.prototype.removeListener.call(this, ev, fn);
                if (ev === "readable") {
                    process.nextTick(updateReadableListening, this);
                }
                return res;
            };
            Readable.prototype.removeAllListeners = function(ev) {
                var res = Stream.prototype.removeAllListeners.apply(this, arguments);
                if (ev === "readable" || ev === void 0) {
                    process.nextTick(updateReadableListening, this);
                }
                return res;
            };
            function updateReadableListening(self2) {
                var state = self2._readableState;
                state.readableListening = self2.listenerCount("readable") > 0;
                if (state.resumeScheduled && !state.paused) {
                    state.flowing = true;
                } else if (self2.listenerCount("data") > 0) {
                    self2.resume();
                }
            }
            function nReadingNextTick(self2) {
                debug4("readable nexttick read 0");
                self2.read(0);
            }
            Readable.prototype.resume = function() {
                var state = this._readableState;
                if (!state.flowing) {
                    debug4("resume");
                    state.flowing = !state.readableListening;
                    resume(this, state);
                }
                state.paused = false;
                return this;
            };
            function resume(stream, state) {
                if (!state.resumeScheduled) {
                    state.resumeScheduled = true;
                    process.nextTick(resume_, stream, state);
                }
            }
            function resume_(stream, state) {
                debug4("resume", state.reading);
                if (!state.reading) {
                    stream.read(0);
                }
                state.resumeScheduled = false;
                stream.emit("resume");
                flow(stream);
                if (state.flowing && !state.reading) stream.read(0);
            }
            Readable.prototype.pause = function() {
                debug4("call pause flowing=%j", this._readableState.flowing);
                if (this._readableState.flowing !== false) {
                    debug4("pause");
                    this._readableState.flowing = false;
                    this.emit("pause");
                }
                this._readableState.paused = true;
                return this;
            };
            function flow(stream) {
                var state = stream._readableState;
                debug4("flow", state.flowing);
                while(state.flowing && stream.read() !== null);
            }
            Readable.prototype.wrap = function(stream) {
                var _this = this;
                var state = this._readableState;
                var paused = false;
                stream.on("end", function() {
                    debug4("wrapped end");
                    if (state.decoder && !state.ended) {
                        var chunk = state.decoder.end();
                        if (chunk && chunk.length) _this.push(chunk);
                    }
                    _this.push(null);
                });
                stream.on("data", function(chunk) {
                    debug4("wrapped data");
                    if (state.decoder) chunk = state.decoder.write(chunk);
                    if (state.objectMode && (chunk === null || chunk === void 0)) return;
                    else if (!state.objectMode && (!chunk || !chunk.length)) return;
                    var ret = _this.push(chunk);
                    if (!ret) {
                        paused = true;
                        stream.pause();
                    }
                });
                for(var i in stream){
                    if (this[i] === void 0 && typeof stream[i] === "function") {
                        this[i] = /* @__PURE__ */ function methodWrap(method) {
                            return function methodWrapReturnFunction() {
                                return stream[method].apply(stream, arguments);
                            };
                        }(i);
                    }
                }
                for(var n = 0; n < kProxyEvents.length; n++){
                    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
                }
                this._read = function(n2) {
                    debug4("wrapped _read", n2);
                    if (paused) {
                        paused = false;
                        stream.resume();
                    }
                };
                return this;
            };
            if (typeof Symbol === "function") {
                Readable.prototype[Symbol.asyncIterator] = function() {
                    if (createReadableStreamAsyncIterator === void 0) {
                        createReadableStreamAsyncIterator = require_async_iterator();
                    }
                    return createReadableStreamAsyncIterator(this);
                };
            }
            Object.defineProperty(Readable.prototype, "readableHighWaterMark", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._readableState.highWaterMark;
                }
            });
            Object.defineProperty(Readable.prototype, "readableBuffer", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._readableState && this._readableState.buffer;
                }
            });
            Object.defineProperty(Readable.prototype, "readableFlowing", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._readableState.flowing;
                },
                set: function set(state) {
                    if (this._readableState) {
                        this._readableState.flowing = state;
                    }
                }
            });
            Readable._fromList = fromList;
            Object.defineProperty(Readable.prototype, "readableLength", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._readableState.length;
                }
            });
            function fromList(n, state) {
                if (state.length === 0) return null;
                var ret;
                if (state.objectMode) ret = state.buffer.shift();
                else if (!n || n >= state.length) {
                    if (state.decoder) ret = state.buffer.join("");
                    else if (state.buffer.length === 1) ret = state.buffer.first();
                    else ret = state.buffer.concat(state.length);
                    state.buffer.clear();
                } else {
                    ret = state.buffer.consume(n, state.decoder);
                }
                return ret;
            }
            function endReadable(stream) {
                var state = stream._readableState;
                debug4("endReadable", state.endEmitted);
                if (!state.endEmitted) {
                    state.ended = true;
                    process.nextTick(endReadableNT, state, stream);
                }
            }
            function endReadableNT(state, stream) {
                debug4("endReadableNT", state.endEmitted, state.length);
                if (!state.endEmitted && state.length === 0) {
                    state.endEmitted = true;
                    stream.readable = false;
                    stream.emit("end");
                    if (state.autoDestroy) {
                        var wState = stream._writableState;
                        if (!wState || wState.autoDestroy && wState.finished) {
                            stream.destroy();
                        }
                    }
                }
            }
            if (typeof Symbol === "function") {
                Readable.from = function(iterable, opts) {
                    if (from === void 0) {
                        from = require_from_browser();
                    }
                    return from(Readable, iterable, opts);
                };
            }
            function indexOf(xs, x) {
                for(var i = 0, l = xs.length; i < l; i++){
                    if (xs[i] === x) return i;
                }
                return -1;
            }
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js
    var require_stream_transform = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Transform;
            var _require$codes = require_errors_browser().codes;
            var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;
            var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;
            var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;
            var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;
            var Duplex = require_stream_duplex();
            require_inherits_browser()(Transform, Duplex);
            function afterTransform(er, data) {
                var ts = this._transformState;
                ts.transforming = false;
                var cb = ts.writecb;
                if (cb === null) {
                    return this.emit("error", new ERR_MULTIPLE_CALLBACK());
                }
                ts.writechunk = null;
                ts.writecb = null;
                if (data != null) this.push(data);
                cb(er);
                var rs = this._readableState;
                rs.reading = false;
                if (rs.needReadable || rs.length < rs.highWaterMark) {
                    this._read(rs.highWaterMark);
                }
            }
            function Transform(options) {
                if (!(this instanceof Transform)) return new Transform(options);
                Duplex.call(this, options);
                this._transformState = {
                    afterTransform: afterTransform.bind(this),
                    needTransform: false,
                    transforming: false,
                    writecb: null,
                    writechunk: null,
                    writeencoding: null
                };
                this._readableState.needReadable = true;
                this._readableState.sync = false;
                if (options) {
                    if (typeof options.transform === "function") this._transform = options.transform;
                    if (typeof options.flush === "function") this._flush = options.flush;
                }
                this.on("prefinish", prefinish);
            }
            function prefinish() {
                var _this = this;
                if (typeof this._flush === "function" && !this._readableState.destroyed) {
                    this._flush(function(er, data) {
                        done3(_this, er, data);
                    });
                } else {
                    done3(this, null, null);
                }
            }
            Transform.prototype.push = function(chunk, encoding) {
                this._transformState.needTransform = false;
                return Duplex.prototype.push.call(this, chunk, encoding);
            };
            Transform.prototype._transform = function(chunk, encoding, cb) {
                cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));
            };
            Transform.prototype._write = function(chunk, encoding, cb) {
                var ts = this._transformState;
                ts.writecb = cb;
                ts.writechunk = chunk;
                ts.writeencoding = encoding;
                if (!ts.transforming) {
                    var rs = this._readableState;
                    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
                }
            };
            Transform.prototype._read = function(n) {
                var ts = this._transformState;
                if (ts.writechunk !== null && !ts.transforming) {
                    ts.transforming = true;
                    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
                } else {
                    ts.needTransform = true;
                }
            };
            Transform.prototype._destroy = function(err, cb) {
                Duplex.prototype._destroy.call(this, err, function(err2) {
                    cb(err2);
                });
            };
            function done3(stream, er, data) {
                if (er) return stream.emit("error", er);
                if (data != null) stream.push(data);
                if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();
                if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();
                return stream.push(null);
            }
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js
    var require_stream_passthrough = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = PassThrough;
            var Transform = require_stream_transform();
            require_inherits_browser()(PassThrough, Transform);
            function PassThrough(options) {
                if (!(this instanceof PassThrough)) return new PassThrough(options);
                Transform.call(this, options);
            }
            PassThrough.prototype._transform = function(chunk, encoding, cb) {
                cb(null, chunk);
            };
        }
    });
    // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js
    var require_pipeline = __commonJS({
        "node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var eos;
            function once2(callback) {
                var called = false;
                return function() {
                    if (called) return;
                    called = true;
                    callback.apply(void 0, arguments);
                };
            }
            var _require$codes = require_errors_browser().codes;
            var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;
            var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
            function noop3(err) {
                if (err) throw err;
            }
            function isRequest(stream) {
                return stream.setHeader && typeof stream.abort === "function";
            }
            function destroyer(stream, reading, writing, callback) {
                callback = once2(callback);
                var closed = false;
                stream.on("close", function() {
                    closed = true;
                });
                if (eos === void 0) eos = require_end_of_stream();
                eos(stream, {
                    readable: reading,
                    writable: writing
                }, function(err) {
                    if (err) return callback(err);
                    closed = true;
                    callback();
                });
                var destroyed = false;
                return function(err) {
                    if (closed) return;
                    if (destroyed) return;
                    destroyed = true;
                    if (isRequest(stream)) return stream.abort();
                    if (typeof stream.destroy === "function") return stream.destroy();
                    callback(err || new ERR_STREAM_DESTROYED("pipe"));
                };
            }
            function call2(fn) {
                fn();
            }
            function pipe(from, to) {
                return from.pipe(to);
            }
            function popCallback(streams) {
                if (!streams.length) return noop3;
                if (typeof streams[streams.length - 1] !== "function") return noop3;
                return streams.pop();
            }
            function pipeline() {
                for(var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++){
                    streams[_key] = arguments[_key];
                }
                var callback = popCallback(streams);
                if (Array.isArray(streams[0])) streams = streams[0];
                if (streams.length < 2) {
                    throw new ERR_MISSING_ARGS("streams");
                }
                var error;
                var destroys = streams.map(function(stream, i) {
                    var reading = i < streams.length - 1;
                    var writing = i > 0;
                    return destroyer(stream, reading, writing, function(err) {
                        if (!error) error = err;
                        if (err) destroys.forEach(call2);
                        if (reading) return;
                        destroys.forEach(call2);
                        callback(error);
                    });
                });
                return streams.reduce(pipe);
            }
            module.exports = pipeline;
        }
    });
    // node_modules/stream-browserify/index.js
    var require_stream_browserify = __commonJS({
        "node_modules/stream-browserify/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Stream;
            var EE = require_events().EventEmitter;
            var inherits = require_inherits_browser();
            inherits(Stream, EE);
            Stream.Readable = require_stream_readable();
            Stream.Writable = require_stream_writable();
            Stream.Duplex = require_stream_duplex();
            Stream.Transform = require_stream_transform();
            Stream.PassThrough = require_stream_passthrough();
            Stream.finished = require_end_of_stream();
            Stream.pipeline = require_pipeline();
            Stream.Stream = Stream;
            function Stream() {
                EE.call(this);
            }
            Stream.prototype.pipe = function(dest, options) {
                var source = this;
                function ondata(chunk) {
                    if (dest.writable) {
                        if (false === dest.write(chunk) && source.pause) {
                            source.pause();
                        }
                    }
                }
                source.on("data", ondata);
                function ondrain() {
                    if (source.readable && source.resume) {
                        source.resume();
                    }
                }
                dest.on("drain", ondrain);
                if (!dest._isStdio && (!options || options.end !== false)) {
                    source.on("end", onend);
                    source.on("close", onclose);
                }
                var didOnEnd = false;
                function onend() {
                    if (didOnEnd) return;
                    didOnEnd = true;
                    dest.end();
                }
                function onclose() {
                    if (didOnEnd) return;
                    didOnEnd = true;
                    if (typeof dest.destroy === "function") dest.destroy();
                }
                function onerror(er) {
                    cleanup();
                    if (EE.listenerCount(this, "error") === 0) {
                        throw er;
                    }
                }
                source.on("error", onerror);
                dest.on("error", onerror);
                function cleanup() {
                    source.removeListener("data", ondata);
                    dest.removeListener("drain", ondrain);
                    source.removeListener("end", onend);
                    source.removeListener("close", onclose);
                    source.removeListener("error", onerror);
                    dest.removeListener("error", onerror);
                    source.removeListener("end", cleanup);
                    source.removeListener("close", cleanup);
                    dest.removeListener("close", cleanup);
                }
                source.on("end", cleanup);
                source.on("close", cleanup);
                dest.on("close", cleanup);
                dest.emit("pipe", source);
                return dest;
            };
        }
    });
    // node_modules/hash-base/index.js
    var require_hash_base = __commonJS({
        "node_modules/hash-base/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer2().Buffer;
            var Transform = require_stream_browserify().Transform;
            var inherits = require_inherits_browser();
            function HashBase(blockSize) {
                Transform.call(this);
                this._block = Buffer3.allocUnsafe(blockSize);
                this._blockSize = blockSize;
                this._blockOffset = 0;
                this._length = [
                    0,
                    0,
                    0,
                    0
                ];
                this._finalized = false;
            }
            inherits(HashBase, Transform);
            HashBase.prototype._transform = function(chunk, encoding, callback) {
                var error = null;
                try {
                    this.update(chunk, encoding);
                } catch (err) {
                    error = err;
                }
                callback(error);
            };
            HashBase.prototype._flush = function(callback) {
                var error = null;
                try {
                    this.push(this.digest());
                } catch (err) {
                    error = err;
                }
                callback(error);
            };
            var useUint8Array = typeof Uint8Array !== "undefined";
            var useArrayBuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined" && ArrayBuffer.isView && (Buffer3.prototype instanceof Uint8Array || Buffer3.TYPED_ARRAY_SUPPORT);
            function toBuffer(data, encoding) {
                if (data instanceof Buffer3) return data;
                if (typeof data === "string") return Buffer3.from(data, encoding);
                if (useArrayBuffer && ArrayBuffer.isView(data)) {
                    if (data.byteLength === 0) return Buffer3.alloc(0);
                    var res = Buffer3.from(data.buffer, data.byteOffset, data.byteLength);
                    if (res.byteLength === data.byteLength) return res;
                }
                if (useUint8Array && data instanceof Uint8Array) return Buffer3.from(data);
                if (Buffer3.isBuffer(data) && data.constructor && typeof data.constructor.isBuffer === "function" && data.constructor.isBuffer(data)) {
                    return Buffer3.from(data);
                }
                throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');
            }
            HashBase.prototype.update = function(data, encoding) {
                if (this._finalized) throw new Error("Digest already called");
                data = toBuffer(data, encoding);
                var block = this._block;
                var offset = 0;
                while(this._blockOffset + data.length - offset >= this._blockSize){
                    for(var i = this._blockOffset; i < this._blockSize;)block[i++] = data[offset++];
                    this._update();
                    this._blockOffset = 0;
                }
                while(offset < data.length)block[this._blockOffset++] = data[offset++];
                for(var j = 0, carry = data.length * 8; carry > 0; ++j){
                    this._length[j] += carry;
                    carry = this._length[j] / 4294967296 | 0;
                    if (carry > 0) this._length[j] -= 4294967296 * carry;
                }
                return this;
            };
            HashBase.prototype._update = function() {
                throw new Error("_update is not implemented");
            };
            HashBase.prototype.digest = function(encoding) {
                if (this._finalized) throw new Error("Digest already called");
                this._finalized = true;
                var digest2 = this._digest();
                if (encoding !== void 0) digest2 = digest2.toString(encoding);
                this._block.fill(0);
                this._blockOffset = 0;
                for(var i = 0; i < 4; ++i)this._length[i] = 0;
                return digest2;
            };
            HashBase.prototype._digest = function() {
                throw new Error("_digest is not implemented");
            };
            module.exports = HashBase;
        }
    });
    // node_modules/md5.js/index.js
    var require_md5 = __commonJS({
        "node_modules/md5.js/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var HashBase = require_hash_base();
            var Buffer3 = require_safe_buffer().Buffer;
            var ARRAY16 = new Array(16);
            function MD5() {
                HashBase.call(this, 64);
                this._a = 1732584193;
                this._b = 4023233417;
                this._c = 2562383102;
                this._d = 271733878;
            }
            inherits(MD5, HashBase);
            MD5.prototype._update = function() {
                var M = ARRAY16;
                for(var i = 0; i < 16; ++i)M[i] = this._block.readInt32LE(i * 4);
                var a = this._a;
                var b = this._b;
                var c = this._c;
                var d = this._d;
                a = fnF(a, b, c, d, M[0], 3614090360, 7);
                d = fnF(d, a, b, c, M[1], 3905402710, 12);
                c = fnF(c, d, a, b, M[2], 606105819, 17);
                b = fnF(b, c, d, a, M[3], 3250441966, 22);
                a = fnF(a, b, c, d, M[4], 4118548399, 7);
                d = fnF(d, a, b, c, M[5], 1200080426, 12);
                c = fnF(c, d, a, b, M[6], 2821735955, 17);
                b = fnF(b, c, d, a, M[7], 4249261313, 22);
                a = fnF(a, b, c, d, M[8], 1770035416, 7);
                d = fnF(d, a, b, c, M[9], 2336552879, 12);
                c = fnF(c, d, a, b, M[10], 4294925233, 17);
                b = fnF(b, c, d, a, M[11], 2304563134, 22);
                a = fnF(a, b, c, d, M[12], 1804603682, 7);
                d = fnF(d, a, b, c, M[13], 4254626195, 12);
                c = fnF(c, d, a, b, M[14], 2792965006, 17);
                b = fnF(b, c, d, a, M[15], 1236535329, 22);
                a = fnG(a, b, c, d, M[1], 4129170786, 5);
                d = fnG(d, a, b, c, M[6], 3225465664, 9);
                c = fnG(c, d, a, b, M[11], 643717713, 14);
                b = fnG(b, c, d, a, M[0], 3921069994, 20);
                a = fnG(a, b, c, d, M[5], 3593408605, 5);
                d = fnG(d, a, b, c, M[10], 38016083, 9);
                c = fnG(c, d, a, b, M[15], 3634488961, 14);
                b = fnG(b, c, d, a, M[4], 3889429448, 20);
                a = fnG(a, b, c, d, M[9], 568446438, 5);
                d = fnG(d, a, b, c, M[14], 3275163606, 9);
                c = fnG(c, d, a, b, M[3], 4107603335, 14);
                b = fnG(b, c, d, a, M[8], 1163531501, 20);
                a = fnG(a, b, c, d, M[13], 2850285829, 5);
                d = fnG(d, a, b, c, M[2], 4243563512, 9);
                c = fnG(c, d, a, b, M[7], 1735328473, 14);
                b = fnG(b, c, d, a, M[12], 2368359562, 20);
                a = fnH(a, b, c, d, M[5], 4294588738, 4);
                d = fnH(d, a, b, c, M[8], 2272392833, 11);
                c = fnH(c, d, a, b, M[11], 1839030562, 16);
                b = fnH(b, c, d, a, M[14], 4259657740, 23);
                a = fnH(a, b, c, d, M[1], 2763975236, 4);
                d = fnH(d, a, b, c, M[4], 1272893353, 11);
                c = fnH(c, d, a, b, M[7], 4139469664, 16);
                b = fnH(b, c, d, a, M[10], 3200236656, 23);
                a = fnH(a, b, c, d, M[13], 681279174, 4);
                d = fnH(d, a, b, c, M[0], 3936430074, 11);
                c = fnH(c, d, a, b, M[3], 3572445317, 16);
                b = fnH(b, c, d, a, M[6], 76029189, 23);
                a = fnH(a, b, c, d, M[9], 3654602809, 4);
                d = fnH(d, a, b, c, M[12], 3873151461, 11);
                c = fnH(c, d, a, b, M[15], 530742520, 16);
                b = fnH(b, c, d, a, M[2], 3299628645, 23);
                a = fnI(a, b, c, d, M[0], 4096336452, 6);
                d = fnI(d, a, b, c, M[7], 1126891415, 10);
                c = fnI(c, d, a, b, M[14], 2878612391, 15);
                b = fnI(b, c, d, a, M[5], 4237533241, 21);
                a = fnI(a, b, c, d, M[12], 1700485571, 6);
                d = fnI(d, a, b, c, M[3], 2399980690, 10);
                c = fnI(c, d, a, b, M[10], 4293915773, 15);
                b = fnI(b, c, d, a, M[1], 2240044497, 21);
                a = fnI(a, b, c, d, M[8], 1873313359, 6);
                d = fnI(d, a, b, c, M[15], 4264355552, 10);
                c = fnI(c, d, a, b, M[6], 2734768916, 15);
                b = fnI(b, c, d, a, M[13], 1309151649, 21);
                a = fnI(a, b, c, d, M[4], 4149444226, 6);
                d = fnI(d, a, b, c, M[11], 3174756917, 10);
                c = fnI(c, d, a, b, M[2], 718787259, 15);
                b = fnI(b, c, d, a, M[9], 3951481745, 21);
                this._a = this._a + a | 0;
                this._b = this._b + b | 0;
                this._c = this._c + c | 0;
                this._d = this._d + d | 0;
            };
            MD5.prototype._digest = function() {
                this._block[this._blockOffset++] = 128;
                if (this._blockOffset > 56) {
                    this._block.fill(0, this._blockOffset, 64);
                    this._update();
                    this._blockOffset = 0;
                }
                this._block.fill(0, this._blockOffset, 56);
                this._block.writeUInt32LE(this._length[0], 56);
                this._block.writeUInt32LE(this._length[1], 60);
                this._update();
                var buffer = Buffer3.allocUnsafe(16);
                buffer.writeInt32LE(this._a, 0);
                buffer.writeInt32LE(this._b, 4);
                buffer.writeInt32LE(this._c, 8);
                buffer.writeInt32LE(this._d, 12);
                return buffer;
            };
            function rotl(x, n) {
                return x << n | x >>> 32 - n;
            }
            function fnF(a, b, c, d, m, k, s) {
                return rotl(a + (b & c | ~b & d) + m + k | 0, s) + b | 0;
            }
            function fnG(a, b, c, d, m, k, s) {
                return rotl(a + (b & d | c & ~d) + m + k | 0, s) + b | 0;
            }
            function fnH(a, b, c, d, m, k, s) {
                return rotl(a + (b ^ c ^ d) + m + k | 0, s) + b | 0;
            }
            function fnI(a, b, c, d, m, k, s) {
                return rotl(a + (c ^ (b | ~d)) + m + k | 0, s) + b | 0;
            }
            module.exports = MD5;
        }
    });
    // node_modules/ripemd160/node_modules/safe-buffer/index.js
    var require_safe_buffer3 = __commonJS({
        "node_modules/ripemd160/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/to-buffer/node_modules/safe-buffer/index.js
    var require_safe_buffer4 = __commonJS({
        "node_modules/to-buffer/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/to-buffer/node_modules/isarray/index.js
    var require_isarray = __commonJS({
        "node_modules/to-buffer/node_modules/isarray/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var toString3 = {}.toString;
            module.exports = Array.isArray || function(arr) {
                return toString3.call(arr) == "[object Array]";
            };
        }
    });
    // node_modules/typed-array-buffer/index.js
    var require_typed_array_buffer = __commonJS({
        "node_modules/typed-array-buffer/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $TypeError = require_type();
            var callBound = require_call_bound();
            var $typedArrayBuffer = callBound("TypedArray.prototype.buffer", true);
            var isTypedArray = require_is_typed_array();
            module.exports = $typedArrayBuffer || function typedArrayBuffer(x) {
                if (!isTypedArray(x)) {
                    throw new $TypeError("Not a Typed Array");
                }
                return x.buffer;
            };
        }
    });
    // node_modules/to-buffer/index.js
    var require_to_buffer = __commonJS({
        "node_modules/to-buffer/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer4().Buffer;
            var isArray = require_isarray();
            var typedArrayBuffer = require_typed_array_buffer();
            var isView = ArrayBuffer.isView || function isView2(obj) {
                try {
                    typedArrayBuffer(obj);
                    return true;
                } catch (e) {
                    return false;
                }
            };
            var useUint8Array = typeof Uint8Array !== "undefined";
            var useArrayBuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined";
            var useFromArrayBuffer = useArrayBuffer && (Buffer3.prototype instanceof Uint8Array || Buffer3.TYPED_ARRAY_SUPPORT);
            module.exports = function toBuffer(data, encoding) {
                if (Buffer3.isBuffer(data)) {
                    if (data.constructor && !("isBuffer" in data)) {
                        return Buffer3.from(data);
                    }
                    return data;
                }
                if (typeof data === "string") {
                    return Buffer3.from(data, encoding);
                }
                if (useArrayBuffer && isView(data)) {
                    if (data.byteLength === 0) {
                        return Buffer3.alloc(0);
                    }
                    if (useFromArrayBuffer) {
                        var res = Buffer3.from(data.buffer, data.byteOffset, data.byteLength);
                        if (res.byteLength === data.byteLength) {
                            return res;
                        }
                    }
                    var uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
                    var result17 = Buffer3.from(uint8);
                    if (result17.length === data.byteLength) {
                        return result17;
                    }
                }
                if (useUint8Array && data instanceof Uint8Array) {
                    return Buffer3.from(data);
                }
                var isArr = isArray(data);
                if (isArr) {
                    for(var i = 0; i < data.length; i += 1){
                        var x = data[i];
                        if (typeof x !== "number" || x < 0 || x > 255 || ~~x !== x) {
                            throw new RangeError("Array items must be numbers in the range 0-255.");
                        }
                    }
                }
                if (isArr || Buffer3.isBuffer(data) && data.constructor && typeof data.constructor.isBuffer === "function" && data.constructor.isBuffer(data)) {
                    return Buffer3.from(data);
                }
                throw new TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');
            };
        }
    });
    // node_modules/ripemd160/node_modules/hash-base/to-buffer.js
    var require_to_buffer2 = __commonJS({
        "node_modules/ripemd160/node_modules/hash-base/to-buffer.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer3().Buffer;
            var toBuffer = require_to_buffer();
            var useUint8Array = typeof Uint8Array !== "undefined";
            var useArrayBuffer = useUint8Array && typeof ArrayBuffer !== "undefined";
            var isView = useArrayBuffer && ArrayBuffer.isView;
            module.exports = function(thing, encoding) {
                if (typeof thing === "string" || Buffer3.isBuffer(thing) || useUint8Array && thing instanceof Uint8Array || isView && isView(thing)) {
                    return toBuffer(thing, encoding);
                }
                throw new TypeError('The "data" argument must be a string, a Buffer, a Uint8Array, or a DataView');
            };
        }
    });
    // node_modules/process-nextick-args/index.js
    var require_process_nextick_args = __commonJS({
        "node_modules/process-nextick-args/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            if (typeof process === "undefined" || !process.version || process.version.indexOf("v0.") === 0 || process.version.indexOf("v1.") === 0 && process.version.indexOf("v1.8.") !== 0) {
                module.exports = {
                    nextTick: nextTick
                };
            } else {
                module.exports = process;
            }
            function nextTick(fn, arg1, arg2, arg3) {
                if (typeof fn !== "function") {
                    throw new TypeError('"callback" argument must be a function');
                }
                var len = arguments.length;
                var args, i;
                switch(len){
                    case 0:
                    case 1:
                        return process.nextTick(fn);
                    case 2:
                        return process.nextTick(function afterTickOne() {
                            fn.call(null, arg1);
                        });
                    case 3:
                        return process.nextTick(function afterTickTwo() {
                            fn.call(null, arg1, arg2);
                        });
                    case 4:
                        return process.nextTick(function afterTickThree() {
                            fn.call(null, arg1, arg2, arg3);
                        });
                    default:
                        args = new Array(len - 1);
                        i = 0;
                        while(i < args.length){
                            args[i++] = arguments[i];
                        }
                        return process.nextTick(function afterTick() {
                            fn.apply(null, args);
                        });
                }
            }
        }
    });
    // node_modules/isarray/index.js
    var require_isarray2 = __commonJS({
        "node_modules/isarray/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var toString3 = {}.toString;
            module.exports = Array.isArray || function(arr) {
                return toString3.call(arr) == "[object Array]";
            };
        }
    });
    // node_modules/readable-stream/lib/internal/streams/stream-browser.js
    var require_stream_browser2 = __commonJS({
        "node_modules/readable-stream/lib/internal/streams/stream-browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_events().EventEmitter;
        }
    });
    // node_modules/core-util-is/lib/util.js
    var require_util4 = __commonJS({
        "node_modules/core-util-is/lib/util.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function isArray(arg) {
                if (Array.isArray) {
                    return Array.isArray(arg);
                }
                return objectToString(arg) === "[object Array]";
            }
            exports.isArray = isArray;
            function isBoolean(arg) {
                return typeof arg === "boolean";
            }
            exports.isBoolean = isBoolean;
            function isNull(arg) {
                return arg === null;
            }
            exports.isNull = isNull;
            function isNullOrUndefined(arg) {
                return arg == null;
            }
            exports.isNullOrUndefined = isNullOrUndefined;
            function isNumber(arg) {
                return typeof arg === "number";
            }
            exports.isNumber = isNumber;
            function isString(arg) {
                return typeof arg === "string";
            }
            exports.isString = isString;
            function isSymbol(arg) {
                return (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "symbol";
            }
            exports.isSymbol = isSymbol;
            function isUndefined2(arg) {
                return arg === void 0;
            }
            exports.isUndefined = isUndefined2;
            function isRegExp(re) {
                return objectToString(re) === "[object RegExp]";
            }
            exports.isRegExp = isRegExp;
            function isObject2(arg) {
                return (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object" && arg !== null;
            }
            exports.isObject = isObject2;
            function isDate(d) {
                return objectToString(d) === "[object Date]";
            }
            exports.isDate = isDate;
            function isError(e) {
                return objectToString(e) === "[object Error]" || e instanceof Error;
            }
            exports.isError = isError;
            function isFunction(arg) {
                return typeof arg === "function";
            }
            exports.isFunction = isFunction;
            function isPrimitive(arg) {
                return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "symbol" || // ES6 symbol
                typeof arg === "undefined";
            }
            exports.isPrimitive = isPrimitive;
            exports.isBuffer = require_buffer().Buffer.isBuffer;
            function objectToString(o) {
                return Object.prototype.toString.call(o);
            }
        }
    });
    // node_modules/readable-stream/lib/internal/streams/BufferList.js
    var require_BufferList = __commonJS({
        "node_modules/readable-stream/lib/internal/streams/BufferList.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function _classCallCheck(instance, Constructor) {
                if (!(instance instanceof Constructor)) {
                    throw new TypeError("Cannot call a class as a function");
                }
            }
            var Buffer3 = require_safe_buffer().Buffer;
            var util = require_util3();
            function copyBuffer(src, target, offset) {
                src.copy(target, offset);
            }
            module.exports = function() {
                function BufferList() {
                    _classCallCheck(this, BufferList);
                    this.head = null;
                    this.tail = null;
                    this.length = 0;
                }
                BufferList.prototype.push = function push(v) {
                    var entry = {
                        data: v,
                        next: null
                    };
                    if (this.length > 0) this.tail.next = entry;
                    else this.head = entry;
                    this.tail = entry;
                    ++this.length;
                };
                BufferList.prototype.unshift = function unshift(v) {
                    var entry = {
                        data: v,
                        next: this.head
                    };
                    if (this.length === 0) this.tail = entry;
                    this.head = entry;
                    ++this.length;
                };
                BufferList.prototype.shift = function shift() {
                    if (this.length === 0) return;
                    var ret = this.head.data;
                    if (this.length === 1) this.head = this.tail = null;
                    else this.head = this.head.next;
                    --this.length;
                    return ret;
                };
                BufferList.prototype.clear = function clear3() {
                    this.head = this.tail = null;
                    this.length = 0;
                };
                BufferList.prototype.join = function join2(s) {
                    if (this.length === 0) return "";
                    var p = this.head;
                    var ret = "" + p.data;
                    while(p = p.next){
                        ret += s + p.data;
                    }
                    return ret;
                };
                BufferList.prototype.concat = function concat2(n) {
                    if (this.length === 0) return Buffer3.alloc(0);
                    var ret = Buffer3.allocUnsafe(n >>> 0);
                    var p = this.head;
                    var i = 0;
                    while(p){
                        copyBuffer(p.data, ret, i);
                        i += p.data.length;
                        p = p.next;
                    }
                    return ret;
                };
                return BufferList;
            }();
            if (util && util.inspect && util.inspect.custom) {
                module.exports.prototype[util.inspect.custom] = function() {
                    var obj = util.inspect({
                        length: this.length
                    });
                    return this.constructor.name + " " + obj;
                };
            }
        }
    });
    // node_modules/readable-stream/lib/internal/streams/destroy.js
    var require_destroy2 = __commonJS({
        "node_modules/readable-stream/lib/internal/streams/destroy.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var pna = require_process_nextick_args();
            function destroy(err, cb) {
                var _this = this;
                var readableDestroyed = this._readableState && this._readableState.destroyed;
                var writableDestroyed = this._writableState && this._writableState.destroyed;
                if (readableDestroyed || writableDestroyed) {
                    if (cb) {
                        cb(err);
                    } else if (err) {
                        if (!this._writableState) {
                            pna.nextTick(emitErrorNT, this, err);
                        } else if (!this._writableState.errorEmitted) {
                            this._writableState.errorEmitted = true;
                            pna.nextTick(emitErrorNT, this, err);
                        }
                    }
                    return this;
                }
                if (this._readableState) {
                    this._readableState.destroyed = true;
                }
                if (this._writableState) {
                    this._writableState.destroyed = true;
                }
                this._destroy(err || null, function(err2) {
                    if (!cb && err2) {
                        if (!_this._writableState) {
                            pna.nextTick(emitErrorNT, _this, err2);
                        } else if (!_this._writableState.errorEmitted) {
                            _this._writableState.errorEmitted = true;
                            pna.nextTick(emitErrorNT, _this, err2);
                        }
                    } else if (cb) {
                        cb(err2);
                    }
                });
                return this;
            }
            function undestroy() {
                if (this._readableState) {
                    this._readableState.destroyed = false;
                    this._readableState.reading = false;
                    this._readableState.ended = false;
                    this._readableState.endEmitted = false;
                }
                if (this._writableState) {
                    this._writableState.destroyed = false;
                    this._writableState.ended = false;
                    this._writableState.ending = false;
                    this._writableState.finalCalled = false;
                    this._writableState.prefinished = false;
                    this._writableState.finished = false;
                    this._writableState.errorEmitted = false;
                }
            }
            function emitErrorNT(self2, err) {
                self2.emit("error", err);
            }
            module.exports = {
                destroy: destroy,
                undestroy: undestroy
            };
        }
    });
    // node_modules/readable-stream/lib/_stream_writable.js
    var require_stream_writable2 = __commonJS({
        "node_modules/readable-stream/lib/_stream_writable.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var pna = require_process_nextick_args();
            module.exports = Writable;
            function CorkedRequest(state) {
                var _this = this;
                this.next = null;
                this.entry = null;
                this.finish = function() {
                    onCorkedFinish(_this, state);
                };
            }
            var asyncWrite = !process.browser && [
                "v0.10",
                "v0.9."
            ].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
            var Duplex;
            Writable.WritableState = WritableState;
            var util = Object.create(require_util4());
            util.inherits = require_inherits_browser();
            var internalUtil = {
                deprecate: require_browser5()
            };
            var Stream = require_stream_browser2();
            var Buffer3 = require_safe_buffer().Buffer;
            var OurUint8Array = (typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {}).Uint8Array || function() {};
            function _uint8ArrayToBuffer(chunk) {
                return Buffer3.from(chunk);
            }
            function _isUint8Array(obj) {
                return Buffer3.isBuffer(obj) || obj instanceof OurUint8Array;
            }
            var destroyImpl = require_destroy2();
            util.inherits(Writable, Stream);
            function nop() {}
            function WritableState(options, stream) {
                Duplex = Duplex || require_stream_duplex2();
                options = options || {};
                var isDuplex = stream instanceof Duplex;
                this.objectMode = !!options.objectMode;
                if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
                var hwm = options.highWaterMark;
                var writableHwm = options.writableHighWaterMark;
                var defaultHwm = this.objectMode ? 16 : 16 * 1024;
                if (hwm || hwm === 0) this.highWaterMark = hwm;
                else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;
                else this.highWaterMark = defaultHwm;
                this.highWaterMark = Math.floor(this.highWaterMark);
                this.finalCalled = false;
                this.needDrain = false;
                this.ending = false;
                this.ended = false;
                this.finished = false;
                this.destroyed = false;
                var noDecode = options.decodeStrings === false;
                this.decodeStrings = !noDecode;
                this.defaultEncoding = options.defaultEncoding || "utf8";
                this.length = 0;
                this.writing = false;
                this.corked = 0;
                this.sync = true;
                this.bufferProcessing = false;
                this.onwrite = function(er) {
                    onwrite(stream, er);
                };
                this.writecb = null;
                this.writelen = 0;
                this.bufferedRequest = null;
                this.lastBufferedRequest = null;
                this.pendingcb = 0;
                this.prefinished = false;
                this.errorEmitted = false;
                this.bufferedRequestCount = 0;
                this.corkedRequestsFree = new CorkedRequest(this);
            }
            WritableState.prototype.getBuffer = function getBuffer() {
                var current2 = this.bufferedRequest;
                var out = [];
                while(current2){
                    out.push(current2);
                    current2 = current2.next;
                }
                return out;
            };
            (function() {
                try {
                    Object.defineProperty(WritableState.prototype, "buffer", {
                        get: internalUtil.deprecate(function() {
                            return this.getBuffer();
                        }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")
                    });
                } catch (_2) {}
            })();
            var realHasInstance;
            if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {
                realHasInstance = Function.prototype[Symbol.hasInstance];
                Object.defineProperty(Writable, Symbol.hasInstance, {
                    value: function value(object) {
                        if (realHasInstance.call(this, object)) return true;
                        if (this !== Writable) return false;
                        return object && object._writableState instanceof WritableState;
                    }
                });
            } else {
                realHasInstance = function realHasInstance(object) {
                    return object instanceof this;
                };
            }
            function Writable(options) {
                Duplex = Duplex || require_stream_duplex2();
                if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
                    return new Writable(options);
                }
                this._writableState = new WritableState(options, this);
                this.writable = true;
                if (options) {
                    if (typeof options.write === "function") this._write = options.write;
                    if (typeof options.writev === "function") this._writev = options.writev;
                    if (typeof options.destroy === "function") this._destroy = options.destroy;
                    if (typeof options["final"] === "function") this._final = options["final"];
                }
                Stream.call(this);
            }
            Writable.prototype.pipe = function() {
                this.emit("error", new Error("Cannot pipe, not readable"));
            };
            function writeAfterEnd(stream, cb) {
                var er = new Error("write after end");
                stream.emit("error", er);
                pna.nextTick(cb, er);
            }
            function validChunk(stream, state, chunk, cb) {
                var valid = true;
                var er = false;
                if (chunk === null) {
                    er = new TypeError("May not write null values to stream");
                } else if (typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {
                    er = new TypeError("Invalid non-string/buffer chunk");
                }
                if (er) {
                    stream.emit("error", er);
                    pna.nextTick(cb, er);
                    valid = false;
                }
                return valid;
            }
            Writable.prototype.write = function(chunk, encoding, cb) {
                var state = this._writableState;
                var ret = false;
                var isBuf = !state.objectMode && _isUint8Array(chunk);
                if (isBuf && !Buffer3.isBuffer(chunk)) {
                    chunk = _uint8ArrayToBuffer(chunk);
                }
                if (typeof encoding === "function") {
                    cb = encoding;
                    encoding = null;
                }
                if (isBuf) encoding = "buffer";
                else if (!encoding) encoding = state.defaultEncoding;
                if (typeof cb !== "function") cb = nop;
                if (state.ended) writeAfterEnd(this, cb);
                else if (isBuf || validChunk(this, state, chunk, cb)) {
                    state.pendingcb++;
                    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
                }
                return ret;
            };
            Writable.prototype.cork = function() {
                var state = this._writableState;
                state.corked++;
            };
            Writable.prototype.uncork = function() {
                var state = this._writableState;
                if (state.corked) {
                    state.corked--;
                    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
                }
            };
            Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
                if (typeof encoding === "string") encoding = encoding.toLowerCase();
                if (!([
                    "hex",
                    "utf8",
                    "utf-8",
                    "ascii",
                    "binary",
                    "base64",
                    "ucs2",
                    "ucs-2",
                    "utf16le",
                    "utf-16le",
                    "raw"
                ].indexOf((encoding + "").toLowerCase()) > -1)) throw new TypeError("Unknown encoding: " + encoding);
                this._writableState.defaultEncoding = encoding;
                return this;
            };
            function decodeChunk(state, chunk, encoding) {
                if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {
                    chunk = Buffer3.from(chunk, encoding);
                }
                return chunk;
            }
            Object.defineProperty(Writable.prototype, "writableHighWaterMark", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState.highWaterMark;
                }
            });
            function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
                if (!isBuf) {
                    var newChunk = decodeChunk(state, chunk, encoding);
                    if (chunk !== newChunk) {
                        isBuf = true;
                        encoding = "buffer";
                        chunk = newChunk;
                    }
                }
                var len = state.objectMode ? 1 : chunk.length;
                state.length += len;
                var ret = state.length < state.highWaterMark;
                if (!ret) state.needDrain = true;
                if (state.writing || state.corked) {
                    var last = state.lastBufferedRequest;
                    state.lastBufferedRequest = {
                        chunk: chunk,
                        encoding: encoding,
                        isBuf: isBuf,
                        callback: cb,
                        next: null
                    };
                    if (last) {
                        last.next = state.lastBufferedRequest;
                    } else {
                        state.bufferedRequest = state.lastBufferedRequest;
                    }
                    state.bufferedRequestCount += 1;
                } else {
                    doWrite(stream, state, false, len, chunk, encoding, cb);
                }
                return ret;
            }
            function doWrite(stream, state, writev, len, chunk, encoding, cb) {
                state.writelen = len;
                state.writecb = cb;
                state.writing = true;
                state.sync = true;
                if (writev) stream._writev(chunk, state.onwrite);
                else stream._write(chunk, encoding, state.onwrite);
                state.sync = false;
            }
            function onwriteError(stream, state, sync, er, cb) {
                --state.pendingcb;
                if (sync) {
                    pna.nextTick(cb, er);
                    pna.nextTick(finishMaybe, stream, state);
                    stream._writableState.errorEmitted = true;
                    stream.emit("error", er);
                } else {
                    cb(er);
                    stream._writableState.errorEmitted = true;
                    stream.emit("error", er);
                    finishMaybe(stream, state);
                }
            }
            function onwriteStateUpdate(state) {
                state.writing = false;
                state.writecb = null;
                state.length -= state.writelen;
                state.writelen = 0;
            }
            function onwrite(stream, er) {
                var state = stream._writableState;
                var sync = state.sync;
                var cb = state.writecb;
                onwriteStateUpdate(state);
                if (er) onwriteError(stream, state, sync, er, cb);
                else {
                    var finished = needFinish(state);
                    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
                        clearBuffer(stream, state);
                    }
                    if (sync) {
                        asyncWrite(afterWrite, stream, state, finished, cb);
                    } else {
                        afterWrite(stream, state, finished, cb);
                    }
                }
            }
            function afterWrite(stream, state, finished, cb) {
                if (!finished) onwriteDrain(stream, state);
                state.pendingcb--;
                cb();
                finishMaybe(stream, state);
            }
            function onwriteDrain(stream, state) {
                if (state.length === 0 && state.needDrain) {
                    state.needDrain = false;
                    stream.emit("drain");
                }
            }
            function clearBuffer(stream, state) {
                state.bufferProcessing = true;
                var entry = state.bufferedRequest;
                if (stream._writev && entry && entry.next) {
                    var l = state.bufferedRequestCount;
                    var buffer = new Array(l);
                    var holder = state.corkedRequestsFree;
                    holder.entry = entry;
                    var count = 0;
                    var allBuffers = true;
                    while(entry){
                        buffer[count] = entry;
                        if (!entry.isBuf) allBuffers = false;
                        entry = entry.next;
                        count += 1;
                    }
                    buffer.allBuffers = allBuffers;
                    doWrite(stream, state, true, state.length, buffer, "", holder.finish);
                    state.pendingcb++;
                    state.lastBufferedRequest = null;
                    if (holder.next) {
                        state.corkedRequestsFree = holder.next;
                        holder.next = null;
                    } else {
                        state.corkedRequestsFree = new CorkedRequest(state);
                    }
                    state.bufferedRequestCount = 0;
                } else {
                    while(entry){
                        var chunk = entry.chunk;
                        var encoding = entry.encoding;
                        var cb = entry.callback;
                        var len = state.objectMode ? 1 : chunk.length;
                        doWrite(stream, state, false, len, chunk, encoding, cb);
                        entry = entry.next;
                        state.bufferedRequestCount--;
                        if (state.writing) {
                            break;
                        }
                    }
                    if (entry === null) state.lastBufferedRequest = null;
                }
                state.bufferedRequest = entry;
                state.bufferProcessing = false;
            }
            Writable.prototype._write = function(chunk, encoding, cb) {
                cb(new Error("_write() is not implemented"));
            };
            Writable.prototype._writev = null;
            Writable.prototype.end = function(chunk, encoding, cb) {
                var state = this._writableState;
                if (typeof chunk === "function") {
                    cb = chunk;
                    chunk = null;
                    encoding = null;
                } else if (typeof encoding === "function") {
                    cb = encoding;
                    encoding = null;
                }
                if (chunk !== null && chunk !== void 0) this.write(chunk, encoding);
                if (state.corked) {
                    state.corked = 1;
                    this.uncork();
                }
                if (!state.ending) endWritable(this, state, cb);
            };
            function needFinish(state) {
                return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
            }
            function callFinal(stream, state) {
                stream._final(function(err) {
                    state.pendingcb--;
                    if (err) {
                        stream.emit("error", err);
                    }
                    state.prefinished = true;
                    stream.emit("prefinish");
                    finishMaybe(stream, state);
                });
            }
            function prefinish(stream, state) {
                if (!state.prefinished && !state.finalCalled) {
                    if (typeof stream._final === "function") {
                        state.pendingcb++;
                        state.finalCalled = true;
                        pna.nextTick(callFinal, stream, state);
                    } else {
                        state.prefinished = true;
                        stream.emit("prefinish");
                    }
                }
            }
            function finishMaybe(stream, state) {
                var need = needFinish(state);
                if (need) {
                    prefinish(stream, state);
                    if (state.pendingcb === 0) {
                        state.finished = true;
                        stream.emit("finish");
                    }
                }
                return need;
            }
            function endWritable(stream, state, cb) {
                state.ending = true;
                finishMaybe(stream, state);
                if (cb) {
                    if (state.finished) pna.nextTick(cb);
                    else stream.once("finish", cb);
                }
                state.ended = true;
                stream.writable = false;
            }
            function onCorkedFinish(corkReq, state, err) {
                var entry = corkReq.entry;
                corkReq.entry = null;
                while(entry){
                    var cb = entry.callback;
                    state.pendingcb--;
                    cb(err);
                    entry = entry.next;
                }
                state.corkedRequestsFree.next = corkReq;
            }
            Object.defineProperty(Writable.prototype, "destroyed", {
                get: function get() {
                    if (this._writableState === void 0) {
                        return false;
                    }
                    return this._writableState.destroyed;
                },
                set: function set(value) {
                    if (!this._writableState) {
                        return;
                    }
                    this._writableState.destroyed = value;
                }
            });
            Writable.prototype.destroy = destroyImpl.destroy;
            Writable.prototype._undestroy = destroyImpl.undestroy;
            Writable.prototype._destroy = function(err, cb) {
                this.end();
                cb(err);
            };
        }
    });
    // node_modules/readable-stream/lib/_stream_duplex.js
    var require_stream_duplex2 = __commonJS({
        "node_modules/readable-stream/lib/_stream_duplex.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var pna = require_process_nextick_args();
            var objectKeys = Object.keys || function(obj) {
                var keys2 = [];
                for(var key in obj){
                    keys2.push(key);
                }
                return keys2;
            };
            module.exports = Duplex;
            var util = Object.create(require_util4());
            util.inherits = require_inherits_browser();
            var Readable = require_stream_readable2();
            var Writable = require_stream_writable2();
            util.inherits(Duplex, Readable);
            {
                keys = objectKeys(Writable.prototype);
                for(v = 0; v < keys.length; v++){
                    method = keys[v];
                    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
                }
            }
            var keys;
            var method;
            var v;
            function Duplex(options) {
                if (!(this instanceof Duplex)) return new Duplex(options);
                Readable.call(this, options);
                Writable.call(this, options);
                if (options && options.readable === false) this.readable = false;
                if (options && options.writable === false) this.writable = false;
                this.allowHalfOpen = true;
                if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
                this.once("end", onend);
            }
            Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._writableState.highWaterMark;
                }
            });
            function onend() {
                if (this.allowHalfOpen || this._writableState.ended) return;
                pna.nextTick(onEndNT, this);
            }
            function onEndNT(self2) {
                self2.end();
            }
            Object.defineProperty(Duplex.prototype, "destroyed", {
                get: function get() {
                    if (this._readableState === void 0 || this._writableState === void 0) {
                        return false;
                    }
                    return this._readableState.destroyed && this._writableState.destroyed;
                },
                set: function set(value) {
                    if (this._readableState === void 0 || this._writableState === void 0) {
                        return;
                    }
                    this._readableState.destroyed = value;
                    this._writableState.destroyed = value;
                }
            });
            Duplex.prototype._destroy = function(err, cb) {
                this.push(null);
                this.end();
                pna.nextTick(cb, err);
            };
        }
    });
    // node_modules/readable-stream/lib/_stream_readable.js
    var require_stream_readable2 = __commonJS({
        "node_modules/readable-stream/lib/_stream_readable.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var pna = require_process_nextick_args();
            module.exports = Readable;
            var isArray = require_isarray2();
            var Duplex;
            Readable.ReadableState = ReadableState;
            var EE = require_events().EventEmitter;
            var EElistenerCount = function EElistenerCount(emitter, type) {
                return emitter.listeners(type).length;
            };
            var Stream = require_stream_browser2();
            var Buffer3 = require_safe_buffer().Buffer;
            var OurUint8Array = (typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {}).Uint8Array || function() {};
            function _uint8ArrayToBuffer(chunk) {
                return Buffer3.from(chunk);
            }
            function _isUint8Array(obj) {
                return Buffer3.isBuffer(obj) || obj instanceof OurUint8Array;
            }
            var util = Object.create(require_util4());
            util.inherits = require_inherits_browser();
            var debugUtil = require_util3();
            var debug4 = void 0;
            if (debugUtil && debugUtil.debuglog) {
                debug4 = debugUtil.debuglog("stream");
            } else {
                debug4 = function debug4() {};
            }
            var BufferList = require_BufferList();
            var destroyImpl = require_destroy2();
            var StringDecoder;
            util.inherits(Readable, Stream);
            var kProxyEvents = [
                "error",
                "close",
                "destroy",
                "pause",
                "resume"
            ];
            function prependListener(emitter, event, fn) {
                if (typeof emitter.prependListener === "function") return emitter.prependListener(event, fn);
                if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);
                else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);
                else emitter._events[event] = [
                    fn,
                    emitter._events[event]
                ];
            }
            function ReadableState(options, stream) {
                Duplex = Duplex || require_stream_duplex2();
                options = options || {};
                var isDuplex = stream instanceof Duplex;
                this.objectMode = !!options.objectMode;
                if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
                var hwm = options.highWaterMark;
                var readableHwm = options.readableHighWaterMark;
                var defaultHwm = this.objectMode ? 16 : 16 * 1024;
                if (hwm || hwm === 0) this.highWaterMark = hwm;
                else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;
                else this.highWaterMark = defaultHwm;
                this.highWaterMark = Math.floor(this.highWaterMark);
                this.buffer = new BufferList();
                this.length = 0;
                this.pipes = null;
                this.pipesCount = 0;
                this.flowing = null;
                this.ended = false;
                this.endEmitted = false;
                this.reading = false;
                this.sync = true;
                this.needReadable = false;
                this.emittedReadable = false;
                this.readableListening = false;
                this.resumeScheduled = false;
                this.destroyed = false;
                this.defaultEncoding = options.defaultEncoding || "utf8";
                this.awaitDrain = 0;
                this.readingMore = false;
                this.decoder = null;
                this.encoding = null;
                if (options.encoding) {
                    if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;
                    this.decoder = new StringDecoder(options.encoding);
                    this.encoding = options.encoding;
                }
            }
            function Readable(options) {
                Duplex = Duplex || require_stream_duplex2();
                if (!(this instanceof Readable)) return new Readable(options);
                this._readableState = new ReadableState(options, this);
                this.readable = true;
                if (options) {
                    if (typeof options.read === "function") this._read = options.read;
                    if (typeof options.destroy === "function") this._destroy = options.destroy;
                }
                Stream.call(this);
            }
            Object.defineProperty(Readable.prototype, "destroyed", {
                get: function get() {
                    if (this._readableState === void 0) {
                        return false;
                    }
                    return this._readableState.destroyed;
                },
                set: function set(value) {
                    if (!this._readableState) {
                        return;
                    }
                    this._readableState.destroyed = value;
                }
            });
            Readable.prototype.destroy = destroyImpl.destroy;
            Readable.prototype._undestroy = destroyImpl.undestroy;
            Readable.prototype._destroy = function(err, cb) {
                this.push(null);
                cb(err);
            };
            Readable.prototype.push = function(chunk, encoding) {
                var state = this._readableState;
                var skipChunkCheck;
                if (!state.objectMode) {
                    if (typeof chunk === "string") {
                        encoding = encoding || state.defaultEncoding;
                        if (encoding !== state.encoding) {
                            chunk = Buffer3.from(chunk, encoding);
                            encoding = "";
                        }
                        skipChunkCheck = true;
                    }
                } else {
                    skipChunkCheck = true;
                }
                return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
            };
            Readable.prototype.unshift = function(chunk) {
                return readableAddChunk(this, chunk, null, true, false);
            };
            function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
                var state = stream._readableState;
                if (chunk === null) {
                    state.reading = false;
                    onEofChunk(stream, state);
                } else {
                    var er;
                    if (!skipChunkCheck) er = chunkInvalid(state, chunk);
                    if (er) {
                        stream.emit("error", er);
                    } else if (state.objectMode || chunk && chunk.length > 0) {
                        if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer3.prototype) {
                            chunk = _uint8ArrayToBuffer(chunk);
                        }
                        if (addToFront) {
                            if (state.endEmitted) stream.emit("error", new Error("stream.unshift() after end event"));
                            else addChunk(stream, state, chunk, true);
                        } else if (state.ended) {
                            stream.emit("error", new Error("stream.push() after EOF"));
                        } else {
                            state.reading = false;
                            if (state.decoder && !encoding) {
                                chunk = state.decoder.write(chunk);
                                if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);
                                else maybeReadMore(stream, state);
                            } else {
                                addChunk(stream, state, chunk, false);
                            }
                        }
                    } else if (!addToFront) {
                        state.reading = false;
                    }
                }
                return needMoreData(state);
            }
            function addChunk(stream, state, chunk, addToFront) {
                if (state.flowing && state.length === 0 && !state.sync) {
                    stream.emit("data", chunk);
                    stream.read(0);
                } else {
                    state.length += state.objectMode ? 1 : chunk.length;
                    if (addToFront) state.buffer.unshift(chunk);
                    else state.buffer.push(chunk);
                    if (state.needReadable) emitReadable(stream);
                }
                maybeReadMore(stream, state);
            }
            function chunkInvalid(state, chunk) {
                var er;
                if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {
                    er = new TypeError("Invalid non-string/buffer chunk");
                }
                return er;
            }
            function needMoreData(state) {
                return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
            }
            Readable.prototype.isPaused = function() {
                return this._readableState.flowing === false;
            };
            Readable.prototype.setEncoding = function(enc) {
                if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;
                this._readableState.decoder = new StringDecoder(enc);
                this._readableState.encoding = enc;
                return this;
            };
            var MAX_HWM = 8388608;
            function computeNewHighWaterMark(n) {
                if (n >= MAX_HWM) {
                    n = MAX_HWM;
                } else {
                    n--;
                    n |= n >>> 1;
                    n |= n >>> 2;
                    n |= n >>> 4;
                    n |= n >>> 8;
                    n |= n >>> 16;
                    n++;
                }
                return n;
            }
            function howMuchToRead(n, state) {
                if (n <= 0 || state.length === 0 && state.ended) return 0;
                if (state.objectMode) return 1;
                if (n !== n) {
                    if (state.flowing && state.length) return state.buffer.head.data.length;
                    else return state.length;
                }
                if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
                if (n <= state.length) return n;
                if (!state.ended) {
                    state.needReadable = true;
                    return 0;
                }
                return state.length;
            }
            Readable.prototype.read = function(n) {
                debug4("read", n);
                n = parseInt(n, 10);
                var state = this._readableState;
                var nOrig = n;
                if (n !== 0) state.emittedReadable = false;
                if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
                    debug4("read: emitReadable", state.length, state.ended);
                    if (state.length === 0 && state.ended) endReadable(this);
                    else emitReadable(this);
                    return null;
                }
                n = howMuchToRead(n, state);
                if (n === 0 && state.ended) {
                    if (state.length === 0) endReadable(this);
                    return null;
                }
                var doRead = state.needReadable;
                debug4("need readable", doRead);
                if (state.length === 0 || state.length - n < state.highWaterMark) {
                    doRead = true;
                    debug4("length less than watermark", doRead);
                }
                if (state.ended || state.reading) {
                    doRead = false;
                    debug4("reading or ended", doRead);
                } else if (doRead) {
                    debug4("do read");
                    state.reading = true;
                    state.sync = true;
                    if (state.length === 0) state.needReadable = true;
                    this._read(state.highWaterMark);
                    state.sync = false;
                    if (!state.reading) n = howMuchToRead(nOrig, state);
                }
                var ret;
                if (n > 0) ret = fromList(n, state);
                else ret = null;
                if (ret === null) {
                    state.needReadable = true;
                    n = 0;
                } else {
                    state.length -= n;
                }
                if (state.length === 0) {
                    if (!state.ended) state.needReadable = true;
                    if (nOrig !== n && state.ended) endReadable(this);
                }
                if (ret !== null) this.emit("data", ret);
                return ret;
            };
            function onEofChunk(stream, state) {
                if (state.ended) return;
                if (state.decoder) {
                    var chunk = state.decoder.end();
                    if (chunk && chunk.length) {
                        state.buffer.push(chunk);
                        state.length += state.objectMode ? 1 : chunk.length;
                    }
                }
                state.ended = true;
                emitReadable(stream);
            }
            function emitReadable(stream) {
                var state = stream._readableState;
                state.needReadable = false;
                if (!state.emittedReadable) {
                    debug4("emitReadable", state.flowing);
                    state.emittedReadable = true;
                    if (state.sync) pna.nextTick(emitReadable_, stream);
                    else emitReadable_(stream);
                }
            }
            function emitReadable_(stream) {
                debug4("emit readable");
                stream.emit("readable");
                flow(stream);
            }
            function maybeReadMore(stream, state) {
                if (!state.readingMore) {
                    state.readingMore = true;
                    pna.nextTick(maybeReadMore_, stream, state);
                }
            }
            function maybeReadMore_(stream, state) {
                var len = state.length;
                while(!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark){
                    debug4("maybeReadMore read 0");
                    stream.read(0);
                    if (len === state.length) break;
                    else len = state.length;
                }
                state.readingMore = false;
            }
            Readable.prototype._read = function(n) {
                this.emit("error", new Error("_read() is not implemented"));
            };
            Readable.prototype.pipe = function(dest, pipeOpts) {
                var src = this;
                var state = this._readableState;
                switch(state.pipesCount){
                    case 0:
                        state.pipes = dest;
                        break;
                    case 1:
                        state.pipes = [
                            state.pipes,
                            dest
                        ];
                        break;
                    default:
                        state.pipes.push(dest);
                        break;
                }
                state.pipesCount += 1;
                debug4("pipe count=%d opts=%j", state.pipesCount, pipeOpts);
                var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
                var endFn = doEnd ? onend : unpipe;
                if (state.endEmitted) pna.nextTick(endFn);
                else src.once("end", endFn);
                dest.on("unpipe", onunpipe);
                function onunpipe(readable, unpipeInfo) {
                    debug4("onunpipe");
                    if (readable === src) {
                        if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
                            unpipeInfo.hasUnpiped = true;
                            cleanup();
                        }
                    }
                }
                function onend() {
                    debug4("onend");
                    dest.end();
                }
                var ondrain = pipeOnDrain(src);
                dest.on("drain", ondrain);
                var cleanedUp = false;
                function cleanup() {
                    debug4("cleanup");
                    dest.removeListener("close", onclose);
                    dest.removeListener("finish", onfinish);
                    dest.removeListener("drain", ondrain);
                    dest.removeListener("error", onerror);
                    dest.removeListener("unpipe", onunpipe);
                    src.removeListener("end", onend);
                    src.removeListener("end", unpipe);
                    src.removeListener("data", ondata);
                    cleanedUp = true;
                    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
                }
                var increasedAwaitDrain = false;
                src.on("data", ondata);
                function ondata(chunk) {
                    debug4("ondata");
                    increasedAwaitDrain = false;
                    var ret = dest.write(chunk);
                    if (false === ret && !increasedAwaitDrain) {
                        if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
                            debug4("false write response, pause", state.awaitDrain);
                            state.awaitDrain++;
                            increasedAwaitDrain = true;
                        }
                        src.pause();
                    }
                }
                function onerror(er) {
                    debug4("onerror", er);
                    unpipe();
                    dest.removeListener("error", onerror);
                    if (EElistenerCount(dest, "error") === 0) dest.emit("error", er);
                }
                prependListener(dest, "error", onerror);
                function onclose() {
                    dest.removeListener("finish", onfinish);
                    unpipe();
                }
                dest.once("close", onclose);
                function onfinish() {
                    debug4("onfinish");
                    dest.removeListener("close", onclose);
                    unpipe();
                }
                dest.once("finish", onfinish);
                function unpipe() {
                    debug4("unpipe");
                    src.unpipe(dest);
                }
                dest.emit("pipe", src);
                if (!state.flowing) {
                    debug4("pipe resume");
                    src.resume();
                }
                return dest;
            };
            function pipeOnDrain(src) {
                return function() {
                    var state = src._readableState;
                    debug4("pipeOnDrain", state.awaitDrain);
                    if (state.awaitDrain) state.awaitDrain--;
                    if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {
                        state.flowing = true;
                        flow(src);
                    }
                };
            }
            Readable.prototype.unpipe = function(dest) {
                var state = this._readableState;
                var unpipeInfo = {
                    hasUnpiped: false
                };
                if (state.pipesCount === 0) return this;
                if (state.pipesCount === 1) {
                    if (dest && dest !== state.pipes) return this;
                    if (!dest) dest = state.pipes;
                    state.pipes = null;
                    state.pipesCount = 0;
                    state.flowing = false;
                    if (dest) dest.emit("unpipe", this, unpipeInfo);
                    return this;
                }
                if (!dest) {
                    var dests = state.pipes;
                    var len = state.pipesCount;
                    state.pipes = null;
                    state.pipesCount = 0;
                    state.flowing = false;
                    for(var i = 0; i < len; i++){
                        dests[i].emit("unpipe", this, {
                            hasUnpiped: false
                        });
                    }
                    return this;
                }
                var index = indexOf(state.pipes, dest);
                if (index === -1) return this;
                state.pipes.splice(index, 1);
                state.pipesCount -= 1;
                if (state.pipesCount === 1) state.pipes = state.pipes[0];
                dest.emit("unpipe", this, unpipeInfo);
                return this;
            };
            Readable.prototype.on = function(ev, fn) {
                var res = Stream.prototype.on.call(this, ev, fn);
                if (ev === "data") {
                    if (this._readableState.flowing !== false) this.resume();
                } else if (ev === "readable") {
                    var state = this._readableState;
                    if (!state.endEmitted && !state.readableListening) {
                        state.readableListening = state.needReadable = true;
                        state.emittedReadable = false;
                        if (!state.reading) {
                            pna.nextTick(nReadingNextTick, this);
                        } else if (state.length) {
                            emitReadable(this);
                        }
                    }
                }
                return res;
            };
            Readable.prototype.addListener = Readable.prototype.on;
            function nReadingNextTick(self2) {
                debug4("readable nexttick read 0");
                self2.read(0);
            }
            Readable.prototype.resume = function() {
                var state = this._readableState;
                if (!state.flowing) {
                    debug4("resume");
                    state.flowing = true;
                    resume(this, state);
                }
                return this;
            };
            function resume(stream, state) {
                if (!state.resumeScheduled) {
                    state.resumeScheduled = true;
                    pna.nextTick(resume_, stream, state);
                }
            }
            function resume_(stream, state) {
                if (!state.reading) {
                    debug4("resume read 0");
                    stream.read(0);
                }
                state.resumeScheduled = false;
                state.awaitDrain = 0;
                stream.emit("resume");
                flow(stream);
                if (state.flowing && !state.reading) stream.read(0);
            }
            Readable.prototype.pause = function() {
                debug4("call pause flowing=%j", this._readableState.flowing);
                if (false !== this._readableState.flowing) {
                    debug4("pause");
                    this._readableState.flowing = false;
                    this.emit("pause");
                }
                return this;
            };
            function flow(stream) {
                var state = stream._readableState;
                debug4("flow", state.flowing);
                while(state.flowing && stream.read() !== null){}
            }
            Readable.prototype.wrap = function(stream) {
                var _this = this;
                var state = this._readableState;
                var paused = false;
                stream.on("end", function() {
                    debug4("wrapped end");
                    if (state.decoder && !state.ended) {
                        var chunk = state.decoder.end();
                        if (chunk && chunk.length) _this.push(chunk);
                    }
                    _this.push(null);
                });
                stream.on("data", function(chunk) {
                    debug4("wrapped data");
                    if (state.decoder) chunk = state.decoder.write(chunk);
                    if (state.objectMode && (chunk === null || chunk === void 0)) return;
                    else if (!state.objectMode && (!chunk || !chunk.length)) return;
                    var ret = _this.push(chunk);
                    if (!ret) {
                        paused = true;
                        stream.pause();
                    }
                });
                for(var i in stream){
                    if (this[i] === void 0 && typeof stream[i] === "function") {
                        this[i] = /* @__PURE__ */ function(method) {
                            return function() {
                                return stream[method].apply(stream, arguments);
                            };
                        }(i);
                    }
                }
                for(var n = 0; n < kProxyEvents.length; n++){
                    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
                }
                this._read = function(n2) {
                    debug4("wrapped _read", n2);
                    if (paused) {
                        paused = false;
                        stream.resume();
                    }
                };
                return this;
            };
            Object.defineProperty(Readable.prototype, "readableHighWaterMark", {
                // making it explicit this property is not enumerable
                // because otherwise some prototype manipulation in
                // userland will fail
                enumerable: false,
                get: function get() {
                    return this._readableState.highWaterMark;
                }
            });
            Readable._fromList = fromList;
            function fromList(n, state) {
                if (state.length === 0) return null;
                var ret;
                if (state.objectMode) ret = state.buffer.shift();
                else if (!n || n >= state.length) {
                    if (state.decoder) ret = state.buffer.join("");
                    else if (state.buffer.length === 1) ret = state.buffer.head.data;
                    else ret = state.buffer.concat(state.length);
                    state.buffer.clear();
                } else {
                    ret = fromListPartial(n, state.buffer, state.decoder);
                }
                return ret;
            }
            function fromListPartial(n, list, hasStrings) {
                var ret;
                if (n < list.head.data.length) {
                    ret = list.head.data.slice(0, n);
                    list.head.data = list.head.data.slice(n);
                } else if (n === list.head.data.length) {
                    ret = list.shift();
                } else {
                    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
                }
                return ret;
            }
            function copyFromBufferString(n, list) {
                var p = list.head;
                var c = 1;
                var ret = p.data;
                n -= ret.length;
                while(p = p.next){
                    var str = p.data;
                    var nb = n > str.length ? str.length : n;
                    if (nb === str.length) ret += str;
                    else ret += str.slice(0, n);
                    n -= nb;
                    if (n === 0) {
                        if (nb === str.length) {
                            ++c;
                            if (p.next) list.head = p.next;
                            else list.head = list.tail = null;
                        } else {
                            list.head = p;
                            p.data = str.slice(nb);
                        }
                        break;
                    }
                    ++c;
                }
                list.length -= c;
                return ret;
            }
            function copyFromBuffer(n, list) {
                var ret = Buffer3.allocUnsafe(n);
                var p = list.head;
                var c = 1;
                p.data.copy(ret);
                n -= p.data.length;
                while(p = p.next){
                    var buf = p.data;
                    var nb = n > buf.length ? buf.length : n;
                    buf.copy(ret, ret.length - n, 0, nb);
                    n -= nb;
                    if (n === 0) {
                        if (nb === buf.length) {
                            ++c;
                            if (p.next) list.head = p.next;
                            else list.head = list.tail = null;
                        } else {
                            list.head = p;
                            p.data = buf.slice(nb);
                        }
                        break;
                    }
                    ++c;
                }
                list.length -= c;
                return ret;
            }
            function endReadable(stream) {
                var state = stream._readableState;
                if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
                if (!state.endEmitted) {
                    state.ended = true;
                    pna.nextTick(endReadableNT, state, stream);
                }
            }
            function endReadableNT(state, stream) {
                if (!state.endEmitted && state.length === 0) {
                    state.endEmitted = true;
                    stream.readable = false;
                    stream.emit("end");
                }
            }
            function indexOf(xs, x) {
                for(var i = 0, l = xs.length; i < l; i++){
                    if (xs[i] === x) return i;
                }
                return -1;
            }
        }
    });
    // node_modules/readable-stream/lib/_stream_transform.js
    var require_stream_transform2 = __commonJS({
        "node_modules/readable-stream/lib/_stream_transform.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Transform;
            var Duplex = require_stream_duplex2();
            var util = Object.create(require_util4());
            util.inherits = require_inherits_browser();
            util.inherits(Transform, Duplex);
            function afterTransform(er, data) {
                var ts = this._transformState;
                ts.transforming = false;
                var cb = ts.writecb;
                if (!cb) {
                    return this.emit("error", new Error("write callback called multiple times"));
                }
                ts.writechunk = null;
                ts.writecb = null;
                if (data != null) this.push(data);
                cb(er);
                var rs = this._readableState;
                rs.reading = false;
                if (rs.needReadable || rs.length < rs.highWaterMark) {
                    this._read(rs.highWaterMark);
                }
            }
            function Transform(options) {
                if (!(this instanceof Transform)) return new Transform(options);
                Duplex.call(this, options);
                this._transformState = {
                    afterTransform: afterTransform.bind(this),
                    needTransform: false,
                    transforming: false,
                    writecb: null,
                    writechunk: null,
                    writeencoding: null
                };
                this._readableState.needReadable = true;
                this._readableState.sync = false;
                if (options) {
                    if (typeof options.transform === "function") this._transform = options.transform;
                    if (typeof options.flush === "function") this._flush = options.flush;
                }
                this.on("prefinish", prefinish);
            }
            function prefinish() {
                var _this = this;
                if (typeof this._flush === "function") {
                    this._flush(function(er, data) {
                        done3(_this, er, data);
                    });
                } else {
                    done3(this, null, null);
                }
            }
            Transform.prototype.push = function(chunk, encoding) {
                this._transformState.needTransform = false;
                return Duplex.prototype.push.call(this, chunk, encoding);
            };
            Transform.prototype._transform = function(chunk, encoding, cb) {
                throw new Error("_transform() is not implemented");
            };
            Transform.prototype._write = function(chunk, encoding, cb) {
                var ts = this._transformState;
                ts.writecb = cb;
                ts.writechunk = chunk;
                ts.writeencoding = encoding;
                if (!ts.transforming) {
                    var rs = this._readableState;
                    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
                }
            };
            Transform.prototype._read = function(n) {
                var ts = this._transformState;
                if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
                    ts.transforming = true;
                    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
                } else {
                    ts.needTransform = true;
                }
            };
            Transform.prototype._destroy = function(err, cb) {
                var _this2 = this;
                Duplex.prototype._destroy.call(this, err, function(err2) {
                    cb(err2);
                    _this2.emit("close");
                });
            };
            function done3(stream, er, data) {
                if (er) return stream.emit("error", er);
                if (data != null) stream.push(data);
                if (stream._writableState.length) throw new Error("Calling transform done when ws.length != 0");
                if (stream._transformState.transforming) throw new Error("Calling transform done when still transforming");
                return stream.push(null);
            }
        }
    });
    // node_modules/readable-stream/lib/_stream_passthrough.js
    var require_stream_passthrough2 = __commonJS({
        "node_modules/readable-stream/lib/_stream_passthrough.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = PassThrough;
            var Transform = require_stream_transform2();
            var util = Object.create(require_util4());
            util.inherits = require_inherits_browser();
            util.inherits(PassThrough, Transform);
            function PassThrough(options) {
                if (!(this instanceof PassThrough)) return new PassThrough(options);
                Transform.call(this, options);
            }
            PassThrough.prototype._transform = function(chunk, encoding, cb) {
                cb(null, chunk);
            };
        }
    });
    // node_modules/readable-stream/readable-browser.js
    var require_readable_browser = __commonJS({
        "node_modules/readable-stream/readable-browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = require_stream_readable2();
            exports.Stream = exports;
            exports.Readable = exports;
            exports.Writable = require_stream_writable2();
            exports.Duplex = require_stream_duplex2();
            exports.Transform = require_stream_transform2();
            exports.PassThrough = require_stream_passthrough2();
        }
    });
    // node_modules/ripemd160/node_modules/hash-base/index.js
    var require_hash_base2 = __commonJS({
        "node_modules/ripemd160/node_modules/hash-base/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer3().Buffer;
            var toBuffer = require_to_buffer2();
            var Transform = require_readable_browser().Transform;
            var inherits = require_inherits_browser();
            function HashBase(blockSize) {
                Transform.call(this);
                this._block = Buffer3.allocUnsafe(blockSize);
                this._blockSize = blockSize;
                this._blockOffset = 0;
                this._length = [
                    0,
                    0,
                    0,
                    0
                ];
                this._finalized = false;
            }
            inherits(HashBase, Transform);
            HashBase.prototype._transform = function(chunk, encoding, callback) {
                var error = null;
                try {
                    this.update(chunk, encoding);
                } catch (err) {
                    error = err;
                }
                callback(error);
            };
            HashBase.prototype._flush = function(callback) {
                var error = null;
                try {
                    this.push(this.digest());
                } catch (err) {
                    error = err;
                }
                callback(error);
            };
            HashBase.prototype.update = function(data, encoding) {
                if (this._finalized) {
                    throw new Error("Digest already called");
                }
                var dataBuffer = toBuffer(data, encoding);
                var block = this._block;
                var offset = 0;
                while(this._blockOffset + dataBuffer.length - offset >= this._blockSize){
                    for(var i = this._blockOffset; i < this._blockSize;){
                        block[i] = dataBuffer[offset];
                        i += 1;
                        offset += 1;
                    }
                    this._update();
                    this._blockOffset = 0;
                }
                while(offset < dataBuffer.length){
                    block[this._blockOffset] = dataBuffer[offset];
                    this._blockOffset += 1;
                    offset += 1;
                }
                for(var j = 0, carry = dataBuffer.length * 8; carry > 0; ++j){
                    this._length[j] += carry;
                    carry = this._length[j] / 4294967296 | 0;
                    if (carry > 0) {
                        this._length[j] -= 4294967296 * carry;
                    }
                }
                return this;
            };
            HashBase.prototype._update = function() {
                throw new Error("_update is not implemented");
            };
            HashBase.prototype.digest = function(encoding) {
                if (this._finalized) {
                    throw new Error("Digest already called");
                }
                this._finalized = true;
                var digest2 = this._digest();
                if (encoding !== void 0) {
                    digest2 = digest2.toString(encoding);
                }
                this._block.fill(0);
                this._blockOffset = 0;
                for(var i = 0; i < 4; ++i){
                    this._length[i] = 0;
                }
                return digest2;
            };
            HashBase.prototype._digest = function() {
                throw new Error("_digest is not implemented");
            };
            module.exports = HashBase;
        }
    });
    // node_modules/ripemd160/index.js
    var require_ripemd160 = __commonJS({
        "node_modules/ripemd160/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_buffer().Buffer;
            var inherits = require_inherits_browser();
            var HashBase = require_hash_base2();
            var ARRAY16 = new Array(16);
            var zl = [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                7,
                4,
                13,
                1,
                10,
                6,
                15,
                3,
                12,
                0,
                9,
                5,
                2,
                14,
                11,
                8,
                3,
                10,
                14,
                4,
                9,
                15,
                8,
                1,
                2,
                7,
                0,
                6,
                13,
                11,
                5,
                12,
                1,
                9,
                11,
                10,
                0,
                8,
                12,
                4,
                13,
                3,
                7,
                15,
                14,
                5,
                6,
                2,
                4,
                0,
                5,
                9,
                7,
                12,
                2,
                10,
                14,
                1,
                3,
                8,
                11,
                6,
                15,
                13
            ];
            var zr = [
                5,
                14,
                7,
                0,
                9,
                2,
                11,
                4,
                13,
                6,
                15,
                8,
                1,
                10,
                3,
                12,
                6,
                11,
                3,
                7,
                0,
                13,
                5,
                10,
                14,
                15,
                8,
                12,
                4,
                9,
                1,
                2,
                15,
                5,
                1,
                3,
                7,
                14,
                6,
                9,
                11,
                8,
                12,
                2,
                10,
                0,
                4,
                13,
                8,
                6,
                4,
                1,
                3,
                11,
                15,
                0,
                5,
                12,
                2,
                13,
                9,
                7,
                10,
                14,
                12,
                15,
                10,
                4,
                1,
                5,
                8,
                7,
                6,
                2,
                13,
                14,
                0,
                3,
                9,
                11
            ];
            var sl = [
                11,
                14,
                15,
                12,
                5,
                8,
                7,
                9,
                11,
                13,
                14,
                15,
                6,
                7,
                9,
                8,
                7,
                6,
                8,
                13,
                11,
                9,
                7,
                15,
                7,
                12,
                15,
                9,
                11,
                7,
                13,
                12,
                11,
                13,
                6,
                7,
                14,
                9,
                13,
                15,
                14,
                8,
                13,
                6,
                5,
                12,
                7,
                5,
                11,
                12,
                14,
                15,
                14,
                15,
                9,
                8,
                9,
                14,
                5,
                6,
                8,
                6,
                5,
                12,
                9,
                15,
                5,
                11,
                6,
                8,
                13,
                12,
                5,
                12,
                13,
                14,
                11,
                8,
                5,
                6
            ];
            var sr = [
                8,
                9,
                9,
                11,
                13,
                15,
                15,
                5,
                7,
                7,
                8,
                11,
                14,
                14,
                12,
                6,
                9,
                13,
                15,
                7,
                12,
                8,
                9,
                11,
                7,
                7,
                12,
                7,
                6,
                15,
                13,
                11,
                9,
                7,
                15,
                11,
                8,
                6,
                6,
                14,
                12,
                13,
                5,
                14,
                13,
                13,
                7,
                5,
                15,
                5,
                8,
                11,
                14,
                14,
                6,
                14,
                6,
                9,
                12,
                9,
                12,
                5,
                15,
                8,
                8,
                5,
                12,
                9,
                12,
                5,
                14,
                6,
                8,
                13,
                6,
                5,
                15,
                13,
                11,
                11
            ];
            var hl = [
                0,
                1518500249,
                1859775393,
                2400959708,
                2840853838
            ];
            var hr = [
                1352829926,
                1548603684,
                1836072691,
                2053994217,
                0
            ];
            function rotl(x, n) {
                return x << n | x >>> 32 - n;
            }
            function fn1(a, b, c, d, e, m, k, s) {
                return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0;
            }
            function fn2(a, b, c, d, e, m, k, s) {
                return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0;
            }
            function fn3(a, b, c, d, e, m, k, s) {
                return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0;
            }
            function fn4(a, b, c, d, e, m, k, s) {
                return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0;
            }
            function fn5(a, b, c, d, e, m, k, s) {
                return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0;
            }
            function RIPEMD160() {
                HashBase.call(this, 64);
                this._a = 1732584193;
                this._b = 4023233417;
                this._c = 2562383102;
                this._d = 271733878;
                this._e = 3285377520;
            }
            inherits(RIPEMD160, HashBase);
            RIPEMD160.prototype._update = function() {
                var words = ARRAY16;
                for(var j = 0; j < 16; ++j){
                    words[j] = this._block.readInt32LE(j * 4);
                }
                var al = this._a | 0;
                var bl = this._b | 0;
                var cl = this._c | 0;
                var dl = this._d | 0;
                var el = this._e | 0;
                var ar = this._a | 0;
                var br = this._b | 0;
                var cr = this._c | 0;
                var dr = this._d | 0;
                var er = this._e | 0;
                for(var i = 0; i < 80; i += 1){
                    var tl;
                    var tr;
                    if (i < 16) {
                        tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);
                        tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);
                    } else if (i < 32) {
                        tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);
                        tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);
                    } else if (i < 48) {
                        tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);
                        tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);
                    } else if (i < 64) {
                        tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);
                        tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);
                    } else {
                        tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);
                        tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);
                    }
                    al = el;
                    el = dl;
                    dl = rotl(cl, 10);
                    cl = bl;
                    bl = tl;
                    ar = er;
                    er = dr;
                    dr = rotl(cr, 10);
                    cr = br;
                    br = tr;
                }
                var t = this._b + cl + dr | 0;
                this._b = this._c + dl + er | 0;
                this._c = this._d + el + ar | 0;
                this._d = this._e + al + br | 0;
                this._e = this._a + bl + cr | 0;
                this._a = t;
            };
            RIPEMD160.prototype._digest = function() {
                this._block[this._blockOffset] = 128;
                this._blockOffset += 1;
                if (this._blockOffset > 56) {
                    this._block.fill(0, this._blockOffset, 64);
                    this._update();
                    this._blockOffset = 0;
                }
                this._block.fill(0, this._blockOffset, 56);
                this._block.writeUInt32LE(this._length[0], 56);
                this._block.writeUInt32LE(this._length[1], 60);
                this._update();
                var buffer = Buffer3.alloc ? Buffer3.alloc(20) : new Buffer3(20);
                buffer.writeInt32LE(this._a, 0);
                buffer.writeInt32LE(this._b, 4);
                buffer.writeInt32LE(this._c, 8);
                buffer.writeInt32LE(this._d, 12);
                buffer.writeInt32LE(this._e, 16);
                return buffer;
            };
            module.exports = RIPEMD160;
        }
    });
    // node_modules/sha.js/node_modules/safe-buffer/index.js
    var require_safe_buffer5 = __commonJS({
        "node_modules/sha.js/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/sha.js/hash.js
    var require_hash = __commonJS({
        "node_modules/sha.js/hash.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer5().Buffer;
            var toBuffer = require_to_buffer();
            function Hash(blockSize, finalSize) {
                this._block = Buffer3.alloc(blockSize);
                this._finalSize = finalSize;
                this._blockSize = blockSize;
                this._len = 0;
            }
            Hash.prototype.update = function(data, enc) {
                data = toBuffer(data, enc || "utf8");
                var block = this._block;
                var blockSize = this._blockSize;
                var length = data.length;
                var accum = this._len;
                for(var offset = 0; offset < length;){
                    var assigned = accum % blockSize;
                    var remainder = Math.min(length - offset, blockSize - assigned);
                    for(var i = 0; i < remainder; i++){
                        block[assigned + i] = data[offset + i];
                    }
                    accum += remainder;
                    offset += remainder;
                    if (accum % blockSize === 0) {
                        this._update(block);
                    }
                }
                this._len += length;
                return this;
            };
            Hash.prototype.digest = function(enc) {
                var rem = this._len % this._blockSize;
                this._block[rem] = 128;
                this._block.fill(0, rem + 1);
                if (rem >= this._finalSize) {
                    this._update(this._block);
                    this._block.fill(0);
                }
                var bits = this._len * 8;
                if (bits <= 4294967295) {
                    this._block.writeUInt32BE(bits, this._blockSize - 4);
                } else {
                    var lowBits = (bits & 4294967295) >>> 0;
                    var highBits = (bits - lowBits) / 4294967296;
                    this._block.writeUInt32BE(highBits, this._blockSize - 8);
                    this._block.writeUInt32BE(lowBits, this._blockSize - 4);
                }
                this._update(this._block);
                var hash = this._hash();
                return enc ? hash.toString(enc) : hash;
            };
            Hash.prototype._update = function() {
                throw new Error("_update must be implemented by subclass");
            };
            module.exports = Hash;
        }
    });
    // node_modules/sha.js/sha.js
    var require_sha = __commonJS({
        "node_modules/sha.js/sha.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Hash = require_hash();
            var Buffer3 = require_safe_buffer5().Buffer;
            var K = [
                1518500249,
                1859775393,
                2400959708 | 0,
                3395469782 | 0
            ];
            var W = new Array(80);
            function Sha() {
                this.init();
                this._w = W;
                Hash.call(this, 64, 56);
            }
            inherits(Sha, Hash);
            Sha.prototype.init = function() {
                this._a = 1732584193;
                this._b = 4023233417;
                this._c = 2562383102;
                this._d = 271733878;
                this._e = 3285377520;
                return this;
            };
            function rotl5(num) {
                return num << 5 | num >>> 27;
            }
            function rotl30(num) {
                return num << 30 | num >>> 2;
            }
            function ft(s, b, c, d) {
                if (s === 0) {
                    return b & c | ~b & d;
                }
                if (s === 2) {
                    return b & c | b & d | c & d;
                }
                return b ^ c ^ d;
            }
            Sha.prototype._update = function(M) {
                var w = this._w;
                var a = this._a | 0;
                var b = this._b | 0;
                var c = this._c | 0;
                var d = this._d | 0;
                var e = this._e | 0;
                for(var i = 0; i < 16; ++i){
                    w[i] = M.readInt32BE(i * 4);
                }
                for(; i < 80; ++i){
                    w[i] = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16];
                }
                for(var j = 0; j < 80; ++j){
                    var s = ~~(j / 20);
                    var t = rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s] | 0;
                    e = d;
                    d = c;
                    c = rotl30(b);
                    b = a;
                    a = t;
                }
                this._a = a + this._a | 0;
                this._b = b + this._b | 0;
                this._c = c + this._c | 0;
                this._d = d + this._d | 0;
                this._e = e + this._e | 0;
            };
            Sha.prototype._hash = function() {
                var H = Buffer3.allocUnsafe(20);
                H.writeInt32BE(this._a | 0, 0);
                H.writeInt32BE(this._b | 0, 4);
                H.writeInt32BE(this._c | 0, 8);
                H.writeInt32BE(this._d | 0, 12);
                H.writeInt32BE(this._e | 0, 16);
                return H;
            };
            module.exports = Sha;
        }
    });
    // node_modules/sha.js/sha1.js
    var require_sha1 = __commonJS({
        "node_modules/sha.js/sha1.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Hash = require_hash();
            var Buffer3 = require_safe_buffer5().Buffer;
            var K = [
                1518500249,
                1859775393,
                2400959708 | 0,
                3395469782 | 0
            ];
            var W = new Array(80);
            function Sha1() {
                this.init();
                this._w = W;
                Hash.call(this, 64, 56);
            }
            inherits(Sha1, Hash);
            Sha1.prototype.init = function() {
                this._a = 1732584193;
                this._b = 4023233417;
                this._c = 2562383102;
                this._d = 271733878;
                this._e = 3285377520;
                return this;
            };
            function rotl1(num) {
                return num << 1 | num >>> 31;
            }
            function rotl5(num) {
                return num << 5 | num >>> 27;
            }
            function rotl30(num) {
                return num << 30 | num >>> 2;
            }
            function ft(s, b, c, d) {
                if (s === 0) {
                    return b & c | ~b & d;
                }
                if (s === 2) {
                    return b & c | b & d | c & d;
                }
                return b ^ c ^ d;
            }
            Sha1.prototype._update = function(M) {
                var w = this._w;
                var a = this._a | 0;
                var b = this._b | 0;
                var c = this._c | 0;
                var d = this._d | 0;
                var e = this._e | 0;
                for(var i = 0; i < 16; ++i){
                    w[i] = M.readInt32BE(i * 4);
                }
                for(; i < 80; ++i){
                    w[i] = rotl1(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);
                }
                for(var j = 0; j < 80; ++j){
                    var s = ~~(j / 20);
                    var t = rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s] | 0;
                    e = d;
                    d = c;
                    c = rotl30(b);
                    b = a;
                    a = t;
                }
                this._a = a + this._a | 0;
                this._b = b + this._b | 0;
                this._c = c + this._c | 0;
                this._d = d + this._d | 0;
                this._e = e + this._e | 0;
            };
            Sha1.prototype._hash = function() {
                var H = Buffer3.allocUnsafe(20);
                H.writeInt32BE(this._a | 0, 0);
                H.writeInt32BE(this._b | 0, 4);
                H.writeInt32BE(this._c | 0, 8);
                H.writeInt32BE(this._d | 0, 12);
                H.writeInt32BE(this._e | 0, 16);
                return H;
            };
            module.exports = Sha1;
        }
    });
    // node_modules/sha.js/sha256.js
    var require_sha256 = __commonJS({
        "node_modules/sha.js/sha256.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Hash = require_hash();
            var Buffer3 = require_safe_buffer5().Buffer;
            var K = [
                1116352408,
                1899447441,
                3049323471,
                3921009573,
                961987163,
                1508970993,
                2453635748,
                2870763221,
                3624381080,
                310598401,
                607225278,
                1426881987,
                1925078388,
                2162078206,
                2614888103,
                3248222580,
                3835390401,
                4022224774,
                264347078,
                604807628,
                770255983,
                1249150122,
                1555081692,
                1996064986,
                2554220882,
                2821834349,
                2952996808,
                3210313671,
                3336571891,
                3584528711,
                113926993,
                338241895,
                666307205,
                773529912,
                1294757372,
                1396182291,
                1695183700,
                1986661051,
                2177026350,
                2456956037,
                2730485921,
                2820302411,
                3259730800,
                3345764771,
                3516065817,
                3600352804,
                4094571909,
                275423344,
                430227734,
                506948616,
                659060556,
                883997877,
                958139571,
                1322822218,
                1537002063,
                1747873779,
                1955562222,
                2024104815,
                2227730452,
                2361852424,
                2428436474,
                2756734187,
                3204031479,
                3329325298
            ];
            var W = new Array(64);
            function Sha256() {
                this.init();
                this._w = W;
                Hash.call(this, 64, 56);
            }
            inherits(Sha256, Hash);
            Sha256.prototype.init = function() {
                this._a = 1779033703;
                this._b = 3144134277;
                this._c = 1013904242;
                this._d = 2773480762;
                this._e = 1359893119;
                this._f = 2600822924;
                this._g = 528734635;
                this._h = 1541459225;
                return this;
            };
            function ch(x, y, z) {
                return z ^ x & (y ^ z);
            }
            function maj(x, y, z) {
                return x & y | z & (x | y);
            }
            function sigma0(x) {
                return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10);
            }
            function sigma1(x) {
                return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7);
            }
            function gamma0(x) {
                return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ x >>> 3;
            }
            function gamma1(x) {
                return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ x >>> 10;
            }
            Sha256.prototype._update = function(M) {
                var w = this._w;
                var a = this._a | 0;
                var b = this._b | 0;
                var c = this._c | 0;
                var d = this._d | 0;
                var e = this._e | 0;
                var f = this._f | 0;
                var g = this._g | 0;
                var h = this._h | 0;
                for(var i = 0; i < 16; ++i){
                    w[i] = M.readInt32BE(i * 4);
                }
                for(; i < 64; ++i){
                    w[i] = gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16] | 0;
                }
                for(var j = 0; j < 64; ++j){
                    var T1 = h + sigma1(e) + ch(e, f, g) + K[j] + w[j] | 0;
                    var T2 = sigma0(a) + maj(a, b, c) | 0;
                    h = g;
                    g = f;
                    f = e;
                    e = d + T1 | 0;
                    d = c;
                    c = b;
                    b = a;
                    a = T1 + T2 | 0;
                }
                this._a = a + this._a | 0;
                this._b = b + this._b | 0;
                this._c = c + this._c | 0;
                this._d = d + this._d | 0;
                this._e = e + this._e | 0;
                this._f = f + this._f | 0;
                this._g = g + this._g | 0;
                this._h = h + this._h | 0;
            };
            Sha256.prototype._hash = function() {
                var H = Buffer3.allocUnsafe(32);
                H.writeInt32BE(this._a, 0);
                H.writeInt32BE(this._b, 4);
                H.writeInt32BE(this._c, 8);
                H.writeInt32BE(this._d, 12);
                H.writeInt32BE(this._e, 16);
                H.writeInt32BE(this._f, 20);
                H.writeInt32BE(this._g, 24);
                H.writeInt32BE(this._h, 28);
                return H;
            };
            module.exports = Sha256;
        }
    });
    // node_modules/sha.js/sha224.js
    var require_sha224 = __commonJS({
        "node_modules/sha.js/sha224.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Sha256 = require_sha256();
            var Hash = require_hash();
            var Buffer3 = require_safe_buffer5().Buffer;
            var W = new Array(64);
            function Sha224() {
                this.init();
                this._w = W;
                Hash.call(this, 64, 56);
            }
            inherits(Sha224, Sha256);
            Sha224.prototype.init = function() {
                this._a = 3238371032;
                this._b = 914150663;
                this._c = 812702999;
                this._d = 4144912697;
                this._e = 4290775857;
                this._f = 1750603025;
                this._g = 1694076839;
                this._h = 3204075428;
                return this;
            };
            Sha224.prototype._hash = function() {
                var H = Buffer3.allocUnsafe(28);
                H.writeInt32BE(this._a, 0);
                H.writeInt32BE(this._b, 4);
                H.writeInt32BE(this._c, 8);
                H.writeInt32BE(this._d, 12);
                H.writeInt32BE(this._e, 16);
                H.writeInt32BE(this._f, 20);
                H.writeInt32BE(this._g, 24);
                return H;
            };
            module.exports = Sha224;
        }
    });
    // node_modules/sha.js/sha512.js
    var require_sha512 = __commonJS({
        "node_modules/sha.js/sha512.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Hash = require_hash();
            var Buffer3 = require_safe_buffer5().Buffer;
            var K = [
                1116352408,
                3609767458,
                1899447441,
                602891725,
                3049323471,
                3964484399,
                3921009573,
                2173295548,
                961987163,
                4081628472,
                1508970993,
                3053834265,
                2453635748,
                2937671579,
                2870763221,
                3664609560,
                3624381080,
                2734883394,
                310598401,
                1164996542,
                607225278,
                1323610764,
                1426881987,
                3590304994,
                1925078388,
                4068182383,
                2162078206,
                991336113,
                2614888103,
                633803317,
                3248222580,
                3479774868,
                3835390401,
                2666613458,
                4022224774,
                944711139,
                264347078,
                2341262773,
                604807628,
                2007800933,
                770255983,
                1495990901,
                1249150122,
                1856431235,
                1555081692,
                3175218132,
                1996064986,
                2198950837,
                2554220882,
                3999719339,
                2821834349,
                766784016,
                2952996808,
                2566594879,
                3210313671,
                3203337956,
                3336571891,
                1034457026,
                3584528711,
                2466948901,
                113926993,
                3758326383,
                338241895,
                168717936,
                666307205,
                1188179964,
                773529912,
                1546045734,
                1294757372,
                1522805485,
                1396182291,
                2643833823,
                1695183700,
                2343527390,
                1986661051,
                1014477480,
                2177026350,
                1206759142,
                2456956037,
                344077627,
                2730485921,
                1290863460,
                2820302411,
                3158454273,
                3259730800,
                3505952657,
                3345764771,
                106217008,
                3516065817,
                3606008344,
                3600352804,
                1432725776,
                4094571909,
                1467031594,
                275423344,
                851169720,
                430227734,
                3100823752,
                506948616,
                1363258195,
                659060556,
                3750685593,
                883997877,
                3785050280,
                958139571,
                3318307427,
                1322822218,
                3812723403,
                1537002063,
                2003034995,
                1747873779,
                3602036899,
                1955562222,
                1575990012,
                2024104815,
                1125592928,
                2227730452,
                2716904306,
                2361852424,
                442776044,
                2428436474,
                593698344,
                2756734187,
                3733110249,
                3204031479,
                2999351573,
                3329325298,
                3815920427,
                3391569614,
                3928383900,
                3515267271,
                566280711,
                3940187606,
                3454069534,
                4118630271,
                4000239992,
                116418474,
                1914138554,
                174292421,
                2731055270,
                289380356,
                3203993006,
                460393269,
                320620315,
                685471733,
                587496836,
                852142971,
                1086792851,
                1017036298,
                365543100,
                1126000580,
                2618297676,
                1288033470,
                3409855158,
                1501505948,
                4234509866,
                1607167915,
                987167468,
                1816402316,
                1246189591
            ];
            var W = new Array(160);
            function Sha512() {
                this.init();
                this._w = W;
                Hash.call(this, 128, 112);
            }
            inherits(Sha512, Hash);
            Sha512.prototype.init = function() {
                this._ah = 1779033703;
                this._bh = 3144134277;
                this._ch = 1013904242;
                this._dh = 2773480762;
                this._eh = 1359893119;
                this._fh = 2600822924;
                this._gh = 528734635;
                this._hh = 1541459225;
                this._al = 4089235720;
                this._bl = 2227873595;
                this._cl = 4271175723;
                this._dl = 1595750129;
                this._el = 2917565137;
                this._fl = 725511199;
                this._gl = 4215389547;
                this._hl = 327033209;
                return this;
            };
            function Ch(x, y, z) {
                return z ^ x & (y ^ z);
            }
            function maj(x, y, z) {
                return x & y | z & (x | y);
            }
            function sigma0(x, xl) {
                return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25);
            }
            function sigma1(x, xl) {
                return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23);
            }
            function Gamma0(x, xl) {
                return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ x >>> 7;
            }
            function Gamma0l(x, xl) {
                return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25);
            }
            function Gamma1(x, xl) {
                return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ x >>> 6;
            }
            function Gamma1l(x, xl) {
                return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26);
            }
            function getCarry(a, b) {
                return a >>> 0 < b >>> 0 ? 1 : 0;
            }
            Sha512.prototype._update = function(M) {
                var w = this._w;
                var ah = this._ah | 0;
                var bh = this._bh | 0;
                var ch = this._ch | 0;
                var dh = this._dh | 0;
                var eh = this._eh | 0;
                var fh = this._fh | 0;
                var gh = this._gh | 0;
                var hh = this._hh | 0;
                var al = this._al | 0;
                var bl = this._bl | 0;
                var cl = this._cl | 0;
                var dl = this._dl | 0;
                var el = this._el | 0;
                var fl = this._fl | 0;
                var gl = this._gl | 0;
                var hl = this._hl | 0;
                for(var i = 0; i < 32; i += 2){
                    w[i] = M.readInt32BE(i * 4);
                    w[i + 1] = M.readInt32BE(i * 4 + 4);
                }
                for(; i < 160; i += 2){
                    var xh = w[i - 15 * 2];
                    var xl = w[i - 15 * 2 + 1];
                    var gamma0 = Gamma0(xh, xl);
                    var gamma0l = Gamma0l(xl, xh);
                    xh = w[i - 2 * 2];
                    xl = w[i - 2 * 2 + 1];
                    var gamma1 = Gamma1(xh, xl);
                    var gamma1l = Gamma1l(xl, xh);
                    var Wi7h = w[i - 7 * 2];
                    var Wi7l = w[i - 7 * 2 + 1];
                    var Wi16h = w[i - 16 * 2];
                    var Wi16l = w[i - 16 * 2 + 1];
                    var Wil = gamma0l + Wi7l | 0;
                    var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0;
                    Wil = Wil + gamma1l | 0;
                    Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0;
                    Wil = Wil + Wi16l | 0;
                    Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0;
                    w[i] = Wih;
                    w[i + 1] = Wil;
                }
                for(var j = 0; j < 160; j += 2){
                    Wih = w[j];
                    Wil = w[j + 1];
                    var majh = maj(ah, bh, ch);
                    var majl = maj(al, bl, cl);
                    var sigma0h = sigma0(ah, al);
                    var sigma0l = sigma0(al, ah);
                    var sigma1h = sigma1(eh, el);
                    var sigma1l = sigma1(el, eh);
                    var Kih = K[j];
                    var Kil = K[j + 1];
                    var chh = Ch(eh, fh, gh);
                    var chl = Ch(el, fl, gl);
                    var t1l = hl + sigma1l | 0;
                    var t1h = hh + sigma1h + getCarry(t1l, hl) | 0;
                    t1l = t1l + chl | 0;
                    t1h = t1h + chh + getCarry(t1l, chl) | 0;
                    t1l = t1l + Kil | 0;
                    t1h = t1h + Kih + getCarry(t1l, Kil) | 0;
                    t1l = t1l + Wil | 0;
                    t1h = t1h + Wih + getCarry(t1l, Wil) | 0;
                    var t2l = sigma0l + majl | 0;
                    var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0;
                    hh = gh;
                    hl = gl;
                    gh = fh;
                    gl = fl;
                    fh = eh;
                    fl = el;
                    el = dl + t1l | 0;
                    eh = dh + t1h + getCarry(el, dl) | 0;
                    dh = ch;
                    dl = cl;
                    ch = bh;
                    cl = bl;
                    bh = ah;
                    bl = al;
                    al = t1l + t2l | 0;
                    ah = t1h + t2h + getCarry(al, t1l) | 0;
                }
                this._al = this._al + al | 0;
                this._bl = this._bl + bl | 0;
                this._cl = this._cl + cl | 0;
                this._dl = this._dl + dl | 0;
                this._el = this._el + el | 0;
                this._fl = this._fl + fl | 0;
                this._gl = this._gl + gl | 0;
                this._hl = this._hl + hl | 0;
                this._ah = this._ah + ah + getCarry(this._al, al) | 0;
                this._bh = this._bh + bh + getCarry(this._bl, bl) | 0;
                this._ch = this._ch + ch + getCarry(this._cl, cl) | 0;
                this._dh = this._dh + dh + getCarry(this._dl, dl) | 0;
                this._eh = this._eh + eh + getCarry(this._el, el) | 0;
                this._fh = this._fh + fh + getCarry(this._fl, fl) | 0;
                this._gh = this._gh + gh + getCarry(this._gl, gl) | 0;
                this._hh = this._hh + hh + getCarry(this._hl, hl) | 0;
            };
            Sha512.prototype._hash = function() {
                var H = Buffer3.allocUnsafe(64);
                function writeInt64BE(h, l, offset) {
                    H.writeInt32BE(h, offset);
                    H.writeInt32BE(l, offset + 4);
                }
                writeInt64BE(this._ah, this._al, 0);
                writeInt64BE(this._bh, this._bl, 8);
                writeInt64BE(this._ch, this._cl, 16);
                writeInt64BE(this._dh, this._dl, 24);
                writeInt64BE(this._eh, this._el, 32);
                writeInt64BE(this._fh, this._fl, 40);
                writeInt64BE(this._gh, this._gl, 48);
                writeInt64BE(this._hh, this._hl, 56);
                return H;
            };
            module.exports = Sha512;
        }
    });
    // node_modules/sha.js/sha384.js
    var require_sha384 = __commonJS({
        "node_modules/sha.js/sha384.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var SHA512 = require_sha512();
            var Hash = require_hash();
            var Buffer3 = require_safe_buffer5().Buffer;
            var W = new Array(160);
            function Sha384() {
                this.init();
                this._w = W;
                Hash.call(this, 128, 112);
            }
            inherits(Sha384, SHA512);
            Sha384.prototype.init = function() {
                this._ah = 3418070365;
                this._bh = 1654270250;
                this._ch = 2438529370;
                this._dh = 355462360;
                this._eh = 1731405415;
                this._fh = 2394180231;
                this._gh = 3675008525;
                this._hh = 1203062813;
                this._al = 3238371032;
                this._bl = 914150663;
                this._cl = 812702999;
                this._dl = 4144912697;
                this._el = 4290775857;
                this._fl = 1750603025;
                this._gl = 1694076839;
                this._hl = 3204075428;
                return this;
            };
            Sha384.prototype._hash = function() {
                var H = Buffer3.allocUnsafe(48);
                function writeInt64BE(h, l, offset) {
                    H.writeInt32BE(h, offset);
                    H.writeInt32BE(l, offset + 4);
                }
                writeInt64BE(this._ah, this._al, 0);
                writeInt64BE(this._bh, this._bl, 8);
                writeInt64BE(this._ch, this._cl, 16);
                writeInt64BE(this._dh, this._dl, 24);
                writeInt64BE(this._eh, this._el, 32);
                writeInt64BE(this._fh, this._fl, 40);
                return H;
            };
            module.exports = Sha384;
        }
    });
    // node_modules/sha.js/index.js
    var require_sha2 = __commonJS({
        "node_modules/sha.js/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function SHA(algorithm) {
                var alg = algorithm.toLowerCase();
                var Algorithm = module.exports[alg];
                if (!Algorithm) {
                    throw new Error(alg + " is not supported (we accept pull requests)");
                }
                return new Algorithm();
            };
            module.exports.sha = require_sha();
            module.exports.sha1 = require_sha1();
            module.exports.sha224 = require_sha224();
            module.exports.sha256 = require_sha256();
            module.exports.sha384 = require_sha384();
            module.exports.sha512 = require_sha512();
        }
    });
    // node_modules/cipher-base/node_modules/safe-buffer/index.js
    var require_safe_buffer6 = __commonJS({
        "node_modules/cipher-base/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/cipher-base/index.js
    var require_cipher_base = __commonJS({
        "node_modules/cipher-base/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer6().Buffer;
            var Transform = require_stream_browserify().Transform;
            var StringDecoder = require_string_decoder().StringDecoder;
            var inherits = require_inherits_browser();
            var toBuffer = require_to_buffer();
            function CipherBase(hashMode) {
                Transform.call(this);
                this.hashMode = typeof hashMode === "string";
                if (this.hashMode) {
                    this[hashMode] = this._finalOrDigest;
                } else {
                    this["final"] = this._finalOrDigest;
                }
                if (this._final) {
                    this.__final = this._final;
                    this._final = null;
                }
                this._decoder = null;
                this._encoding = null;
            }
            inherits(CipherBase, Transform);
            CipherBase.prototype.update = function(data, inputEnc, outputEnc) {
                var bufferData = toBuffer(data, inputEnc);
                var outData = this._update(bufferData);
                if (this.hashMode) {
                    return this;
                }
                if (outputEnc) {
                    outData = this._toString(outData, outputEnc);
                }
                return outData;
            };
            CipherBase.prototype.setAutoPadding = function() {};
            CipherBase.prototype.getAuthTag = function() {
                throw new Error("trying to get auth tag in unsupported state");
            };
            CipherBase.prototype.setAuthTag = function() {
                throw new Error("trying to set auth tag in unsupported state");
            };
            CipherBase.prototype.setAAD = function() {
                throw new Error("trying to set aad in unsupported state");
            };
            CipherBase.prototype._transform = function(data, _2, next) {
                var err;
                try {
                    if (this.hashMode) {
                        this._update(data);
                    } else {
                        this.push(this._update(data));
                    }
                } catch (e) {
                    err = e;
                } finally{
                    next(err);
                }
            };
            CipherBase.prototype._flush = function(done3) {
                var err;
                try {
                    this.push(this.__final());
                } catch (e) {
                    err = e;
                }
                done3(err);
            };
            CipherBase.prototype._finalOrDigest = function(outputEnc) {
                var outData = this.__final() || Buffer3.alloc(0);
                if (outputEnc) {
                    outData = this._toString(outData, outputEnc, true);
                }
                return outData;
            };
            CipherBase.prototype._toString = function(value, enc, fin) {
                if (!this._decoder) {
                    this._decoder = new StringDecoder(enc);
                    this._encoding = enc;
                }
                if (this._encoding !== enc) {
                    throw new Error("can\u2019t switch encodings");
                }
                var out = this._decoder.write(value);
                if (fin) {
                    out += this._decoder.end();
                }
                return out;
            };
            module.exports = CipherBase;
        }
    });
    // node_modules/create-hash/browser.js
    var require_browser6 = __commonJS({
        "node_modules/create-hash/browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var MD5 = require_md5();
            var RIPEMD160 = require_ripemd160();
            var sha = require_sha2();
            var Base = require_cipher_base();
            function Hash(hash) {
                Base.call(this, "digest");
                this._hash = hash;
            }
            inherits(Hash, Base);
            Hash.prototype._update = function(data) {
                this._hash.update(data);
            };
            Hash.prototype._final = function() {
                return this._hash.digest();
            };
            module.exports = function createHash(alg) {
                alg = alg.toLowerCase();
                if (alg === "md5") return new MD5();
                if (alg === "rmd160" || alg === "ripemd160") return new RIPEMD160();
                return new Hash(sha(alg));
            };
        }
    });
    // node_modules/create-hmac/legacy.js
    var require_legacy = __commonJS({
        "node_modules/create-hmac/legacy.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Buffer3 = require_safe_buffer().Buffer;
            var Base = require_cipher_base();
            var ZEROS = Buffer3.alloc(128);
            var blocksize = 64;
            function Hmac(alg, key) {
                Base.call(this, "digest");
                if (typeof key === "string") {
                    key = Buffer3.from(key);
                }
                this._alg = alg;
                this._key = key;
                if (key.length > blocksize) {
                    key = alg(key);
                } else if (key.length < blocksize) {
                    key = Buffer3.concat([
                        key,
                        ZEROS
                    ], blocksize);
                }
                var ipad = this._ipad = Buffer3.allocUnsafe(blocksize);
                var opad = this._opad = Buffer3.allocUnsafe(blocksize);
                for(var i = 0; i < blocksize; i++){
                    ipad[i] = key[i] ^ 54;
                    opad[i] = key[i] ^ 92;
                }
                this._hash = [
                    ipad
                ];
            }
            inherits(Hmac, Base);
            Hmac.prototype._update = function(data) {
                this._hash.push(data);
            };
            Hmac.prototype._final = function() {
                var h = this._alg(Buffer3.concat(this._hash));
                return this._alg(Buffer3.concat([
                    this._opad,
                    h
                ]));
            };
            module.exports = Hmac;
        }
    });
    // node_modules/create-hash/md5.js
    var require_md52 = __commonJS({
        "node_modules/create-hash/md5.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var MD5 = require_md5();
            module.exports = function(buffer) {
                return new MD5().update(buffer).digest();
            };
        }
    });
    // node_modules/create-hmac/browser.js
    var require_browser7 = __commonJS({
        "node_modules/create-hmac/browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Legacy = require_legacy();
            var Base = require_cipher_base();
            var Buffer3 = require_safe_buffer().Buffer;
            var md5 = require_md52();
            var RIPEMD160 = require_ripemd160();
            var sha = require_sha2();
            var ZEROS = Buffer3.alloc(128);
            function Hmac(alg, key) {
                Base.call(this, "digest");
                if (typeof key === "string") {
                    key = Buffer3.from(key);
                }
                var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64;
                this._alg = alg;
                this._key = key;
                if (key.length > blocksize) {
                    var hash = alg === "rmd160" ? new RIPEMD160() : sha(alg);
                    key = hash.update(key).digest();
                } else if (key.length < blocksize) {
                    key = Buffer3.concat([
                        key,
                        ZEROS
                    ], blocksize);
                }
                var ipad = this._ipad = Buffer3.allocUnsafe(blocksize);
                var opad = this._opad = Buffer3.allocUnsafe(blocksize);
                for(var i = 0; i < blocksize; i++){
                    ipad[i] = key[i] ^ 54;
                    opad[i] = key[i] ^ 92;
                }
                this._hash = alg === "rmd160" ? new RIPEMD160() : sha(alg);
                this._hash.update(ipad);
            }
            inherits(Hmac, Base);
            Hmac.prototype._update = function(data) {
                this._hash.update(data);
            };
            Hmac.prototype._final = function() {
                var h = this._hash.digest();
                var hash = this._alg === "rmd160" ? new RIPEMD160() : sha(this._alg);
                return hash.update(this._opad).update(h).digest();
            };
            module.exports = function createHmac(alg, key) {
                alg = alg.toLowerCase();
                if (alg === "rmd160" || alg === "ripemd160") {
                    return new Hmac("rmd160", key);
                }
                if (alg === "md5") {
                    return new Legacy(md5, key);
                }
                return new Hmac(alg, key);
            };
        }
    });
    // node_modules/browserify-sign/browser/algorithms.json
    var require_algorithms = __commonJS({
        "node_modules/browserify-sign/browser/algorithms.json": function(exports, module) {
            module.exports = {
                sha224WithRSAEncryption: {
                    sign: "rsa",
                    hash: "sha224",
                    id: "302d300d06096086480165030402040500041c"
                },
                "RSA-SHA224": {
                    sign: "ecdsa/rsa",
                    hash: "sha224",
                    id: "302d300d06096086480165030402040500041c"
                },
                sha256WithRSAEncryption: {
                    sign: "rsa",
                    hash: "sha256",
                    id: "3031300d060960864801650304020105000420"
                },
                "RSA-SHA256": {
                    sign: "ecdsa/rsa",
                    hash: "sha256",
                    id: "3031300d060960864801650304020105000420"
                },
                sha384WithRSAEncryption: {
                    sign: "rsa",
                    hash: "sha384",
                    id: "3041300d060960864801650304020205000430"
                },
                "RSA-SHA384": {
                    sign: "ecdsa/rsa",
                    hash: "sha384",
                    id: "3041300d060960864801650304020205000430"
                },
                sha512WithRSAEncryption: {
                    sign: "rsa",
                    hash: "sha512",
                    id: "3051300d060960864801650304020305000440"
                },
                "RSA-SHA512": {
                    sign: "ecdsa/rsa",
                    hash: "sha512",
                    id: "3051300d060960864801650304020305000440"
                },
                "RSA-SHA1": {
                    sign: "rsa",
                    hash: "sha1",
                    id: "3021300906052b0e03021a05000414"
                },
                "ecdsa-with-SHA1": {
                    sign: "ecdsa",
                    hash: "sha1",
                    id: ""
                },
                sha256: {
                    sign: "ecdsa/rsa",
                    hash: "sha256",
                    id: "3031300d060960864801650304020105000420"
                },
                sha224: {
                    sign: "ecdsa/rsa",
                    hash: "sha224",
                    id: "302d300d06096086480165030402040500041c"
                },
                sha384: {
                    sign: "ecdsa/rsa",
                    hash: "sha384",
                    id: "3041300d060960864801650304020205000430"
                },
                sha512: {
                    sign: "ecdsa/rsa",
                    hash: "sha512",
                    id: "3051300d060960864801650304020305000440"
                },
                "DSA-SHA": {
                    sign: "dsa",
                    hash: "sha1",
                    id: ""
                },
                "DSA-SHA1": {
                    sign: "dsa",
                    hash: "sha1",
                    id: ""
                },
                DSA: {
                    sign: "dsa",
                    hash: "sha1",
                    id: ""
                },
                "DSA-WITH-SHA224": {
                    sign: "dsa",
                    hash: "sha224",
                    id: ""
                },
                "DSA-SHA224": {
                    sign: "dsa",
                    hash: "sha224",
                    id: ""
                },
                "DSA-WITH-SHA256": {
                    sign: "dsa",
                    hash: "sha256",
                    id: ""
                },
                "DSA-SHA256": {
                    sign: "dsa",
                    hash: "sha256",
                    id: ""
                },
                "DSA-WITH-SHA384": {
                    sign: "dsa",
                    hash: "sha384",
                    id: ""
                },
                "DSA-SHA384": {
                    sign: "dsa",
                    hash: "sha384",
                    id: ""
                },
                "DSA-WITH-SHA512": {
                    sign: "dsa",
                    hash: "sha512",
                    id: ""
                },
                "DSA-SHA512": {
                    sign: "dsa",
                    hash: "sha512",
                    id: ""
                },
                "DSA-RIPEMD160": {
                    sign: "dsa",
                    hash: "rmd160",
                    id: ""
                },
                ripemd160WithRSA: {
                    sign: "rsa",
                    hash: "rmd160",
                    id: "3021300906052b2403020105000414"
                },
                "RSA-RIPEMD160": {
                    sign: "rsa",
                    hash: "rmd160",
                    id: "3021300906052b2403020105000414"
                },
                md5WithRSAEncryption: {
                    sign: "rsa",
                    hash: "md5",
                    id: "3020300c06082a864886f70d020505000410"
                },
                "RSA-MD5": {
                    sign: "rsa",
                    hash: "md5",
                    id: "3020300c06082a864886f70d020505000410"
                }
            };
        }
    });
    // node_modules/browserify-sign/algos.js
    var require_algos = __commonJS({
        "node_modules/browserify-sign/algos.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_algorithms();
        }
    });
    // node_modules/pbkdf2/node_modules/safe-buffer/index.js
    var require_safe_buffer7 = __commonJS({
        "node_modules/pbkdf2/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/pbkdf2/lib/precondition.js
    var require_precondition = __commonJS({
        "node_modules/pbkdf2/lib/precondition.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var $isFinite = isFinite;
            var MAX_ALLOC = Math.pow(2, 30) - 1;
            module.exports = function(iterations, keylen) {
                if (typeof iterations !== "number") {
                    throw new TypeError("Iterations not a number");
                }
                if (iterations < 0 || !$isFinite(iterations)) {
                    throw new TypeError("Bad iterations");
                }
                if (typeof keylen !== "number") {
                    throw new TypeError("Key length not a number");
                }
                if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) {
                    throw new TypeError("Bad key length");
                }
                return keylen + 0;
            };
        }
    });
    // node_modules/pbkdf2/lib/default-encoding.js
    var require_default_encoding = __commonJS({
        "node_modules/pbkdf2/lib/default-encoding.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var defaultEncoding;
            if (globalThis.process && globalThis.process.browser) {
                defaultEncoding = "utf-8";
            } else if (globalThis.process && globalThis.process.version) {
                pVersionMajor = parseInt(process.version.split(".")[0].slice(1), 10);
                defaultEncoding = pVersionMajor >= 6 ? "utf-8" : "binary";
            } else {
                defaultEncoding = "utf-8";
            }
            var pVersionMajor;
            module.exports = defaultEncoding;
        }
    });
    // node_modules/pbkdf2/lib/to-buffer.js
    var require_to_buffer3 = __commonJS({
        "node_modules/pbkdf2/lib/to-buffer.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer7().Buffer;
            var toBuffer = require_to_buffer();
            var useUint8Array = typeof Uint8Array !== "undefined";
            var useArrayBuffer = useUint8Array && typeof ArrayBuffer !== "undefined";
            var isView = useArrayBuffer && ArrayBuffer.isView;
            module.exports = function(thing, encoding, name) {
                if (typeof thing === "string" || Buffer3.isBuffer(thing) || useUint8Array && thing instanceof Uint8Array || isView && isView(thing)) {
                    return toBuffer(thing, encoding);
                }
                throw new TypeError(name + " must be a string, a Buffer, a Uint8Array, or a DataView");
            };
        }
    });
    // node_modules/pbkdf2/lib/sync-browser.js
    var require_sync_browser = __commonJS({
        "node_modules/pbkdf2/lib/sync-browser.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var md5 = require_md52();
            var RIPEMD160 = require_ripemd160();
            var sha = require_sha2();
            var Buffer3 = require_safe_buffer7().Buffer;
            var checkParameters = require_precondition();
            var defaultEncoding = require_default_encoding();
            var toBuffer = require_to_buffer3();
            var ZEROS = Buffer3.alloc(128);
            var sizes = {
                __proto__: null,
                md5: 16,
                sha1: 20,
                sha224: 28,
                sha256: 32,
                sha384: 48,
                sha512: 64,
                "sha512-256": 32,
                ripemd160: 20,
                rmd160: 20
            };
            var mapping = {
                __proto__: null,
                "sha-1": "sha1",
                "sha-224": "sha224",
                "sha-256": "sha256",
                "sha-384": "sha384",
                "sha-512": "sha512",
                "ripemd-160": "ripemd160"
            };
            function rmd160Func(data) {
                return new RIPEMD160().update(data).digest();
            }
            function getDigest(alg) {
                function shaFunc(data) {
                    return sha(alg).update(data).digest();
                }
                if (alg === "rmd160" || alg === "ripemd160") {
                    return rmd160Func;
                }
                if (alg === "md5") {
                    return md5;
                }
                return shaFunc;
            }
            function Hmac(alg, key, saltLen) {
                var hash = getDigest(alg);
                var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64;
                if (key.length > blocksize) {
                    key = hash(key);
                } else if (key.length < blocksize) {
                    key = Buffer3.concat([
                        key,
                        ZEROS
                    ], blocksize);
                }
                var ipad = Buffer3.allocUnsafe(blocksize + sizes[alg]);
                var opad = Buffer3.allocUnsafe(blocksize + sizes[alg]);
                for(var i = 0; i < blocksize; i++){
                    ipad[i] = key[i] ^ 54;
                    opad[i] = key[i] ^ 92;
                }
                var ipad1 = Buffer3.allocUnsafe(blocksize + saltLen + 4);
                ipad.copy(ipad1, 0, 0, blocksize);
                this.ipad1 = ipad1;
                this.ipad2 = ipad;
                this.opad = opad;
                this.alg = alg;
                this.blocksize = blocksize;
                this.hash = hash;
                this.size = sizes[alg];
            }
            Hmac.prototype.run = function(data, ipad) {
                data.copy(ipad, this.blocksize);
                var h = this.hash(ipad);
                h.copy(this.opad, this.blocksize);
                return this.hash(this.opad);
            };
            function pbkdf2(password, salt, iterations, keylen, digest2) {
                keylen = checkParameters(iterations, keylen);
                password = toBuffer(password, defaultEncoding, "Password");
                salt = toBuffer(salt, defaultEncoding, "Salt");
                var lowerDigest = (digest2 || "sha1").toLowerCase();
                var mappedDigest = mapping[lowerDigest] || lowerDigest;
                var size = sizes[mappedDigest];
                if (typeof size !== "number" || !size) {
                    throw new TypeError("Digest algorithm not supported: " + digest2);
                }
                var hmac = new Hmac(mappedDigest, password, salt.length);
                var DK = Buffer3.allocUnsafe(keylen);
                var block1 = Buffer3.allocUnsafe(salt.length + 4);
                salt.copy(block1, 0, 0, salt.length);
                var destPos = 0;
                var hLen = size;
                var l = Math.ceil(keylen / hLen);
                for(var i = 1; i <= l; i++){
                    block1.writeUInt32BE(i, salt.length);
                    var T = hmac.run(block1, hmac.ipad1);
                    var U = T;
                    for(var j = 1; j < iterations; j++){
                        U = hmac.run(U, hmac.ipad2);
                        for(var k = 0; k < hLen; k++){
                            T[k] ^= U[k];
                        }
                    }
                    T.copy(DK, destPos);
                    destPos += hLen;
                }
                return DK;
            }
            module.exports = pbkdf2;
        }
    });
    // node_modules/pbkdf2/lib/async.js
    var require_async = __commonJS({
        "node_modules/pbkdf2/lib/async.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer7().Buffer;
            var checkParameters = require_precondition();
            var defaultEncoding = require_default_encoding();
            var sync = require_sync_browser();
            var toBuffer = require_to_buffer3();
            var ZERO_BUF;
            var subtle = globalThis.crypto && globalThis.crypto.subtle;
            var toBrowser = {
                sha: "SHA-1",
                "sha-1": "SHA-1",
                sha1: "SHA-1",
                sha256: "SHA-256",
                "sha-256": "SHA-256",
                sha384: "SHA-384",
                "sha-384": "SHA-384",
                "sha-512": "SHA-512",
                sha512: "SHA-512"
            };
            var checks = [];
            var nextTick;
            function getNextTick() {
                if (nextTick) {
                    return nextTick;
                }
                if (globalThis.process && globalThis.process.nextTick) {
                    nextTick = globalThis.process.nextTick;
                } else if (globalThis.queueMicrotask) {
                    nextTick = globalThis.queueMicrotask;
                } else if (globalThis.setImmediate) {
                    nextTick = globalThis.setImmediate;
                } else {
                    nextTick = globalThis.setTimeout;
                }
                return nextTick;
            }
            function browserPbkdf2(password, salt, iterations, length, algo) {
                return subtle.importKey("raw", password, {
                    name: "PBKDF2"
                }, false, [
                    "deriveBits"
                ]).then(function(key) {
                    return subtle.deriveBits({
                        name: "PBKDF2",
                        salt: salt,
                        iterations: iterations,
                        hash: {
                            name: algo
                        }
                    }, key, length << 3);
                }).then(function(res) {
                    return Buffer3.from(res);
                });
            }
            function checkNative(algo) {
                if (globalThis.process && !globalThis.process.browser) {
                    return Promise.resolve(false);
                }
                if (!subtle || !subtle.importKey || !subtle.deriveBits) {
                    return Promise.resolve(false);
                }
                if (checks[algo] !== void 0) {
                    return checks[algo];
                }
                ZERO_BUF = ZERO_BUF || Buffer3.alloc(8);
                var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function() {
                    return true;
                }, function() {
                    return false;
                });
                checks[algo] = prom;
                return prom;
            }
            function resolvePromise2(promise3, callback) {
                promise3.then(function(out) {
                    getNextTick()(function() {
                        callback(null, out);
                    });
                }, function(e) {
                    getNextTick()(function() {
                        callback(e);
                    });
                });
            }
            module.exports = function(password, salt, iterations, keylen, digest2, callback) {
                if (typeof digest2 === "function") {
                    callback = digest2;
                    digest2 = void 0;
                }
                keylen = checkParameters(iterations, keylen);
                password = toBuffer(password, defaultEncoding, "Password");
                salt = toBuffer(salt, defaultEncoding, "Salt");
                if (typeof callback !== "function") {
                    throw new Error("No callback provided to pbkdf2");
                }
                digest2 = digest2 || "sha1";
                var algo = toBrowser[digest2.toLowerCase()];
                if (!algo || typeof globalThis.Promise !== "function") {
                    getNextTick()(function() {
                        var out;
                        try {
                            out = sync(password, salt, iterations, keylen, digest2);
                        } catch (e) {
                            callback(e);
                            return;
                        }
                        callback(null, out);
                    });
                    return;
                }
                resolvePromise2(checkNative(algo).then(function(resp) {
                    if (resp) {
                        return browserPbkdf2(password, salt, iterations, keylen, algo);
                    }
                    return sync(password, salt, iterations, keylen, digest2);
                }), callback);
            };
        }
    });
    // node_modules/pbkdf2/browser.js
    var require_browser8 = __commonJS({
        "node_modules/pbkdf2/browser.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.pbkdf2 = require_async();
            exports.pbkdf2Sync = require_sync_browser();
        }
    });
    // node_modules/des.js/lib/des/utils.js
    var require_utils2 = __commonJS({
        "node_modules/des.js/lib/des/utils.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.readUInt32BE = function readUInt32BE(bytes, off) {
                var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | bytes[3 + off];
                return res >>> 0;
            };
            exports.writeUInt32BE = function writeUInt32BE2(bytes, value, off) {
                bytes[0 + off] = value >>> 24;
                bytes[1 + off] = value >>> 16 & 255;
                bytes[2 + off] = value >>> 8 & 255;
                bytes[3 + off] = value & 255;
            };
            exports.ip = function ip(inL, inR, out, off) {
                var outL = 0;
                var outR = 0;
                for(var i = 6; i >= 0; i -= 2){
                    for(var j = 0; j <= 24; j += 8){
                        outL <<= 1;
                        outL |= inR >>> j + i & 1;
                    }
                    for(var j = 0; j <= 24; j += 8){
                        outL <<= 1;
                        outL |= inL >>> j + i & 1;
                    }
                }
                for(var i = 6; i >= 0; i -= 2){
                    for(var j = 1; j <= 25; j += 8){
                        outR <<= 1;
                        outR |= inR >>> j + i & 1;
                    }
                    for(var j = 1; j <= 25; j += 8){
                        outR <<= 1;
                        outR |= inL >>> j + i & 1;
                    }
                }
                out[off + 0] = outL >>> 0;
                out[off + 1] = outR >>> 0;
            };
            exports.rip = function rip(inL, inR, out, off) {
                var outL = 0;
                var outR = 0;
                for(var i = 0; i < 4; i++){
                    for(var j = 24; j >= 0; j -= 8){
                        outL <<= 1;
                        outL |= inR >>> j + i & 1;
                        outL <<= 1;
                        outL |= inL >>> j + i & 1;
                    }
                }
                for(var i = 4; i < 8; i++){
                    for(var j = 24; j >= 0; j -= 8){
                        outR <<= 1;
                        outR |= inR >>> j + i & 1;
                        outR <<= 1;
                        outR |= inL >>> j + i & 1;
                    }
                }
                out[off + 0] = outL >>> 0;
                out[off + 1] = outR >>> 0;
            };
            exports.pc1 = function pc1(inL, inR, out, off) {
                var outL = 0;
                var outR = 0;
                for(var i = 7; i >= 5; i--){
                    for(var j = 0; j <= 24; j += 8){
                        outL <<= 1;
                        outL |= inR >> j + i & 1;
                    }
                    for(var j = 0; j <= 24; j += 8){
                        outL <<= 1;
                        outL |= inL >> j + i & 1;
                    }
                }
                for(var j = 0; j <= 24; j += 8){
                    outL <<= 1;
                    outL |= inR >> j + i & 1;
                }
                for(var i = 1; i <= 3; i++){
                    for(var j = 0; j <= 24; j += 8){
                        outR <<= 1;
                        outR |= inR >> j + i & 1;
                    }
                    for(var j = 0; j <= 24; j += 8){
                        outR <<= 1;
                        outR |= inL >> j + i & 1;
                    }
                }
                for(var j = 0; j <= 24; j += 8){
                    outR <<= 1;
                    outR |= inL >> j + i & 1;
                }
                out[off + 0] = outL >>> 0;
                out[off + 1] = outR >>> 0;
            };
            exports.r28shl = function r28shl(num, shift) {
                return num << shift & 268435455 | num >>> 28 - shift;
            };
            var pc2table = [
                // inL => outL
                14,
                11,
                17,
                4,
                27,
                23,
                25,
                0,
                13,
                22,
                7,
                18,
                5,
                9,
                16,
                24,
                2,
                20,
                12,
                21,
                1,
                8,
                15,
                26,
                // inR => outR
                15,
                4,
                25,
                19,
                9,
                1,
                26,
                16,
                5,
                11,
                23,
                8,
                12,
                7,
                17,
                0,
                22,
                3,
                10,
                14,
                6,
                20,
                27,
                24
            ];
            exports.pc2 = function pc2(inL, inR, out, off) {
                var outL = 0;
                var outR = 0;
                var len = pc2table.length >>> 1;
                for(var i = 0; i < len; i++){
                    outL <<= 1;
                    outL |= inL >>> pc2table[i] & 1;
                }
                for(var i = len; i < pc2table.length; i++){
                    outR <<= 1;
                    outR |= inR >>> pc2table[i] & 1;
                }
                out[off + 0] = outL >>> 0;
                out[off + 1] = outR >>> 0;
            };
            exports.expand = function expand(r, out, off) {
                var outL = 0;
                var outR = 0;
                outL = (r & 1) << 5 | r >>> 27;
                for(var i = 23; i >= 15; i -= 4){
                    outL <<= 6;
                    outL |= r >>> i & 63;
                }
                for(var i = 11; i >= 3; i -= 4){
                    outR |= r >>> i & 63;
                    outR <<= 6;
                }
                outR |= (r & 31) << 1 | r >>> 31;
                out[off + 0] = outL >>> 0;
                out[off + 1] = outR >>> 0;
            };
            var sTable = [
                14,
                0,
                4,
                15,
                13,
                7,
                1,
                4,
                2,
                14,
                15,
                2,
                11,
                13,
                8,
                1,
                3,
                10,
                10,
                6,
                6,
                12,
                12,
                11,
                5,
                9,
                9,
                5,
                0,
                3,
                7,
                8,
                4,
                15,
                1,
                12,
                14,
                8,
                8,
                2,
                13,
                4,
                6,
                9,
                2,
                1,
                11,
                7,
                15,
                5,
                12,
                11,
                9,
                3,
                7,
                14,
                3,
                10,
                10,
                0,
                5,
                6,
                0,
                13,
                15,
                3,
                1,
                13,
                8,
                4,
                14,
                7,
                6,
                15,
                11,
                2,
                3,
                8,
                4,
                14,
                9,
                12,
                7,
                0,
                2,
                1,
                13,
                10,
                12,
                6,
                0,
                9,
                5,
                11,
                10,
                5,
                0,
                13,
                14,
                8,
                7,
                10,
                11,
                1,
                10,
                3,
                4,
                15,
                13,
                4,
                1,
                2,
                5,
                11,
                8,
                6,
                12,
                7,
                6,
                12,
                9,
                0,
                3,
                5,
                2,
                14,
                15,
                9,
                10,
                13,
                0,
                7,
                9,
                0,
                14,
                9,
                6,
                3,
                3,
                4,
                15,
                6,
                5,
                10,
                1,
                2,
                13,
                8,
                12,
                5,
                7,
                14,
                11,
                12,
                4,
                11,
                2,
                15,
                8,
                1,
                13,
                1,
                6,
                10,
                4,
                13,
                9,
                0,
                8,
                6,
                15,
                9,
                3,
                8,
                0,
                7,
                11,
                4,
                1,
                15,
                2,
                14,
                12,
                3,
                5,
                11,
                10,
                5,
                14,
                2,
                7,
                12,
                7,
                13,
                13,
                8,
                14,
                11,
                3,
                5,
                0,
                6,
                6,
                15,
                9,
                0,
                10,
                3,
                1,
                4,
                2,
                7,
                8,
                2,
                5,
                12,
                11,
                1,
                12,
                10,
                4,
                14,
                15,
                9,
                10,
                3,
                6,
                15,
                9,
                0,
                0,
                6,
                12,
                10,
                11,
                1,
                7,
                13,
                13,
                8,
                15,
                9,
                1,
                4,
                3,
                5,
                14,
                11,
                5,
                12,
                2,
                7,
                8,
                2,
                4,
                14,
                2,
                14,
                12,
                11,
                4,
                2,
                1,
                12,
                7,
                4,
                10,
                7,
                11,
                13,
                6,
                1,
                8,
                5,
                5,
                0,
                3,
                15,
                15,
                10,
                13,
                3,
                0,
                9,
                14,
                8,
                9,
                6,
                4,
                11,
                2,
                8,
                1,
                12,
                11,
                7,
                10,
                1,
                13,
                14,
                7,
                2,
                8,
                13,
                15,
                6,
                9,
                15,
                12,
                0,
                5,
                9,
                6,
                10,
                3,
                4,
                0,
                5,
                14,
                3,
                12,
                10,
                1,
                15,
                10,
                4,
                15,
                2,
                9,
                7,
                2,
                12,
                6,
                9,
                8,
                5,
                0,
                6,
                13,
                1,
                3,
                13,
                4,
                14,
                14,
                0,
                7,
                11,
                5,
                3,
                11,
                8,
                9,
                4,
                14,
                3,
                15,
                2,
                5,
                12,
                2,
                9,
                8,
                5,
                12,
                15,
                3,
                10,
                7,
                11,
                0,
                14,
                4,
                1,
                10,
                7,
                1,
                6,
                13,
                0,
                11,
                8,
                6,
                13,
                4,
                13,
                11,
                0,
                2,
                11,
                14,
                7,
                15,
                4,
                0,
                9,
                8,
                1,
                13,
                10,
                3,
                14,
                12,
                3,
                9,
                5,
                7,
                12,
                5,
                2,
                10,
                15,
                6,
                8,
                1,
                6,
                1,
                6,
                4,
                11,
                11,
                13,
                13,
                8,
                12,
                1,
                3,
                4,
                7,
                10,
                14,
                7,
                10,
                9,
                15,
                5,
                6,
                0,
                8,
                15,
                0,
                14,
                5,
                2,
                9,
                3,
                2,
                12,
                13,
                1,
                2,
                15,
                8,
                13,
                4,
                8,
                6,
                10,
                15,
                3,
                11,
                7,
                1,
                4,
                10,
                12,
                9,
                5,
                3,
                6,
                14,
                11,
                5,
                0,
                0,
                14,
                12,
                9,
                7,
                2,
                7,
                2,
                11,
                1,
                4,
                14,
                1,
                7,
                9,
                4,
                12,
                10,
                14,
                8,
                2,
                13,
                0,
                15,
                6,
                12,
                10,
                9,
                13,
                0,
                15,
                3,
                3,
                5,
                5,
                6,
                8,
                11
            ];
            exports.substitute = function substitute(inL, inR) {
                var out = 0;
                for(var i = 0; i < 4; i++){
                    var b = inL >>> 18 - i * 6 & 63;
                    var sb = sTable[i * 64 + b];
                    out <<= 4;
                    out |= sb;
                }
                for(var i = 0; i < 4; i++){
                    var b = inR >>> 18 - i * 6 & 63;
                    var sb = sTable[4 * 64 + i * 64 + b];
                    out <<= 4;
                    out |= sb;
                }
                return out >>> 0;
            };
            var permuteTable = [
                16,
                25,
                12,
                11,
                3,
                20,
                4,
                15,
                31,
                17,
                9,
                6,
                27,
                14,
                1,
                22,
                30,
                24,
                8,
                18,
                0,
                5,
                29,
                23,
                13,
                19,
                2,
                26,
                10,
                21,
                28,
                7
            ];
            exports.permute = function permute(num) {
                var out = 0;
                for(var i = 0; i < permuteTable.length; i++){
                    out <<= 1;
                    out |= num >>> permuteTable[i] & 1;
                }
                return out >>> 0;
            };
            exports.padSplit = function padSplit(num, size, group) {
                var str = num.toString(2);
                while(str.length < size)str = "0" + str;
                var out = [];
                for(var i = 0; i < size; i += group)out.push(str.slice(i, i + group));
                return out.join(" ");
            };
        }
    });
    // node_modules/minimalistic-assert/index.js
    var require_minimalistic_assert = __commonJS({
        "node_modules/minimalistic-assert/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = assert;
            function assert(val, msg) {
                if (!val) throw new Error(msg || "Assertion failed");
            }
            assert.equal = function assertEqual(l, r, msg) {
                if (l != r) throw new Error(msg || "Assertion failed: " + l + " != " + r);
            };
        }
    });
    // node_modules/des.js/lib/des/cipher.js
    var require_cipher = __commonJS({
        "node_modules/des.js/lib/des/cipher.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assert = require_minimalistic_assert();
            function Cipher(options) {
                this.options = options;
                this.type = this.options.type;
                this.blockSize = 8;
                this._init();
                this.buffer = new Array(this.blockSize);
                this.bufferOff = 0;
                this.padding = options.padding !== false;
            }
            module.exports = Cipher;
            Cipher.prototype._init = function _init() {};
            Cipher.prototype.update = function update(data) {
                if (data.length === 0) return [];
                if (this.type === "decrypt") return this._updateDecrypt(data);
                else return this._updateEncrypt(data);
            };
            Cipher.prototype._buffer = function _buffer(data, off) {
                var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);
                for(var i = 0; i < min; i++)this.buffer[this.bufferOff + i] = data[off + i];
                this.bufferOff += min;
                return min;
            };
            Cipher.prototype._flushBuffer = function _flushBuffer(out, off) {
                this._update(this.buffer, 0, out, off);
                this.bufferOff = 0;
                return this.blockSize;
            };
            Cipher.prototype._updateEncrypt = function _updateEncrypt(data) {
                var inputOff = 0;
                var outputOff = 0;
                var count = (this.bufferOff + data.length) / this.blockSize | 0;
                var out = new Array(count * this.blockSize);
                if (this.bufferOff !== 0) {
                    inputOff += this._buffer(data, inputOff);
                    if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff);
                }
                var max = data.length - (data.length - inputOff) % this.blockSize;
                for(; inputOff < max; inputOff += this.blockSize){
                    this._update(data, inputOff, out, outputOff);
                    outputOff += this.blockSize;
                }
                for(; inputOff < data.length; inputOff++, this.bufferOff++)this.buffer[this.bufferOff] = data[inputOff];
                return out;
            };
            Cipher.prototype._updateDecrypt = function _updateDecrypt(data) {
                var inputOff = 0;
                var outputOff = 0;
                var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;
                var out = new Array(count * this.blockSize);
                for(; count > 0; count--){
                    inputOff += this._buffer(data, inputOff);
                    outputOff += this._flushBuffer(out, outputOff);
                }
                inputOff += this._buffer(data, inputOff);
                return out;
            };
            Cipher.prototype["final"] = function final(buffer) {
                var first;
                if (buffer) first = this.update(buffer);
                var last;
                if (this.type === "encrypt") last = this._finalEncrypt();
                else last = this._finalDecrypt();
                if (first) return first.concat(last);
                else return last;
            };
            Cipher.prototype._pad = function _pad(buffer, off) {
                if (off === 0) return false;
                while(off < buffer.length)buffer[off++] = 0;
                return true;
            };
            Cipher.prototype._finalEncrypt = function _finalEncrypt() {
                if (!this._pad(this.buffer, this.bufferOff)) return [];
                var out = new Array(this.blockSize);
                this._update(this.buffer, 0, out, 0);
                return out;
            };
            Cipher.prototype._unpad = function _unpad(buffer) {
                return buffer;
            };
            Cipher.prototype._finalDecrypt = function _finalDecrypt() {
                assert.equal(this.bufferOff, this.blockSize, "Not enough data to decrypt");
                var out = new Array(this.blockSize);
                this._flushBuffer(out, 0);
                return this._unpad(out);
            };
        }
    });
    // node_modules/des.js/lib/des/des.js
    var require_des = __commonJS({
        "node_modules/des.js/lib/des/des.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assert = require_minimalistic_assert();
            var inherits = require_inherits_browser();
            var utils = require_utils2();
            var Cipher = require_cipher();
            function DESState() {
                this.tmp = new Array(2);
                this.keys = null;
            }
            function DES(options) {
                Cipher.call(this, options);
                var state = new DESState();
                this._desState = state;
                this.deriveKeys(state, options.key);
            }
            inherits(DES, Cipher);
            module.exports = DES;
            DES.create = function create(options) {
                return new DES(options);
            };
            var shiftTable = [
                1,
                1,
                2,
                2,
                2,
                2,
                2,
                2,
                1,
                2,
                2,
                2,
                2,
                2,
                2,
                1
            ];
            DES.prototype.deriveKeys = function deriveKeys(state, key) {
                state.keys = new Array(16 * 2);
                assert.equal(key.length, this.blockSize, "Invalid key length");
                var kL = utils.readUInt32BE(key, 0);
                var kR = utils.readUInt32BE(key, 4);
                utils.pc1(kL, kR, state.tmp, 0);
                kL = state.tmp[0];
                kR = state.tmp[1];
                for(var i = 0; i < state.keys.length; i += 2){
                    var shift = shiftTable[i >>> 1];
                    kL = utils.r28shl(kL, shift);
                    kR = utils.r28shl(kR, shift);
                    utils.pc2(kL, kR, state.keys, i);
                }
            };
            DES.prototype._update = function _update(inp, inOff, out, outOff) {
                var state = this._desState;
                var l = utils.readUInt32BE(inp, inOff);
                var r = utils.readUInt32BE(inp, inOff + 4);
                utils.ip(l, r, state.tmp, 0);
                l = state.tmp[0];
                r = state.tmp[1];
                if (this.type === "encrypt") this._encrypt(state, l, r, state.tmp, 0);
                else this._decrypt(state, l, r, state.tmp, 0);
                l = state.tmp[0];
                r = state.tmp[1];
                utils.writeUInt32BE(out, l, outOff);
                utils.writeUInt32BE(out, r, outOff + 4);
            };
            DES.prototype._pad = function _pad(buffer, off) {
                if (this.padding === false) {
                    return false;
                }
                var value = buffer.length - off;
                for(var i = off; i < buffer.length; i++)buffer[i] = value;
                return true;
            };
            DES.prototype._unpad = function _unpad(buffer) {
                if (this.padding === false) {
                    return buffer;
                }
                var pad = buffer[buffer.length - 1];
                for(var i = buffer.length - pad; i < buffer.length; i++)assert.equal(buffer[i], pad);
                return buffer.slice(0, buffer.length - pad);
            };
            DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {
                var l = lStart;
                var r = rStart;
                for(var i = 0; i < state.keys.length; i += 2){
                    var keyL = state.keys[i];
                    var keyR = state.keys[i + 1];
                    utils.expand(r, state.tmp, 0);
                    keyL ^= state.tmp[0];
                    keyR ^= state.tmp[1];
                    var s = utils.substitute(keyL, keyR);
                    var f = utils.permute(s);
                    var t = r;
                    r = (l ^ f) >>> 0;
                    l = t;
                }
                utils.rip(r, l, out, off);
            };
            DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {
                var l = rStart;
                var r = lStart;
                for(var i = state.keys.length - 2; i >= 0; i -= 2){
                    var keyL = state.keys[i];
                    var keyR = state.keys[i + 1];
                    utils.expand(l, state.tmp, 0);
                    keyL ^= state.tmp[0];
                    keyR ^= state.tmp[1];
                    var s = utils.substitute(keyL, keyR);
                    var f = utils.permute(s);
                    var t = l;
                    l = (r ^ f) >>> 0;
                    r = t;
                }
                utils.rip(l, r, out, off);
            };
        }
    });
    // node_modules/des.js/lib/des/cbc.js
    var require_cbc = __commonJS({
        "node_modules/des.js/lib/des/cbc.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assert = require_minimalistic_assert();
            var inherits = require_inherits_browser();
            var proto = {};
            function CBCState(iv) {
                assert.equal(iv.length, 8, "Invalid IV length");
                this.iv = new Array(8);
                for(var i = 0; i < this.iv.length; i++)this.iv[i] = iv[i];
            }
            function instantiate(Base) {
                function CBC(options) {
                    Base.call(this, options);
                    this._cbcInit();
                }
                inherits(CBC, Base);
                var keys = Object.keys(proto);
                for(var i = 0; i < keys.length; i++){
                    var key = keys[i];
                    CBC.prototype[key] = proto[key];
                }
                CBC.create = function create(options) {
                    return new CBC(options);
                };
                return CBC;
            }
            exports.instantiate = instantiate;
            proto._cbcInit = function _cbcInit() {
                var state = new CBCState(this.options.iv);
                this._cbcState = state;
            };
            proto._update = function _update(inp, inOff, out, outOff) {
                var state = this._cbcState;
                var superProto = this.constructor.super_.prototype;
                var iv = state.iv;
                if (this.type === "encrypt") {
                    for(var i = 0; i < this.blockSize; i++)iv[i] ^= inp[inOff + i];
                    superProto._update.call(this, iv, 0, out, outOff);
                    for(var i = 0; i < this.blockSize; i++)iv[i] = out[outOff + i];
                } else {
                    superProto._update.call(this, inp, inOff, out, outOff);
                    for(var i = 0; i < this.blockSize; i++)out[outOff + i] ^= iv[i];
                    for(var i = 0; i < this.blockSize; i++)iv[i] = inp[inOff + i];
                }
            };
        }
    });
    // node_modules/des.js/lib/des/ede.js
    var require_ede = __commonJS({
        "node_modules/des.js/lib/des/ede.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assert = require_minimalistic_assert();
            var inherits = require_inherits_browser();
            var Cipher = require_cipher();
            var DES = require_des();
            function EDEState(type, key) {
                assert.equal(key.length, 24, "Invalid key length");
                var k1 = key.slice(0, 8);
                var k2 = key.slice(8, 16);
                var k3 = key.slice(16, 24);
                if (type === "encrypt") {
                    this.ciphers = [
                        DES.create({
                            type: "encrypt",
                            key: k1
                        }),
                        DES.create({
                            type: "decrypt",
                            key: k2
                        }),
                        DES.create({
                            type: "encrypt",
                            key: k3
                        })
                    ];
                } else {
                    this.ciphers = [
                        DES.create({
                            type: "decrypt",
                            key: k3
                        }),
                        DES.create({
                            type: "encrypt",
                            key: k2
                        }),
                        DES.create({
                            type: "decrypt",
                            key: k1
                        })
                    ];
                }
            }
            function EDE(options) {
                Cipher.call(this, options);
                var state = new EDEState(this.type, this.options.key);
                this._edeState = state;
            }
            inherits(EDE, Cipher);
            module.exports = EDE;
            EDE.create = function create(options) {
                return new EDE(options);
            };
            EDE.prototype._update = function _update(inp, inOff, out, outOff) {
                var state = this._edeState;
                state.ciphers[0]._update(inp, inOff, out, outOff);
                state.ciphers[1]._update(out, outOff, out, outOff);
                state.ciphers[2]._update(out, outOff, out, outOff);
            };
            EDE.prototype._pad = DES.prototype._pad;
            EDE.prototype._unpad = DES.prototype._unpad;
        }
    });
    // node_modules/des.js/lib/des.js
    var require_des2 = __commonJS({
        "node_modules/des.js/lib/des.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.utils = require_utils2();
            exports.Cipher = require_cipher();
            exports.DES = require_des();
            exports.CBC = require_cbc();
            exports.EDE = require_ede();
        }
    });
    // node_modules/browserify-des/index.js
    var require_browserify_des = __commonJS({
        "node_modules/browserify-des/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var CipherBase = require_cipher_base();
            var des = require_des2();
            var inherits = require_inherits_browser();
            var Buffer3 = require_safe_buffer().Buffer;
            var modes = {
                "des-ede3-cbc": des.CBC.instantiate(des.EDE),
                "des-ede3": des.EDE,
                "des-ede-cbc": des.CBC.instantiate(des.EDE),
                "des-ede": des.EDE,
                "des-cbc": des.CBC.instantiate(des.DES),
                "des-ecb": des.DES
            };
            modes.des = modes["des-cbc"];
            modes.des3 = modes["des-ede3-cbc"];
            module.exports = DES;
            inherits(DES, CipherBase);
            function DES(opts) {
                CipherBase.call(this);
                var modeName = opts.mode.toLowerCase();
                var mode = modes[modeName];
                var type;
                if (opts.decrypt) {
                    type = "decrypt";
                } else {
                    type = "encrypt";
                }
                var key = opts.key;
                if (!Buffer3.isBuffer(key)) {
                    key = Buffer3.from(key);
                }
                if (modeName === "des-ede" || modeName === "des-ede-cbc") {
                    key = Buffer3.concat([
                        key,
                        key.slice(0, 8)
                    ]);
                }
                var iv = opts.iv;
                if (!Buffer3.isBuffer(iv)) {
                    iv = Buffer3.from(iv);
                }
                this._des = mode.create({
                    key: key,
                    iv: iv,
                    type: type
                });
            }
            DES.prototype._update = function(data) {
                return Buffer3.from(this._des.update(data));
            };
            DES.prototype._final = function() {
                return Buffer3.from(this._des["final"]());
            };
        }
    });
    // node_modules/browserify-aes/modes/ecb.js
    var require_ecb = __commonJS({
        "node_modules/browserify-aes/modes/ecb.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.encrypt = function(self2, block) {
                return self2._cipher.encryptBlock(block);
            };
            exports.decrypt = function(self2, block) {
                return self2._cipher.decryptBlock(block);
            };
        }
    });
    // node_modules/buffer-xor/index.js
    var require_buffer_xor = __commonJS({
        "node_modules/buffer-xor/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function xor(a, b) {
                var length = Math.min(a.length, b.length);
                var buffer = new import_buffer.Buffer(length);
                for(var i = 0; i < length; ++i){
                    buffer[i] = a[i] ^ b[i];
                }
                return buffer;
            };
        }
    });
    // node_modules/browserify-aes/modes/cbc.js
    var require_cbc2 = __commonJS({
        "node_modules/browserify-aes/modes/cbc.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var xor = require_buffer_xor();
            exports.encrypt = function(self2, block) {
                var data = xor(block, self2._prev);
                self2._prev = self2._cipher.encryptBlock(data);
                return self2._prev;
            };
            exports.decrypt = function(self2, block) {
                var pad = self2._prev;
                self2._prev = block;
                var out = self2._cipher.decryptBlock(block);
                return xor(out, pad);
            };
        }
    });
    // node_modules/browserify-aes/modes/cfb.js
    var require_cfb = __commonJS({
        "node_modules/browserify-aes/modes/cfb.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            var xor = require_buffer_xor();
            function encryptStart(self2, data, decrypt4) {
                var len = data.length;
                var out = xor(data, self2._cache);
                self2._cache = self2._cache.slice(len);
                self2._prev = Buffer3.concat([
                    self2._prev,
                    decrypt4 ? data : out
                ]);
                return out;
            }
            exports.encrypt = function(self2, data, decrypt4) {
                var out = Buffer3.allocUnsafe(0);
                var len;
                while(data.length){
                    if (self2._cache.length === 0) {
                        self2._cache = self2._cipher.encryptBlock(self2._prev);
                        self2._prev = Buffer3.allocUnsafe(0);
                    }
                    if (self2._cache.length <= data.length) {
                        len = self2._cache.length;
                        out = Buffer3.concat([
                            out,
                            encryptStart(self2, data.slice(0, len), decrypt4)
                        ]);
                        data = data.slice(len);
                    } else {
                        out = Buffer3.concat([
                            out,
                            encryptStart(self2, data, decrypt4)
                        ]);
                        break;
                    }
                }
                return out;
            };
        }
    });
    // node_modules/browserify-aes/modes/cfb8.js
    var require_cfb8 = __commonJS({
        "node_modules/browserify-aes/modes/cfb8.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            function encryptByte(self2, byteParam, decrypt4) {
                var pad = self2._cipher.encryptBlock(self2._prev);
                var out = pad[0] ^ byteParam;
                self2._prev = Buffer3.concat([
                    self2._prev.slice(1),
                    Buffer3.from([
                        decrypt4 ? byteParam : out
                    ])
                ]);
                return out;
            }
            exports.encrypt = function(self2, chunk, decrypt4) {
                var len = chunk.length;
                var out = Buffer3.allocUnsafe(len);
                var i = -1;
                while(++i < len){
                    out[i] = encryptByte(self2, chunk[i], decrypt4);
                }
                return out;
            };
        }
    });
    // node_modules/browserify-aes/modes/cfb1.js
    var require_cfb1 = __commonJS({
        "node_modules/browserify-aes/modes/cfb1.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            function encryptByte(self2, byteParam, decrypt4) {
                var pad;
                var i = -1;
                var len = 8;
                var out = 0;
                var bit, value;
                while(++i < len){
                    pad = self2._cipher.encryptBlock(self2._prev);
                    bit = byteParam & 1 << 7 - i ? 128 : 0;
                    value = pad[0] ^ bit;
                    out += (value & 128) >> i % 8;
                    self2._prev = shiftIn(self2._prev, decrypt4 ? bit : value);
                }
                return out;
            }
            function shiftIn(buffer, value) {
                var len = buffer.length;
                var i = -1;
                var out = Buffer3.allocUnsafe(buffer.length);
                buffer = Buffer3.concat([
                    buffer,
                    Buffer3.from([
                        value
                    ])
                ]);
                while(++i < len){
                    out[i] = buffer[i] << 1 | buffer[i + 1] >> 7;
                }
                return out;
            }
            exports.encrypt = function(self2, chunk, decrypt4) {
                var len = chunk.length;
                var out = Buffer3.allocUnsafe(len);
                var i = -1;
                while(++i < len){
                    out[i] = encryptByte(self2, chunk[i], decrypt4);
                }
                return out;
            };
        }
    });
    // node_modules/browserify-aes/modes/ofb.js
    var require_ofb = __commonJS({
        "node_modules/browserify-aes/modes/ofb.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var xor = require_buffer_xor();
            function getBlock(self2) {
                self2._prev = self2._cipher.encryptBlock(self2._prev);
                return self2._prev;
            }
            exports.encrypt = function(self2, chunk) {
                while(self2._cache.length < chunk.length){
                    self2._cache = import_buffer.Buffer.concat([
                        self2._cache,
                        getBlock(self2)
                    ]);
                }
                var pad = self2._cache.slice(0, chunk.length);
                self2._cache = self2._cache.slice(chunk.length);
                return xor(chunk, pad);
            };
        }
    });
    // node_modules/browserify-aes/incr32.js
    var require_incr32 = __commonJS({
        "node_modules/browserify-aes/incr32.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function incr32(iv) {
                var len = iv.length;
                var item;
                while(len--){
                    item = iv.readUInt8(len);
                    if (item === 255) {
                        iv.writeUInt8(0, len);
                    } else {
                        item++;
                        iv.writeUInt8(item, len);
                        break;
                    }
                }
            }
            module.exports = incr32;
        }
    });
    // node_modules/browserify-aes/modes/ctr.js
    var require_ctr = __commonJS({
        "node_modules/browserify-aes/modes/ctr.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var xor = require_buffer_xor();
            var Buffer3 = require_safe_buffer().Buffer;
            var incr32 = require_incr32();
            function getBlock(self2) {
                var out = self2._cipher.encryptBlockRaw(self2._prev);
                incr32(self2._prev);
                return out;
            }
            var blockSize = 16;
            exports.encrypt = function(self2, chunk) {
                var chunkNum = Math.ceil(chunk.length / blockSize);
                var start = self2._cache.length;
                self2._cache = Buffer3.concat([
                    self2._cache,
                    Buffer3.allocUnsafe(chunkNum * blockSize)
                ]);
                for(var i = 0; i < chunkNum; i++){
                    var out = getBlock(self2);
                    var offset = start + i * blockSize;
                    self2._cache.writeUInt32BE(out[0], offset + 0);
                    self2._cache.writeUInt32BE(out[1], offset + 4);
                    self2._cache.writeUInt32BE(out[2], offset + 8);
                    self2._cache.writeUInt32BE(out[3], offset + 12);
                }
                var pad = self2._cache.slice(0, chunk.length);
                self2._cache = self2._cache.slice(chunk.length);
                return xor(chunk, pad);
            };
        }
    });
    // node_modules/browserify-aes/modes/list.json
    var require_list = __commonJS({
        "node_modules/browserify-aes/modes/list.json": function(exports, module) {
            module.exports = {
                "aes-128-ecb": {
                    cipher: "AES",
                    key: 128,
                    iv: 0,
                    mode: "ECB",
                    type: "block"
                },
                "aes-192-ecb": {
                    cipher: "AES",
                    key: 192,
                    iv: 0,
                    mode: "ECB",
                    type: "block"
                },
                "aes-256-ecb": {
                    cipher: "AES",
                    key: 256,
                    iv: 0,
                    mode: "ECB",
                    type: "block"
                },
                "aes-128-cbc": {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "CBC",
                    type: "block"
                },
                "aes-192-cbc": {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "CBC",
                    type: "block"
                },
                "aes-256-cbc": {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "CBC",
                    type: "block"
                },
                aes128: {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "CBC",
                    type: "block"
                },
                aes192: {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "CBC",
                    type: "block"
                },
                aes256: {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "CBC",
                    type: "block"
                },
                "aes-128-cfb": {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "CFB",
                    type: "stream"
                },
                "aes-192-cfb": {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "CFB",
                    type: "stream"
                },
                "aes-256-cfb": {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "CFB",
                    type: "stream"
                },
                "aes-128-cfb8": {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "CFB8",
                    type: "stream"
                },
                "aes-192-cfb8": {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "CFB8",
                    type: "stream"
                },
                "aes-256-cfb8": {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "CFB8",
                    type: "stream"
                },
                "aes-128-cfb1": {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "CFB1",
                    type: "stream"
                },
                "aes-192-cfb1": {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "CFB1",
                    type: "stream"
                },
                "aes-256-cfb1": {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "CFB1",
                    type: "stream"
                },
                "aes-128-ofb": {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "OFB",
                    type: "stream"
                },
                "aes-192-ofb": {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "OFB",
                    type: "stream"
                },
                "aes-256-ofb": {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "OFB",
                    type: "stream"
                },
                "aes-128-ctr": {
                    cipher: "AES",
                    key: 128,
                    iv: 16,
                    mode: "CTR",
                    type: "stream"
                },
                "aes-192-ctr": {
                    cipher: "AES",
                    key: 192,
                    iv: 16,
                    mode: "CTR",
                    type: "stream"
                },
                "aes-256-ctr": {
                    cipher: "AES",
                    key: 256,
                    iv: 16,
                    mode: "CTR",
                    type: "stream"
                },
                "aes-128-gcm": {
                    cipher: "AES",
                    key: 128,
                    iv: 12,
                    mode: "GCM",
                    type: "auth"
                },
                "aes-192-gcm": {
                    cipher: "AES",
                    key: 192,
                    iv: 12,
                    mode: "GCM",
                    type: "auth"
                },
                "aes-256-gcm": {
                    cipher: "AES",
                    key: 256,
                    iv: 12,
                    mode: "GCM",
                    type: "auth"
                }
            };
        }
    });
    // node_modules/browserify-aes/modes/index.js
    var require_modes = __commonJS({
        "node_modules/browserify-aes/modes/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var modeModules = {
                ECB: require_ecb(),
                CBC: require_cbc2(),
                CFB: require_cfb(),
                CFB8: require_cfb8(),
                CFB1: require_cfb1(),
                OFB: require_ofb(),
                CTR: require_ctr(),
                GCM: require_ctr()
            };
            var modes = require_list();
            for(key in modes){
                modes[key].module = modeModules[modes[key].mode];
            }
            var key;
            module.exports = modes;
        }
    });
    // node_modules/browserify-aes/aes.js
    var require_aes = __commonJS({
        "node_modules/browserify-aes/aes.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            function asUInt32Array(buf) {
                if (!Buffer3.isBuffer(buf)) buf = Buffer3.from(buf);
                var len = buf.length / 4 | 0;
                var out = new Array(len);
                for(var i = 0; i < len; i++){
                    out[i] = buf.readUInt32BE(i * 4);
                }
                return out;
            }
            function scrubVec(v) {
                for(var i = 0; i < v.length; v++){
                    v[i] = 0;
                }
            }
            function cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) {
                var SUB_MIX0 = SUB_MIX[0];
                var SUB_MIX1 = SUB_MIX[1];
                var SUB_MIX2 = SUB_MIX[2];
                var SUB_MIX3 = SUB_MIX[3];
                var s0 = M[0] ^ keySchedule[0];
                var s1 = M[1] ^ keySchedule[1];
                var s2 = M[2] ^ keySchedule[2];
                var s3 = M[3] ^ keySchedule[3];
                var t0, t1, t2, t3;
                var ksRow = 4;
                for(var round = 1; round < nRounds; round++){
                    t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[s1 >>> 16 & 255] ^ SUB_MIX2[s2 >>> 8 & 255] ^ SUB_MIX3[s3 & 255] ^ keySchedule[ksRow++];
                    t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[s2 >>> 16 & 255] ^ SUB_MIX2[s3 >>> 8 & 255] ^ SUB_MIX3[s0 & 255] ^ keySchedule[ksRow++];
                    t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[s3 >>> 16 & 255] ^ SUB_MIX2[s0 >>> 8 & 255] ^ SUB_MIX3[s1 & 255] ^ keySchedule[ksRow++];
                    t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[s0 >>> 16 & 255] ^ SUB_MIX2[s1 >>> 8 & 255] ^ SUB_MIX3[s2 & 255] ^ keySchedule[ksRow++];
                    s0 = t0;
                    s1 = t1;
                    s2 = t2;
                    s3 = t3;
                }
                t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 255] << 16 | SBOX[s2 >>> 8 & 255] << 8 | SBOX[s3 & 255]) ^ keySchedule[ksRow++];
                t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 255] << 16 | SBOX[s3 >>> 8 & 255] << 8 | SBOX[s0 & 255]) ^ keySchedule[ksRow++];
                t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 255] << 16 | SBOX[s0 >>> 8 & 255] << 8 | SBOX[s1 & 255]) ^ keySchedule[ksRow++];
                t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 255] << 16 | SBOX[s1 >>> 8 & 255] << 8 | SBOX[s2 & 255]) ^ keySchedule[ksRow++];
                t0 = t0 >>> 0;
                t1 = t1 >>> 0;
                t2 = t2 >>> 0;
                t3 = t3 >>> 0;
                return [
                    t0,
                    t1,
                    t2,
                    t3
                ];
            }
            var RCON = [
                0,
                1,
                2,
                4,
                8,
                16,
                32,
                64,
                128,
                27,
                54
            ];
            var G = function() {
                var d = new Array(256);
                for(var j = 0; j < 256; j++){
                    if (j < 128) {
                        d[j] = j << 1;
                    } else {
                        d[j] = j << 1 ^ 283;
                    }
                }
                var SBOX = [];
                var INV_SBOX = [];
                var SUB_MIX = [
                    [],
                    [],
                    [],
                    []
                ];
                var INV_SUB_MIX = [
                    [],
                    [],
                    [],
                    []
                ];
                var x = 0;
                var xi = 0;
                for(var i = 0; i < 256; ++i){
                    var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;
                    sx = sx >>> 8 ^ sx & 255 ^ 99;
                    SBOX[x] = sx;
                    INV_SBOX[sx] = x;
                    var x2 = d[x];
                    var x4 = d[x2];
                    var x8 = d[x4];
                    var t = d[sx] * 257 ^ sx * 16843008;
                    SUB_MIX[0][x] = t << 24 | t >>> 8;
                    SUB_MIX[1][x] = t << 16 | t >>> 16;
                    SUB_MIX[2][x] = t << 8 | t >>> 24;
                    SUB_MIX[3][x] = t;
                    t = x8 * 16843009 ^ x4 * 65537 ^ x2 * 257 ^ x * 16843008;
                    INV_SUB_MIX[0][sx] = t << 24 | t >>> 8;
                    INV_SUB_MIX[1][sx] = t << 16 | t >>> 16;
                    INV_SUB_MIX[2][sx] = t << 8 | t >>> 24;
                    INV_SUB_MIX[3][sx] = t;
                    if (x === 0) {
                        x = xi = 1;
                    } else {
                        x = x2 ^ d[d[d[x8 ^ x2]]];
                        xi ^= d[d[xi]];
                    }
                }
                return {
                    SBOX: SBOX,
                    INV_SBOX: INV_SBOX,
                    SUB_MIX: SUB_MIX,
                    INV_SUB_MIX: INV_SUB_MIX
                };
            }();
            function AES(key) {
                this._key = asUInt32Array(key);
                this._reset();
            }
            AES.blockSize = 4 * 4;
            AES.keySize = 256 / 8;
            AES.prototype.blockSize = AES.blockSize;
            AES.prototype.keySize = AES.keySize;
            AES.prototype._reset = function() {
                var keyWords = this._key;
                var keySize = keyWords.length;
                var nRounds = keySize + 6;
                var ksRows = (nRounds + 1) * 4;
                var keySchedule = [];
                for(var k = 0; k < keySize; k++){
                    keySchedule[k] = keyWords[k];
                }
                for(k = keySize; k < ksRows; k++){
                    var t = keySchedule[k - 1];
                    if (k % keySize === 0) {
                        t = t << 8 | t >>> 24;
                        t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 255] << 16 | G.SBOX[t >>> 8 & 255] << 8 | G.SBOX[t & 255];
                        t ^= RCON[k / keySize | 0] << 24;
                    } else if (keySize > 6 && k % keySize === 4) {
                        t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 255] << 16 | G.SBOX[t >>> 8 & 255] << 8 | G.SBOX[t & 255];
                    }
                    keySchedule[k] = keySchedule[k - keySize] ^ t;
                }
                var invKeySchedule = [];
                for(var ik = 0; ik < ksRows; ik++){
                    var ksR = ksRows - ik;
                    var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)];
                    if (ik < 4 || ksR <= 4) {
                        invKeySchedule[ik] = tt;
                    } else {
                        invKeySchedule[ik] = G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[tt >>> 16 & 255]] ^ G.INV_SUB_MIX[2][G.SBOX[tt >>> 8 & 255]] ^ G.INV_SUB_MIX[3][G.SBOX[tt & 255]];
                    }
                }
                this._nRounds = nRounds;
                this._keySchedule = keySchedule;
                this._invKeySchedule = invKeySchedule;
            };
            AES.prototype.encryptBlockRaw = function(M) {
                M = asUInt32Array(M);
                return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds);
            };
            AES.prototype.encryptBlock = function(M) {
                var out = this.encryptBlockRaw(M);
                var buf = Buffer3.allocUnsafe(16);
                buf.writeUInt32BE(out[0], 0);
                buf.writeUInt32BE(out[1], 4);
                buf.writeUInt32BE(out[2], 8);
                buf.writeUInt32BE(out[3], 12);
                return buf;
            };
            AES.prototype.decryptBlock = function(M) {
                M = asUInt32Array(M);
                var m1 = M[1];
                M[1] = M[3];
                M[3] = m1;
                var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds);
                var buf = Buffer3.allocUnsafe(16);
                buf.writeUInt32BE(out[0], 0);
                buf.writeUInt32BE(out[3], 4);
                buf.writeUInt32BE(out[2], 8);
                buf.writeUInt32BE(out[1], 12);
                return buf;
            };
            AES.prototype.scrub = function() {
                scrubVec(this._keySchedule);
                scrubVec(this._invKeySchedule);
                scrubVec(this._key);
            };
            module.exports.AES = AES;
        }
    });
    // node_modules/browserify-aes/ghash.js
    var require_ghash = __commonJS({
        "node_modules/browserify-aes/ghash.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            var ZEROES = Buffer3.alloc(16, 0);
            function toArray(buf) {
                return [
                    buf.readUInt32BE(0),
                    buf.readUInt32BE(4),
                    buf.readUInt32BE(8),
                    buf.readUInt32BE(12)
                ];
            }
            function fromArray(out) {
                var buf = Buffer3.allocUnsafe(16);
                buf.writeUInt32BE(out[0] >>> 0, 0);
                buf.writeUInt32BE(out[1] >>> 0, 4);
                buf.writeUInt32BE(out[2] >>> 0, 8);
                buf.writeUInt32BE(out[3] >>> 0, 12);
                return buf;
            }
            function GHASH(key) {
                this.h = key;
                this.state = Buffer3.alloc(16, 0);
                this.cache = Buffer3.allocUnsafe(0);
            }
            GHASH.prototype.ghash = function(block) {
                var i = -1;
                while(++i < block.length){
                    this.state[i] ^= block[i];
                }
                this._multiply();
            };
            GHASH.prototype._multiply = function() {
                var Vi = toArray(this.h);
                var Zi = [
                    0,
                    0,
                    0,
                    0
                ];
                var j, xi, lsbVi;
                var i = -1;
                while(++i < 128){
                    xi = (this.state[~~(i / 8)] & 1 << 7 - i % 8) !== 0;
                    if (xi) {
                        Zi[0] ^= Vi[0];
                        Zi[1] ^= Vi[1];
                        Zi[2] ^= Vi[2];
                        Zi[3] ^= Vi[3];
                    }
                    lsbVi = (Vi[3] & 1) !== 0;
                    for(j = 3; j > 0; j--){
                        Vi[j] = Vi[j] >>> 1 | (Vi[j - 1] & 1) << 31;
                    }
                    Vi[0] = Vi[0] >>> 1;
                    if (lsbVi) {
                        Vi[0] = Vi[0] ^ 225 << 24;
                    }
                }
                this.state = fromArray(Zi);
            };
            GHASH.prototype.update = function(buf) {
                this.cache = Buffer3.concat([
                    this.cache,
                    buf
                ]);
                var chunk;
                while(this.cache.length >= 16){
                    chunk = this.cache.slice(0, 16);
                    this.cache = this.cache.slice(16);
                    this.ghash(chunk);
                }
            };
            GHASH.prototype["final"] = function(abl, bl) {
                if (this.cache.length) {
                    this.ghash(Buffer3.concat([
                        this.cache,
                        ZEROES
                    ], 16));
                }
                this.ghash(fromArray([
                    0,
                    abl,
                    0,
                    bl
                ]));
                return this.state;
            };
            module.exports = GHASH;
        }
    });
    // node_modules/browserify-aes/authCipher.js
    var require_authCipher = __commonJS({
        "node_modules/browserify-aes/authCipher.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var aes = require_aes();
            var Buffer3 = require_safe_buffer().Buffer;
            var Transform = require_cipher_base();
            var inherits = require_inherits_browser();
            var GHASH = require_ghash();
            var xor = require_buffer_xor();
            var incr32 = require_incr32();
            function xorTest(a, b) {
                var out = 0;
                if (a.length !== b.length) out++;
                var len = Math.min(a.length, b.length);
                for(var i = 0; i < len; ++i){
                    out += a[i] ^ b[i];
                }
                return out;
            }
            function calcIv(self2, iv, ck) {
                if (iv.length === 12) {
                    self2._finID = Buffer3.concat([
                        iv,
                        Buffer3.from([
                            0,
                            0,
                            0,
                            1
                        ])
                    ]);
                    return Buffer3.concat([
                        iv,
                        Buffer3.from([
                            0,
                            0,
                            0,
                            2
                        ])
                    ]);
                }
                var ghash = new GHASH(ck);
                var len = iv.length;
                var toPad = len % 16;
                ghash.update(iv);
                if (toPad) {
                    toPad = 16 - toPad;
                    ghash.update(Buffer3.alloc(toPad, 0));
                }
                ghash.update(Buffer3.alloc(8, 0));
                var ivBits = len * 8;
                var tail = Buffer3.alloc(8);
                tail.writeUIntBE(ivBits, 0, 8);
                ghash.update(tail);
                self2._finID = ghash.state;
                var out = Buffer3.from(self2._finID);
                incr32(out);
                return out;
            }
            function StreamCipher(mode, key, iv, decrypt4) {
                Transform.call(this);
                var h = Buffer3.alloc(4, 0);
                this._cipher = new aes.AES(key);
                var ck = this._cipher.encryptBlock(h);
                this._ghash = new GHASH(ck);
                iv = calcIv(this, iv, ck);
                this._prev = Buffer3.from(iv);
                this._cache = Buffer3.allocUnsafe(0);
                this._secCache = Buffer3.allocUnsafe(0);
                this._decrypt = decrypt4;
                this._alen = 0;
                this._len = 0;
                this._mode = mode;
                this._authTag = null;
                this._called = false;
            }
            inherits(StreamCipher, Transform);
            StreamCipher.prototype._update = function(chunk) {
                if (!this._called && this._alen) {
                    var rump = 16 - this._alen % 16;
                    if (rump < 16) {
                        rump = Buffer3.alloc(rump, 0);
                        this._ghash.update(rump);
                    }
                }
                this._called = true;
                var out = this._mode.encrypt(this, chunk);
                if (this._decrypt) {
                    this._ghash.update(chunk);
                } else {
                    this._ghash.update(out);
                }
                this._len += chunk.length;
                return out;
            };
            StreamCipher.prototype._final = function() {
                if (this._decrypt && !this._authTag) throw new Error("Unsupported state or unable to authenticate data");
                var tag2 = xor(this._ghash["final"](this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID));
                if (this._decrypt && xorTest(tag2, this._authTag)) throw new Error("Unsupported state or unable to authenticate data");
                this._authTag = tag2;
                this._cipher.scrub();
            };
            StreamCipher.prototype.getAuthTag = function getAuthTag() {
                if (this._decrypt || !Buffer3.isBuffer(this._authTag)) throw new Error("Attempting to get auth tag in unsupported state");
                return this._authTag;
            };
            StreamCipher.prototype.setAuthTag = function setAuthTag(tag2) {
                if (!this._decrypt) throw new Error("Attempting to set auth tag in unsupported state");
                this._authTag = tag2;
            };
            StreamCipher.prototype.setAAD = function setAAD(buf) {
                if (this._called) throw new Error("Attempting to set AAD in unsupported state");
                this._ghash.update(buf);
                this._alen += buf.length;
            };
            module.exports = StreamCipher;
        }
    });
    // node_modules/browserify-aes/streamCipher.js
    var require_streamCipher = __commonJS({
        "node_modules/browserify-aes/streamCipher.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var aes = require_aes();
            var Buffer3 = require_safe_buffer().Buffer;
            var Transform = require_cipher_base();
            var inherits = require_inherits_browser();
            function StreamCipher(mode, key, iv, decrypt4) {
                Transform.call(this);
                this._cipher = new aes.AES(key);
                this._prev = Buffer3.from(iv);
                this._cache = Buffer3.allocUnsafe(0);
                this._secCache = Buffer3.allocUnsafe(0);
                this._decrypt = decrypt4;
                this._mode = mode;
            }
            inherits(StreamCipher, Transform);
            StreamCipher.prototype._update = function(chunk) {
                return this._mode.encrypt(this, chunk, this._decrypt);
            };
            StreamCipher.prototype._final = function() {
                this._cipher.scrub();
            };
            module.exports = StreamCipher;
        }
    });
    // node_modules/evp_bytestokey/index.js
    var require_evp_bytestokey = __commonJS({
        "node_modules/evp_bytestokey/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer().Buffer;
            var MD5 = require_md5();
            function EVP_BytesToKey(password, salt, keyBits, ivLen) {
                if (!Buffer3.isBuffer(password)) password = Buffer3.from(password, "binary");
                if (salt) {
                    if (!Buffer3.isBuffer(salt)) salt = Buffer3.from(salt, "binary");
                    if (salt.length !== 8) throw new RangeError("salt should be Buffer with 8 byte length");
                }
                var keyLen = keyBits / 8;
                var key = Buffer3.alloc(keyLen);
                var iv = Buffer3.alloc(ivLen || 0);
                var tmp = Buffer3.alloc(0);
                while(keyLen > 0 || ivLen > 0){
                    var hash = new MD5();
                    hash.update(tmp);
                    hash.update(password);
                    if (salt) hash.update(salt);
                    tmp = hash.digest();
                    var used = 0;
                    if (keyLen > 0) {
                        var keyStart = key.length - keyLen;
                        used = Math.min(keyLen, tmp.length);
                        tmp.copy(key, keyStart, 0, used);
                        keyLen -= used;
                    }
                    if (used < tmp.length && ivLen > 0) {
                        var ivStart = iv.length - ivLen;
                        var length = Math.min(ivLen, tmp.length - used);
                        tmp.copy(iv, ivStart, used, used + length);
                        ivLen -= length;
                    }
                }
                tmp.fill(0);
                return {
                    key: key,
                    iv: iv
                };
            }
            module.exports = EVP_BytesToKey;
        }
    });
    // node_modules/browserify-aes/encrypter.js
    var require_encrypter = __commonJS({
        "node_modules/browserify-aes/encrypter.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var MODES = require_modes();
            var AuthCipher = require_authCipher();
            var Buffer3 = require_safe_buffer().Buffer;
            var StreamCipher = require_streamCipher();
            var Transform = require_cipher_base();
            var aes = require_aes();
            var ebtk = require_evp_bytestokey();
            var inherits = require_inherits_browser();
            function Cipher(mode, key, iv) {
                Transform.call(this);
                this._cache = new Splitter();
                this._cipher = new aes.AES(key);
                this._prev = Buffer3.from(iv);
                this._mode = mode;
                this._autopadding = true;
            }
            inherits(Cipher, Transform);
            Cipher.prototype._update = function(data) {
                this._cache.add(data);
                var chunk;
                var thing;
                var out = [];
                while(chunk = this._cache.get()){
                    thing = this._mode.encrypt(this, chunk);
                    out.push(thing);
                }
                return Buffer3.concat(out);
            };
            var PADDING = Buffer3.alloc(16, 16);
            Cipher.prototype._final = function() {
                var chunk = this._cache.flush();
                if (this._autopadding) {
                    chunk = this._mode.encrypt(this, chunk);
                    this._cipher.scrub();
                    return chunk;
                }
                if (!chunk.equals(PADDING)) {
                    this._cipher.scrub();
                    throw new Error("data not multiple of block length");
                }
            };
            Cipher.prototype.setAutoPadding = function(setTo) {
                this._autopadding = !!setTo;
                return this;
            };
            function Splitter() {
                this.cache = Buffer3.allocUnsafe(0);
            }
            Splitter.prototype.add = function(data) {
                this.cache = Buffer3.concat([
                    this.cache,
                    data
                ]);
            };
            Splitter.prototype.get = function() {
                if (this.cache.length > 15) {
                    var out = this.cache.slice(0, 16);
                    this.cache = this.cache.slice(16);
                    return out;
                }
                return null;
            };
            Splitter.prototype.flush = function() {
                var len = 16 - this.cache.length;
                var padBuff = Buffer3.allocUnsafe(len);
                var i = -1;
                while(++i < len){
                    padBuff.writeUInt8(len, i);
                }
                return Buffer3.concat([
                    this.cache,
                    padBuff
                ]);
            };
            function createCipheriv(suite, password, iv) {
                var config = MODES[suite.toLowerCase()];
                if (!config) throw new TypeError("invalid suite type");
                if (typeof password === "string") password = Buffer3.from(password);
                if (password.length !== config.key / 8) throw new TypeError("invalid key length " + password.length);
                if (typeof iv === "string") iv = Buffer3.from(iv);
                if (config.mode !== "GCM" && iv.length !== config.iv) throw new TypeError("invalid iv length " + iv.length);
                if (config.type === "stream") {
                    return new StreamCipher(config.module, password, iv);
                } else if (config.type === "auth") {
                    return new AuthCipher(config.module, password, iv);
                }
                return new Cipher(config.module, password, iv);
            }
            function createCipher(suite, password) {
                var config = MODES[suite.toLowerCase()];
                if (!config) throw new TypeError("invalid suite type");
                var keys = ebtk(password, false, config.key, config.iv);
                return createCipheriv(suite, keys.key, keys.iv);
            }
            exports.createCipheriv = createCipheriv;
            exports.createCipher = createCipher;
        }
    });
    // node_modules/browserify-aes/decrypter.js
    var require_decrypter = __commonJS({
        "node_modules/browserify-aes/decrypter.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var AuthCipher = require_authCipher();
            var Buffer3 = require_safe_buffer().Buffer;
            var MODES = require_modes();
            var StreamCipher = require_streamCipher();
            var Transform = require_cipher_base();
            var aes = require_aes();
            var ebtk = require_evp_bytestokey();
            var inherits = require_inherits_browser();
            function Decipher(mode, key, iv) {
                Transform.call(this);
                this._cache = new Splitter();
                this._last = void 0;
                this._cipher = new aes.AES(key);
                this._prev = Buffer3.from(iv);
                this._mode = mode;
                this._autopadding = true;
            }
            inherits(Decipher, Transform);
            Decipher.prototype._update = function(data) {
                this._cache.add(data);
                var chunk;
                var thing;
                var out = [];
                while(chunk = this._cache.get(this._autopadding)){
                    thing = this._mode.decrypt(this, chunk);
                    out.push(thing);
                }
                return Buffer3.concat(out);
            };
            Decipher.prototype._final = function() {
                var chunk = this._cache.flush();
                if (this._autopadding) {
                    return unpad(this._mode.decrypt(this, chunk));
                } else if (chunk) {
                    throw new Error("data not multiple of block length");
                }
            };
            Decipher.prototype.setAutoPadding = function(setTo) {
                this._autopadding = !!setTo;
                return this;
            };
            function Splitter() {
                this.cache = Buffer3.allocUnsafe(0);
            }
            Splitter.prototype.add = function(data) {
                this.cache = Buffer3.concat([
                    this.cache,
                    data
                ]);
            };
            Splitter.prototype.get = function(autoPadding) {
                var out;
                if (autoPadding) {
                    if (this.cache.length > 16) {
                        out = this.cache.slice(0, 16);
                        this.cache = this.cache.slice(16);
                        return out;
                    }
                } else {
                    if (this.cache.length >= 16) {
                        out = this.cache.slice(0, 16);
                        this.cache = this.cache.slice(16);
                        return out;
                    }
                }
                return null;
            };
            Splitter.prototype.flush = function() {
                if (this.cache.length) return this.cache;
            };
            function unpad(last) {
                var padded = last[15];
                if (padded < 1 || padded > 16) {
                    throw new Error("unable to decrypt data");
                }
                var i = -1;
                while(++i < padded){
                    if (last[i + (16 - padded)] !== padded) {
                        throw new Error("unable to decrypt data");
                    }
                }
                if (padded === 16) return;
                return last.slice(0, 16 - padded);
            }
            function createDecipheriv(suite, password, iv) {
                var config = MODES[suite.toLowerCase()];
                if (!config) throw new TypeError("invalid suite type");
                if (typeof iv === "string") iv = Buffer3.from(iv);
                if (config.mode !== "GCM" && iv.length !== config.iv) throw new TypeError("invalid iv length " + iv.length);
                if (typeof password === "string") password = Buffer3.from(password);
                if (password.length !== config.key / 8) throw new TypeError("invalid key length " + password.length);
                if (config.type === "stream") {
                    return new StreamCipher(config.module, password, iv, true);
                } else if (config.type === "auth") {
                    return new AuthCipher(config.module, password, iv, true);
                }
                return new Decipher(config.module, password, iv);
            }
            function createDecipher(suite, password) {
                var config = MODES[suite.toLowerCase()];
                if (!config) throw new TypeError("invalid suite type");
                var keys = ebtk(password, false, config.key, config.iv);
                return createDecipheriv(suite, keys.key, keys.iv);
            }
            exports.createDecipher = createDecipher;
            exports.createDecipheriv = createDecipheriv;
        }
    });
    // node_modules/browserify-aes/browser.js
    var require_browser9 = __commonJS({
        "node_modules/browserify-aes/browser.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ciphers = require_encrypter();
            var deciphers = require_decrypter();
            var modes = require_list();
            function getCiphers() {
                return Object.keys(modes);
            }
            exports.createCipher = exports.Cipher = ciphers.createCipher;
            exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv;
            exports.createDecipher = exports.Decipher = deciphers.createDecipher;
            exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv;
            exports.listCiphers = exports.getCiphers = getCiphers;
        }
    });
    // node_modules/browserify-des/modes.js
    var require_modes2 = __commonJS({
        "node_modules/browserify-des/modes.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports["des-ecb"] = {
                key: 8,
                iv: 0
            };
            exports["des-cbc"] = exports.des = {
                key: 8,
                iv: 8
            };
            exports["des-ede3-cbc"] = exports.des3 = {
                key: 24,
                iv: 8
            };
            exports["des-ede3"] = {
                key: 24,
                iv: 0
            };
            exports["des-ede-cbc"] = {
                key: 16,
                iv: 8
            };
            exports["des-ede"] = {
                key: 16,
                iv: 0
            };
        }
    });
    // node_modules/browserify-cipher/browser.js
    var require_browser10 = __commonJS({
        "node_modules/browserify-cipher/browser.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var DES = require_browserify_des();
            var aes = require_browser9();
            var aesModes = require_modes();
            var desModes = require_modes2();
            var ebtk = require_evp_bytestokey();
            function createCipher(suite, password) {
                suite = suite.toLowerCase();
                var keyLen, ivLen;
                if (aesModes[suite]) {
                    keyLen = aesModes[suite].key;
                    ivLen = aesModes[suite].iv;
                } else if (desModes[suite]) {
                    keyLen = desModes[suite].key * 8;
                    ivLen = desModes[suite].iv;
                } else {
                    throw new TypeError("invalid suite type");
                }
                var keys = ebtk(password, false, keyLen, ivLen);
                return createCipheriv(suite, keys.key, keys.iv);
            }
            function createDecipher(suite, password) {
                suite = suite.toLowerCase();
                var keyLen, ivLen;
                if (aesModes[suite]) {
                    keyLen = aesModes[suite].key;
                    ivLen = aesModes[suite].iv;
                } else if (desModes[suite]) {
                    keyLen = desModes[suite].key * 8;
                    ivLen = desModes[suite].iv;
                } else {
                    throw new TypeError("invalid suite type");
                }
                var keys = ebtk(password, false, keyLen, ivLen);
                return createDecipheriv(suite, keys.key, keys.iv);
            }
            function createCipheriv(suite, key, iv) {
                suite = suite.toLowerCase();
                if (aesModes[suite]) return aes.createCipheriv(suite, key, iv);
                if (desModes[suite]) return new DES({
                    key: key,
                    iv: iv,
                    mode: suite
                });
                throw new TypeError("invalid suite type");
            }
            function createDecipheriv(suite, key, iv) {
                suite = suite.toLowerCase();
                if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv);
                if (desModes[suite]) return new DES({
                    key: key,
                    iv: iv,
                    mode: suite,
                    decrypt: true
                });
                throw new TypeError("invalid suite type");
            }
            function getCiphers() {
                return Object.keys(desModes).concat(aes.getCiphers());
            }
            exports.createCipher = exports.Cipher = createCipher;
            exports.createCipheriv = exports.Cipheriv = createCipheriv;
            exports.createDecipher = exports.Decipher = createDecipher;
            exports.createDecipheriv = exports.Decipheriv = createDecipheriv;
            exports.listCiphers = exports.getCiphers = getCiphers;
        }
    });
    // node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js
    var require_bn = __commonJS({
        "node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this.strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        return c - 48 & 15;
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this.strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            r += c - 49 + 10;
                        } else if (c >= 17) {
                            r += c - 17 + 10;
                        } else {
                            r += c;
                        }
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this.strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype.strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                BN.prototype.inspect = function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                };
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16);
                };
                BN.prototype.toBuffer = function toBuffer(endian, length) {
                    assert(typeof Buffer3 !== "undefined");
                    return this.toArrayLike(Buffer3, endian, length);
                };
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    this.strip();
                    var littleEndian = endian === "le";
                    var res = new ArrayType(reqLength);
                    var b, i;
                    var q = this.clone();
                    if (!littleEndian) {
                        for(i = 0; i < reqLength - byteLength; i++){
                            res[i] = 0;
                        }
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[reqLength - i - 1] = b;
                        }
                    } else {
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[i] = b;
                        }
                        for(; i < reqLength; i++){
                            res[i] = 0;
                        }
                    }
                    return res;
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this.strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this.strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this.strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this.strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this.strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this.strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                function jumboMulTo(self2, num, out) {
                    var fftm = new FFTM();
                    return fftm.mulp(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out.strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this.strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) < num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this.strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this.strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this.strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q.strip();
                    }
                    a.strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modn = function modn(num) {
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return acc;
                };
                BN.prototype.idivn = function idivn(num) {
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    return this.strip();
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this.strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    return a.umod(this.m)._forceRed(this);
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/miller-rabin/node_modules/bn.js/lib/bn.js
    var require_bn2 = __commonJS({
        "node_modules/miller-rabin/node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this.strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        return c - 48 & 15;
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this.strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            r += c - 49 + 10;
                        } else if (c >= 17) {
                            r += c - 17 + 10;
                        } else {
                            r += c;
                        }
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this.strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype.strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                BN.prototype.inspect = function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                };
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16);
                };
                BN.prototype.toBuffer = function toBuffer(endian, length) {
                    assert(typeof Buffer3 !== "undefined");
                    return this.toArrayLike(Buffer3, endian, length);
                };
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    this.strip();
                    var littleEndian = endian === "le";
                    var res = new ArrayType(reqLength);
                    var b, i;
                    var q = this.clone();
                    if (!littleEndian) {
                        for(i = 0; i < reqLength - byteLength; i++){
                            res[i] = 0;
                        }
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[reqLength - i - 1] = b;
                        }
                    } else {
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[i] = b;
                        }
                        for(; i < reqLength; i++){
                            res[i] = 0;
                        }
                    }
                    return res;
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this.strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this.strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this.strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this.strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this.strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this.strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                function jumboMulTo(self2, num, out) {
                    var fftm = new FFTM();
                    return fftm.mulp(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out.strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this.strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) < num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this.strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this.strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this.strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q.strip();
                    }
                    a.strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modn = function modn(num) {
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return acc;
                };
                BN.prototype.idivn = function idivn(num) {
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    return this.strip();
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this.strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    return a.umod(this.m)._forceRed(this);
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/brorand/index.js
    var require_brorand = __commonJS({
        "node_modules/brorand/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var r;
            module.exports = function rand(len) {
                if (!r) r = new Rand(null);
                return r.generate(len);
            };
            function Rand(rand) {
                this.rand = rand;
            }
            module.exports.Rand = Rand;
            Rand.prototype.generate = function generate(len) {
                return this._rand(len);
            };
            Rand.prototype._rand = function _rand(n) {
                if (this.rand.getBytes) return this.rand.getBytes(n);
                var res = new Uint8Array(n);
                for(var i = 0; i < res.length; i++)res[i] = this.rand.getByte();
                return res;
            };
            if ((typeof self === "undefined" ? "undefined" : _type_of(self)) === "object") {
                if (self.crypto && self.crypto.getRandomValues) {
                    Rand.prototype._rand = function _rand(n) {
                        var arr = new Uint8Array(n);
                        self.crypto.getRandomValues(arr);
                        return arr;
                    };
                } else if (self.msCrypto && self.msCrypto.getRandomValues) {
                    Rand.prototype._rand = function _rand(n) {
                        var arr = new Uint8Array(n);
                        self.msCrypto.getRandomValues(arr);
                        return arr;
                    };
                } else if ((typeof window === "undefined" ? "undefined" : _type_of(window)) === "object") {
                    Rand.prototype._rand = function() {
                        throw new Error("Not implemented yet");
                    };
                }
            } else {
                try {
                    crypto2 = require_crypto_browserify();
                    if (typeof crypto2.randomBytes !== "function") throw new Error("Not supported");
                    Rand.prototype._rand = function _rand(n) {
                        return crypto2.randomBytes(n);
                    };
                } catch (e) {}
            }
            var crypto2;
        }
    });
    // node_modules/miller-rabin/lib/mr.js
    var require_mr = __commonJS({
        "node_modules/miller-rabin/lib/mr.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var bn = require_bn2();
            var brorand = require_brorand();
            function MillerRabin(rand) {
                this.rand = rand || new brorand.Rand();
            }
            module.exports = MillerRabin;
            MillerRabin.create = function create(rand) {
                return new MillerRabin(rand);
            };
            MillerRabin.prototype._randbelow = function _randbelow(n) {
                var len = n.bitLength();
                var min_bytes = Math.ceil(len / 8);
                do var a = new bn(this.rand.generate(min_bytes));
                while (a.cmp(n) >= 0);
                return a;
            };
            MillerRabin.prototype._randrange = function _randrange(start, stop) {
                var size = stop.sub(start);
                return start.add(this._randbelow(size));
            };
            MillerRabin.prototype.test = function test(n, k, cb) {
                var len = n.bitLength();
                var red = bn.mont(n);
                var rone = new bn(1).toRed(red);
                if (!k) k = Math.max(1, len / 48 | 0);
                var n1 = n.subn(1);
                for(var s = 0; !n1.testn(s); s++){}
                var d = n.shrn(s);
                var rn1 = n1.toRed(red);
                var prime = true;
                for(; k > 0; k--){
                    var a = this._randrange(new bn(2), n1);
                    if (cb) cb(a);
                    var x = a.toRed(red).redPow(d);
                    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;
                    for(var i = 1; i < s; i++){
                        x = x.redSqr();
                        if (x.cmp(rone) === 0) return false;
                        if (x.cmp(rn1) === 0) break;
                    }
                    if (i === s) return false;
                }
                return prime;
            };
            MillerRabin.prototype.getDivisor = function getDivisor(n, k) {
                var len = n.bitLength();
                var red = bn.mont(n);
                var rone = new bn(1).toRed(red);
                if (!k) k = Math.max(1, len / 48 | 0);
                var n1 = n.subn(1);
                for(var s = 0; !n1.testn(s); s++){}
                var d = n.shrn(s);
                var rn1 = n1.toRed(red);
                for(; k > 0; k--){
                    var a = this._randrange(new bn(2), n1);
                    var g = n.gcd(a);
                    if (g.cmpn(1) !== 0) return g;
                    var x = a.toRed(red).redPow(d);
                    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;
                    for(var i = 1; i < s; i++){
                        x = x.redSqr();
                        if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n);
                        if (x.cmp(rn1) === 0) break;
                    }
                    if (i === s) {
                        x = x.redSqr();
                        return x.fromRed().subn(1).gcd(n);
                    }
                }
                return false;
            };
        }
    });
    // node_modules/diffie-hellman/lib/generatePrime.js
    var require_generatePrime = __commonJS({
        "node_modules/diffie-hellman/lib/generatePrime.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var randomBytes = require_browser4();
            module.exports = findPrime;
            findPrime.simpleSieve = simpleSieve;
            findPrime.fermatTest = fermatTest;
            var BN = require_bn();
            var TWENTYFOUR = new BN(24);
            var MillerRabin = require_mr();
            var millerRabin = new MillerRabin();
            var ONE = new BN(1);
            var TWO = new BN(2);
            var FIVE = new BN(5);
            var SIXTEEN = new BN(16);
            var EIGHT = new BN(8);
            var TEN = new BN(10);
            var THREE = new BN(3);
            var SEVEN = new BN(7);
            var ELEVEN = new BN(11);
            var FOUR = new BN(4);
            var TWELVE = new BN(12);
            var primes = null;
            function _getPrimes() {
                if (primes !== null) return primes;
                var limit = 1048576;
                var res = [];
                res[0] = 2;
                for(var i = 1, k = 3; k < limit; k += 2){
                    var sqrt = Math.ceil(Math.sqrt(k));
                    for(var j = 0; j < i && res[j] <= sqrt; j++)if (k % res[j] === 0) break;
                    if (i !== j && res[j] <= sqrt) continue;
                    res[i++] = k;
                }
                primes = res;
                return res;
            }
            function simpleSieve(p) {
                var primes2 = _getPrimes();
                for(var i = 0; i < primes2.length; i++)if (p.modn(primes2[i]) === 0) {
                    if (p.cmpn(primes2[i]) === 0) {
                        return true;
                    } else {
                        return false;
                    }
                }
                return true;
            }
            function fermatTest(p) {
                var red = BN.mont(p);
                return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;
            }
            function findPrime(bits, gen) {
                if (bits < 16) {
                    if (gen === 2 || gen === 5) {
                        return new BN([
                            140,
                            123
                        ]);
                    } else {
                        return new BN([
                            140,
                            39
                        ]);
                    }
                }
                gen = new BN(gen);
                var num, n2;
                while(true){
                    num = new BN(randomBytes(Math.ceil(bits / 8)));
                    while(num.bitLength() > bits){
                        num.ishrn(1);
                    }
                    if (num.isEven()) {
                        num.iadd(ONE);
                    }
                    if (!num.testn(1)) {
                        num.iadd(TWO);
                    }
                    if (!gen.cmp(TWO)) {
                        while(num.mod(TWENTYFOUR).cmp(ELEVEN)){
                            num.iadd(FOUR);
                        }
                    } else if (!gen.cmp(FIVE)) {
                        while(num.mod(TEN).cmp(THREE)){
                            num.iadd(FOUR);
                        }
                    }
                    n2 = num.shrn(1);
                    if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) {
                        return num;
                    }
                }
            }
        }
    });
    // node_modules/diffie-hellman/lib/primes.json
    var require_primes = __commonJS({
        "node_modules/diffie-hellman/lib/primes.json": function(exports, module) {
            module.exports = {
                modp1: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"
                },
                modp2: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"
                },
                modp5: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"
                },
                modp14: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"
                },
                modp15: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"
                },
                modp16: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"
                },
                modp17: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"
                },
                modp18: {
                    gen: "02",
                    prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"
                }
            };
        }
    });
    // node_modules/diffie-hellman/lib/dh.js
    var require_dh = __commonJS({
        "node_modules/diffie-hellman/lib/dh.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn();
            var MillerRabin = require_mr();
            var millerRabin = new MillerRabin();
            var TWENTYFOUR = new BN(24);
            var ELEVEN = new BN(11);
            var TEN = new BN(10);
            var THREE = new BN(3);
            var SEVEN = new BN(7);
            var primes = require_generatePrime();
            var randomBytes = require_browser4();
            module.exports = DH;
            function setPublicKey(pub, enc) {
                enc = enc || "utf8";
                if (!import_buffer.Buffer.isBuffer(pub)) {
                    pub = new import_buffer.Buffer(pub, enc);
                }
                this._pub = new BN(pub);
                return this;
            }
            function setPrivateKey(priv, enc) {
                enc = enc || "utf8";
                if (!import_buffer.Buffer.isBuffer(priv)) {
                    priv = new import_buffer.Buffer(priv, enc);
                }
                this._priv = new BN(priv);
                return this;
            }
            var primeCache = {};
            function checkPrime(prime, generator) {
                var gen = generator.toString("hex");
                var hex = [
                    gen,
                    prime.toString(16)
                ].join("_");
                if (hex in primeCache) {
                    return primeCache[hex];
                }
                var error = 0;
                if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) {
                    error += 1;
                    if (gen === "02" || gen === "05") {
                        error += 8;
                    } else {
                        error += 4;
                    }
                    primeCache[hex] = error;
                    return error;
                }
                if (!millerRabin.test(prime.shrn(1))) {
                    error += 2;
                }
                var rem;
                switch(gen){
                    case "02":
                        if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {
                            error += 8;
                        }
                        break;
                    case "05":
                        rem = prime.mod(TEN);
                        if (rem.cmp(THREE) && rem.cmp(SEVEN)) {
                            error += 8;
                        }
                        break;
                    default:
                        error += 4;
                }
                primeCache[hex] = error;
                return error;
            }
            function DH(prime, generator, malleable) {
                this.setGenerator(generator);
                this.__prime = new BN(prime);
                this._prime = BN.mont(this.__prime);
                this._primeLen = prime.length;
                this._pub = void 0;
                this._priv = void 0;
                this._primeCode = void 0;
                if (malleable) {
                    this.setPublicKey = setPublicKey;
                    this.setPrivateKey = setPrivateKey;
                } else {
                    this._primeCode = 8;
                }
            }
            Object.defineProperty(DH.prototype, "verifyError", {
                enumerable: true,
                get: function get() {
                    if (typeof this._primeCode !== "number") {
                        this._primeCode = checkPrime(this.__prime, this.__gen);
                    }
                    return this._primeCode;
                }
            });
            DH.prototype.generateKeys = function() {
                if (!this._priv) {
                    this._priv = new BN(randomBytes(this._primeLen));
                }
                this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();
                return this.getPublicKey();
            };
            DH.prototype.computeSecret = function(other) {
                other = new BN(other);
                other = other.toRed(this._prime);
                var secret = other.redPow(this._priv).fromRed();
                var out = new import_buffer.Buffer(secret.toArray());
                var prime = this.getPrime();
                if (out.length < prime.length) {
                    var front = new import_buffer.Buffer(prime.length - out.length);
                    front.fill(0);
                    out = import_buffer.Buffer.concat([
                        front,
                        out
                    ]);
                }
                return out;
            };
            DH.prototype.getPublicKey = function getPublicKey(enc) {
                return formatReturnValue(this._pub, enc);
            };
            DH.prototype.getPrivateKey = function getPrivateKey(enc) {
                return formatReturnValue(this._priv, enc);
            };
            DH.prototype.getPrime = function(enc) {
                return formatReturnValue(this.__prime, enc);
            };
            DH.prototype.getGenerator = function(enc) {
                return formatReturnValue(this._gen, enc);
            };
            DH.prototype.setGenerator = function(gen, enc) {
                enc = enc || "utf8";
                if (!import_buffer.Buffer.isBuffer(gen)) {
                    gen = new import_buffer.Buffer(gen, enc);
                }
                this.__gen = gen;
                this._gen = new BN(gen);
                return this;
            };
            function formatReturnValue(bn, enc) {
                var buf = new import_buffer.Buffer(bn.toArray());
                if (!enc) {
                    return buf;
                } else {
                    return buf.toString(enc);
                }
            }
        }
    });
    // node_modules/diffie-hellman/browser.js
    var require_browser11 = __commonJS({
        "node_modules/diffie-hellman/browser.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var generatePrime = require_generatePrime();
            var primes = require_primes();
            var DH = require_dh();
            function getDiffieHellman(mod) {
                var prime = new import_buffer.Buffer(primes[mod].prime, "hex");
                var gen = new import_buffer.Buffer(primes[mod].gen, "hex");
                return new DH(prime, gen);
            }
            var ENCODINGS = {
                binary: true,
                hex: true,
                base64: true
            };
            function createDiffieHellman(prime, enc, generator, genc) {
                if (import_buffer.Buffer.isBuffer(enc) || ENCODINGS[enc] === void 0) {
                    return createDiffieHellman(prime, "binary", enc, generator);
                }
                enc = enc || "binary";
                genc = genc || "binary";
                generator = generator || new import_buffer.Buffer([
                    2
                ]);
                if (!import_buffer.Buffer.isBuffer(generator)) {
                    generator = new import_buffer.Buffer(generator, genc);
                }
                if (typeof prime === "number") {
                    return new DH(generatePrime(prime, generator), generator, true);
                }
                if (!import_buffer.Buffer.isBuffer(prime)) {
                    prime = new import_buffer.Buffer(prime, enc);
                }
                return new DH(prime, generator, true);
            }
            exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman;
            exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman;
        }
    });
    // node_modules/browserify-sign/node_modules/safe-buffer/index.js
    var require_safe_buffer8 = __commonJS({
        "node_modules/browserify-sign/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/bn.js/lib/bn.js
    var require_bn3 = __commonJS({
        "node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this._strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 48 && c <= 57) {
                        return c - 48;
                    } else if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        assert(false, "Invalid character in " + string5);
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this._strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var b = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            b = c - 49 + 10;
                        } else if (c >= 17) {
                            b = c - 17 + 10;
                        } else {
                            b = c;
                        }
                        assert(c >= 0 && b < mul, "Invalid character");
                        r += b;
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this._strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                function move(dest, src) {
                    dest.words = src.words;
                    dest.length = src.length;
                    dest.negative = src.negative;
                    dest.red = src.red;
                }
                BN.prototype._move = function _move(dest) {
                    move(dest, this);
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype._strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                if (typeof Symbol !== "undefined" && typeof Symbol["for"] === "function") {
                    try {
                        BN.prototype[Symbol["for"]("nodejs.util.inspect.custom")] = inspect;
                    } catch (e) {
                        BN.prototype.inspect = inspect;
                    }
                } else {
                    BN.prototype.inspect = inspect;
                }
                function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                }
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modrn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16, 2);
                };
                if (Buffer3) {
                    BN.prototype.toBuffer = function toBuffer(endian, length) {
                        return this.toArrayLike(Buffer3, endian, length);
                    };
                }
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                var allocate = function allocate2(ArrayType, size) {
                    if (ArrayType.allocUnsafe) {
                        return ArrayType.allocUnsafe(size);
                    }
                    return new ArrayType(size);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    this._strip();
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    var res = allocate(ArrayType, reqLength);
                    var postfix = endian === "le" ? "LE" : "BE";
                    this["_toArrayLike" + postfix](res, byteLength);
                    return res;
                };
                BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) {
                    var position = 0;
                    var carry = 0;
                    for(var i = 0, shift = 0; i < this.length; i++){
                        var word = this.words[i] << shift | carry;
                        res[position++] = word & 255;
                        if (position < res.length) {
                            res[position++] = word >> 8 & 255;
                        }
                        if (position < res.length) {
                            res[position++] = word >> 16 & 255;
                        }
                        if (shift === 6) {
                            if (position < res.length) {
                                res[position++] = word >> 24 & 255;
                            }
                            carry = 0;
                            shift = 0;
                        } else {
                            carry = word >>> 24;
                            shift += 2;
                        }
                    }
                    if (position < res.length) {
                        res[position++] = carry;
                        while(position < res.length){
                            res[position++] = 0;
                        }
                    }
                };
                BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) {
                    var position = res.length - 1;
                    var carry = 0;
                    for(var i = 0, shift = 0; i < this.length; i++){
                        var word = this.words[i] << shift | carry;
                        res[position--] = word & 255;
                        if (position >= 0) {
                            res[position--] = word >> 8 & 255;
                        }
                        if (position >= 0) {
                            res[position--] = word >> 16 & 255;
                        }
                        if (shift === 6) {
                            if (position >= 0) {
                                res[position--] = word >> 24 & 255;
                            }
                            carry = 0;
                            shift = 0;
                        } else {
                            carry = word >>> 24;
                            shift += 2;
                        }
                    }
                    if (position >= 0) {
                        res[position--] = carry;
                        while(position >= 0){
                            res[position--] = 0;
                        }
                    }
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = num.words[off] >>> wbit & 1;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this._strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this._strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this._strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this._strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this._strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this._strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out._strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out._strip();
                }
                function jumboMulTo(self2, num, out) {
                    return bigMulTo(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out._strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    var isNegNum = num < 0;
                    if (isNegNum) num = -num;
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return isNegNum ? this.ineg() : this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this._strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this._strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this._strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) <= num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this._strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this._strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this._strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q._strip();
                    }
                    a._strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modrn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modrn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modrn = function modrn(num) {
                    var isNegNum = num < 0;
                    if (isNegNum) num = -num;
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return isNegNum ? -acc : acc;
                };
                BN.prototype.modn = function modn(num) {
                    return this.modrn(num);
                };
                BN.prototype.idivn = function idivn(num) {
                    var isNegNum = num < 0;
                    if (isNegNum) num = -num;
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    this._strip();
                    return isNegNum ? this.ineg() : this;
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this._strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    move(a, a.umod(this.m)._forceRed(this));
                    return a;
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/browserify-rsa/node_modules/safe-buffer/index.js
    var require_safe_buffer9 = __commonJS({
        "node_modules/browserify-rsa/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/browserify-rsa/index.js
    var require_browserify_rsa = __commonJS({
        "node_modules/browserify-rsa/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn3();
            var randomBytes = require_browser4();
            var Buffer3 = require_safe_buffer9().Buffer;
            function getr(priv) {
                var len = priv.modulus.byteLength();
                var r;
                do {
                    r = new BN(randomBytes(len));
                }while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));
                return r;
            }
            function blind(priv) {
                var r = getr(priv);
                var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();
                return {
                    blinder: blinder,
                    unblinder: r.invm(priv.modulus)
                };
            }
            function crt(msg, priv) {
                var blinds = blind(priv);
                var len = priv.modulus.byteLength();
                var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);
                var c1 = blinded.toRed(BN.mont(priv.prime1));
                var c2 = blinded.toRed(BN.mont(priv.prime2));
                var qinv = priv.coefficient;
                var p = priv.prime1;
                var q = priv.prime2;
                var m1 = c1.redPow(priv.exponent1).fromRed();
                var m2 = c2.redPow(priv.exponent2).fromRed();
                var h = m1.isub(m2).imul(qinv).umod(p).imul(q);
                return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer3, "be", len);
            }
            crt.getr = getr;
            module.exports = crt;
        }
    });
    // node_modules/elliptic/package.json
    var require_package = __commonJS({
        "node_modules/elliptic/package.json": function(exports, module) {
            module.exports = {
                name: "elliptic",
                version: "6.6.1",
                description: "EC cryptography",
                main: "lib/elliptic.js",
                files: [
                    "lib"
                ],
                scripts: {
                    lint: "eslint lib test",
                    "lint:fix": "npm run lint -- --fix",
                    unit: "istanbul test _mocha --reporter=spec test/index.js",
                    test: "npm run lint && npm run unit",
                    version: "grunt dist && git add dist/"
                },
                repository: {
                    type: "git",
                    url: "git@github.com:indutny/elliptic"
                },
                keywords: [
                    "EC",
                    "Elliptic",
                    "curve",
                    "Cryptography"
                ],
                author: "Fedor Indutny <fedor@indutny.com>",
                license: "MIT",
                bugs: {
                    url: "https://github.com/indutny/elliptic/issues"
                },
                homepage: "https://github.com/indutny/elliptic",
                devDependencies: {
                    brfs: "^2.0.2",
                    coveralls: "^3.1.0",
                    eslint: "^7.6.0",
                    grunt: "^1.2.1",
                    "grunt-browserify": "^5.3.0",
                    "grunt-cli": "^1.3.2",
                    "grunt-contrib-connect": "^3.0.0",
                    "grunt-contrib-copy": "^1.0.0",
                    "grunt-contrib-uglify": "^5.0.0",
                    "grunt-mocha-istanbul": "^5.0.2",
                    "grunt-saucelabs": "^9.0.1",
                    istanbul: "^0.4.5",
                    mocha: "^8.0.1"
                },
                dependencies: {
                    "bn.js": "^4.11.9",
                    brorand: "^1.1.0",
                    "hash.js": "^1.0.0",
                    "hmac-drbg": "^1.0.1",
                    inherits: "^2.0.4",
                    "minimalistic-assert": "^1.0.1",
                    "minimalistic-crypto-utils": "^1.0.1"
                }
            };
        }
    });
    // node_modules/elliptic/node_modules/bn.js/lib/bn.js
    var require_bn4 = __commonJS({
        "node_modules/elliptic/node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this.strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        return c - 48 & 15;
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this.strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            r += c - 49 + 10;
                        } else if (c >= 17) {
                            r += c - 17 + 10;
                        } else {
                            r += c;
                        }
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this.strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype.strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                BN.prototype.inspect = function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                };
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16);
                };
                BN.prototype.toBuffer = function toBuffer(endian, length) {
                    assert(typeof Buffer3 !== "undefined");
                    return this.toArrayLike(Buffer3, endian, length);
                };
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    this.strip();
                    var littleEndian = endian === "le";
                    var res = new ArrayType(reqLength);
                    var b, i;
                    var q = this.clone();
                    if (!littleEndian) {
                        for(i = 0; i < reqLength - byteLength; i++){
                            res[i] = 0;
                        }
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[reqLength - i - 1] = b;
                        }
                    } else {
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[i] = b;
                        }
                        for(; i < reqLength; i++){
                            res[i] = 0;
                        }
                    }
                    return res;
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this.strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this.strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this.strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this.strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this.strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this.strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                function jumboMulTo(self2, num, out) {
                    var fftm = new FFTM();
                    return fftm.mulp(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out.strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this.strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) < num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this.strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this.strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this.strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q.strip();
                    }
                    a.strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modn = function modn(num) {
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return acc;
                };
                BN.prototype.idivn = function idivn(num) {
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    return this.strip();
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this.strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    return a.umod(this.m)._forceRed(this);
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/minimalistic-crypto-utils/lib/utils.js
    var require_utils3 = __commonJS({
        "node_modules/minimalistic-crypto-utils/lib/utils.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = exports;
            function toArray(msg, enc) {
                if (Array.isArray(msg)) return msg.slice();
                if (!msg) return [];
                var res = [];
                if (typeof msg !== "string") {
                    for(var i = 0; i < msg.length; i++)res[i] = msg[i] | 0;
                    return res;
                }
                if (enc === "hex") {
                    msg = msg.replace(/[^a-z0-9]+/ig, "");
                    if (msg.length % 2 !== 0) msg = "0" + msg;
                    for(var i = 0; i < msg.length; i += 2)res.push(parseInt(msg[i] + msg[i + 1], 16));
                } else {
                    for(var i = 0; i < msg.length; i++){
                        var c = msg.charCodeAt(i);
                        var hi = c >> 8;
                        var lo = c & 255;
                        if (hi) res.push(hi, lo);
                        else res.push(lo);
                    }
                }
                return res;
            }
            utils.toArray = toArray;
            function zero2(word) {
                if (word.length === 1) return "0" + word;
                else return word;
            }
            utils.zero2 = zero2;
            function toHex(msg) {
                var res = "";
                for(var i = 0; i < msg.length; i++)res += zero2(msg[i].toString(16));
                return res;
            }
            utils.toHex = toHex;
            utils.encode = function encode3(arr, enc) {
                if (enc === "hex") return toHex(arr);
                else return arr;
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/utils.js
    var require_utils4 = __commonJS({
        "node_modules/elliptic/lib/elliptic/utils.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = exports;
            var BN = require_bn4();
            var minAssert = require_minimalistic_assert();
            var minUtils = require_utils3();
            utils.assert = minAssert;
            utils.toArray = minUtils.toArray;
            utils.zero2 = minUtils.zero2;
            utils.toHex = minUtils.toHex;
            utils.encode = minUtils.encode;
            function getNAF(num, w, bits) {
                var naf = new Array(Math.max(num.bitLength(), bits) + 1);
                var i;
                for(i = 0; i < naf.length; i += 1){
                    naf[i] = 0;
                }
                var ws = 1 << w + 1;
                var k = num.clone();
                for(i = 0; i < naf.length; i++){
                    var z;
                    var mod = k.andln(ws - 1);
                    if (k.isOdd()) {
                        if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod;
                        else z = mod;
                        k.isubn(z);
                    } else {
                        z = 0;
                    }
                    naf[i] = z;
                    k.iushrn(1);
                }
                return naf;
            }
            utils.getNAF = getNAF;
            function getJSF(k1, k2) {
                var jsf = [
                    [],
                    []
                ];
                k1 = k1.clone();
                k2 = k2.clone();
                var d1 = 0;
                var d2 = 0;
                var m8;
                while(k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0){
                    var m14 = k1.andln(3) + d1 & 3;
                    var m24 = k2.andln(3) + d2 & 3;
                    if (m14 === 3) m14 = -1;
                    if (m24 === 3) m24 = -1;
                    var u1;
                    if ((m14 & 1) === 0) {
                        u1 = 0;
                    } else {
                        m8 = k1.andln(7) + d1 & 7;
                        if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14;
                        else u1 = m14;
                    }
                    jsf[0].push(u1);
                    var u2;
                    if ((m24 & 1) === 0) {
                        u2 = 0;
                    } else {
                        m8 = k2.andln(7) + d2 & 7;
                        if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24;
                        else u2 = m24;
                    }
                    jsf[1].push(u2);
                    if (2 * d1 === u1 + 1) d1 = 1 - d1;
                    if (2 * d2 === u2 + 1) d2 = 1 - d2;
                    k1.iushrn(1);
                    k2.iushrn(1);
                }
                return jsf;
            }
            utils.getJSF = getJSF;
            function cachedProperty(obj, name, computer) {
                var key = "_" + name;
                obj.prototype[name] = function cachedProperty2() {
                    return this[key] !== void 0 ? this[key] : this[key] = computer.call(this);
                };
            }
            utils.cachedProperty = cachedProperty;
            function parseBytes(bytes) {
                return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes;
            }
            utils.parseBytes = parseBytes;
            function intFromLE(bytes) {
                return new BN(bytes, "hex", "le");
            }
            utils.intFromLE = intFromLE;
        }
    });
    // node_modules/elliptic/lib/elliptic/curve/base.js
    var require_base = __commonJS({
        "node_modules/elliptic/lib/elliptic/curve/base.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn4();
            var utils = require_utils4();
            var getNAF = utils.getNAF;
            var getJSF = utils.getJSF;
            var assert = utils.assert;
            function BaseCurve(type, conf) {
                this.type = type;
                this.p = new BN(conf.p, 16);
                this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
                this.zero = new BN(0).toRed(this.red);
                this.one = new BN(1).toRed(this.red);
                this.two = new BN(2).toRed(this.red);
                this.n = conf.n && new BN(conf.n, 16);
                this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
                this._wnafT1 = new Array(4);
                this._wnafT2 = new Array(4);
                this._wnafT3 = new Array(4);
                this._wnafT4 = new Array(4);
                this._bitLength = this.n ? this.n.bitLength() : 0;
                var adjustCount = this.n && this.p.div(this.n);
                if (!adjustCount || adjustCount.cmpn(100) > 0) {
                    this.redN = null;
                } else {
                    this._maxwellTrick = true;
                    this.redN = this.n.toRed(this.red);
                }
            }
            module.exports = BaseCurve;
            BaseCurve.prototype.point = function point() {
                throw new Error("Not implemented");
            };
            BaseCurve.prototype.validate = function validate() {
                throw new Error("Not implemented");
            };
            BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
                assert(p.precomputed);
                var doubles = p._getDoubles();
                var naf = getNAF(k, 1, this._bitLength);
                var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1);
                I /= 3;
                var repr = [];
                var j;
                var nafW;
                for(j = 0; j < naf.length; j += doubles.step){
                    nafW = 0;
                    for(var l = j + doubles.step - 1; l >= j; l--)nafW = (nafW << 1) + naf[l];
                    repr.push(nafW);
                }
                var a = this.jpoint(null, null, null);
                var b = this.jpoint(null, null, null);
                for(var i = I; i > 0; i--){
                    for(j = 0; j < repr.length; j++){
                        nafW = repr[j];
                        if (nafW === i) b = b.mixedAdd(doubles.points[j]);
                        else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg());
                    }
                    a = a.add(b);
                }
                return a.toP();
            };
            BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
                var w = 4;
                var nafPoints = p._getNAFPoints(w);
                w = nafPoints.wnd;
                var wnd = nafPoints.points;
                var naf = getNAF(k, w, this._bitLength);
                var acc = this.jpoint(null, null, null);
                for(var i = naf.length - 1; i >= 0; i--){
                    for(var l = 0; i >= 0 && naf[i] === 0; i--)l++;
                    if (i >= 0) l++;
                    acc = acc.dblp(l);
                    if (i < 0) break;
                    var z = naf[i];
                    assert(z !== 0);
                    if (p.type === "affine") {
                        if (z > 0) acc = acc.mixedAdd(wnd[z - 1 >> 1]);
                        else acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());
                    } else {
                        if (z > 0) acc = acc.add(wnd[z - 1 >> 1]);
                        else acc = acc.add(wnd[-z - 1 >> 1].neg());
                    }
                }
                return p.type === "affine" ? acc.toP() : acc;
            };
            BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {
                var wndWidth = this._wnafT1;
                var wnd = this._wnafT2;
                var naf = this._wnafT3;
                var max = 0;
                var i;
                var j;
                var p;
                for(i = 0; i < len; i++){
                    p = points[i];
                    var nafPoints = p._getNAFPoints(defW);
                    wndWidth[i] = nafPoints.wnd;
                    wnd[i] = nafPoints.points;
                }
                for(i = len - 1; i >= 1; i -= 2){
                    var a = i - 1;
                    var b = i;
                    if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
                        naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);
                        naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);
                        max = Math.max(naf[a].length, max);
                        max = Math.max(naf[b].length, max);
                        continue;
                    }
                    var comb = [
                        points[a],
                        /* 1 */ null,
                        /* 3 */ null,
                        /* 5 */ points[b]
                    ];
                    if (points[a].y.cmp(points[b].y) === 0) {
                        comb[1] = points[a].add(points[b]);
                        comb[2] = points[a].toJ().mixedAdd(points[b].neg());
                    } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {
                        comb[1] = points[a].toJ().mixedAdd(points[b]);
                        comb[2] = points[a].add(points[b].neg());
                    } else {
                        comb[1] = points[a].toJ().mixedAdd(points[b]);
                        comb[2] = points[a].toJ().mixedAdd(points[b].neg());
                    }
                    var index = [
                        -3,
                        /* -1 -1 */ -1,
                        /* -1 0 */ -5,
                        /* -1 1 */ -7,
                        /* 0 -1 */ 0,
                        /* 0 0 */ 7,
                        /* 0 1 */ 5,
                        /* 1 -1 */ 1,
                        /* 1 0 */ 3
                    ];
                    var jsf = getJSF(coeffs[a], coeffs[b]);
                    max = Math.max(jsf[0].length, max);
                    naf[a] = new Array(max);
                    naf[b] = new Array(max);
                    for(j = 0; j < max; j++){
                        var ja = jsf[0][j] | 0;
                        var jb = jsf[1][j] | 0;
                        naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];
                        naf[b][j] = 0;
                        wnd[a] = comb;
                    }
                }
                var acc = this.jpoint(null, null, null);
                var tmp = this._wnafT4;
                for(i = max; i >= 0; i--){
                    var k = 0;
                    while(i >= 0){
                        var zero = true;
                        for(j = 0; j < len; j++){
                            tmp[j] = naf[j][i] | 0;
                            if (tmp[j] !== 0) zero = false;
                        }
                        if (!zero) break;
                        k++;
                        i--;
                    }
                    if (i >= 0) k++;
                    acc = acc.dblp(k);
                    if (i < 0) break;
                    for(j = 0; j < len; j++){
                        var z = tmp[j];
                        p;
                        if (z === 0) continue;
                        else if (z > 0) p = wnd[j][z - 1 >> 1];
                        else if (z < 0) p = wnd[j][-z - 1 >> 1].neg();
                        if (p.type === "affine") acc = acc.mixedAdd(p);
                        else acc = acc.add(p);
                    }
                }
                for(i = 0; i < len; i++)wnd[i] = null;
                if (jacobianResult) return acc;
                else return acc.toP();
            };
            function BasePoint(curve, type) {
                this.curve = curve;
                this.type = type;
                this.precomputed = null;
            }
            BaseCurve.BasePoint = BasePoint;
            BasePoint.prototype.eq = function eq() {
                throw new Error("Not implemented");
            };
            BasePoint.prototype.validate = function validate() {
                return this.curve.validate(this);
            };
            BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
                bytes = utils.toArray(bytes, enc);
                var len = this.p.byteLength();
                if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) {
                    if (bytes[0] === 6) assert(bytes[bytes.length - 1] % 2 === 0);
                    else if (bytes[0] === 7) assert(bytes[bytes.length - 1] % 2 === 1);
                    var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));
                    return res;
                } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) {
                    return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3);
                }
                throw new Error("Unknown point format");
            };
            BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
                return this.encode(enc, true);
            };
            BasePoint.prototype._encode = function _encode(compact) {
                var len = this.curve.p.byteLength();
                var x = this.getX().toArray("be", len);
                if (compact) return [
                    this.getY().isEven() ? 2 : 3
                ].concat(x);
                return [
                    4
                ].concat(x, this.getY().toArray("be", len));
            };
            BasePoint.prototype.encode = function encode3(enc, compact) {
                return utils.encode(this._encode(compact), enc);
            };
            BasePoint.prototype.precompute = function precompute(power) {
                if (this.precomputed) return this;
                var precomputed = {
                    doubles: null,
                    naf: null,
                    beta: null
                };
                precomputed.naf = this._getNAFPoints(8);
                precomputed.doubles = this._getDoubles(4, power);
                precomputed.beta = this._getBeta();
                this.precomputed = precomputed;
                return this;
            };
            BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
                if (!this.precomputed) return false;
                var doubles = this.precomputed.doubles;
                if (!doubles) return false;
                return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
            };
            BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
                if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles;
                var doubles = [
                    this
                ];
                var acc = this;
                for(var i = 0; i < power; i += step){
                    for(var j = 0; j < step; j++)acc = acc.dbl();
                    doubles.push(acc);
                }
                return {
                    step: step,
                    points: doubles
                };
            };
            BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
                if (this.precomputed && this.precomputed.naf) return this.precomputed.naf;
                var res = [
                    this
                ];
                var max = (1 << wnd) - 1;
                var dbl = max === 1 ? null : this.dbl();
                for(var i = 1; i < max; i++)res[i] = res[i - 1].add(dbl);
                return {
                    wnd: wnd,
                    points: res
                };
            };
            BasePoint.prototype._getBeta = function _getBeta() {
                return null;
            };
            BasePoint.prototype.dblp = function dblp(k) {
                var r = this;
                for(var i = 0; i < k; i++)r = r.dbl();
                return r;
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/curve/short.js
    var require_short = __commonJS({
        "node_modules/elliptic/lib/elliptic/curve/short.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils4();
            var BN = require_bn4();
            var inherits = require_inherits_browser();
            var Base = require_base();
            var assert = utils.assert;
            function ShortCurve(conf) {
                Base.call(this, "short", conf);
                this.a = new BN(conf.a, 16).toRed(this.red);
                this.b = new BN(conf.b, 16).toRed(this.red);
                this.tinv = this.two.redInvm();
                this.zeroA = this.a.fromRed().cmpn(0) === 0;
                this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;
                this.endo = this._getEndomorphism(conf);
                this._endoWnafT1 = new Array(4);
                this._endoWnafT2 = new Array(4);
            }
            inherits(ShortCurve, Base);
            module.exports = ShortCurve;
            ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
                if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return;
                var beta;
                var lambda;
                if (conf.beta) {
                    beta = new BN(conf.beta, 16).toRed(this.red);
                } else {
                    var betas = this._getEndoRoots(this.p);
                    beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];
                    beta = beta.toRed(this.red);
                }
                if (conf.lambda) {
                    lambda = new BN(conf.lambda, 16);
                } else {
                    var lambdas = this._getEndoRoots(this.n);
                    if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {
                        lambda = lambdas[0];
                    } else {
                        lambda = lambdas[1];
                        assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);
                    }
                }
                var basis;
                if (conf.basis) {
                    basis = conf.basis.map(function(vec) {
                        return {
                            a: new BN(vec.a, 16),
                            b: new BN(vec.b, 16)
                        };
                    });
                } else {
                    basis = this._getEndoBasis(lambda);
                }
                return {
                    beta: beta,
                    lambda: lambda,
                    basis: basis
                };
            };
            ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
                var red = num === this.p ? this.red : BN.mont(num);
                var tinv = new BN(2).toRed(red).redInvm();
                var ntinv = tinv.redNeg();
                var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);
                var l1 = ntinv.redAdd(s).fromRed();
                var l2 = ntinv.redSub(s).fromRed();
                return [
                    l1,
                    l2
                ];
            };
            ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
                var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));
                var u = lambda;
                var v = this.n.clone();
                var x1 = new BN(1);
                var y1 = new BN(0);
                var x2 = new BN(0);
                var y2 = new BN(1);
                var a0;
                var b0;
                var a1;
                var b1;
                var a2;
                var b2;
                var prevR;
                var i = 0;
                var r;
                var x;
                while(u.cmpn(0) !== 0){
                    var q = v.div(u);
                    r = v.sub(q.mul(u));
                    x = x2.sub(q.mul(x1));
                    var y = y2.sub(q.mul(y1));
                    if (!a1 && r.cmp(aprxSqrt) < 0) {
                        a0 = prevR.neg();
                        b0 = x1;
                        a1 = r.neg();
                        b1 = x;
                    } else if (a1 && ++i === 2) {
                        break;
                    }
                    prevR = r;
                    v = u;
                    u = r;
                    x2 = x1;
                    x1 = x;
                    y2 = y1;
                    y1 = y;
                }
                a2 = r.neg();
                b2 = x;
                var len1 = a1.sqr().add(b1.sqr());
                var len2 = a2.sqr().add(b2.sqr());
                if (len2.cmp(len1) >= 0) {
                    a2 = a0;
                    b2 = b0;
                }
                if (a1.negative) {
                    a1 = a1.neg();
                    b1 = b1.neg();
                }
                if (a2.negative) {
                    a2 = a2.neg();
                    b2 = b2.neg();
                }
                return [
                    {
                        a: a1,
                        b: b1
                    },
                    {
                        a: a2,
                        b: b2
                    }
                ];
            };
            ShortCurve.prototype._endoSplit = function _endoSplit(k) {
                var basis = this.endo.basis;
                var v1 = basis[0];
                var v2 = basis[1];
                var c1 = v2.b.mul(k).divRound(this.n);
                var c2 = v1.b.neg().mul(k).divRound(this.n);
                var p1 = c1.mul(v1.a);
                var p2 = c2.mul(v2.a);
                var q1 = c1.mul(v1.b);
                var q2 = c2.mul(v2.b);
                var k1 = k.sub(p1).sub(p2);
                var k2 = q1.add(q2).neg();
                return {
                    k1: k1,
                    k2: k2
                };
            };
            ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
                x = new BN(x, 16);
                if (!x.red) x = x.toRed(this.red);
                var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
                var y = y2.redSqrt();
                if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error("invalid point");
                var isOdd = y.fromRed().isOdd();
                if (odd && !isOdd || !odd && isOdd) y = y.redNeg();
                return this.point(x, y);
            };
            ShortCurve.prototype.validate = function validate(point) {
                if (point.inf) return true;
                var x = point.x;
                var y = point.y;
                var ax = this.a.redMul(x);
                var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
                return y.redSqr().redISub(rhs).cmpn(0) === 0;
            };
            ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) {
                var npoints = this._endoWnafT1;
                var ncoeffs = this._endoWnafT2;
                for(var i = 0; i < points.length; i++){
                    var split = this._endoSplit(coeffs[i]);
                    var p = points[i];
                    var beta = p._getBeta();
                    if (split.k1.negative) {
                        split.k1.ineg();
                        p = p.neg(true);
                    }
                    if (split.k2.negative) {
                        split.k2.ineg();
                        beta = beta.neg(true);
                    }
                    npoints[i * 2] = p;
                    npoints[i * 2 + 1] = beta;
                    ncoeffs[i * 2] = split.k1;
                    ncoeffs[i * 2 + 1] = split.k2;
                }
                var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);
                for(var j = 0; j < i * 2; j++){
                    npoints[j] = null;
                    ncoeffs[j] = null;
                }
                return res;
            };
            function Point(curve, x, y, isRed) {
                Base.BasePoint.call(this, curve, "affine");
                if (x === null && y === null) {
                    this.x = null;
                    this.y = null;
                    this.inf = true;
                } else {
                    this.x = new BN(x, 16);
                    this.y = new BN(y, 16);
                    if (isRed) {
                        this.x.forceRed(this.curve.red);
                        this.y.forceRed(this.curve.red);
                    }
                    if (!this.x.red) this.x = this.x.toRed(this.curve.red);
                    if (!this.y.red) this.y = this.y.toRed(this.curve.red);
                    this.inf = false;
                }
            }
            inherits(Point, Base.BasePoint);
            ShortCurve.prototype.point = function point(x, y, isRed) {
                return new Point(this, x, y, isRed);
            };
            ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
                return Point.fromJSON(this, obj, red);
            };
            Point.prototype._getBeta = function _getBeta() {
                if (!this.curve.endo) return;
                var pre = this.precomputed;
                if (pre && pre.beta) return pre.beta;
                var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
                if (pre) {
                    var curve = this.curve;
                    var endoMul = function endoMul(p) {
                        return curve.point(p.x.redMul(curve.endo.beta), p.y);
                    };
                    pre.beta = beta;
                    beta.precomputed = {
                        beta: null,
                        naf: pre.naf && {
                            wnd: pre.naf.wnd,
                            points: pre.naf.points.map(endoMul)
                        },
                        doubles: pre.doubles && {
                            step: pre.doubles.step,
                            points: pre.doubles.points.map(endoMul)
                        }
                    };
                }
                return beta;
            };
            Point.prototype.toJSON = function toJSON() {
                if (!this.precomputed) return [
                    this.x,
                    this.y
                ];
                return [
                    this.x,
                    this.y,
                    this.precomputed && {
                        doubles: this.precomputed.doubles && {
                            step: this.precomputed.doubles.step,
                            points: this.precomputed.doubles.points.slice(1)
                        },
                        naf: this.precomputed.naf && {
                            wnd: this.precomputed.naf.wnd,
                            points: this.precomputed.naf.points.slice(1)
                        }
                    }
                ];
            };
            Point.fromJSON = function fromJSON(curve, obj, red) {
                if (typeof obj === "string") obj = JSON.parse(obj);
                var res = curve.point(obj[0], obj[1], red);
                if (!obj[2]) return res;
                function obj2point(obj2) {
                    return curve.point(obj2[0], obj2[1], red);
                }
                var pre = obj[2];
                res.precomputed = {
                    beta: null,
                    doubles: pre.doubles && {
                        step: pre.doubles.step,
                        points: [
                            res
                        ].concat(pre.doubles.points.map(obj2point))
                    },
                    naf: pre.naf && {
                        wnd: pre.naf.wnd,
                        points: [
                            res
                        ].concat(pre.naf.points.map(obj2point))
                    }
                };
                return res;
            };
            Point.prototype.inspect = function inspect() {
                if (this.isInfinity()) return "<EC Point Infinity>";
                return "<EC Point x: " + this.x.fromRed().toString(16, 2) + " y: " + this.y.fromRed().toString(16, 2) + ">";
            };
            Point.prototype.isInfinity = function isInfinity() {
                return this.inf;
            };
            Point.prototype.add = function add(p) {
                if (this.inf) return p;
                if (p.inf) return this;
                if (this.eq(p)) return this.dbl();
                if (this.neg().eq(p)) return this.curve.point(null, null);
                if (this.x.cmp(p.x) === 0) return this.curve.point(null, null);
                var c = this.y.redSub(p.y);
                if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm());
                var nx = c.redSqr().redISub(this.x).redISub(p.x);
                var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
                return this.curve.point(nx, ny);
            };
            Point.prototype.dbl = function dbl() {
                if (this.inf) return this;
                var ys1 = this.y.redAdd(this.y);
                if (ys1.cmpn(0) === 0) return this.curve.point(null, null);
                var a = this.curve.a;
                var x2 = this.x.redSqr();
                var dyinv = ys1.redInvm();
                var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
                var nx = c.redSqr().redISub(this.x.redAdd(this.x));
                var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
                return this.curve.point(nx, ny);
            };
            Point.prototype.getX = function getX() {
                return this.x.fromRed();
            };
            Point.prototype.getY = function getY() {
                return this.y.fromRed();
            };
            Point.prototype.mul = function mul(k) {
                k = new BN(k, 16);
                if (this.isInfinity()) return this;
                else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);
                else if (this.curve.endo) return this.curve._endoWnafMulAdd([
                    this
                ], [
                    k
                ]);
                else return this.curve._wnafMul(this, k);
            };
            Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
                var points = [
                    this,
                    p2
                ];
                var coeffs = [
                    k1,
                    k2
                ];
                if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs);
                else return this.curve._wnafMulAdd(1, points, coeffs, 2);
            };
            Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
                var points = [
                    this,
                    p2
                ];
                var coeffs = [
                    k1,
                    k2
                ];
                if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true);
                else return this.curve._wnafMulAdd(1, points, coeffs, 2, true);
            };
            Point.prototype.eq = function eq(p) {
                return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);
            };
            Point.prototype.neg = function neg(_precompute) {
                if (this.inf) return this;
                var res = this.curve.point(this.x, this.y.redNeg());
                if (_precompute && this.precomputed) {
                    var pre = this.precomputed;
                    var negate = function negate(p) {
                        return p.neg();
                    };
                    res.precomputed = {
                        naf: pre.naf && {
                            wnd: pre.naf.wnd,
                            points: pre.naf.points.map(negate)
                        },
                        doubles: pre.doubles && {
                            step: pre.doubles.step,
                            points: pre.doubles.points.map(negate)
                        }
                    };
                }
                return res;
            };
            Point.prototype.toJ = function toJ() {
                if (this.inf) return this.curve.jpoint(null, null, null);
                var res = this.curve.jpoint(this.x, this.y, this.curve.one);
                return res;
            };
            function JPoint(curve, x, y, z) {
                Base.BasePoint.call(this, curve, "jacobian");
                if (x === null && y === null && z === null) {
                    this.x = this.curve.one;
                    this.y = this.curve.one;
                    this.z = new BN(0);
                } else {
                    this.x = new BN(x, 16);
                    this.y = new BN(y, 16);
                    this.z = new BN(z, 16);
                }
                if (!this.x.red) this.x = this.x.toRed(this.curve.red);
                if (!this.y.red) this.y = this.y.toRed(this.curve.red);
                if (!this.z.red) this.z = this.z.toRed(this.curve.red);
                this.zOne = this.z === this.curve.one;
            }
            inherits(JPoint, Base.BasePoint);
            ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
                return new JPoint(this, x, y, z);
            };
            JPoint.prototype.toP = function toP() {
                if (this.isInfinity()) return this.curve.point(null, null);
                var zinv = this.z.redInvm();
                var zinv2 = zinv.redSqr();
                var ax = this.x.redMul(zinv2);
                var ay = this.y.redMul(zinv2).redMul(zinv);
                return this.curve.point(ax, ay);
            };
            JPoint.prototype.neg = function neg() {
                return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
            };
            JPoint.prototype.add = function add(p) {
                if (this.isInfinity()) return p;
                if (p.isInfinity()) return this;
                var pz2 = p.z.redSqr();
                var z2 = this.z.redSqr();
                var u1 = this.x.redMul(pz2);
                var u2 = p.x.redMul(z2);
                var s1 = this.y.redMul(pz2.redMul(p.z));
                var s2 = p.y.redMul(z2.redMul(this.z));
                var h = u1.redSub(u2);
                var r = s1.redSub(s2);
                if (h.cmpn(0) === 0) {
                    if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);
                    else return this.dbl();
                }
                var h2 = h.redSqr();
                var h3 = h2.redMul(h);
                var v = u1.redMul(h2);
                var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
                var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
                var nz = this.z.redMul(p.z).redMul(h);
                return this.curve.jpoint(nx, ny, nz);
            };
            JPoint.prototype.mixedAdd = function mixedAdd(p) {
                if (this.isInfinity()) return p.toJ();
                if (p.isInfinity()) return this;
                var z2 = this.z.redSqr();
                var u1 = this.x;
                var u2 = p.x.redMul(z2);
                var s1 = this.y;
                var s2 = p.y.redMul(z2).redMul(this.z);
                var h = u1.redSub(u2);
                var r = s1.redSub(s2);
                if (h.cmpn(0) === 0) {
                    if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);
                    else return this.dbl();
                }
                var h2 = h.redSqr();
                var h3 = h2.redMul(h);
                var v = u1.redMul(h2);
                var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
                var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
                var nz = this.z.redMul(h);
                return this.curve.jpoint(nx, ny, nz);
            };
            JPoint.prototype.dblp = function dblp(pow) {
                if (pow === 0) return this;
                if (this.isInfinity()) return this;
                if (!pow) return this.dbl();
                var i;
                if (this.curve.zeroA || this.curve.threeA) {
                    var r = this;
                    for(i = 0; i < pow; i++)r = r.dbl();
                    return r;
                }
                var a = this.curve.a;
                var tinv = this.curve.tinv;
                var jx = this.x;
                var jy = this.y;
                var jz = this.z;
                var jz4 = jz.redSqr().redSqr();
                var jyd = jy.redAdd(jy);
                for(i = 0; i < pow; i++){
                    var jx2 = jx.redSqr();
                    var jyd2 = jyd.redSqr();
                    var jyd4 = jyd2.redSqr();
                    var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
                    var t1 = jx.redMul(jyd2);
                    var nx = c.redSqr().redISub(t1.redAdd(t1));
                    var t2 = t1.redISub(nx);
                    var dny = c.redMul(t2);
                    dny = dny.redIAdd(dny).redISub(jyd4);
                    var nz = jyd.redMul(jz);
                    if (i + 1 < pow) jz4 = jz4.redMul(jyd4);
                    jx = nx;
                    jz = nz;
                    jyd = dny;
                }
                return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
            };
            JPoint.prototype.dbl = function dbl() {
                if (this.isInfinity()) return this;
                if (this.curve.zeroA) return this._zeroDbl();
                else if (this.curve.threeA) return this._threeDbl();
                else return this._dbl();
            };
            JPoint.prototype._zeroDbl = function _zeroDbl() {
                var nx;
                var ny;
                var nz;
                if (this.zOne) {
                    var xx = this.x.redSqr();
                    var yy = this.y.redSqr();
                    var yyyy = yy.redSqr();
                    var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
                    s = s.redIAdd(s);
                    var m = xx.redAdd(xx).redIAdd(xx);
                    var t = m.redSqr().redISub(s).redISub(s);
                    var yyyy8 = yyyy.redIAdd(yyyy);
                    yyyy8 = yyyy8.redIAdd(yyyy8);
                    yyyy8 = yyyy8.redIAdd(yyyy8);
                    nx = t;
                    ny = m.redMul(s.redISub(t)).redISub(yyyy8);
                    nz = this.y.redAdd(this.y);
                } else {
                    var a = this.x.redSqr();
                    var b = this.y.redSqr();
                    var c = b.redSqr();
                    var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
                    d = d.redIAdd(d);
                    var e = a.redAdd(a).redIAdd(a);
                    var f = e.redSqr();
                    var c8 = c.redIAdd(c);
                    c8 = c8.redIAdd(c8);
                    c8 = c8.redIAdd(c8);
                    nx = f.redISub(d).redISub(d);
                    ny = e.redMul(d.redISub(nx)).redISub(c8);
                    nz = this.y.redMul(this.z);
                    nz = nz.redIAdd(nz);
                }
                return this.curve.jpoint(nx, ny, nz);
            };
            JPoint.prototype._threeDbl = function _threeDbl() {
                var nx;
                var ny;
                var nz;
                if (this.zOne) {
                    var xx = this.x.redSqr();
                    var yy = this.y.redSqr();
                    var yyyy = yy.redSqr();
                    var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
                    s = s.redIAdd(s);
                    var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
                    var t = m.redSqr().redISub(s).redISub(s);
                    nx = t;
                    var yyyy8 = yyyy.redIAdd(yyyy);
                    yyyy8 = yyyy8.redIAdd(yyyy8);
                    yyyy8 = yyyy8.redIAdd(yyyy8);
                    ny = m.redMul(s.redISub(t)).redISub(yyyy8);
                    nz = this.y.redAdd(this.y);
                } else {
                    var delta = this.z.redSqr();
                    var gamma = this.y.redSqr();
                    var beta = this.x.redMul(gamma);
                    var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
                    alpha = alpha.redAdd(alpha).redIAdd(alpha);
                    var beta4 = beta.redIAdd(beta);
                    beta4 = beta4.redIAdd(beta4);
                    var beta8 = beta4.redAdd(beta4);
                    nx = alpha.redSqr().redISub(beta8);
                    nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
                    var ggamma8 = gamma.redSqr();
                    ggamma8 = ggamma8.redIAdd(ggamma8);
                    ggamma8 = ggamma8.redIAdd(ggamma8);
                    ggamma8 = ggamma8.redIAdd(ggamma8);
                    ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
                }
                return this.curve.jpoint(nx, ny, nz);
            };
            JPoint.prototype._dbl = function _dbl() {
                var a = this.curve.a;
                var jx = this.x;
                var jy = this.y;
                var jz = this.z;
                var jz4 = jz.redSqr().redSqr();
                var jx2 = jx.redSqr();
                var jy2 = jy.redSqr();
                var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
                var jxd4 = jx.redAdd(jx);
                jxd4 = jxd4.redIAdd(jxd4);
                var t1 = jxd4.redMul(jy2);
                var nx = c.redSqr().redISub(t1.redAdd(t1));
                var t2 = t1.redISub(nx);
                var jyd8 = jy2.redSqr();
                jyd8 = jyd8.redIAdd(jyd8);
                jyd8 = jyd8.redIAdd(jyd8);
                jyd8 = jyd8.redIAdd(jyd8);
                var ny = c.redMul(t2).redISub(jyd8);
                var nz = jy.redAdd(jy).redMul(jz);
                return this.curve.jpoint(nx, ny, nz);
            };
            JPoint.prototype.trpl = function trpl() {
                if (!this.curve.zeroA) return this.dbl().add(this);
                var xx = this.x.redSqr();
                var yy = this.y.redSqr();
                var zz = this.z.redSqr();
                var yyyy = yy.redSqr();
                var m = xx.redAdd(xx).redIAdd(xx);
                var mm = m.redSqr();
                var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
                e = e.redIAdd(e);
                e = e.redAdd(e).redIAdd(e);
                e = e.redISub(mm);
                var ee = e.redSqr();
                var t = yyyy.redIAdd(yyyy);
                t = t.redIAdd(t);
                t = t.redIAdd(t);
                t = t.redIAdd(t);
                var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
                var yyu4 = yy.redMul(u);
                yyu4 = yyu4.redIAdd(yyu4);
                yyu4 = yyu4.redIAdd(yyu4);
                var nx = this.x.redMul(ee).redISub(yyu4);
                nx = nx.redIAdd(nx);
                nx = nx.redIAdd(nx);
                var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
                ny = ny.redIAdd(ny);
                ny = ny.redIAdd(ny);
                ny = ny.redIAdd(ny);
                var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
                return this.curve.jpoint(nx, ny, nz);
            };
            JPoint.prototype.mul = function mul(k, kbase) {
                k = new BN(k, kbase);
                return this.curve._wnafMul(this, k);
            };
            JPoint.prototype.eq = function eq(p) {
                if (p.type === "affine") return this.eq(p.toJ());
                if (this === p) return true;
                var z2 = this.z.redSqr();
                var pz2 = p.z.redSqr();
                if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false;
                var z3 = z2.redMul(this.z);
                var pz3 = pz2.redMul(p.z);
                return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
            };
            JPoint.prototype.eqXToP = function eqXToP(x) {
                var zs = this.z.redSqr();
                var rx = x.toRed(this.curve.red).redMul(zs);
                if (this.x.cmp(rx) === 0) return true;
                var xc = x.clone();
                var t = this.curve.redN.redMul(zs);
                for(;;){
                    xc.iadd(this.curve.n);
                    if (xc.cmp(this.curve.p) >= 0) return false;
                    rx.redIAdd(t);
                    if (this.x.cmp(rx) === 0) return true;
                }
            };
            JPoint.prototype.inspect = function inspect() {
                if (this.isInfinity()) return "<EC JPoint Infinity>";
                return "<EC JPoint x: " + this.x.toString(16, 2) + " y: " + this.y.toString(16, 2) + " z: " + this.z.toString(16, 2) + ">";
            };
            JPoint.prototype.isInfinity = function isInfinity() {
                return this.z.cmpn(0) === 0;
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/curve/mont.js
    var require_mont = __commonJS({
        "node_modules/elliptic/lib/elliptic/curve/mont.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn4();
            var inherits = require_inherits_browser();
            var Base = require_base();
            var utils = require_utils4();
            function MontCurve(conf) {
                Base.call(this, "mont", conf);
                this.a = new BN(conf.a, 16).toRed(this.red);
                this.b = new BN(conf.b, 16).toRed(this.red);
                this.i4 = new BN(4).toRed(this.red).redInvm();
                this.two = new BN(2).toRed(this.red);
                this.a24 = this.i4.redMul(this.a.redAdd(this.two));
            }
            inherits(MontCurve, Base);
            module.exports = MontCurve;
            MontCurve.prototype.validate = function validate(point) {
                var x = point.normalize().x;
                var x2 = x.redSqr();
                var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
                var y = rhs.redSqrt();
                return y.redSqr().cmp(rhs) === 0;
            };
            function Point(curve, x, z) {
                Base.BasePoint.call(this, curve, "projective");
                if (x === null && z === null) {
                    this.x = this.curve.one;
                    this.z = this.curve.zero;
                } else {
                    this.x = new BN(x, 16);
                    this.z = new BN(z, 16);
                    if (!this.x.red) this.x = this.x.toRed(this.curve.red);
                    if (!this.z.red) this.z = this.z.toRed(this.curve.red);
                }
            }
            inherits(Point, Base.BasePoint);
            MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
                return this.point(utils.toArray(bytes, enc), 1);
            };
            MontCurve.prototype.point = function point(x, z) {
                return new Point(this, x, z);
            };
            MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
                return Point.fromJSON(this, obj);
            };
            Point.prototype.precompute = function precompute() {};
            Point.prototype._encode = function _encode() {
                return this.getX().toArray("be", this.curve.p.byteLength());
            };
            Point.fromJSON = function fromJSON(curve, obj) {
                return new Point(curve, obj[0], obj[1] || curve.one);
            };
            Point.prototype.inspect = function inspect() {
                if (this.isInfinity()) return "<EC Point Infinity>";
                return "<EC Point x: " + this.x.fromRed().toString(16, 2) + " z: " + this.z.fromRed().toString(16, 2) + ">";
            };
            Point.prototype.isInfinity = function isInfinity() {
                return this.z.cmpn(0) === 0;
            };
            Point.prototype.dbl = function dbl() {
                var a = this.x.redAdd(this.z);
                var aa = a.redSqr();
                var b = this.x.redSub(this.z);
                var bb = b.redSqr();
                var c = aa.redSub(bb);
                var nx = aa.redMul(bb);
                var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
                return this.curve.point(nx, nz);
            };
            Point.prototype.add = function add() {
                throw new Error("Not supported on Montgomery curve");
            };
            Point.prototype.diffAdd = function diffAdd(p, diff) {
                var a = this.x.redAdd(this.z);
                var b = this.x.redSub(this.z);
                var c = p.x.redAdd(p.z);
                var d = p.x.redSub(p.z);
                var da = d.redMul(a);
                var cb = c.redMul(b);
                var nx = diff.z.redMul(da.redAdd(cb).redSqr());
                var nz = diff.x.redMul(da.redISub(cb).redSqr());
                return this.curve.point(nx, nz);
            };
            Point.prototype.mul = function mul(k) {
                var t = k.clone();
                var a = this;
                var b = this.curve.point(null, null);
                var c = this;
                for(var bits = []; t.cmpn(0) !== 0; t.iushrn(1))bits.push(t.andln(1));
                for(var i = bits.length - 1; i >= 0; i--){
                    if (bits[i] === 0) {
                        a = a.diffAdd(b, c);
                        b = b.dbl();
                    } else {
                        b = a.diffAdd(b, c);
                        a = a.dbl();
                    }
                }
                return b;
            };
            Point.prototype.mulAdd = function mulAdd() {
                throw new Error("Not supported on Montgomery curve");
            };
            Point.prototype.jumlAdd = function jumlAdd() {
                throw new Error("Not supported on Montgomery curve");
            };
            Point.prototype.eq = function eq(other) {
                return this.getX().cmp(other.getX()) === 0;
            };
            Point.prototype.normalize = function normalize() {
                this.x = this.x.redMul(this.z.redInvm());
                this.z = this.curve.one;
                return this;
            };
            Point.prototype.getX = function getX() {
                this.normalize();
                return this.x.fromRed();
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/curve/edwards.js
    var require_edwards = __commonJS({
        "node_modules/elliptic/lib/elliptic/curve/edwards.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils4();
            var BN = require_bn4();
            var inherits = require_inherits_browser();
            var Base = require_base();
            var assert = utils.assert;
            function EdwardsCurve(conf) {
                this.twisted = (conf.a | 0) !== 1;
                this.mOneA = this.twisted && (conf.a | 0) === -1;
                this.extended = this.mOneA;
                Base.call(this, "edwards", conf);
                this.a = new BN(conf.a, 16).umod(this.red.m);
                this.a = this.a.toRed(this.red);
                this.c = new BN(conf.c, 16).toRed(this.red);
                this.c2 = this.c.redSqr();
                this.d = new BN(conf.d, 16).toRed(this.red);
                this.dd = this.d.redAdd(this.d);
                assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);
                this.oneC = (conf.c | 0) === 1;
            }
            inherits(EdwardsCurve, Base);
            module.exports = EdwardsCurve;
            EdwardsCurve.prototype._mulA = function _mulA(num) {
                if (this.mOneA) return num.redNeg();
                else return this.a.redMul(num);
            };
            EdwardsCurve.prototype._mulC = function _mulC(num) {
                if (this.oneC) return num;
                else return this.c.redMul(num);
            };
            EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
                return this.point(x, y, z, t);
            };
            EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
                x = new BN(x, 16);
                if (!x.red) x = x.toRed(this.red);
                var x2 = x.redSqr();
                var rhs = this.c2.redSub(this.a.redMul(x2));
                var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
                var y2 = rhs.redMul(lhs.redInvm());
                var y = y2.redSqrt();
                if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error("invalid point");
                var isOdd = y.fromRed().isOdd();
                if (odd && !isOdd || !odd && isOdd) y = y.redNeg();
                return this.point(x, y);
            };
            EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
                y = new BN(y, 16);
                if (!y.red) y = y.toRed(this.red);
                var y2 = y.redSqr();
                var lhs = y2.redSub(this.c2);
                var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);
                var x2 = lhs.redMul(rhs.redInvm());
                if (x2.cmp(this.zero) === 0) {
                    if (odd) throw new Error("invalid point");
                    else return this.point(this.zero, y);
                }
                var x = x2.redSqrt();
                if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error("invalid point");
                if (x.fromRed().isOdd() !== odd) x = x.redNeg();
                return this.point(x, y);
            };
            EdwardsCurve.prototype.validate = function validate(point) {
                if (point.isInfinity()) return true;
                point.normalize();
                var x2 = point.x.redSqr();
                var y2 = point.y.redSqr();
                var lhs = x2.redMul(this.a).redAdd(y2);
                var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
                return lhs.cmp(rhs) === 0;
            };
            function Point(curve, x, y, z, t) {
                Base.BasePoint.call(this, curve, "projective");
                if (x === null && y === null && z === null) {
                    this.x = this.curve.zero;
                    this.y = this.curve.one;
                    this.z = this.curve.one;
                    this.t = this.curve.zero;
                    this.zOne = true;
                } else {
                    this.x = new BN(x, 16);
                    this.y = new BN(y, 16);
                    this.z = z ? new BN(z, 16) : this.curve.one;
                    this.t = t && new BN(t, 16);
                    if (!this.x.red) this.x = this.x.toRed(this.curve.red);
                    if (!this.y.red) this.y = this.y.toRed(this.curve.red);
                    if (!this.z.red) this.z = this.z.toRed(this.curve.red);
                    if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red);
                    this.zOne = this.z === this.curve.one;
                    if (this.curve.extended && !this.t) {
                        this.t = this.x.redMul(this.y);
                        if (!this.zOne) this.t = this.t.redMul(this.z.redInvm());
                    }
                }
            }
            inherits(Point, Base.BasePoint);
            EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
                return Point.fromJSON(this, obj);
            };
            EdwardsCurve.prototype.point = function point(x, y, z, t) {
                return new Point(this, x, y, z, t);
            };
            Point.fromJSON = function fromJSON(curve, obj) {
                return new Point(curve, obj[0], obj[1], obj[2]);
            };
            Point.prototype.inspect = function inspect() {
                if (this.isInfinity()) return "<EC Point Infinity>";
                return "<EC Point x: " + this.x.fromRed().toString(16, 2) + " y: " + this.y.fromRed().toString(16, 2) + " z: " + this.z.fromRed().toString(16, 2) + ">";
            };
            Point.prototype.isInfinity = function isInfinity() {
                return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0);
            };
            Point.prototype._extDbl = function _extDbl() {
                var a = this.x.redSqr();
                var b = this.y.redSqr();
                var c = this.z.redSqr();
                c = c.redIAdd(c);
                var d = this.curve._mulA(a);
                var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
                var g = d.redAdd(b);
                var f = g.redSub(c);
                var h = d.redSub(b);
                var nx = e.redMul(f);
                var ny = g.redMul(h);
                var nt = e.redMul(h);
                var nz = f.redMul(g);
                return this.curve.point(nx, ny, nz, nt);
            };
            Point.prototype._projDbl = function _projDbl() {
                var b = this.x.redAdd(this.y).redSqr();
                var c = this.x.redSqr();
                var d = this.y.redSqr();
                var nx;
                var ny;
                var nz;
                var e;
                var h;
                var j;
                if (this.curve.twisted) {
                    e = this.curve._mulA(c);
                    var f = e.redAdd(d);
                    if (this.zOne) {
                        nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
                        ny = f.redMul(e.redSub(d));
                        nz = f.redSqr().redSub(f).redSub(f);
                    } else {
                        h = this.z.redSqr();
                        j = f.redSub(h).redISub(h);
                        nx = b.redSub(c).redISub(d).redMul(j);
                        ny = f.redMul(e.redSub(d));
                        nz = f.redMul(j);
                    }
                } else {
                    e = c.redAdd(d);
                    h = this.curve._mulC(this.z).redSqr();
                    j = e.redSub(h).redSub(h);
                    nx = this.curve._mulC(b.redISub(e)).redMul(j);
                    ny = this.curve._mulC(e).redMul(c.redISub(d));
                    nz = e.redMul(j);
                }
                return this.curve.point(nx, ny, nz);
            };
            Point.prototype.dbl = function dbl() {
                if (this.isInfinity()) return this;
                if (this.curve.extended) return this._extDbl();
                else return this._projDbl();
            };
            Point.prototype._extAdd = function _extAdd(p) {
                var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
                var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
                var c = this.t.redMul(this.curve.dd).redMul(p.t);
                var d = this.z.redMul(p.z.redAdd(p.z));
                var e = b.redSub(a);
                var f = d.redSub(c);
                var g = d.redAdd(c);
                var h = b.redAdd(a);
                var nx = e.redMul(f);
                var ny = g.redMul(h);
                var nt = e.redMul(h);
                var nz = f.redMul(g);
                return this.curve.point(nx, ny, nz, nt);
            };
            Point.prototype._projAdd = function _projAdd(p) {
                var a = this.z.redMul(p.z);
                var b = a.redSqr();
                var c = this.x.redMul(p.x);
                var d = this.y.redMul(p.y);
                var e = this.curve.d.redMul(c).redMul(d);
                var f = b.redSub(e);
                var g = b.redAdd(e);
                var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
                var nx = a.redMul(f).redMul(tmp);
                var ny;
                var nz;
                if (this.curve.twisted) {
                    ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
                    nz = f.redMul(g);
                } else {
                    ny = a.redMul(g).redMul(d.redSub(c));
                    nz = this.curve._mulC(f).redMul(g);
                }
                return this.curve.point(nx, ny, nz);
            };
            Point.prototype.add = function add(p) {
                if (this.isInfinity()) return p;
                if (p.isInfinity()) return this;
                if (this.curve.extended) return this._extAdd(p);
                else return this._projAdd(p);
            };
            Point.prototype.mul = function mul(k) {
                if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);
                else return this.curve._wnafMul(this, k);
            };
            Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
                return this.curve._wnafMulAdd(1, [
                    this,
                    p
                ], [
                    k1,
                    k2
                ], 2, false);
            };
            Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
                return this.curve._wnafMulAdd(1, [
                    this,
                    p
                ], [
                    k1,
                    k2
                ], 2, true);
            };
            Point.prototype.normalize = function normalize() {
                if (this.zOne) return this;
                var zi = this.z.redInvm();
                this.x = this.x.redMul(zi);
                this.y = this.y.redMul(zi);
                if (this.t) this.t = this.t.redMul(zi);
                this.z = this.curve.one;
                this.zOne = true;
                return this;
            };
            Point.prototype.neg = function neg() {
                return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg());
            };
            Point.prototype.getX = function getX() {
                this.normalize();
                return this.x.fromRed();
            };
            Point.prototype.getY = function getY() {
                this.normalize();
                return this.y.fromRed();
            };
            Point.prototype.eq = function eq(other) {
                return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0;
            };
            Point.prototype.eqXToP = function eqXToP(x) {
                var rx = x.toRed(this.curve.red).redMul(this.z);
                if (this.x.cmp(rx) === 0) return true;
                var xc = x.clone();
                var t = this.curve.redN.redMul(this.z);
                for(;;){
                    xc.iadd(this.curve.n);
                    if (xc.cmp(this.curve.p) >= 0) return false;
                    rx.redIAdd(t);
                    if (this.x.cmp(rx) === 0) return true;
                }
            };
            Point.prototype.toP = Point.prototype.normalize;
            Point.prototype.mixedAdd = Point.prototype.add;
        }
    });
    // node_modules/elliptic/lib/elliptic/curve/index.js
    var require_curve = __commonJS({
        "node_modules/elliptic/lib/elliptic/curve/index.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var curve = exports;
            curve.base = require_base();
            curve["short"] = require_short();
            curve.mont = require_mont();
            curve.edwards = require_edwards();
        }
    });
    // node_modules/hash.js/lib/hash/utils.js
    var require_utils5 = __commonJS({
        "node_modules/hash.js/lib/hash/utils.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assert = require_minimalistic_assert();
            var inherits = require_inherits_browser();
            exports.inherits = inherits;
            function isSurrogatePair(msg, i) {
                if ((msg.charCodeAt(i) & 64512) !== 55296) {
                    return false;
                }
                if (i < 0 || i + 1 >= msg.length) {
                    return false;
                }
                return (msg.charCodeAt(i + 1) & 64512) === 56320;
            }
            function toArray(msg, enc) {
                if (Array.isArray(msg)) return msg.slice();
                if (!msg) return [];
                var res = [];
                if (typeof msg === "string") {
                    if (!enc) {
                        var p = 0;
                        for(var i = 0; i < msg.length; i++){
                            var c = msg.charCodeAt(i);
                            if (c < 128) {
                                res[p++] = c;
                            } else if (c < 2048) {
                                res[p++] = c >> 6 | 192;
                                res[p++] = c & 63 | 128;
                            } else if (isSurrogatePair(msg, i)) {
                                c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023);
                                res[p++] = c >> 18 | 240;
                                res[p++] = c >> 12 & 63 | 128;
                                res[p++] = c >> 6 & 63 | 128;
                                res[p++] = c & 63 | 128;
                            } else {
                                res[p++] = c >> 12 | 224;
                                res[p++] = c >> 6 & 63 | 128;
                                res[p++] = c & 63 | 128;
                            }
                        }
                    } else if (enc === "hex") {
                        msg = msg.replace(/[^a-z0-9]+/ig, "");
                        if (msg.length % 2 !== 0) msg = "0" + msg;
                        for(i = 0; i < msg.length; i += 2)res.push(parseInt(msg[i] + msg[i + 1], 16));
                    }
                } else {
                    for(i = 0; i < msg.length; i++)res[i] = msg[i] | 0;
                }
                return res;
            }
            exports.toArray = toArray;
            function toHex(msg) {
                var res = "";
                for(var i = 0; i < msg.length; i++)res += zero2(msg[i].toString(16));
                return res;
            }
            exports.toHex = toHex;
            function htonl(w) {
                var res = w >>> 24 | w >>> 8 & 65280 | w << 8 & 16711680 | (w & 255) << 24;
                return res >>> 0;
            }
            exports.htonl = htonl;
            function toHex32(msg, endian) {
                var res = "";
                for(var i = 0; i < msg.length; i++){
                    var w = msg[i];
                    if (endian === "little") w = htonl(w);
                    res += zero8(w.toString(16));
                }
                return res;
            }
            exports.toHex32 = toHex32;
            function zero2(word) {
                if (word.length === 1) return "0" + word;
                else return word;
            }
            exports.zero2 = zero2;
            function zero8(word) {
                if (word.length === 7) return "0" + word;
                else if (word.length === 6) return "00" + word;
                else if (word.length === 5) return "000" + word;
                else if (word.length === 4) return "0000" + word;
                else if (word.length === 3) return "00000" + word;
                else if (word.length === 2) return "000000" + word;
                else if (word.length === 1) return "0000000" + word;
                else return word;
            }
            exports.zero8 = zero8;
            function join32(msg, start, end, endian) {
                var len = end - start;
                assert(len % 4 === 0);
                var res = new Array(len / 4);
                for(var i = 0, k = start; i < res.length; i++, k += 4){
                    var w;
                    if (endian === "big") w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];
                    else w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];
                    res[i] = w >>> 0;
                }
                return res;
            }
            exports.join32 = join32;
            function split32(msg, endian) {
                var res = new Array(msg.length * 4);
                for(var i = 0, k = 0; i < msg.length; i++, k += 4){
                    var m = msg[i];
                    if (endian === "big") {
                        res[k] = m >>> 24;
                        res[k + 1] = m >>> 16 & 255;
                        res[k + 2] = m >>> 8 & 255;
                        res[k + 3] = m & 255;
                    } else {
                        res[k + 3] = m >>> 24;
                        res[k + 2] = m >>> 16 & 255;
                        res[k + 1] = m >>> 8 & 255;
                        res[k] = m & 255;
                    }
                }
                return res;
            }
            exports.split32 = split32;
            function rotr32(w, b) {
                return w >>> b | w << 32 - b;
            }
            exports.rotr32 = rotr32;
            function rotl32(w, b) {
                return w << b | w >>> 32 - b;
            }
            exports.rotl32 = rotl32;
            function sum32(a, b) {
                return a + b >>> 0;
            }
            exports.sum32 = sum32;
            function sum32_3(a, b, c) {
                return a + b + c >>> 0;
            }
            exports.sum32_3 = sum32_3;
            function sum32_4(a, b, c, d) {
                return a + b + c + d >>> 0;
            }
            exports.sum32_4 = sum32_4;
            function sum32_5(a, b, c, d, e) {
                return a + b + c + d + e >>> 0;
            }
            exports.sum32_5 = sum32_5;
            function sum64(buf, pos, ah, al) {
                var bh = buf[pos];
                var bl = buf[pos + 1];
                var lo = al + bl >>> 0;
                var hi = (lo < al ? 1 : 0) + ah + bh;
                buf[pos] = hi >>> 0;
                buf[pos + 1] = lo;
            }
            exports.sum64 = sum64;
            function sum64_hi(ah, al, bh, bl) {
                var lo = al + bl >>> 0;
                var hi = (lo < al ? 1 : 0) + ah + bh;
                return hi >>> 0;
            }
            exports.sum64_hi = sum64_hi;
            function sum64_lo(ah, al, bh, bl) {
                var lo = al + bl;
                return lo >>> 0;
            }
            exports.sum64_lo = sum64_lo;
            function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
                var carry = 0;
                var lo = al;
                lo = lo + bl >>> 0;
                carry += lo < al ? 1 : 0;
                lo = lo + cl >>> 0;
                carry += lo < cl ? 1 : 0;
                lo = lo + dl >>> 0;
                carry += lo < dl ? 1 : 0;
                var hi = ah + bh + ch + dh + carry;
                return hi >>> 0;
            }
            exports.sum64_4_hi = sum64_4_hi;
            function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
                var lo = al + bl + cl + dl;
                return lo >>> 0;
            }
            exports.sum64_4_lo = sum64_4_lo;
            function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
                var carry = 0;
                var lo = al;
                lo = lo + bl >>> 0;
                carry += lo < al ? 1 : 0;
                lo = lo + cl >>> 0;
                carry += lo < cl ? 1 : 0;
                lo = lo + dl >>> 0;
                carry += lo < dl ? 1 : 0;
                lo = lo + el >>> 0;
                carry += lo < el ? 1 : 0;
                var hi = ah + bh + ch + dh + eh + carry;
                return hi >>> 0;
            }
            exports.sum64_5_hi = sum64_5_hi;
            function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
                var lo = al + bl + cl + dl + el;
                return lo >>> 0;
            }
            exports.sum64_5_lo = sum64_5_lo;
            function rotr64_hi(ah, al, num) {
                var r = al << 32 - num | ah >>> num;
                return r >>> 0;
            }
            exports.rotr64_hi = rotr64_hi;
            function rotr64_lo(ah, al, num) {
                var r = ah << 32 - num | al >>> num;
                return r >>> 0;
            }
            exports.rotr64_lo = rotr64_lo;
            function shr64_hi(ah, al, num) {
                return ah >>> num;
            }
            exports.shr64_hi = shr64_hi;
            function shr64_lo(ah, al, num) {
                var r = ah << 32 - num | al >>> num;
                return r >>> 0;
            }
            exports.shr64_lo = shr64_lo;
        }
    });
    // node_modules/hash.js/lib/hash/common.js
    var require_common2 = __commonJS({
        "node_modules/hash.js/lib/hash/common.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var assert = require_minimalistic_assert();
            function BlockHash() {
                this.pending = null;
                this.pendingTotal = 0;
                this.blockSize = this.constructor.blockSize;
                this.outSize = this.constructor.outSize;
                this.hmacStrength = this.constructor.hmacStrength;
                this.padLength = this.constructor.padLength / 8;
                this.endian = "big";
                this._delta8 = this.blockSize / 8;
                this._delta32 = this.blockSize / 32;
            }
            exports.BlockHash = BlockHash;
            BlockHash.prototype.update = function update(msg, enc) {
                msg = utils.toArray(msg, enc);
                if (!this.pending) this.pending = msg;
                else this.pending = this.pending.concat(msg);
                this.pendingTotal += msg.length;
                if (this.pending.length >= this._delta8) {
                    msg = this.pending;
                    var r = msg.length % this._delta8;
                    this.pending = msg.slice(msg.length - r, msg.length);
                    if (this.pending.length === 0) this.pending = null;
                    msg = utils.join32(msg, 0, msg.length - r, this.endian);
                    for(var i = 0; i < msg.length; i += this._delta32)this._update(msg, i, i + this._delta32);
                }
                return this;
            };
            BlockHash.prototype.digest = function digest2(enc) {
                this.update(this._pad());
                assert(this.pending === null);
                return this._digest(enc);
            };
            BlockHash.prototype._pad = function pad() {
                var len = this.pendingTotal;
                var bytes = this._delta8;
                var k = bytes - (len + this.padLength) % bytes;
                var res = new Array(k + this.padLength);
                res[0] = 128;
                for(var i = 1; i < k; i++)res[i] = 0;
                len <<= 3;
                if (this.endian === "big") {
                    for(var t = 8; t < this.padLength; t++)res[i++] = 0;
                    res[i++] = 0;
                    res[i++] = 0;
                    res[i++] = 0;
                    res[i++] = 0;
                    res[i++] = len >>> 24 & 255;
                    res[i++] = len >>> 16 & 255;
                    res[i++] = len >>> 8 & 255;
                    res[i++] = len & 255;
                } else {
                    res[i++] = len & 255;
                    res[i++] = len >>> 8 & 255;
                    res[i++] = len >>> 16 & 255;
                    res[i++] = len >>> 24 & 255;
                    res[i++] = 0;
                    res[i++] = 0;
                    res[i++] = 0;
                    res[i++] = 0;
                    for(t = 8; t < this.padLength; t++)res[i++] = 0;
                }
                return res;
            };
        }
    });
    // node_modules/hash.js/lib/hash/sha/common.js
    var require_common3 = __commonJS({
        "node_modules/hash.js/lib/hash/sha/common.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var rotr32 = utils.rotr32;
            function ft_1(s, x, y, z) {
                if (s === 0) return ch32(x, y, z);
                if (s === 1 || s === 3) return p32(x, y, z);
                if (s === 2) return maj32(x, y, z);
            }
            exports.ft_1 = ft_1;
            function ch32(x, y, z) {
                return x & y ^ ~x & z;
            }
            exports.ch32 = ch32;
            function maj32(x, y, z) {
                return x & y ^ x & z ^ y & z;
            }
            exports.maj32 = maj32;
            function p32(x, y, z) {
                return x ^ y ^ z;
            }
            exports.p32 = p32;
            function s0_256(x) {
                return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
            }
            exports.s0_256 = s0_256;
            function s1_256(x) {
                return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
            }
            exports.s1_256 = s1_256;
            function g0_256(x) {
                return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;
            }
            exports.g0_256 = g0_256;
            function g1_256(x) {
                return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;
            }
            exports.g1_256 = g1_256;
        }
    });
    // node_modules/hash.js/lib/hash/sha/1.js
    var require__ = __commonJS({
        "node_modules/hash.js/lib/hash/sha/1.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var common = require_common2();
            var shaCommon = require_common3();
            var rotl32 = utils.rotl32;
            var sum32 = utils.sum32;
            var sum32_5 = utils.sum32_5;
            var ft_1 = shaCommon.ft_1;
            var BlockHash = common.BlockHash;
            var sha1_K = [
                1518500249,
                1859775393,
                2400959708,
                3395469782
            ];
            function SHA1() {
                if (!(this instanceof SHA1)) return new SHA1();
                BlockHash.call(this);
                this.h = [
                    1732584193,
                    4023233417,
                    2562383102,
                    271733878,
                    3285377520
                ];
                this.W = new Array(80);
            }
            utils.inherits(SHA1, BlockHash);
            module.exports = SHA1;
            SHA1.blockSize = 512;
            SHA1.outSize = 160;
            SHA1.hmacStrength = 80;
            SHA1.padLength = 64;
            SHA1.prototype._update = function _update(msg, start) {
                var W = this.W;
                for(var i = 0; i < 16; i++)W[i] = msg[start + i];
                for(; i < W.length; i++)W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
                var a = this.h[0];
                var b = this.h[1];
                var c = this.h[2];
                var d = this.h[3];
                var e = this.h[4];
                for(i = 0; i < W.length; i++){
                    var s = ~~(i / 20);
                    var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
                    e = d;
                    d = c;
                    c = rotl32(b, 30);
                    b = a;
                    a = t;
                }
                this.h[0] = sum32(this.h[0], a);
                this.h[1] = sum32(this.h[1], b);
                this.h[2] = sum32(this.h[2], c);
                this.h[3] = sum32(this.h[3], d);
                this.h[4] = sum32(this.h[4], e);
            };
            SHA1.prototype._digest = function digest2(enc) {
                if (enc === "hex") return utils.toHex32(this.h, "big");
                else return utils.split32(this.h, "big");
            };
        }
    });
    // node_modules/hash.js/lib/hash/sha/256.js
    var require__2 = __commonJS({
        "node_modules/hash.js/lib/hash/sha/256.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var common = require_common2();
            var shaCommon = require_common3();
            var assert = require_minimalistic_assert();
            var sum32 = utils.sum32;
            var sum32_4 = utils.sum32_4;
            var sum32_5 = utils.sum32_5;
            var ch32 = shaCommon.ch32;
            var maj32 = shaCommon.maj32;
            var s0_256 = shaCommon.s0_256;
            var s1_256 = shaCommon.s1_256;
            var g0_256 = shaCommon.g0_256;
            var g1_256 = shaCommon.g1_256;
            var BlockHash = common.BlockHash;
            var sha256_K = [
                1116352408,
                1899447441,
                3049323471,
                3921009573,
                961987163,
                1508970993,
                2453635748,
                2870763221,
                3624381080,
                310598401,
                607225278,
                1426881987,
                1925078388,
                2162078206,
                2614888103,
                3248222580,
                3835390401,
                4022224774,
                264347078,
                604807628,
                770255983,
                1249150122,
                1555081692,
                1996064986,
                2554220882,
                2821834349,
                2952996808,
                3210313671,
                3336571891,
                3584528711,
                113926993,
                338241895,
                666307205,
                773529912,
                1294757372,
                1396182291,
                1695183700,
                1986661051,
                2177026350,
                2456956037,
                2730485921,
                2820302411,
                3259730800,
                3345764771,
                3516065817,
                3600352804,
                4094571909,
                275423344,
                430227734,
                506948616,
                659060556,
                883997877,
                958139571,
                1322822218,
                1537002063,
                1747873779,
                1955562222,
                2024104815,
                2227730452,
                2361852424,
                2428436474,
                2756734187,
                3204031479,
                3329325298
            ];
            function SHA256() {
                if (!(this instanceof SHA256)) return new SHA256();
                BlockHash.call(this);
                this.h = [
                    1779033703,
                    3144134277,
                    1013904242,
                    2773480762,
                    1359893119,
                    2600822924,
                    528734635,
                    1541459225
                ];
                this.k = sha256_K;
                this.W = new Array(64);
            }
            utils.inherits(SHA256, BlockHash);
            module.exports = SHA256;
            SHA256.blockSize = 512;
            SHA256.outSize = 256;
            SHA256.hmacStrength = 192;
            SHA256.padLength = 64;
            SHA256.prototype._update = function _update(msg, start) {
                var W = this.W;
                for(var i = 0; i < 16; i++)W[i] = msg[start + i];
                for(; i < W.length; i++)W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);
                var a = this.h[0];
                var b = this.h[1];
                var c = this.h[2];
                var d = this.h[3];
                var e = this.h[4];
                var f = this.h[5];
                var g = this.h[6];
                var h = this.h[7];
                assert(this.k.length === W.length);
                for(i = 0; i < W.length; i++){
                    var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
                    var T2 = sum32(s0_256(a), maj32(a, b, c));
                    h = g;
                    g = f;
                    f = e;
                    e = sum32(d, T1);
                    d = c;
                    c = b;
                    b = a;
                    a = sum32(T1, T2);
                }
                this.h[0] = sum32(this.h[0], a);
                this.h[1] = sum32(this.h[1], b);
                this.h[2] = sum32(this.h[2], c);
                this.h[3] = sum32(this.h[3], d);
                this.h[4] = sum32(this.h[4], e);
                this.h[5] = sum32(this.h[5], f);
                this.h[6] = sum32(this.h[6], g);
                this.h[7] = sum32(this.h[7], h);
            };
            SHA256.prototype._digest = function digest2(enc) {
                if (enc === "hex") return utils.toHex32(this.h, "big");
                else return utils.split32(this.h, "big");
            };
        }
    });
    // node_modules/hash.js/lib/hash/sha/224.js
    var require__3 = __commonJS({
        "node_modules/hash.js/lib/hash/sha/224.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var SHA256 = require__2();
            function SHA224() {
                if (!(this instanceof SHA224)) return new SHA224();
                SHA256.call(this);
                this.h = [
                    3238371032,
                    914150663,
                    812702999,
                    4144912697,
                    4290775857,
                    1750603025,
                    1694076839,
                    3204075428
                ];
            }
            utils.inherits(SHA224, SHA256);
            module.exports = SHA224;
            SHA224.blockSize = 512;
            SHA224.outSize = 224;
            SHA224.hmacStrength = 192;
            SHA224.padLength = 64;
            SHA224.prototype._digest = function digest2(enc) {
                if (enc === "hex") return utils.toHex32(this.h.slice(0, 7), "big");
                else return utils.split32(this.h.slice(0, 7), "big");
            };
        }
    });
    // node_modules/hash.js/lib/hash/sha/512.js
    var require__4 = __commonJS({
        "node_modules/hash.js/lib/hash/sha/512.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var common = require_common2();
            var assert = require_minimalistic_assert();
            var rotr64_hi = utils.rotr64_hi;
            var rotr64_lo = utils.rotr64_lo;
            var shr64_hi = utils.shr64_hi;
            var shr64_lo = utils.shr64_lo;
            var sum64 = utils.sum64;
            var sum64_hi = utils.sum64_hi;
            var sum64_lo = utils.sum64_lo;
            var sum64_4_hi = utils.sum64_4_hi;
            var sum64_4_lo = utils.sum64_4_lo;
            var sum64_5_hi = utils.sum64_5_hi;
            var sum64_5_lo = utils.sum64_5_lo;
            var BlockHash = common.BlockHash;
            var sha512_K = [
                1116352408,
                3609767458,
                1899447441,
                602891725,
                3049323471,
                3964484399,
                3921009573,
                2173295548,
                961987163,
                4081628472,
                1508970993,
                3053834265,
                2453635748,
                2937671579,
                2870763221,
                3664609560,
                3624381080,
                2734883394,
                310598401,
                1164996542,
                607225278,
                1323610764,
                1426881987,
                3590304994,
                1925078388,
                4068182383,
                2162078206,
                991336113,
                2614888103,
                633803317,
                3248222580,
                3479774868,
                3835390401,
                2666613458,
                4022224774,
                944711139,
                264347078,
                2341262773,
                604807628,
                2007800933,
                770255983,
                1495990901,
                1249150122,
                1856431235,
                1555081692,
                3175218132,
                1996064986,
                2198950837,
                2554220882,
                3999719339,
                2821834349,
                766784016,
                2952996808,
                2566594879,
                3210313671,
                3203337956,
                3336571891,
                1034457026,
                3584528711,
                2466948901,
                113926993,
                3758326383,
                338241895,
                168717936,
                666307205,
                1188179964,
                773529912,
                1546045734,
                1294757372,
                1522805485,
                1396182291,
                2643833823,
                1695183700,
                2343527390,
                1986661051,
                1014477480,
                2177026350,
                1206759142,
                2456956037,
                344077627,
                2730485921,
                1290863460,
                2820302411,
                3158454273,
                3259730800,
                3505952657,
                3345764771,
                106217008,
                3516065817,
                3606008344,
                3600352804,
                1432725776,
                4094571909,
                1467031594,
                275423344,
                851169720,
                430227734,
                3100823752,
                506948616,
                1363258195,
                659060556,
                3750685593,
                883997877,
                3785050280,
                958139571,
                3318307427,
                1322822218,
                3812723403,
                1537002063,
                2003034995,
                1747873779,
                3602036899,
                1955562222,
                1575990012,
                2024104815,
                1125592928,
                2227730452,
                2716904306,
                2361852424,
                442776044,
                2428436474,
                593698344,
                2756734187,
                3733110249,
                3204031479,
                2999351573,
                3329325298,
                3815920427,
                3391569614,
                3928383900,
                3515267271,
                566280711,
                3940187606,
                3454069534,
                4118630271,
                4000239992,
                116418474,
                1914138554,
                174292421,
                2731055270,
                289380356,
                3203993006,
                460393269,
                320620315,
                685471733,
                587496836,
                852142971,
                1086792851,
                1017036298,
                365543100,
                1126000580,
                2618297676,
                1288033470,
                3409855158,
                1501505948,
                4234509866,
                1607167915,
                987167468,
                1816402316,
                1246189591
            ];
            function SHA512() {
                if (!(this instanceof SHA512)) return new SHA512();
                BlockHash.call(this);
                this.h = [
                    1779033703,
                    4089235720,
                    3144134277,
                    2227873595,
                    1013904242,
                    4271175723,
                    2773480762,
                    1595750129,
                    1359893119,
                    2917565137,
                    2600822924,
                    725511199,
                    528734635,
                    4215389547,
                    1541459225,
                    327033209
                ];
                this.k = sha512_K;
                this.W = new Array(160);
            }
            utils.inherits(SHA512, BlockHash);
            module.exports = SHA512;
            SHA512.blockSize = 1024;
            SHA512.outSize = 512;
            SHA512.hmacStrength = 192;
            SHA512.padLength = 128;
            SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
                var W = this.W;
                for(var i = 0; i < 32; i++)W[i] = msg[start + i];
                for(; i < W.length; i += 2){
                    var c0_hi = g1_512_hi(W[i - 4], W[i - 3]);
                    var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
                    var c1_hi = W[i - 14];
                    var c1_lo = W[i - 13];
                    var c2_hi = g0_512_hi(W[i - 30], W[i - 29]);
                    var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);
                    var c3_hi = W[i - 32];
                    var c3_lo = W[i - 31];
                    W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);
                    W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);
                }
            };
            SHA512.prototype._update = function _update(msg, start) {
                this._prepareBlock(msg, start);
                var W = this.W;
                var ah = this.h[0];
                var al = this.h[1];
                var bh = this.h[2];
                var bl = this.h[3];
                var ch = this.h[4];
                var cl = this.h[5];
                var dh = this.h[6];
                var dl = this.h[7];
                var eh = this.h[8];
                var el = this.h[9];
                var fh = this.h[10];
                var fl = this.h[11];
                var gh = this.h[12];
                var gl = this.h[13];
                var hh = this.h[14];
                var hl = this.h[15];
                assert(this.k.length === W.length);
                for(var i = 0; i < W.length; i += 2){
                    var c0_hi = hh;
                    var c0_lo = hl;
                    var c1_hi = s1_512_hi(eh, el);
                    var c1_lo = s1_512_lo(eh, el);
                    var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
                    var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
                    var c3_hi = this.k[i];
                    var c3_lo = this.k[i + 1];
                    var c4_hi = W[i];
                    var c4_lo = W[i + 1];
                    var T1_hi = sum64_5_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);
                    var T1_lo = sum64_5_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);
                    c0_hi = s0_512_hi(ah, al);
                    c0_lo = s0_512_lo(ah, al);
                    c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
                    c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
                    var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
                    var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
                    hh = gh;
                    hl = gl;
                    gh = fh;
                    gl = fl;
                    fh = eh;
                    fl = el;
                    eh = sum64_hi(dh, dl, T1_hi, T1_lo);
                    el = sum64_lo(dl, dl, T1_hi, T1_lo);
                    dh = ch;
                    dl = cl;
                    ch = bh;
                    cl = bl;
                    bh = ah;
                    bl = al;
                    ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
                    al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
                }
                sum64(this.h, 0, ah, al);
                sum64(this.h, 2, bh, bl);
                sum64(this.h, 4, ch, cl);
                sum64(this.h, 6, dh, dl);
                sum64(this.h, 8, eh, el);
                sum64(this.h, 10, fh, fl);
                sum64(this.h, 12, gh, gl);
                sum64(this.h, 14, hh, hl);
            };
            SHA512.prototype._digest = function digest2(enc) {
                if (enc === "hex") return utils.toHex32(this.h, "big");
                else return utils.split32(this.h, "big");
            };
            function ch64_hi(xh, xl, yh, yl, zh) {
                var r = xh & yh ^ ~xh & zh;
                if (r < 0) r += 4294967296;
                return r;
            }
            function ch64_lo(xh, xl, yh, yl, zh, zl) {
                var r = xl & yl ^ ~xl & zl;
                if (r < 0) r += 4294967296;
                return r;
            }
            function maj64_hi(xh, xl, yh, yl, zh) {
                var r = xh & yh ^ xh & zh ^ yh & zh;
                if (r < 0) r += 4294967296;
                return r;
            }
            function maj64_lo(xh, xl, yh, yl, zh, zl) {
                var r = xl & yl ^ xl & zl ^ yl & zl;
                if (r < 0) r += 4294967296;
                return r;
            }
            function s0_512_hi(xh, xl) {
                var c0_hi = rotr64_hi(xh, xl, 28);
                var c1_hi = rotr64_hi(xl, xh, 2);
                var c2_hi = rotr64_hi(xl, xh, 7);
                var r = c0_hi ^ c1_hi ^ c2_hi;
                if (r < 0) r += 4294967296;
                return r;
            }
            function s0_512_lo(xh, xl) {
                var c0_lo = rotr64_lo(xh, xl, 28);
                var c1_lo = rotr64_lo(xl, xh, 2);
                var c2_lo = rotr64_lo(xl, xh, 7);
                var r = c0_lo ^ c1_lo ^ c2_lo;
                if (r < 0) r += 4294967296;
                return r;
            }
            function s1_512_hi(xh, xl) {
                var c0_hi = rotr64_hi(xh, xl, 14);
                var c1_hi = rotr64_hi(xh, xl, 18);
                var c2_hi = rotr64_hi(xl, xh, 9);
                var r = c0_hi ^ c1_hi ^ c2_hi;
                if (r < 0) r += 4294967296;
                return r;
            }
            function s1_512_lo(xh, xl) {
                var c0_lo = rotr64_lo(xh, xl, 14);
                var c1_lo = rotr64_lo(xh, xl, 18);
                var c2_lo = rotr64_lo(xl, xh, 9);
                var r = c0_lo ^ c1_lo ^ c2_lo;
                if (r < 0) r += 4294967296;
                return r;
            }
            function g0_512_hi(xh, xl) {
                var c0_hi = rotr64_hi(xh, xl, 1);
                var c1_hi = rotr64_hi(xh, xl, 8);
                var c2_hi = shr64_hi(xh, xl, 7);
                var r = c0_hi ^ c1_hi ^ c2_hi;
                if (r < 0) r += 4294967296;
                return r;
            }
            function g0_512_lo(xh, xl) {
                var c0_lo = rotr64_lo(xh, xl, 1);
                var c1_lo = rotr64_lo(xh, xl, 8);
                var c2_lo = shr64_lo(xh, xl, 7);
                var r = c0_lo ^ c1_lo ^ c2_lo;
                if (r < 0) r += 4294967296;
                return r;
            }
            function g1_512_hi(xh, xl) {
                var c0_hi = rotr64_hi(xh, xl, 19);
                var c1_hi = rotr64_hi(xl, xh, 29);
                var c2_hi = shr64_hi(xh, xl, 6);
                var r = c0_hi ^ c1_hi ^ c2_hi;
                if (r < 0) r += 4294967296;
                return r;
            }
            function g1_512_lo(xh, xl) {
                var c0_lo = rotr64_lo(xh, xl, 19);
                var c1_lo = rotr64_lo(xl, xh, 29);
                var c2_lo = shr64_lo(xh, xl, 6);
                var r = c0_lo ^ c1_lo ^ c2_lo;
                if (r < 0) r += 4294967296;
                return r;
            }
        }
    });
    // node_modules/hash.js/lib/hash/sha/384.js
    var require__5 = __commonJS({
        "node_modules/hash.js/lib/hash/sha/384.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var SHA512 = require__4();
            function SHA384() {
                if (!(this instanceof SHA384)) return new SHA384();
                SHA512.call(this);
                this.h = [
                    3418070365,
                    3238371032,
                    1654270250,
                    914150663,
                    2438529370,
                    812702999,
                    355462360,
                    4144912697,
                    1731405415,
                    4290775857,
                    2394180231,
                    1750603025,
                    3675008525,
                    1694076839,
                    1203062813,
                    3204075428
                ];
            }
            utils.inherits(SHA384, SHA512);
            module.exports = SHA384;
            SHA384.blockSize = 1024;
            SHA384.outSize = 384;
            SHA384.hmacStrength = 192;
            SHA384.padLength = 128;
            SHA384.prototype._digest = function digest2(enc) {
                if (enc === "hex") return utils.toHex32(this.h.slice(0, 12), "big");
                else return utils.split32(this.h.slice(0, 12), "big");
            };
        }
    });
    // node_modules/hash.js/lib/hash/sha.js
    var require_sha3 = __commonJS({
        "node_modules/hash.js/lib/hash/sha.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.sha1 = require__();
            exports.sha224 = require__3();
            exports.sha256 = require__2();
            exports.sha384 = require__5();
            exports.sha512 = require__4();
        }
    });
    // node_modules/hash.js/lib/hash/ripemd.js
    var require_ripemd = __commonJS({
        "node_modules/hash.js/lib/hash/ripemd.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var common = require_common2();
            var rotl32 = utils.rotl32;
            var sum32 = utils.sum32;
            var sum32_3 = utils.sum32_3;
            var sum32_4 = utils.sum32_4;
            var BlockHash = common.BlockHash;
            function RIPEMD160() {
                if (!(this instanceof RIPEMD160)) return new RIPEMD160();
                BlockHash.call(this);
                this.h = [
                    1732584193,
                    4023233417,
                    2562383102,
                    271733878,
                    3285377520
                ];
                this.endian = "little";
            }
            utils.inherits(RIPEMD160, BlockHash);
            exports.ripemd160 = RIPEMD160;
            RIPEMD160.blockSize = 512;
            RIPEMD160.outSize = 160;
            RIPEMD160.hmacStrength = 192;
            RIPEMD160.padLength = 64;
            RIPEMD160.prototype._update = function update(msg, start) {
                var A = this.h[0];
                var B = this.h[1];
                var C = this.h[2];
                var D = this.h[3];
                var E = this.h[4];
                var Ah = A;
                var Bh = B;
                var Ch = C;
                var Dh = D;
                var Eh = E;
                for(var j = 0; j < 80; j++){
                    var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E);
                    A = E;
                    E = D;
                    D = rotl32(C, 10);
                    C = B;
                    B = T;
                    T = sum32(rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh);
                    Ah = Eh;
                    Eh = Dh;
                    Dh = rotl32(Ch, 10);
                    Ch = Bh;
                    Bh = T;
                }
                T = sum32_3(this.h[1], C, Dh);
                this.h[1] = sum32_3(this.h[2], D, Eh);
                this.h[2] = sum32_3(this.h[3], E, Ah);
                this.h[3] = sum32_3(this.h[4], A, Bh);
                this.h[4] = sum32_3(this.h[0], B, Ch);
                this.h[0] = T;
            };
            RIPEMD160.prototype._digest = function digest2(enc) {
                if (enc === "hex") return utils.toHex32(this.h, "little");
                else return utils.split32(this.h, "little");
            };
            function f(j, x, y, z) {
                if (j <= 15) return x ^ y ^ z;
                else if (j <= 31) return x & y | ~x & z;
                else if (j <= 47) return (x | ~y) ^ z;
                else if (j <= 63) return x & z | y & ~z;
                else return x ^ (y | ~z);
            }
            function K(j) {
                if (j <= 15) return 0;
                else if (j <= 31) return 1518500249;
                else if (j <= 47) return 1859775393;
                else if (j <= 63) return 2400959708;
                else return 2840853838;
            }
            function Kh(j) {
                if (j <= 15) return 1352829926;
                else if (j <= 31) return 1548603684;
                else if (j <= 47) return 1836072691;
                else if (j <= 63) return 2053994217;
                else return 0;
            }
            var r = [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                7,
                4,
                13,
                1,
                10,
                6,
                15,
                3,
                12,
                0,
                9,
                5,
                2,
                14,
                11,
                8,
                3,
                10,
                14,
                4,
                9,
                15,
                8,
                1,
                2,
                7,
                0,
                6,
                13,
                11,
                5,
                12,
                1,
                9,
                11,
                10,
                0,
                8,
                12,
                4,
                13,
                3,
                7,
                15,
                14,
                5,
                6,
                2,
                4,
                0,
                5,
                9,
                7,
                12,
                2,
                10,
                14,
                1,
                3,
                8,
                11,
                6,
                15,
                13
            ];
            var rh = [
                5,
                14,
                7,
                0,
                9,
                2,
                11,
                4,
                13,
                6,
                15,
                8,
                1,
                10,
                3,
                12,
                6,
                11,
                3,
                7,
                0,
                13,
                5,
                10,
                14,
                15,
                8,
                12,
                4,
                9,
                1,
                2,
                15,
                5,
                1,
                3,
                7,
                14,
                6,
                9,
                11,
                8,
                12,
                2,
                10,
                0,
                4,
                13,
                8,
                6,
                4,
                1,
                3,
                11,
                15,
                0,
                5,
                12,
                2,
                13,
                9,
                7,
                10,
                14,
                12,
                15,
                10,
                4,
                1,
                5,
                8,
                7,
                6,
                2,
                13,
                14,
                0,
                3,
                9,
                11
            ];
            var s = [
                11,
                14,
                15,
                12,
                5,
                8,
                7,
                9,
                11,
                13,
                14,
                15,
                6,
                7,
                9,
                8,
                7,
                6,
                8,
                13,
                11,
                9,
                7,
                15,
                7,
                12,
                15,
                9,
                11,
                7,
                13,
                12,
                11,
                13,
                6,
                7,
                14,
                9,
                13,
                15,
                14,
                8,
                13,
                6,
                5,
                12,
                7,
                5,
                11,
                12,
                14,
                15,
                14,
                15,
                9,
                8,
                9,
                14,
                5,
                6,
                8,
                6,
                5,
                12,
                9,
                15,
                5,
                11,
                6,
                8,
                13,
                12,
                5,
                12,
                13,
                14,
                11,
                8,
                5,
                6
            ];
            var sh = [
                8,
                9,
                9,
                11,
                13,
                15,
                15,
                5,
                7,
                7,
                8,
                11,
                14,
                14,
                12,
                6,
                9,
                13,
                15,
                7,
                12,
                8,
                9,
                11,
                7,
                7,
                12,
                7,
                6,
                15,
                13,
                11,
                9,
                7,
                15,
                11,
                8,
                6,
                6,
                14,
                12,
                13,
                5,
                14,
                13,
                13,
                7,
                5,
                15,
                5,
                8,
                11,
                14,
                14,
                6,
                14,
                6,
                9,
                12,
                9,
                12,
                5,
                15,
                8,
                8,
                5,
                12,
                9,
                12,
                5,
                14,
                6,
                8,
                13,
                6,
                5,
                15,
                13,
                11,
                11
            ];
        }
    });
    // node_modules/hash.js/lib/hash/hmac.js
    var require_hmac = __commonJS({
        "node_modules/hash.js/lib/hash/hmac.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils5();
            var assert = require_minimalistic_assert();
            function Hmac(hash, key, enc) {
                if (!(this instanceof Hmac)) return new Hmac(hash, key, enc);
                this.Hash = hash;
                this.blockSize = hash.blockSize / 8;
                this.outSize = hash.outSize / 8;
                this.inner = null;
                this.outer = null;
                this._init(utils.toArray(key, enc));
            }
            module.exports = Hmac;
            Hmac.prototype._init = function init(key) {
                if (key.length > this.blockSize) key = new this.Hash().update(key).digest();
                assert(key.length <= this.blockSize);
                for(var i = key.length; i < this.blockSize; i++)key.push(0);
                for(i = 0; i < key.length; i++)key[i] ^= 54;
                this.inner = new this.Hash().update(key);
                for(i = 0; i < key.length; i++)key[i] ^= 106;
                this.outer = new this.Hash().update(key);
            };
            Hmac.prototype.update = function update(msg, enc) {
                this.inner.update(msg, enc);
                return this;
            };
            Hmac.prototype.digest = function digest2(enc) {
                this.outer.update(this.inner.digest());
                return this.outer.digest(enc);
            };
        }
    });
    // node_modules/hash.js/lib/hash.js
    var require_hash2 = __commonJS({
        "node_modules/hash.js/lib/hash.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hash = exports;
            hash.utils = require_utils5();
            hash.common = require_common2();
            hash.sha = require_sha3();
            hash.ripemd = require_ripemd();
            hash.hmac = require_hmac();
            hash.sha1 = hash.sha.sha1;
            hash.sha256 = hash.sha.sha256;
            hash.sha224 = hash.sha.sha224;
            hash.sha384 = hash.sha.sha384;
            hash.sha512 = hash.sha.sha512;
            hash.ripemd160 = hash.ripemd.ripemd160;
        }
    });
    // node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
    var require_secp256k1 = __commonJS({
        "node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = {
                doubles: {
                    step: 4,
                    points: [
                        [
                            "e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a",
                            "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"
                        ],
                        [
                            "8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508",
                            "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"
                        ],
                        [
                            "175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739",
                            "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"
                        ],
                        [
                            "363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640",
                            "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"
                        ],
                        [
                            "8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c",
                            "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"
                        ],
                        [
                            "723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda",
                            "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"
                        ],
                        [
                            "eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa",
                            "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"
                        ],
                        [
                            "100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0",
                            "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"
                        ],
                        [
                            "e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d",
                            "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"
                        ],
                        [
                            "feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d",
                            "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"
                        ],
                        [
                            "da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1",
                            "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"
                        ],
                        [
                            "53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0",
                            "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"
                        ],
                        [
                            "8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047",
                            "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"
                        ],
                        [
                            "385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862",
                            "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"
                        ],
                        [
                            "6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7",
                            "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"
                        ],
                        [
                            "3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd",
                            "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"
                        ],
                        [
                            "85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83",
                            "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"
                        ],
                        [
                            "948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a",
                            "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"
                        ],
                        [
                            "6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8",
                            "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"
                        ],
                        [
                            "e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d",
                            "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"
                        ],
                        [
                            "e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725",
                            "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"
                        ],
                        [
                            "213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754",
                            "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"
                        ],
                        [
                            "4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c",
                            "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"
                        ],
                        [
                            "fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6",
                            "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"
                        ],
                        [
                            "76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39",
                            "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"
                        ],
                        [
                            "c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891",
                            "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"
                        ],
                        [
                            "d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b",
                            "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"
                        ],
                        [
                            "b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03",
                            "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"
                        ],
                        [
                            "e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d",
                            "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"
                        ],
                        [
                            "a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070",
                            "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"
                        ],
                        [
                            "90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4",
                            "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"
                        ],
                        [
                            "8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da",
                            "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"
                        ],
                        [
                            "e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11",
                            "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"
                        ],
                        [
                            "8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e",
                            "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"
                        ],
                        [
                            "e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41",
                            "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"
                        ],
                        [
                            "b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef",
                            "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"
                        ],
                        [
                            "d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8",
                            "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"
                        ],
                        [
                            "324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d",
                            "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"
                        ],
                        [
                            "4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96",
                            "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"
                        ],
                        [
                            "9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd",
                            "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"
                        ],
                        [
                            "6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5",
                            "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"
                        ],
                        [
                            "a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266",
                            "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"
                        ],
                        [
                            "7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71",
                            "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"
                        ],
                        [
                            "928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac",
                            "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"
                        ],
                        [
                            "85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751",
                            "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"
                        ],
                        [
                            "ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e",
                            "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"
                        ],
                        [
                            "827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241",
                            "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"
                        ],
                        [
                            "eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3",
                            "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"
                        ],
                        [
                            "e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f",
                            "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"
                        ],
                        [
                            "1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19",
                            "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"
                        ],
                        [
                            "146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be",
                            "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"
                        ],
                        [
                            "fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9",
                            "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"
                        ],
                        [
                            "da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2",
                            "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"
                        ],
                        [
                            "a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13",
                            "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"
                        ],
                        [
                            "174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c",
                            "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"
                        ],
                        [
                            "959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba",
                            "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"
                        ],
                        [
                            "d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151",
                            "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"
                        ],
                        [
                            "64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073",
                            "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"
                        ],
                        [
                            "8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458",
                            "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"
                        ],
                        [
                            "13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b",
                            "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"
                        ],
                        [
                            "bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366",
                            "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"
                        ],
                        [
                            "8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa",
                            "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"
                        ],
                        [
                            "8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0",
                            "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"
                        ],
                        [
                            "dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787",
                            "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"
                        ],
                        [
                            "f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e",
                            "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"
                        ]
                    ]
                },
                naf: {
                    wnd: 7,
                    points: [
                        [
                            "f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9",
                            "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"
                        ],
                        [
                            "2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4",
                            "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"
                        ],
                        [
                            "5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc",
                            "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"
                        ],
                        [
                            "acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe",
                            "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"
                        ],
                        [
                            "774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb",
                            "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"
                        ],
                        [
                            "f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8",
                            "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"
                        ],
                        [
                            "d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e",
                            "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"
                        ],
                        [
                            "defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34",
                            "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"
                        ],
                        [
                            "2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c",
                            "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"
                        ],
                        [
                            "352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5",
                            "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"
                        ],
                        [
                            "2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f",
                            "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"
                        ],
                        [
                            "9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714",
                            "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"
                        ],
                        [
                            "daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729",
                            "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"
                        ],
                        [
                            "c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db",
                            "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"
                        ],
                        [
                            "6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4",
                            "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"
                        ],
                        [
                            "1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5",
                            "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"
                        ],
                        [
                            "605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479",
                            "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"
                        ],
                        [
                            "62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d",
                            "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"
                        ],
                        [
                            "80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f",
                            "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"
                        ],
                        [
                            "7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb",
                            "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"
                        ],
                        [
                            "d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9",
                            "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"
                        ],
                        [
                            "49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963",
                            "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"
                        ],
                        [
                            "77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74",
                            "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"
                        ],
                        [
                            "f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530",
                            "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"
                        ],
                        [
                            "463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b",
                            "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"
                        ],
                        [
                            "f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247",
                            "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"
                        ],
                        [
                            "caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1",
                            "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"
                        ],
                        [
                            "2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120",
                            "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"
                        ],
                        [
                            "7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435",
                            "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"
                        ],
                        [
                            "754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18",
                            "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"
                        ],
                        [
                            "e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8",
                            "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"
                        ],
                        [
                            "186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb",
                            "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"
                        ],
                        [
                            "df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f",
                            "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"
                        ],
                        [
                            "5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143",
                            "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"
                        ],
                        [
                            "290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba",
                            "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"
                        ],
                        [
                            "af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45",
                            "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"
                        ],
                        [
                            "766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a",
                            "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"
                        ],
                        [
                            "59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e",
                            "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"
                        ],
                        [
                            "f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8",
                            "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"
                        ],
                        [
                            "7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c",
                            "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"
                        ],
                        [
                            "948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519",
                            "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"
                        ],
                        [
                            "7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab",
                            "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"
                        ],
                        [
                            "3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca",
                            "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"
                        ],
                        [
                            "d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf",
                            "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"
                        ],
                        [
                            "1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610",
                            "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"
                        ],
                        [
                            "733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4",
                            "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"
                        ],
                        [
                            "15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c",
                            "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"
                        ],
                        [
                            "a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940",
                            "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"
                        ],
                        [
                            "e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980",
                            "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"
                        ],
                        [
                            "311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3",
                            "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"
                        ],
                        [
                            "34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf",
                            "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"
                        ],
                        [
                            "f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63",
                            "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"
                        ],
                        [
                            "d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448",
                            "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"
                        ],
                        [
                            "32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf",
                            "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"
                        ],
                        [
                            "7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5",
                            "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"
                        ],
                        [
                            "ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6",
                            "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"
                        ],
                        [
                            "16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5",
                            "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"
                        ],
                        [
                            "eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99",
                            "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"
                        ],
                        [
                            "78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51",
                            "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"
                        ],
                        [
                            "494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5",
                            "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"
                        ],
                        [
                            "a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5",
                            "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"
                        ],
                        [
                            "c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997",
                            "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"
                        ],
                        [
                            "841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881",
                            "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"
                        ],
                        [
                            "5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5",
                            "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"
                        ],
                        [
                            "36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66",
                            "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"
                        ],
                        [
                            "336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726",
                            "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"
                        ],
                        [
                            "8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede",
                            "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"
                        ],
                        [
                            "1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94",
                            "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"
                        ],
                        [
                            "85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31",
                            "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"
                        ],
                        [
                            "29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51",
                            "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"
                        ],
                        [
                            "a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252",
                            "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"
                        ],
                        [
                            "4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5",
                            "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"
                        ],
                        [
                            "d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b",
                            "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"
                        ],
                        [
                            "ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4",
                            "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"
                        ],
                        [
                            "af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f",
                            "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"
                        ],
                        [
                            "e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889",
                            "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"
                        ],
                        [
                            "591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246",
                            "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"
                        ],
                        [
                            "11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984",
                            "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"
                        ],
                        [
                            "3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a",
                            "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"
                        ],
                        [
                            "cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030",
                            "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"
                        ],
                        [
                            "c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197",
                            "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"
                        ],
                        [
                            "c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593",
                            "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"
                        ],
                        [
                            "a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef",
                            "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"
                        ],
                        [
                            "347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38",
                            "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"
                        ],
                        [
                            "da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a",
                            "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"
                        ],
                        [
                            "c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111",
                            "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"
                        ],
                        [
                            "4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502",
                            "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"
                        ],
                        [
                            "3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea",
                            "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"
                        ],
                        [
                            "cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26",
                            "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"
                        ],
                        [
                            "b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986",
                            "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"
                        ],
                        [
                            "d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e",
                            "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"
                        ],
                        [
                            "48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4",
                            "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"
                        ],
                        [
                            "dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda",
                            "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"
                        ],
                        [
                            "6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859",
                            "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"
                        ],
                        [
                            "e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f",
                            "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"
                        ],
                        [
                            "eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c",
                            "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"
                        ],
                        [
                            "13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942",
                            "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"
                        ],
                        [
                            "ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a",
                            "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"
                        ],
                        [
                            "b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80",
                            "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"
                        ],
                        [
                            "ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d",
                            "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"
                        ],
                        [
                            "8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1",
                            "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"
                        ],
                        [
                            "52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63",
                            "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"
                        ],
                        [
                            "e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352",
                            "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"
                        ],
                        [
                            "7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193",
                            "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"
                        ],
                        [
                            "5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00",
                            "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"
                        ],
                        [
                            "32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58",
                            "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"
                        ],
                        [
                            "e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7",
                            "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"
                        ],
                        [
                            "8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8",
                            "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"
                        ],
                        [
                            "4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e",
                            "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"
                        ],
                        [
                            "3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d",
                            "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"
                        ],
                        [
                            "674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b",
                            "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"
                        ],
                        [
                            "d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f",
                            "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"
                        ],
                        [
                            "30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6",
                            "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"
                        ],
                        [
                            "be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297",
                            "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"
                        ],
                        [
                            "93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a",
                            "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"
                        ],
                        [
                            "b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c",
                            "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"
                        ],
                        [
                            "d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52",
                            "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"
                        ],
                        [
                            "d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb",
                            "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"
                        ],
                        [
                            "463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065",
                            "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"
                        ],
                        [
                            "7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917",
                            "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"
                        ],
                        [
                            "74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9",
                            "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"
                        ],
                        [
                            "30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3",
                            "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"
                        ],
                        [
                            "9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57",
                            "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"
                        ],
                        [
                            "176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66",
                            "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"
                        ],
                        [
                            "75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8",
                            "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"
                        ],
                        [
                            "809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721",
                            "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"
                        ],
                        [
                            "1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180",
                            "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"
                        ]
                    ]
                }
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/curves.js
    var require_curves = __commonJS({
        "node_modules/elliptic/lib/elliptic/curves.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var curves = exports;
            var hash = require_hash2();
            var curve = require_curve();
            var utils = require_utils4();
            var assert = utils.assert;
            function PresetCurve(options) {
                if (options.type === "short") this.curve = new curve["short"](options);
                else if (options.type === "edwards") this.curve = new curve.edwards(options);
                else this.curve = new curve.mont(options);
                this.g = this.curve.g;
                this.n = this.curve.n;
                this.hash = options.hash;
                assert(this.g.validate(), "Invalid curve");
                assert(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O");
            }
            curves.PresetCurve = PresetCurve;
            function defineCurve(name, options) {
                Object.defineProperty(curves, name, {
                    configurable: true,
                    enumerable: true,
                    get: function get() {
                        var curve2 = new PresetCurve(options);
                        Object.defineProperty(curves, name, {
                            configurable: true,
                            enumerable: true,
                            value: curve2
                        });
                        return curve2;
                    }
                });
            }
            defineCurve("p192", {
                type: "short",
                prime: "p192",
                p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",
                a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",
                b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",
                n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",
                hash: hash.sha256,
                gRed: false,
                g: [
                    "188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012",
                    "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"
                ]
            });
            defineCurve("p224", {
                type: "short",
                prime: "p224",
                p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",
                a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",
                b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",
                n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",
                hash: hash.sha256,
                gRed: false,
                g: [
                    "b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21",
                    "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"
                ]
            });
            defineCurve("p256", {
                type: "short",
                prime: null,
                p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",
                a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",
                b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",
                n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",
                hash: hash.sha256,
                gRed: false,
                g: [
                    "6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296",
                    "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"
                ]
            });
            defineCurve("p384", {
                type: "short",
                prime: null,
                p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",
                a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",
                b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",
                n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",
                hash: hash.sha384,
                gRed: false,
                g: [
                    "aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7",
                    "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"
                ]
            });
            defineCurve("p521", {
                type: "short",
                prime: null,
                p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",
                a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",
                b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",
                n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",
                hash: hash.sha512,
                gRed: false,
                g: [
                    "000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66",
                    "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"
                ]
            });
            defineCurve("curve25519", {
                type: "mont",
                prime: "p25519",
                p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
                a: "76d06",
                b: "1",
                n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
                hash: hash.sha256,
                gRed: false,
                g: [
                    "9"
                ]
            });
            defineCurve("ed25519", {
                type: "edwards",
                prime: "p25519",
                p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
                a: "-1",
                c: "1",
                // -121665 * (121666^(-1)) (mod P)
                d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",
                n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
                hash: hash.sha256,
                gRed: false,
                g: [
                    "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a",
                    // 4/5
                    "6666666666666666666666666666666666666666666666666666666666666658"
                ]
            });
            var pre;
            try {
                pre = require_secp256k1();
            } catch (e) {
                pre = void 0;
            }
            defineCurve("secp256k1", {
                type: "short",
                prime: "k256",
                p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",
                a: "0",
                b: "7",
                n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",
                h: "1",
                hash: hash.sha256,
                // Precomputed endomorphism
                beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",
                lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",
                basis: [
                    {
                        a: "3086d221a7d46bcde86c90e49284eb15",
                        b: "-e4437ed6010e88286f547fa90abfe4c3"
                    },
                    {
                        a: "114ca50f7a8e2f3f657c1108d9d44cfd8",
                        b: "3086d221a7d46bcde86c90e49284eb15"
                    }
                ],
                gRed: false,
                g: [
                    "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
                    "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
                    pre
                ]
            });
        }
    });
    // node_modules/hmac-drbg/lib/hmac-drbg.js
    var require_hmac_drbg = __commonJS({
        "node_modules/hmac-drbg/lib/hmac-drbg.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hash = require_hash2();
            var utils = require_utils3();
            var assert = require_minimalistic_assert();
            function HmacDRBG(options) {
                if (!(this instanceof HmacDRBG)) return new HmacDRBG(options);
                this.hash = options.hash;
                this.predResist = !!options.predResist;
                this.outLen = this.hash.outSize;
                this.minEntropy = options.minEntropy || this.hash.hmacStrength;
                this._reseed = null;
                this.reseedInterval = null;
                this.K = null;
                this.V = null;
                var entropy = utils.toArray(options.entropy, options.entropyEnc || "hex");
                var nonce = utils.toArray(options.nonce, options.nonceEnc || "hex");
                var pers = utils.toArray(options.pers, options.persEnc || "hex");
                assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits");
                this._init(entropy, nonce, pers);
            }
            module.exports = HmacDRBG;
            HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
                var seed = entropy.concat(nonce).concat(pers);
                this.K = new Array(this.outLen / 8);
                this.V = new Array(this.outLen / 8);
                for(var i = 0; i < this.V.length; i++){
                    this.K[i] = 0;
                    this.V[i] = 1;
                }
                this._update(seed);
                this._reseed = 1;
                this.reseedInterval = 281474976710656;
            };
            HmacDRBG.prototype._hmac = function hmac() {
                return new hash.hmac(this.hash, this.K);
            };
            HmacDRBG.prototype._update = function update(seed) {
                var kmac = this._hmac().update(this.V).update([
                    0
                ]);
                if (seed) kmac = kmac.update(seed);
                this.K = kmac.digest();
                this.V = this._hmac().update(this.V).digest();
                if (!seed) return;
                this.K = this._hmac().update(this.V).update([
                    1
                ]).update(seed).digest();
                this.V = this._hmac().update(this.V).digest();
            };
            HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
                if (typeof entropyEnc !== "string") {
                    addEnc = add;
                    add = entropyEnc;
                    entropyEnc = null;
                }
                entropy = utils.toArray(entropy, entropyEnc);
                add = utils.toArray(add, addEnc);
                assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits");
                this._update(entropy.concat(add || []));
                this._reseed = 1;
            };
            HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
                if (this._reseed > this.reseedInterval) throw new Error("Reseed is required");
                if (typeof enc !== "string") {
                    addEnc = add;
                    add = enc;
                    enc = null;
                }
                if (add) {
                    add = utils.toArray(add, addEnc || "hex");
                    this._update(add);
                }
                var temp = [];
                while(temp.length < len){
                    this.V = this._hmac().update(this.V).digest();
                    temp = temp.concat(this.V);
                }
                var res = temp.slice(0, len);
                this._update(add);
                this._reseed++;
                return utils.encode(res, enc);
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/ec/key.js
    var require_key = __commonJS({
        "node_modules/elliptic/lib/elliptic/ec/key.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn4();
            var utils = require_utils4();
            var assert = utils.assert;
            function KeyPair(ec, options) {
                this.ec = ec;
                this.priv = null;
                this.pub = null;
                if (options.priv) this._importPrivate(options.priv, options.privEnc);
                if (options.pub) this._importPublic(options.pub, options.pubEnc);
            }
            module.exports = KeyPair;
            KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
                if (pub instanceof KeyPair) return pub;
                return new KeyPair(ec, {
                    pub: pub,
                    pubEnc: enc
                });
            };
            KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
                if (priv instanceof KeyPair) return priv;
                return new KeyPair(ec, {
                    priv: priv,
                    privEnc: enc
                });
            };
            KeyPair.prototype.validate = function validate() {
                var pub = this.getPublic();
                if (pub.isInfinity()) return {
                    result: false,
                    reason: "Invalid public key"
                };
                if (!pub.validate()) return {
                    result: false,
                    reason: "Public key is not a point"
                };
                if (!pub.mul(this.ec.curve.n).isInfinity()) return {
                    result: false,
                    reason: "Public key * N != O"
                };
                return {
                    result: true,
                    reason: null
                };
            };
            KeyPair.prototype.getPublic = function getPublic(compact, enc) {
                if (typeof compact === "string") {
                    enc = compact;
                    compact = null;
                }
                if (!this.pub) this.pub = this.ec.g.mul(this.priv);
                if (!enc) return this.pub;
                return this.pub.encode(enc, compact);
            };
            KeyPair.prototype.getPrivate = function getPrivate(enc) {
                if (enc === "hex") return this.priv.toString(16, 2);
                else return this.priv;
            };
            KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
                this.priv = new BN(key, enc || 16);
                this.priv = this.priv.umod(this.ec.curve.n);
            };
            KeyPair.prototype._importPublic = function _importPublic(key, enc) {
                if (key.x || key.y) {
                    if (this.ec.curve.type === "mont") {
                        assert(key.x, "Need x coordinate");
                    } else if (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") {
                        assert(key.x && key.y, "Need both x and y coordinate");
                    }
                    this.pub = this.ec.curve.point(key.x, key.y);
                    return;
                }
                this.pub = this.ec.curve.decodePoint(key, enc);
            };
            KeyPair.prototype.derive = function derive(pub) {
                if (!pub.validate()) {
                    assert(pub.validate(), "public point not validated");
                }
                return pub.mul(this.priv).getX();
            };
            KeyPair.prototype.sign = function sign2(msg, enc, options) {
                return this.ec.sign(msg, this, enc, options);
            };
            KeyPair.prototype.verify = function verify2(msg, signature, options) {
                return this.ec.verify(msg, signature, this, void 0, options);
            };
            KeyPair.prototype.inspect = function inspect() {
                return "<Key priv: " + (this.priv && this.priv.toString(16, 2)) + " pub: " + (this.pub && this.pub.inspect()) + " >";
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/ec/signature.js
    var require_signature = __commonJS({
        "node_modules/elliptic/lib/elliptic/ec/signature.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn4();
            var utils = require_utils4();
            var assert = utils.assert;
            function Signature(options, enc) {
                if (options instanceof Signature) return options;
                if (this._importDER(options, enc)) return;
                assert(options.r && options.s, "Signature without r or s");
                this.r = new BN(options.r, 16);
                this.s = new BN(options.s, 16);
                if (options.recoveryParam === void 0) this.recoveryParam = null;
                else this.recoveryParam = options.recoveryParam;
            }
            module.exports = Signature;
            function Position() {
                this.place = 0;
            }
            function getLength(buf, p) {
                var initial = buf[p.place++];
                if (!(initial & 128)) {
                    return initial;
                }
                var octetLen = initial & 15;
                if (octetLen === 0 || octetLen > 4) {
                    return false;
                }
                if (buf[p.place] === 0) {
                    return false;
                }
                var val = 0;
                for(var i = 0, off = p.place; i < octetLen; i++, off++){
                    val <<= 8;
                    val |= buf[off];
                    val >>>= 0;
                }
                if (val <= 127) {
                    return false;
                }
                p.place = off;
                return val;
            }
            function rmPadding(buf) {
                var i = 0;
                var len = buf.length - 1;
                while(!buf[i] && !(buf[i + 1] & 128) && i < len){
                    i++;
                }
                if (i === 0) {
                    return buf;
                }
                return buf.slice(i);
            }
            Signature.prototype._importDER = function _importDER(data, enc) {
                data = utils.toArray(data, enc);
                var p = new Position();
                if (data[p.place++] !== 48) {
                    return false;
                }
                var len = getLength(data, p);
                if (len === false) {
                    return false;
                }
                if (len + p.place !== data.length) {
                    return false;
                }
                if (data[p.place++] !== 2) {
                    return false;
                }
                var rlen = getLength(data, p);
                if (rlen === false) {
                    return false;
                }
                if ((data[p.place] & 128) !== 0) {
                    return false;
                }
                var r = data.slice(p.place, rlen + p.place);
                p.place += rlen;
                if (data[p.place++] !== 2) {
                    return false;
                }
                var slen = getLength(data, p);
                if (slen === false) {
                    return false;
                }
                if (data.length !== slen + p.place) {
                    return false;
                }
                if ((data[p.place] & 128) !== 0) {
                    return false;
                }
                var s = data.slice(p.place, slen + p.place);
                if (r[0] === 0) {
                    if (r[1] & 128) {
                        r = r.slice(1);
                    } else {
                        return false;
                    }
                }
                if (s[0] === 0) {
                    if (s[1] & 128) {
                        s = s.slice(1);
                    } else {
                        return false;
                    }
                }
                this.r = new BN(r);
                this.s = new BN(s);
                this.recoveryParam = null;
                return true;
            };
            function constructLength(arr, len) {
                if (len < 128) {
                    arr.push(len);
                    return;
                }
                var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);
                arr.push(octets | 128);
                while(--octets){
                    arr.push(len >>> (octets << 3) & 255);
                }
                arr.push(len);
            }
            Signature.prototype.toDER = function toDER(enc) {
                var r = this.r.toArray();
                var s = this.s.toArray();
                if (r[0] & 128) r = [
                    0
                ].concat(r);
                if (s[0] & 128) s = [
                    0
                ].concat(s);
                r = rmPadding(r);
                s = rmPadding(s);
                while(!s[0] && !(s[1] & 128)){
                    s = s.slice(1);
                }
                var arr = [
                    2
                ];
                constructLength(arr, r.length);
                arr = arr.concat(r);
                arr.push(2);
                constructLength(arr, s.length);
                var backHalf = arr.concat(s);
                var res = [
                    48
                ];
                constructLength(res, backHalf.length);
                res = res.concat(backHalf);
                return utils.encode(res, enc);
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/ec/index.js
    var require_ec = __commonJS({
        "node_modules/elliptic/lib/elliptic/ec/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn4();
            var HmacDRBG = require_hmac_drbg();
            var utils = require_utils4();
            var curves = require_curves();
            var rand = require_brorand();
            var assert = utils.assert;
            var KeyPair = require_key();
            var Signature = require_signature();
            function EC(options) {
                if (!(this instanceof EC)) return new EC(options);
                if (typeof options === "string") {
                    assert(Object.prototype.hasOwnProperty.call(curves, options), "Unknown curve " + options);
                    options = curves[options];
                }
                if (options instanceof curves.PresetCurve) options = {
                    curve: options
                };
                this.curve = options.curve.curve;
                this.n = this.curve.n;
                this.nh = this.n.ushrn(1);
                this.g = this.curve.g;
                this.g = options.curve.g;
                this.g.precompute(options.curve.n.bitLength() + 1);
                this.hash = options.hash || options.curve.hash;
            }
            module.exports = EC;
            EC.prototype.keyPair = function keyPair(options) {
                return new KeyPair(this, options);
            };
            EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
                return KeyPair.fromPrivate(this, priv, enc);
            };
            EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
                return KeyPair.fromPublic(this, pub, enc);
            };
            EC.prototype.genKeyPair = function genKeyPair(options) {
                if (!options) options = {};
                var drbg = new HmacDRBG({
                    hash: this.hash,
                    pers: options.pers,
                    persEnc: options.persEnc || "utf8",
                    entropy: options.entropy || rand(this.hash.hmacStrength),
                    entropyEnc: options.entropy && options.entropyEnc || "utf8",
                    nonce: this.n.toArray()
                });
                var bytes = this.n.byteLength();
                var ns2 = this.n.sub(new BN(2));
                for(;;){
                    var priv = new BN(drbg.generate(bytes));
                    if (priv.cmp(ns2) > 0) continue;
                    priv.iaddn(1);
                    return this.keyFromPrivate(priv);
                }
            };
            EC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength3) {
                var byteLength;
                if (BN.isBN(msg) || typeof msg === "number") {
                    msg = new BN(msg, 16);
                    byteLength = msg.byteLength();
                } else if ((typeof msg === "undefined" ? "undefined" : _type_of(msg)) === "object") {
                    byteLength = msg.length;
                    msg = new BN(msg, 16);
                } else {
                    var str = msg.toString();
                    byteLength = str.length + 1 >>> 1;
                    msg = new BN(str, 16);
                }
                if (typeof bitLength3 !== "number") {
                    bitLength3 = byteLength * 8;
                }
                var delta = bitLength3 - this.n.bitLength();
                if (delta > 0) msg = msg.ushrn(delta);
                if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n);
                else return msg;
            };
            EC.prototype.sign = function sign2(msg, key, enc, options) {
                if ((typeof enc === "undefined" ? "undefined" : _type_of(enc)) === "object") {
                    options = enc;
                    enc = null;
                }
                if (!options) options = {};
                if (typeof msg !== "string" && typeof msg !== "number" && !BN.isBN(msg)) {
                    assert((typeof msg === "undefined" ? "undefined" : _type_of(msg)) === "object" && msg && typeof msg.length === "number", "Expected message to be an array-like, a hex string, or a BN instance");
                    assert(msg.length >>> 0 === msg.length);
                    for(var i = 0; i < msg.length; i++)assert((msg[i] & 255) === msg[i]);
                }
                key = this.keyFromPrivate(key, enc);
                msg = this._truncateToN(msg, false, options.msgBitLength);
                assert(!msg.isNeg(), "Can not sign a negative message");
                var bytes = this.n.byteLength();
                var bkey = key.getPrivate().toArray("be", bytes);
                var nonce = msg.toArray("be", bytes);
                assert(new BN(nonce).eq(msg), "Can not sign message");
                var drbg = new HmacDRBG({
                    hash: this.hash,
                    entropy: bkey,
                    nonce: nonce,
                    pers: options.pers,
                    persEnc: options.persEnc || "utf8"
                });
                var ns1 = this.n.sub(new BN(1));
                for(var iter = 0;; iter++){
                    var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength()));
                    k = this._truncateToN(k, true);
                    if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue;
                    var kp = this.g.mul(k);
                    if (kp.isInfinity()) continue;
                    var kpX = kp.getX();
                    var r = kpX.umod(this.n);
                    if (r.cmpn(0) === 0) continue;
                    var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
                    s = s.umod(this.n);
                    if (s.cmpn(0) === 0) continue;
                    var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0);
                    if (options.canonical && s.cmp(this.nh) > 0) {
                        s = this.n.sub(s);
                        recoveryParam ^= 1;
                    }
                    return new Signature({
                        r: r,
                        s: s,
                        recoveryParam: recoveryParam
                    });
                }
            };
            EC.prototype.verify = function verify2(msg, signature, key, enc, options) {
                if (!options) options = {};
                msg = this._truncateToN(msg, false, options.msgBitLength);
                key = this.keyFromPublic(key, enc);
                signature = new Signature(signature, "hex");
                var r = signature.r;
                var s = signature.s;
                if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false;
                if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false;
                var sinv = s.invm(this.n);
                var u1 = sinv.mul(msg).umod(this.n);
                var u2 = sinv.mul(r).umod(this.n);
                var p;
                if (!this.curve._maxwellTrick) {
                    p = this.g.mulAdd(u1, key.getPublic(), u2);
                    if (p.isInfinity()) return false;
                    return p.getX().umod(this.n).cmp(r) === 0;
                }
                p = this.g.jmulAdd(u1, key.getPublic(), u2);
                if (p.isInfinity()) return false;
                return p.eqXToP(r);
            };
            EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
                assert((3 & j) === j, "The recovery param is more than two bits");
                signature = new Signature(signature, enc);
                var n = this.n;
                var e = new BN(msg);
                var r = signature.r;
                var s = signature.s;
                var isYOdd = j & 1;
                var isSecondKey = j >> 1;
                if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error("Unable to find sencond key candinate");
                if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
                else r = this.curve.pointFromX(r, isYOdd);
                var rInv = signature.r.invm(n);
                var s1 = n.sub(e).mul(rInv).umod(n);
                var s2 = s.mul(rInv).umod(n);
                return this.g.mulAdd(s1, r, s2);
            };
            EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
                signature = new Signature(signature, enc);
                if (signature.recoveryParam !== null) return signature.recoveryParam;
                for(var i = 0; i < 4; i++){
                    var Qprime;
                    try {
                        Qprime = this.recoverPubKey(e, signature, i);
                    } catch (e2) {
                        continue;
                    }
                    if (Qprime.eq(Q)) return i;
                }
                throw new Error("Unable to find valid recovery factor");
            };
        }
    });
    // node_modules/elliptic/lib/elliptic/eddsa/key.js
    var require_key2 = __commonJS({
        "node_modules/elliptic/lib/elliptic/eddsa/key.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils4();
            var assert = utils.assert;
            var parseBytes = utils.parseBytes;
            var cachedProperty = utils.cachedProperty;
            function KeyPair(eddsa, params) {
                this.eddsa = eddsa;
                this._secret = parseBytes(params.secret);
                if (eddsa.isPoint(params.pub)) this._pub = params.pub;
                else this._pubBytes = parseBytes(params.pub);
            }
            KeyPair.fromPublic = function fromPublic(eddsa, pub) {
                if (pub instanceof KeyPair) return pub;
                return new KeyPair(eddsa, {
                    pub: pub
                });
            };
            KeyPair.fromSecret = function fromSecret(eddsa, secret) {
                if (secret instanceof KeyPair) return secret;
                return new KeyPair(eddsa, {
                    secret: secret
                });
            };
            KeyPair.prototype.secret = function secret() {
                return this._secret;
            };
            cachedProperty(KeyPair, "pubBytes", function pubBytes() {
                return this.eddsa.encodePoint(this.pub());
            });
            cachedProperty(KeyPair, "pub", function pub() {
                if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes);
                return this.eddsa.g.mul(this.priv());
            });
            cachedProperty(KeyPair, "privBytes", function privBytes() {
                var eddsa = this.eddsa;
                var hash = this.hash();
                var lastIx = eddsa.encodingLength - 1;
                var a = hash.slice(0, eddsa.encodingLength);
                a[0] &= 248;
                a[lastIx] &= 127;
                a[lastIx] |= 64;
                return a;
            });
            cachedProperty(KeyPair, "priv", function priv() {
                return this.eddsa.decodeInt(this.privBytes());
            });
            cachedProperty(KeyPair, "hash", function hash() {
                return this.eddsa.hash().update(this.secret()).digest();
            });
            cachedProperty(KeyPair, "messagePrefix", function messagePrefix() {
                return this.hash().slice(this.eddsa.encodingLength);
            });
            KeyPair.prototype.sign = function sign2(message2) {
                assert(this._secret, "KeyPair can only verify");
                return this.eddsa.sign(message2, this);
            };
            KeyPair.prototype.verify = function verify2(message2, sig) {
                return this.eddsa.verify(message2, sig, this);
            };
            KeyPair.prototype.getSecret = function getSecret(enc) {
                assert(this._secret, "KeyPair is public only");
                return utils.encode(this.secret(), enc);
            };
            KeyPair.prototype.getPublic = function getPublic(enc) {
                return utils.encode(this.pubBytes(), enc);
            };
            module.exports = KeyPair;
        }
    });
    // node_modules/elliptic/lib/elliptic/eddsa/signature.js
    var require_signature2 = __commonJS({
        "node_modules/elliptic/lib/elliptic/eddsa/signature.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn4();
            var utils = require_utils4();
            var assert = utils.assert;
            var cachedProperty = utils.cachedProperty;
            var parseBytes = utils.parseBytes;
            function Signature(eddsa, sig) {
                this.eddsa = eddsa;
                if ((typeof sig === "undefined" ? "undefined" : _type_of(sig)) !== "object") sig = parseBytes(sig);
                if (Array.isArray(sig)) {
                    assert(sig.length === eddsa.encodingLength * 2, "Signature has invalid size");
                    sig = {
                        R: sig.slice(0, eddsa.encodingLength),
                        S: sig.slice(eddsa.encodingLength)
                    };
                }
                assert(sig.R && sig.S, "Signature without R or S");
                if (eddsa.isPoint(sig.R)) this._R = sig.R;
                if (sig.S instanceof BN) this._S = sig.S;
                this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
                this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
            }
            cachedProperty(Signature, "S", function S() {
                return this.eddsa.decodeInt(this.Sencoded());
            });
            cachedProperty(Signature, "R", function R() {
                return this.eddsa.decodePoint(this.Rencoded());
            });
            cachedProperty(Signature, "Rencoded", function Rencoded() {
                return this.eddsa.encodePoint(this.R());
            });
            cachedProperty(Signature, "Sencoded", function Sencoded() {
                return this.eddsa.encodeInt(this.S());
            });
            Signature.prototype.toBytes = function toBytes() {
                return this.Rencoded().concat(this.Sencoded());
            };
            Signature.prototype.toHex = function toHex() {
                return utils.encode(this.toBytes(), "hex").toUpperCase();
            };
            module.exports = Signature;
        }
    });
    // node_modules/elliptic/lib/elliptic/eddsa/index.js
    var require_eddsa = __commonJS({
        "node_modules/elliptic/lib/elliptic/eddsa/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hash = require_hash2();
            var curves = require_curves();
            var utils = require_utils4();
            var assert = utils.assert;
            var parseBytes = utils.parseBytes;
            var KeyPair = require_key2();
            var Signature = require_signature2();
            function EDDSA(curve) {
                assert(curve === "ed25519", "only tested with ed25519 so far");
                if (!(this instanceof EDDSA)) return new EDDSA(curve);
                curve = curves[curve].curve;
                this.curve = curve;
                this.g = curve.g;
                this.g.precompute(curve.n.bitLength() + 1);
                this.pointClass = curve.point().constructor;
                this.encodingLength = Math.ceil(curve.n.bitLength() / 8);
                this.hash = hash.sha512;
            }
            module.exports = EDDSA;
            EDDSA.prototype.sign = function sign2(message2, secret) {
                message2 = parseBytes(message2);
                var key = this.keyFromSecret(secret);
                var r = this.hashInt(key.messagePrefix(), message2);
                var R = this.g.mul(r);
                var Rencoded = this.encodePoint(R);
                var s_ = this.hashInt(Rencoded, key.pubBytes(), message2).mul(key.priv());
                var S = r.add(s_).umod(this.curve.n);
                return this.makeSignature({
                    R: R,
                    S: S,
                    Rencoded: Rencoded
                });
            };
            EDDSA.prototype.verify = function verify2(message2, sig, pub) {
                message2 = parseBytes(message2);
                sig = this.makeSignature(sig);
                if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {
                    return false;
                }
                var key = this.keyFromPublic(pub);
                var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message2);
                var SG = this.g.mul(sig.S());
                var RplusAh = sig.R().add(key.pub().mul(h));
                return RplusAh.eq(SG);
            };
            EDDSA.prototype.hashInt = function hashInt() {
                var hash2 = this.hash();
                for(var i = 0; i < arguments.length; i++)hash2.update(arguments[i]);
                return utils.intFromLE(hash2.digest()).umod(this.curve.n);
            };
            EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
                return KeyPair.fromPublic(this, pub);
            };
            EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
                return KeyPair.fromSecret(this, secret);
            };
            EDDSA.prototype.makeSignature = function makeSignature(sig) {
                if (sig instanceof Signature) return sig;
                return new Signature(this, sig);
            };
            EDDSA.prototype.encodePoint = function encodePoint(point) {
                var enc = point.getY().toArray("le", this.encodingLength);
                enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0;
                return enc;
            };
            EDDSA.prototype.decodePoint = function decodePoint(bytes) {
                bytes = utils.parseBytes(bytes);
                var lastIx = bytes.length - 1;
                var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~128);
                var xIsOdd = (bytes[lastIx] & 128) !== 0;
                var y = utils.intFromLE(normed);
                return this.curve.pointFromY(y, xIsOdd);
            };
            EDDSA.prototype.encodeInt = function encodeInt(num) {
                return num.toArray("le", this.encodingLength);
            };
            EDDSA.prototype.decodeInt = function decodeInt(bytes) {
                return utils.intFromLE(bytes);
            };
            EDDSA.prototype.isPoint = function isPoint(val) {
                return val instanceof this.pointClass;
            };
        }
    });
    // node_modules/elliptic/lib/elliptic.js
    var require_elliptic = __commonJS({
        "node_modules/elliptic/lib/elliptic.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var elliptic = exports;
            elliptic.version = require_package().version;
            elliptic.utils = require_utils4();
            elliptic.rand = require_brorand();
            elliptic.curve = require_curve();
            elliptic.curves = require_curves();
            elliptic.ec = require_ec();
            elliptic.eddsa = require_eddsa();
        }
    });
    // node_modules/asn1.js/node_modules/bn.js/lib/bn.js
    var require_bn5 = __commonJS({
        "node_modules/asn1.js/node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this.strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        return c - 48 & 15;
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this.strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            r += c - 49 + 10;
                        } else if (c >= 17) {
                            r += c - 17 + 10;
                        } else {
                            r += c;
                        }
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this.strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype.strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                BN.prototype.inspect = function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                };
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16);
                };
                BN.prototype.toBuffer = function toBuffer(endian, length) {
                    assert(typeof Buffer3 !== "undefined");
                    return this.toArrayLike(Buffer3, endian, length);
                };
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    this.strip();
                    var littleEndian = endian === "le";
                    var res = new ArrayType(reqLength);
                    var b, i;
                    var q = this.clone();
                    if (!littleEndian) {
                        for(i = 0; i < reqLength - byteLength; i++){
                            res[i] = 0;
                        }
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[reqLength - i - 1] = b;
                        }
                    } else {
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[i] = b;
                        }
                        for(; i < reqLength; i++){
                            res[i] = 0;
                        }
                    }
                    return res;
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this.strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this.strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this.strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this.strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this.strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this.strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                function jumboMulTo(self2, num, out) {
                    var fftm = new FFTM();
                    return fftm.mulp(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out.strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this.strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) < num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this.strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this.strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this.strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q.strip();
                    }
                    a.strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modn = function modn(num) {
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return acc;
                };
                BN.prototype.idivn = function idivn(num) {
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    return this.strip();
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this.strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    return a.umod(this.m)._forceRed(this);
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/asn1.js/lib/asn1/api.js
    var require_api = __commonJS({
        "node_modules/asn1.js/lib/asn1/api.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var asn1 = require_asn1();
            var inherits = require_inherits_browser();
            var api = exports;
            api.define = function define2(name, body) {
                return new Entity(name, body);
            };
            function Entity(name, body) {
                this.name = name;
                this.body = body;
                this.decoders = {};
                this.encoders = {};
            }
            Entity.prototype._createNamed = function createNamed(base) {
                var named;
                try {
                    named = __require("vm").runInThisContext("(function " + this.name + "(entity) {\n  this._initNamed(entity);\n})");
                } catch (e) {
                    named = function named(entity) {
                        this._initNamed(entity);
                    };
                }
                inherits(named, base);
                named.prototype._initNamed = function initnamed(entity) {
                    base.call(this, entity);
                };
                return new named(this);
            };
            Entity.prototype._getDecoder = function _getDecoder(enc) {
                enc = enc || "der";
                if (!this.decoders.hasOwnProperty(enc)) this.decoders[enc] = this._createNamed(asn1.decoders[enc]);
                return this.decoders[enc];
            };
            Entity.prototype.decode = function decode3(data, enc, options) {
                return this._getDecoder(enc).decode(data, options);
            };
            Entity.prototype._getEncoder = function _getEncoder(enc) {
                enc = enc || "der";
                if (!this.encoders.hasOwnProperty(enc)) this.encoders[enc] = this._createNamed(asn1.encoders[enc]);
                return this.encoders[enc];
            };
            Entity.prototype.encode = function encode3(data, enc, reporter) {
                return this._getEncoder(enc).encode(data, reporter);
            };
        }
    });
    // node_modules/asn1.js/lib/asn1/base/reporter.js
    var require_reporter = __commonJS({
        "node_modules/asn1.js/lib/asn1/base/reporter.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            function Reporter(options) {
                this._reporterState = {
                    obj: null,
                    path: [],
                    options: options || {},
                    errors: []
                };
            }
            exports.Reporter = Reporter;
            Reporter.prototype.isError = function isError(obj) {
                return obj instanceof ReporterError;
            };
            Reporter.prototype.save = function save() {
                var state = this._reporterState;
                return {
                    obj: state.obj,
                    pathLen: state.path.length
                };
            };
            Reporter.prototype.restore = function restore(data) {
                var state = this._reporterState;
                state.obj = data.obj;
                state.path = state.path.slice(0, data.pathLen);
            };
            Reporter.prototype.enterKey = function enterKey(key) {
                return this._reporterState.path.push(key);
            };
            Reporter.prototype.exitKey = function exitKey(index) {
                var state = this._reporterState;
                state.path = state.path.slice(0, index - 1);
            };
            Reporter.prototype.leaveKey = function leaveKey(index, key, value) {
                var state = this._reporterState;
                this.exitKey(index);
                if (state.obj !== null) state.obj[key] = value;
            };
            Reporter.prototype.path = function path2() {
                return this._reporterState.path.join("/");
            };
            Reporter.prototype.enterObject = function enterObject() {
                var state = this._reporterState;
                var prev = state.obj;
                state.obj = {};
                return prev;
            };
            Reporter.prototype.leaveObject = function leaveObject(prev) {
                var state = this._reporterState;
                var now2 = state.obj;
                state.obj = prev;
                return now2;
            };
            Reporter.prototype.error = function error(msg) {
                var err;
                var state = this._reporterState;
                var inherited = msg instanceof ReporterError;
                if (inherited) {
                    err = msg;
                } else {
                    err = new ReporterError(state.path.map(function(elem) {
                        return "[" + JSON.stringify(elem) + "]";
                    }).join(""), msg.message || msg, msg.stack);
                }
                if (!state.options.partial) throw err;
                if (!inherited) state.errors.push(err);
                return err;
            };
            Reporter.prototype.wrapResult = function wrapResult(result17) {
                var state = this._reporterState;
                if (!state.options.partial) return result17;
                return {
                    result: this.isError(result17) ? null : result17,
                    errors: state.errors
                };
            };
            function ReporterError(path2, msg) {
                this.path = path2;
                this.rethrow(msg);
            }
            inherits(ReporterError, Error);
            ReporterError.prototype.rethrow = function rethrow(msg) {
                this.message = msg + " at: " + (this.path || "(shallow)");
                if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError);
                if (!this.stack) {
                    try {
                        throw new Error(this.message);
                    } catch (e) {
                        this.stack = e.stack;
                    }
                }
                return this;
            };
        }
    });
    // node_modules/asn1.js/lib/asn1/base/buffer.js
    var require_buffer2 = __commonJS({
        "node_modules/asn1.js/lib/asn1/base/buffer.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Reporter = require_base2().Reporter;
            var Buffer3 = require_buffer().Buffer;
            function DecoderBuffer(base, options) {
                Reporter.call(this, options);
                if (!Buffer3.isBuffer(base)) {
                    this.error("Input not Buffer");
                    return;
                }
                this.base = base;
                this.offset = 0;
                this.length = base.length;
            }
            inherits(DecoderBuffer, Reporter);
            exports.DecoderBuffer = DecoderBuffer;
            DecoderBuffer.prototype.save = function save() {
                return {
                    offset: this.offset,
                    reporter: Reporter.prototype.save.call(this)
                };
            };
            DecoderBuffer.prototype.restore = function restore(save) {
                var res = new DecoderBuffer(this.base);
                res.offset = save.offset;
                res.length = this.offset;
                this.offset = save.offset;
                Reporter.prototype.restore.call(this, save.reporter);
                return res;
            };
            DecoderBuffer.prototype.isEmpty = function isEmpty() {
                return this.offset === this.length;
            };
            DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {
                if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true);
                else return this.error(fail || "DecoderBuffer overrun");
            };
            DecoderBuffer.prototype.skip = function skip(bytes, fail) {
                if (!(this.offset + bytes <= this.length)) return this.error(fail || "DecoderBuffer overrun");
                var res = new DecoderBuffer(this.base);
                res._reporterState = this._reporterState;
                res.offset = this.offset;
                res.length = this.offset + bytes;
                this.offset += bytes;
                return res;
            };
            DecoderBuffer.prototype.raw = function raw(save) {
                return this.base.slice(save ? save.offset : this.offset, this.length);
            };
            function EncoderBuffer(value, reporter) {
                if (Array.isArray(value)) {
                    this.length = 0;
                    this.value = value.map(function(item) {
                        if (!(item instanceof EncoderBuffer)) item = new EncoderBuffer(item, reporter);
                        this.length += item.length;
                        return item;
                    }, this);
                } else if (typeof value === "number") {
                    if (!(0 <= value && value <= 255)) return reporter.error("non-byte EncoderBuffer value");
                    this.value = value;
                    this.length = 1;
                } else if (typeof value === "string") {
                    this.value = value;
                    this.length = Buffer3.byteLength(value);
                } else if (Buffer3.isBuffer(value)) {
                    this.value = value;
                    this.length = value.length;
                } else {
                    return reporter.error("Unsupported type: " + (typeof value === "undefined" ? "undefined" : _type_of(value)));
                }
            }
            exports.EncoderBuffer = EncoderBuffer;
            EncoderBuffer.prototype.join = function join2(out, offset) {
                if (!out) out = new Buffer3(this.length);
                if (!offset) offset = 0;
                if (this.length === 0) return out;
                if (Array.isArray(this.value)) {
                    this.value.forEach(function(item) {
                        item.join(out, offset);
                        offset += item.length;
                    });
                } else {
                    if (typeof this.value === "number") out[offset] = this.value;
                    else if (typeof this.value === "string") out.write(this.value, offset);
                    else if (Buffer3.isBuffer(this.value)) this.value.copy(out, offset);
                    offset += this.length;
                }
                return out;
            };
        }
    });
    // node_modules/asn1.js/lib/asn1/base/node.js
    var require_node = __commonJS({
        "node_modules/asn1.js/lib/asn1/base/node.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Reporter = require_base2().Reporter;
            var EncoderBuffer = require_base2().EncoderBuffer;
            var DecoderBuffer = require_base2().DecoderBuffer;
            var assert = require_minimalistic_assert();
            var tags = [
                "seq",
                "seqof",
                "set",
                "setof",
                "objid",
                "bool",
                "gentime",
                "utctime",
                "null_",
                "enum",
                "int",
                "objDesc",
                "bitstr",
                "bmpstr",
                "charstr",
                "genstr",
                "graphstr",
                "ia5str",
                "iso646str",
                "numstr",
                "octstr",
                "printstr",
                "t61str",
                "unistr",
                "utf8str",
                "videostr"
            ];
            var methods = [
                "key",
                "obj",
                "use",
                "optional",
                "explicit",
                "implicit",
                "def",
                "choice",
                "any",
                "contains"
            ].concat(tags);
            var overrided = [
                "_peekTag",
                "_decodeTag",
                "_use",
                "_decodeStr",
                "_decodeObjid",
                "_decodeTime",
                "_decodeNull",
                "_decodeInt",
                "_decodeBool",
                "_decodeList",
                "_encodeComposite",
                "_encodeStr",
                "_encodeObjid",
                "_encodeTime",
                "_encodeNull",
                "_encodeInt",
                "_encodeBool"
            ];
            function Node2(enc, parent2) {
                var state = {};
                this._baseState = state;
                state.enc = enc;
                state.parent = parent2 || null;
                state.children = null;
                state.tag = null;
                state.args = null;
                state.reverseArgs = null;
                state.choice = null;
                state.optional = false;
                state.any = false;
                state.obj = false;
                state.use = null;
                state.useDecoder = null;
                state.key = null;
                state["default"] = null;
                state.explicit = null;
                state.implicit = null;
                state.contains = null;
                if (!state.parent) {
                    state.children = [];
                    this._wrap();
                }
            }
            module.exports = Node2;
            var stateProps = [
                "enc",
                "parent",
                "children",
                "tag",
                "args",
                "reverseArgs",
                "choice",
                "optional",
                "any",
                "obj",
                "use",
                "alteredUse",
                "key",
                "default",
                "explicit",
                "implicit",
                "contains"
            ];
            Node2.prototype.clone = function clone2() {
                var state = this._baseState;
                var cstate = {};
                stateProps.forEach(function(prop) {
                    cstate[prop] = state[prop];
                });
                var res = new this.constructor(cstate.parent);
                res._baseState = cstate;
                return res;
            };
            Node2.prototype._wrap = function wrap3() {
                var state = this._baseState;
                methods.forEach(function(method) {
                    this[method] = function _wrappedMethod() {
                        var clone2 = new this.constructor(this);
                        state.children.push(clone2);
                        return clone2[method].apply(clone2, arguments);
                    };
                }, this);
            };
            Node2.prototype._init = function init(body) {
                var state = this._baseState;
                assert(state.parent === null);
                body.call(this);
                state.children = state.children.filter(function(child) {
                    return child._baseState.parent === this;
                }, this);
                assert.equal(state.children.length, 1, "Root node can have only one child");
            };
            Node2.prototype._useArgs = function useArgs(args) {
                var state = this._baseState;
                var children = args.filter(function(arg) {
                    return arg instanceof this.constructor;
                }, this);
                args = args.filter(function(arg) {
                    return !(arg instanceof this.constructor);
                }, this);
                if (children.length !== 0) {
                    assert(state.children === null);
                    state.children = children;
                    children.forEach(function(child) {
                        child._baseState.parent = this;
                    }, this);
                }
                if (args.length !== 0) {
                    assert(state.args === null);
                    state.args = args;
                    state.reverseArgs = args.map(function(arg) {
                        if ((typeof arg === "undefined" ? "undefined" : _type_of(arg)) !== "object" || arg.constructor !== Object) return arg;
                        var res = {};
                        Object.keys(arg).forEach(function(key) {
                            if (key == (key | 0)) key |= 0;
                            var value = arg[key];
                            res[value] = key;
                        });
                        return res;
                    });
                }
            };
            overrided.forEach(function(method) {
                Node2.prototype[method] = function _overrided() {
                    var state = this._baseState;
                    throw new Error(method + " not implemented for encoding: " + state.enc);
                };
            });
            tags.forEach(function(tag2) {
                Node2.prototype[tag2] = function _tagMethod() {
                    var state = this._baseState;
                    var args = Array.prototype.slice.call(arguments);
                    assert(state.tag === null);
                    state.tag = tag2;
                    this._useArgs(args);
                    return this;
                };
            });
            Node2.prototype.use = function use(item) {
                assert(item);
                var state = this._baseState;
                assert(state.use === null);
                state.use = item;
                return this;
            };
            Node2.prototype.optional = function optional() {
                var state = this._baseState;
                state.optional = true;
                return this;
            };
            Node2.prototype.def = function def(val) {
                var state = this._baseState;
                assert(state["default"] === null);
                state["default"] = val;
                state.optional = true;
                return this;
            };
            Node2.prototype.explicit = function explicit(num) {
                var state = this._baseState;
                assert(state.explicit === null && state.implicit === null);
                state.explicit = num;
                return this;
            };
            Node2.prototype.implicit = function implicit(num) {
                var state = this._baseState;
                assert(state.explicit === null && state.implicit === null);
                state.implicit = num;
                return this;
            };
            Node2.prototype.obj = function obj() {
                var state = this._baseState;
                var args = Array.prototype.slice.call(arguments);
                state.obj = true;
                if (args.length !== 0) this._useArgs(args);
                return this;
            };
            Node2.prototype.key = function key(newKey) {
                var state = this._baseState;
                assert(state.key === null);
                state.key = newKey;
                return this;
            };
            Node2.prototype.any = function any() {
                var state = this._baseState;
                state.any = true;
                return this;
            };
            Node2.prototype.choice = function choice(obj) {
                var state = this._baseState;
                assert(state.choice === null);
                state.choice = obj;
                this._useArgs(Object.keys(obj).map(function(key) {
                    return obj[key];
                }));
                return this;
            };
            Node2.prototype.contains = function contains(item) {
                var state = this._baseState;
                assert(state.use === null);
                state.contains = item;
                return this;
            };
            Node2.prototype._decode = function decode3(input, options) {
                var state = this._baseState;
                if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options));
                var result17 = state["default"];
                var present = true;
                var prevKey = null;
                if (state.key !== null) prevKey = input.enterKey(state.key);
                if (state.optional) {
                    var tag2 = null;
                    if (state.explicit !== null) tag2 = state.explicit;
                    else if (state.implicit !== null) tag2 = state.implicit;
                    else if (state.tag !== null) tag2 = state.tag;
                    if (tag2 === null && !state.any) {
                        var save = input.save();
                        try {
                            if (state.choice === null) this._decodeGeneric(state.tag, input, options);
                            else this._decodeChoice(input, options);
                            present = true;
                        } catch (e) {
                            present = false;
                        }
                        input.restore(save);
                    } else {
                        present = this._peekTag(input, tag2, state.any);
                        if (input.isError(present)) return present;
                    }
                }
                var prevObj;
                if (state.obj && present) prevObj = input.enterObject();
                if (present) {
                    if (state.explicit !== null) {
                        var explicit = this._decodeTag(input, state.explicit);
                        if (input.isError(explicit)) return explicit;
                        input = explicit;
                    }
                    var start = input.offset;
                    if (state.use === null && state.choice === null) {
                        if (state.any) var save = input.save();
                        var body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any);
                        if (input.isError(body)) return body;
                        if (state.any) result17 = input.raw(save);
                        else input = body;
                    }
                    if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, "tagged");
                    if (options && options.track && state.tag !== null) options.track(input.path(), input.offset, input.length, "content");
                    if (state.any) result17 = result17;
                    else if (state.choice === null) result17 = this._decodeGeneric(state.tag, input, options);
                    else result17 = this._decodeChoice(input, options);
                    if (input.isError(result17)) return result17;
                    if (!state.any && state.choice === null && state.children !== null) {
                        state.children.forEach(function decodeChildren(child) {
                            child._decode(input, options);
                        });
                    }
                    if (state.contains && (state.tag === "octstr" || state.tag === "bitstr")) {
                        var data = new DecoderBuffer(result17);
                        result17 = this._getUse(state.contains, input._reporterState.obj)._decode(data, options);
                    }
                }
                if (state.obj && present) result17 = input.leaveObject(prevObj);
                if (state.key !== null && (result17 !== null || present === true)) input.leaveKey(prevKey, state.key, result17);
                else if (prevKey !== null) input.exitKey(prevKey);
                return result17;
            };
            Node2.prototype._decodeGeneric = function decodeGeneric(tag2, input, options) {
                var state = this._baseState;
                if (tag2 === "seq" || tag2 === "set") return null;
                if (tag2 === "seqof" || tag2 === "setof") return this._decodeList(input, tag2, state.args[0], options);
                else if (/str$/.test(tag2)) return this._decodeStr(input, tag2, options);
                else if (tag2 === "objid" && state.args) return this._decodeObjid(input, state.args[0], state.args[1], options);
                else if (tag2 === "objid") return this._decodeObjid(input, null, null, options);
                else if (tag2 === "gentime" || tag2 === "utctime") return this._decodeTime(input, tag2, options);
                else if (tag2 === "null_") return this._decodeNull(input, options);
                else if (tag2 === "bool") return this._decodeBool(input, options);
                else if (tag2 === "objDesc") return this._decodeStr(input, tag2, options);
                else if (tag2 === "int" || tag2 === "enum") return this._decodeInt(input, state.args && state.args[0], options);
                if (state.use !== null) {
                    return this._getUse(state.use, input._reporterState.obj)._decode(input, options);
                } else {
                    return input.error("unknown tag: " + tag2);
                }
            };
            Node2.prototype._getUse = function _getUse(entity, obj) {
                var state = this._baseState;
                state.useDecoder = this._use(entity, obj);
                assert(state.useDecoder._baseState.parent === null);
                state.useDecoder = state.useDecoder._baseState.children[0];
                if (state.implicit !== state.useDecoder._baseState.implicit) {
                    state.useDecoder = state.useDecoder.clone();
                    state.useDecoder._baseState.implicit = state.implicit;
                }
                return state.useDecoder;
            };
            Node2.prototype._decodeChoice = function decodeChoice(input, options) {
                var state = this._baseState;
                var result17 = null;
                var match = false;
                Object.keys(state.choice).some(function(key) {
                    var save = input.save();
                    var node = state.choice[key];
                    try {
                        var value = node._decode(input, options);
                        if (input.isError(value)) return false;
                        result17 = {
                            type: key,
                            value: value
                        };
                        match = true;
                    } catch (e) {
                        input.restore(save);
                        return false;
                    }
                    return true;
                }, this);
                if (!match) return input.error("Choice not matched");
                return result17;
            };
            Node2.prototype._createEncoderBuffer = function createEncoderBuffer(data) {
                return new EncoderBuffer(data, this.reporter);
            };
            Node2.prototype._encode = function encode3(data, reporter, parent2) {
                var state = this._baseState;
                if (state["default"] !== null && state["default"] === data) return;
                var result17 = this._encodeValue(data, reporter, parent2);
                if (result17 === void 0) return;
                if (this._skipDefault(result17, reporter, parent2)) return;
                return result17;
            };
            Node2.prototype._encodeValue = function encode3(data, reporter, parent2) {
                var state = this._baseState;
                if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter());
                var result17 = null;
                this.reporter = reporter;
                if (state.optional && data === void 0) {
                    if (state["default"] !== null) data = state["default"];
                    else return;
                }
                var content = null;
                var primitive = false;
                if (state.any) {
                    result17 = this._createEncoderBuffer(data);
                } else if (state.choice) {
                    result17 = this._encodeChoice(data, reporter);
                } else if (state.contains) {
                    content = this._getUse(state.contains, parent2)._encode(data, reporter);
                    primitive = true;
                } else if (state.children) {
                    content = state.children.map(function(child2) {
                        if (child2._baseState.tag === "null_") return child2._encode(null, reporter, data);
                        if (child2._baseState.key === null) return reporter.error("Child should have a key");
                        var prevKey = reporter.enterKey(child2._baseState.key);
                        if ((typeof data === "undefined" ? "undefined" : _type_of(data)) !== "object") return reporter.error("Child expected, but input is not object");
                        var res = child2._encode(data[child2._baseState.key], reporter, data);
                        reporter.leaveKey(prevKey);
                        return res;
                    }, this).filter(function(child2) {
                        return child2;
                    });
                    content = this._createEncoderBuffer(content);
                } else {
                    if (state.tag === "seqof" || state.tag === "setof") {
                        if (!(state.args && state.args.length === 1)) return reporter.error("Too many args for : " + state.tag);
                        if (!Array.isArray(data)) return reporter.error("seqof/setof, but data is not Array");
                        var child = this.clone();
                        child._baseState.implicit = null;
                        content = this._createEncoderBuffer(data.map(function(item) {
                            var state2 = this._baseState;
                            return this._getUse(state2.args[0], data)._encode(item, reporter);
                        }, child));
                    } else if (state.use !== null) {
                        result17 = this._getUse(state.use, parent2)._encode(data, reporter);
                    } else {
                        content = this._encodePrimitive(state.tag, data);
                        primitive = true;
                    }
                }
                var result17;
                if (!state.any && state.choice === null) {
                    var tag2 = state.implicit !== null ? state.implicit : state.tag;
                    var cls = state.implicit === null ? "universal" : "context";
                    if (tag2 === null) {
                        if (state.use === null) reporter.error("Tag could be omitted only for .use()");
                    } else {
                        if (state.use === null) result17 = this._encodeComposite(tag2, primitive, cls, content);
                    }
                }
                if (state.explicit !== null) result17 = this._encodeComposite(state.explicit, false, "context", result17);
                return result17;
            };
            Node2.prototype._encodeChoice = function encodeChoice(data, reporter) {
                var state = this._baseState;
                var node = state.choice[data.type];
                if (!node) {
                    assert(false, data.type + " not found in " + JSON.stringify(Object.keys(state.choice)));
                }
                return node._encode(data.value, reporter);
            };
            Node2.prototype._encodePrimitive = function encodePrimitive(tag2, data) {
                var state = this._baseState;
                if (/str$/.test(tag2)) return this._encodeStr(data, tag2);
                else if (tag2 === "objid" && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);
                else if (tag2 === "objid") return this._encodeObjid(data, null, null);
                else if (tag2 === "gentime" || tag2 === "utctime") return this._encodeTime(data, tag2);
                else if (tag2 === "null_") return this._encodeNull();
                else if (tag2 === "int" || tag2 === "enum") return this._encodeInt(data, state.args && state.reverseArgs[0]);
                else if (tag2 === "bool") return this._encodeBool(data);
                else if (tag2 === "objDesc") return this._encodeStr(data, tag2);
                else throw new Error("Unsupported tag: " + tag2);
            };
            Node2.prototype._isNumstr = function isNumstr(str) {
                return /^[0-9 ]*$/.test(str);
            };
            Node2.prototype._isPrintstr = function isPrintstr(str) {
                return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str);
            };
        }
    });
    // node_modules/asn1.js/lib/asn1/base/index.js
    var require_base2 = __commonJS({
        "node_modules/asn1.js/lib/asn1/base/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var base = exports;
            base.Reporter = require_reporter().Reporter;
            base.DecoderBuffer = require_buffer2().DecoderBuffer;
            base.EncoderBuffer = require_buffer2().EncoderBuffer;
            base.Node = require_node();
        }
    });
    // node_modules/asn1.js/lib/asn1/constants/der.js
    var require_der = __commonJS({
        "node_modules/asn1.js/lib/asn1/constants/der.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var constants = require_constants2();
            exports.tagClass = {
                0: "universal",
                1: "application",
                2: "context",
                3: "private"
            };
            exports.tagClassByName = constants._reverse(exports.tagClass);
            exports.tag = {
                0: "end",
                1: "bool",
                2: "int",
                3: "bitstr",
                4: "octstr",
                5: "null_",
                6: "objid",
                7: "objDesc",
                8: "external",
                9: "real",
                10: "enum",
                11: "embed",
                12: "utf8str",
                13: "relativeOid",
                16: "seq",
                17: "set",
                18: "numstr",
                19: "printstr",
                20: "t61str",
                21: "videostr",
                22: "ia5str",
                23: "utctime",
                24: "gentime",
                25: "graphstr",
                26: "iso646str",
                27: "genstr",
                28: "unistr",
                29: "charstr",
                30: "bmpstr"
            };
            exports.tagByName = constants._reverse(exports.tag);
        }
    });
    // node_modules/asn1.js/lib/asn1/constants/index.js
    var require_constants2 = __commonJS({
        "node_modules/asn1.js/lib/asn1/constants/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var constants = exports;
            constants._reverse = function reverse(map) {
                var res = {};
                Object.keys(map).forEach(function(key) {
                    if ((key | 0) == key) key = key | 0;
                    var value = map[key];
                    res[value] = key;
                });
                return res;
            };
            constants.der = require_der();
        }
    });
    // node_modules/asn1.js/lib/asn1/decoders/der.js
    var require_der2 = __commonJS({
        "node_modules/asn1.js/lib/asn1/decoders/der.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var asn1 = require_asn1();
            var base = asn1.base;
            var bignum = asn1.bignum;
            var der = asn1.constants.der;
            function DERDecoder(entity) {
                this.enc = "der";
                this.name = entity.name;
                this.entity = entity;
                this.tree = new DERNode();
                this.tree._init(entity.body);
            }
            module.exports = DERDecoder;
            DERDecoder.prototype.decode = function decode3(data, options) {
                if (!(data instanceof base.DecoderBuffer)) data = new base.DecoderBuffer(data, options);
                return this.tree._decode(data, options);
            };
            function DERNode(parent2) {
                base.Node.call(this, "der", parent2);
            }
            inherits(DERNode, base.Node);
            DERNode.prototype._peekTag = function peekTag(buffer, tag2, any) {
                if (buffer.isEmpty()) return false;
                var state = buffer.save();
                var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag2 + '"');
                if (buffer.isError(decodedTag)) return decodedTag;
                buffer.restore(state);
                return decodedTag.tag === tag2 || decodedTag.tagStr === tag2 || decodedTag.tagStr + "of" === tag2 || any;
            };
            DERNode.prototype._decodeTag = function decodeTag(buffer, tag2, any) {
                var decodedTag = derDecodeTag(buffer, 'Failed to decode tag of "' + tag2 + '"');
                if (buffer.isError(decodedTag)) return decodedTag;
                var len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of "' + tag2 + '"');
                if (buffer.isError(len)) return len;
                if (!any && decodedTag.tag !== tag2 && decodedTag.tagStr !== tag2 && decodedTag.tagStr + "of" !== tag2) {
                    return buffer.error('Failed to match tag: "' + tag2 + '"');
                }
                if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: "' + tag2 + '"');
                var state = buffer.save();
                var res = this._skipUntilEnd(buffer, 'Failed to skip indefinite length body: "' + this.tag + '"');
                if (buffer.isError(res)) return res;
                len = buffer.offset - state.offset;
                buffer.restore(state);
                return buffer.skip(len, 'Failed to match body of: "' + tag2 + '"');
            };
            DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {
                while(true){
                    var tag2 = derDecodeTag(buffer, fail);
                    if (buffer.isError(tag2)) return tag2;
                    var len = derDecodeLen(buffer, tag2.primitive, fail);
                    if (buffer.isError(len)) return len;
                    var res;
                    if (tag2.primitive || len !== null) res = buffer.skip(len);
                    else res = this._skipUntilEnd(buffer, fail);
                    if (buffer.isError(res)) return res;
                    if (tag2.tagStr === "end") break;
                }
            };
            DERNode.prototype._decodeList = function decodeList(buffer, tag2, decoder2, options) {
                var result17 = [];
                while(!buffer.isEmpty()){
                    var possibleEnd = this._peekTag(buffer, "end");
                    if (buffer.isError(possibleEnd)) return possibleEnd;
                    var res = decoder2.decode(buffer, "der", options);
                    if (buffer.isError(res) && possibleEnd) break;
                    result17.push(res);
                }
                return result17;
            };
            DERNode.prototype._decodeStr = function decodeStr(buffer, tag2) {
                if (tag2 === "bitstr") {
                    var unused = buffer.readUInt8();
                    if (buffer.isError(unused)) return unused;
                    return {
                        unused: unused,
                        data: buffer.raw()
                    };
                } else if (tag2 === "bmpstr") {
                    var raw = buffer.raw();
                    if (raw.length % 2 === 1) return buffer.error("Decoding of string type: bmpstr length mismatch");
                    var str = "";
                    for(var i = 0; i < raw.length / 2; i++){
                        str += String.fromCharCode(raw.readUInt16BE(i * 2));
                    }
                    return str;
                } else if (tag2 === "numstr") {
                    var numstr = buffer.raw().toString("ascii");
                    if (!this._isNumstr(numstr)) {
                        return buffer.error("Decoding of string type: numstr unsupported characters");
                    }
                    return numstr;
                } else if (tag2 === "octstr") {
                    return buffer.raw();
                } else if (tag2 === "objDesc") {
                    return buffer.raw();
                } else if (tag2 === "printstr") {
                    var printstr = buffer.raw().toString("ascii");
                    if (!this._isPrintstr(printstr)) {
                        return buffer.error("Decoding of string type: printstr unsupported characters");
                    }
                    return printstr;
                } else if (/str$/.test(tag2)) {
                    return buffer.raw().toString();
                } else {
                    return buffer.error("Decoding of string type: " + tag2 + " unsupported");
                }
            };
            DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {
                var result17;
                var identifiers = [];
                var ident = 0;
                while(!buffer.isEmpty()){
                    var subident = buffer.readUInt8();
                    ident <<= 7;
                    ident |= subident & 127;
                    if ((subident & 128) === 0) {
                        identifiers.push(ident);
                        ident = 0;
                    }
                }
                if (subident & 128) identifiers.push(ident);
                var first = identifiers[0] / 40 | 0;
                var second = identifiers[0] % 40;
                if (relative) result17 = identifiers;
                else result17 = [
                    first,
                    second
                ].concat(identifiers.slice(1));
                if (values) {
                    var tmp = values[result17.join(" ")];
                    if (tmp === void 0) tmp = values[result17.join(".")];
                    if (tmp !== void 0) result17 = tmp;
                }
                return result17;
            };
            DERNode.prototype._decodeTime = function decodeTime(buffer, tag2) {
                var str = buffer.raw().toString();
                if (tag2 === "gentime") {
                    var year2 = str.slice(0, 4) | 0;
                    var mon = str.slice(4, 6) | 0;
                    var day2 = str.slice(6, 8) | 0;
                    var hour2 = str.slice(8, 10) | 0;
                    var min = str.slice(10, 12) | 0;
                    var sec = str.slice(12, 14) | 0;
                } else if (tag2 === "utctime") {
                    var year2 = str.slice(0, 2) | 0;
                    var mon = str.slice(2, 4) | 0;
                    var day2 = str.slice(4, 6) | 0;
                    var hour2 = str.slice(6, 8) | 0;
                    var min = str.slice(8, 10) | 0;
                    var sec = str.slice(10, 12) | 0;
                    if (year2 < 70) year2 = 2e3 + year2;
                    else year2 = 1900 + year2;
                } else {
                    return buffer.error("Decoding " + tag2 + " time is not supported yet");
                }
                return Date.UTC(year2, mon - 1, day2, hour2, min, sec, 0);
            };
            DERNode.prototype._decodeNull = function decodeNull(buffer) {
                return null;
            };
            DERNode.prototype._decodeBool = function decodeBool(buffer) {
                var res = buffer.readUInt8();
                if (buffer.isError(res)) return res;
                else return res !== 0;
            };
            DERNode.prototype._decodeInt = function decodeInt(buffer, values) {
                var raw = buffer.raw();
                var res = new bignum(raw);
                if (values) res = values[res.toString(10)] || res;
                return res;
            };
            DERNode.prototype._use = function use(entity, obj) {
                if (typeof entity === "function") entity = entity(obj);
                return entity._getDecoder("der").tree;
            };
            function derDecodeTag(buf, fail) {
                var tag2 = buf.readUInt8(fail);
                if (buf.isError(tag2)) return tag2;
                var cls = der.tagClass[tag2 >> 6];
                var primitive = (tag2 & 32) === 0;
                if ((tag2 & 31) === 31) {
                    var oct = tag2;
                    tag2 = 0;
                    while((oct & 128) === 128){
                        oct = buf.readUInt8(fail);
                        if (buf.isError(oct)) return oct;
                        tag2 <<= 7;
                        tag2 |= oct & 127;
                    }
                } else {
                    tag2 &= 31;
                }
                var tagStr = der.tag[tag2];
                return {
                    cls: cls,
                    primitive: primitive,
                    tag: tag2,
                    tagStr: tagStr
                };
            }
            function derDecodeLen(buf, primitive, fail) {
                var len = buf.readUInt8(fail);
                if (buf.isError(len)) return len;
                if (!primitive && len === 128) return null;
                if ((len & 128) === 0) {
                    return len;
                }
                var num = len & 127;
                if (num > 4) return buf.error("length octect is too long");
                len = 0;
                for(var i = 0; i < num; i++){
                    len <<= 8;
                    var j = buf.readUInt8(fail);
                    if (buf.isError(j)) return j;
                    len |= j;
                }
                return len;
            }
        }
    });
    // node_modules/asn1.js/lib/asn1/decoders/pem.js
    var require_pem = __commonJS({
        "node_modules/asn1.js/lib/asn1/decoders/pem.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Buffer3 = require_buffer().Buffer;
            var DERDecoder = require_der2();
            function PEMDecoder(entity) {
                DERDecoder.call(this, entity);
                this.enc = "pem";
            }
            inherits(PEMDecoder, DERDecoder);
            module.exports = PEMDecoder;
            PEMDecoder.prototype.decode = function decode3(data, options) {
                var lines = data.toString().split(/[\r\n]+/g);
                var label = options.label.toUpperCase();
                var re = /^-----(BEGIN|END) ([^-]+)-----$/;
                var start = -1;
                var end = -1;
                for(var i = 0; i < lines.length; i++){
                    var match = lines[i].match(re);
                    if (match === null) continue;
                    if (match[2] !== label) continue;
                    if (start === -1) {
                        if (match[1] !== "BEGIN") break;
                        start = i;
                    } else {
                        if (match[1] !== "END") break;
                        end = i;
                        break;
                    }
                }
                if (start === -1 || end === -1) throw new Error("PEM section not found for: " + label);
                var base64 = lines.slice(start + 1, end).join("");
                base64.replace(/[^a-z0-9\+\/=]+/gi, "");
                var input = new Buffer3(base64, "base64");
                return DERDecoder.prototype.decode.call(this, input, options);
            };
        }
    });
    // node_modules/asn1.js/lib/asn1/decoders/index.js
    var require_decoders = __commonJS({
        "node_modules/asn1.js/lib/asn1/decoders/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var decoders = exports;
            decoders.der = require_der2();
            decoders.pem = require_pem();
        }
    });
    // node_modules/asn1.js/lib/asn1/encoders/der.js
    var require_der3 = __commonJS({
        "node_modules/asn1.js/lib/asn1/encoders/der.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var Buffer3 = require_buffer().Buffer;
            var asn1 = require_asn1();
            var base = asn1.base;
            var der = asn1.constants.der;
            function DEREncoder(entity) {
                this.enc = "der";
                this.name = entity.name;
                this.entity = entity;
                this.tree = new DERNode();
                this.tree._init(entity.body);
            }
            module.exports = DEREncoder;
            DEREncoder.prototype.encode = function encode3(data, reporter) {
                return this.tree._encode(data, reporter).join();
            };
            function DERNode(parent2) {
                base.Node.call(this, "der", parent2);
            }
            inherits(DERNode, base.Node);
            DERNode.prototype._encodeComposite = function encodeComposite(tag2, primitive, cls, content) {
                var encodedTag = encodeTag(tag2, primitive, cls, this.reporter);
                if (content.length < 128) {
                    var header = new Buffer3(2);
                    header[0] = encodedTag;
                    header[1] = content.length;
                    return this._createEncoderBuffer([
                        header,
                        content
                    ]);
                }
                var lenOctets = 1;
                for(var i = content.length; i >= 256; i >>= 8)lenOctets++;
                var header = new Buffer3(1 + 1 + lenOctets);
                header[0] = encodedTag;
                header[1] = 128 | lenOctets;
                for(var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)header[i] = j & 255;
                return this._createEncoderBuffer([
                    header,
                    content
                ]);
            };
            DERNode.prototype._encodeStr = function encodeStr(str, tag2) {
                if (tag2 === "bitstr") {
                    return this._createEncoderBuffer([
                        str.unused | 0,
                        str.data
                    ]);
                } else if (tag2 === "bmpstr") {
                    var buf = new Buffer3(str.length * 2);
                    for(var i = 0; i < str.length; i++){
                        buf.writeUInt16BE(str.charCodeAt(i), i * 2);
                    }
                    return this._createEncoderBuffer(buf);
                } else if (tag2 === "numstr") {
                    if (!this._isNumstr(str)) {
                        return this.reporter.error("Encoding of string type: numstr supports only digits and space");
                    }
                    return this._createEncoderBuffer(str);
                } else if (tag2 === "printstr") {
                    if (!this._isPrintstr(str)) {
                        return this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark");
                    }
                    return this._createEncoderBuffer(str);
                } else if (/str$/.test(tag2)) {
                    return this._createEncoderBuffer(str);
                } else if (tag2 === "objDesc") {
                    return this._createEncoderBuffer(str);
                } else {
                    return this.reporter.error("Encoding of string type: " + tag2 + " unsupported");
                }
            };
            DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {
                if (typeof id === "string") {
                    if (!values) return this.reporter.error("string objid given, but no values map found");
                    if (!values.hasOwnProperty(id)) return this.reporter.error("objid not found in values map");
                    id = values[id].split(/[\s\.]+/g);
                    for(var i = 0; i < id.length; i++)id[i] |= 0;
                } else if (Array.isArray(id)) {
                    id = id.slice();
                    for(var i = 0; i < id.length; i++)id[i] |= 0;
                }
                if (!Array.isArray(id)) {
                    return this.reporter.error("objid() should be either array or string, got: " + JSON.stringify(id));
                }
                if (!relative) {
                    if (id[1] >= 40) return this.reporter.error("Second objid identifier OOB");
                    id.splice(0, 2, id[0] * 40 + id[1]);
                }
                var size = 0;
                for(var i = 0; i < id.length; i++){
                    var ident = id[i];
                    for(size++; ident >= 128; ident >>= 7)size++;
                }
                var objid = new Buffer3(size);
                var offset = objid.length - 1;
                for(var i = id.length - 1; i >= 0; i--){
                    var ident = id[i];
                    objid[offset--] = ident & 127;
                    while((ident >>= 7) > 0)objid[offset--] = 128 | ident & 127;
                }
                return this._createEncoderBuffer(objid);
            };
            function two(num) {
                if (num < 10) return "0" + num;
                else return num;
            }
            DERNode.prototype._encodeTime = function encodeTime(time, tag2) {
                var str;
                var date = new Date(time);
                if (tag2 === "gentime") {
                    str = [
                        two(date.getFullYear()),
                        two(date.getUTCMonth() + 1),
                        two(date.getUTCDate()),
                        two(date.getUTCHours()),
                        two(date.getUTCMinutes()),
                        two(date.getUTCSeconds()),
                        "Z"
                    ].join("");
                } else if (tag2 === "utctime") {
                    str = [
                        two(date.getFullYear() % 100),
                        two(date.getUTCMonth() + 1),
                        two(date.getUTCDate()),
                        two(date.getUTCHours()),
                        two(date.getUTCMinutes()),
                        two(date.getUTCSeconds()),
                        "Z"
                    ].join("");
                } else {
                    this.reporter.error("Encoding " + tag2 + " time is not supported yet");
                }
                return this._encodeStr(str, "octstr");
            };
            DERNode.prototype._encodeNull = function encodeNull() {
                return this._createEncoderBuffer("");
            };
            DERNode.prototype._encodeInt = function encodeInt(num, values) {
                if (typeof num === "string") {
                    if (!values) return this.reporter.error("String int or enum given, but no values map");
                    if (!values.hasOwnProperty(num)) {
                        return this.reporter.error("Values map doesn't contain: " + JSON.stringify(num));
                    }
                    num = values[num];
                }
                if (typeof num !== "number" && !Buffer3.isBuffer(num)) {
                    var numArray = num.toArray();
                    if (!num.sign && numArray[0] & 128) {
                        numArray.unshift(0);
                    }
                    num = new Buffer3(numArray);
                }
                if (Buffer3.isBuffer(num)) {
                    var size = num.length;
                    if (num.length === 0) size++;
                    var out = new Buffer3(size);
                    num.copy(out);
                    if (num.length === 0) out[0] = 0;
                    return this._createEncoderBuffer(out);
                }
                if (num < 128) return this._createEncoderBuffer(num);
                if (num < 256) return this._createEncoderBuffer([
                    0,
                    num
                ]);
                var size = 1;
                for(var i = num; i >= 256; i >>= 8)size++;
                var out = new Array(size);
                for(var i = out.length - 1; i >= 0; i--){
                    out[i] = num & 255;
                    num >>= 8;
                }
                if (out[0] & 128) {
                    out.unshift(0);
                }
                return this._createEncoderBuffer(new Buffer3(out));
            };
            DERNode.prototype._encodeBool = function encodeBool(value) {
                return this._createEncoderBuffer(value ? 255 : 0);
            };
            DERNode.prototype._use = function use(entity, obj) {
                if (typeof entity === "function") entity = entity(obj);
                return entity._getEncoder("der").tree;
            };
            DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent2) {
                var state = this._baseState;
                var i;
                if (state["default"] === null) return false;
                var data = dataBuffer.join();
                if (state.defaultBuffer === void 0) state.defaultBuffer = this._encodeValue(state["default"], reporter, parent2).join();
                if (data.length !== state.defaultBuffer.length) return false;
                for(i = 0; i < data.length; i++)if (data[i] !== state.defaultBuffer[i]) return false;
                return true;
            };
            function encodeTag(tag2, primitive, cls, reporter) {
                var res;
                if (tag2 === "seqof") tag2 = "seq";
                else if (tag2 === "setof") tag2 = "set";
                if (der.tagByName.hasOwnProperty(tag2)) res = der.tagByName[tag2];
                else if (typeof tag2 === "number" && (tag2 | 0) === tag2) res = tag2;
                else return reporter.error("Unknown tag: " + tag2);
                if (res >= 31) return reporter.error("Multi-octet tag encoding unsupported");
                if (!primitive) res |= 32;
                res |= der.tagClassByName[cls || "universal"] << 6;
                return res;
            }
        }
    });
    // node_modules/asn1.js/lib/asn1/encoders/pem.js
    var require_pem2 = __commonJS({
        "node_modules/asn1.js/lib/asn1/encoders/pem.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var inherits = require_inherits_browser();
            var DEREncoder = require_der3();
            function PEMEncoder(entity) {
                DEREncoder.call(this, entity);
                this.enc = "pem";
            }
            inherits(PEMEncoder, DEREncoder);
            module.exports = PEMEncoder;
            PEMEncoder.prototype.encode = function encode3(data, options) {
                var buf = DEREncoder.prototype.encode.call(this, data);
                var p = buf.toString("base64");
                var out = [
                    "-----BEGIN " + options.label + "-----"
                ];
                for(var i = 0; i < p.length; i += 64)out.push(p.slice(i, i + 64));
                out.push("-----END " + options.label + "-----");
                return out.join("\n");
            };
        }
    });
    // node_modules/asn1.js/lib/asn1/encoders/index.js
    var require_encoders = __commonJS({
        "node_modules/asn1.js/lib/asn1/encoders/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var encoders = exports;
            encoders.der = require_der3();
            encoders.pem = require_pem2();
        }
    });
    // node_modules/asn1.js/lib/asn1.js
    var require_asn1 = __commonJS({
        "node_modules/asn1.js/lib/asn1.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var asn1 = exports;
            asn1.bignum = require_bn5();
            asn1.define = require_api().define;
            asn1.base = require_base2();
            asn1.constants = require_constants2();
            asn1.decoders = require_decoders();
            asn1.encoders = require_encoders();
        }
    });
    // node_modules/parse-asn1/certificate.js
    var require_certificate = __commonJS({
        "node_modules/parse-asn1/certificate.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var asn = require_asn1();
            var Time = asn.define("Time", function() {
                this.choice({
                    utcTime: this.utctime(),
                    generalTime: this.gentime()
                });
            });
            var AttributeTypeValue = asn.define("AttributeTypeValue", function() {
                this.seq().obj(this.key("type").objid(), this.key("value").any());
            });
            var AlgorithmIdentifier = asn.define("AlgorithmIdentifier", function() {
                this.seq().obj(this.key("algorithm").objid(), this.key("parameters").optional(), this.key("curve").objid().optional());
            });
            var SubjectPublicKeyInfo = asn.define("SubjectPublicKeyInfo", function() {
                this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr());
            });
            var RelativeDistinguishedName = asn.define("RelativeDistinguishedName", function() {
                this.setof(AttributeTypeValue);
            });
            var RDNSequence = asn.define("RDNSequence", function() {
                this.seqof(RelativeDistinguishedName);
            });
            var Name = asn.define("Name", function() {
                this.choice({
                    rdnSequence: this.use(RDNSequence)
                });
            });
            var Validity = asn.define("Validity", function() {
                this.seq().obj(this.key("notBefore").use(Time), this.key("notAfter").use(Time));
            });
            var Extension = asn.define("Extension", function() {
                this.seq().obj(this.key("extnID").objid(), this.key("critical").bool().def(false), this.key("extnValue").octstr());
            });
            var TBSCertificate = asn.define("TBSCertificate", function() {
                this.seq().obj(this.key("version").explicit(0)["int"]().optional(), this.key("serialNumber")["int"](), this.key("signature").use(AlgorithmIdentifier), this.key("issuer").use(Name), this.key("validity").use(Validity), this.key("subject").use(Name), this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo), this.key("issuerUniqueID").implicit(1).bitstr().optional(), this.key("subjectUniqueID").implicit(2).bitstr().optional(), this.key("extensions").explicit(3).seqof(Extension).optional());
            });
            var X509Certificate = asn.define("X509Certificate", function() {
                this.seq().obj(this.key("tbsCertificate").use(TBSCertificate), this.key("signatureAlgorithm").use(AlgorithmIdentifier), this.key("signatureValue").bitstr());
            });
            module.exports = X509Certificate;
        }
    });
    // node_modules/parse-asn1/asn1.js
    var require_asn12 = __commonJS({
        "node_modules/parse-asn1/asn1.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var asn1 = require_asn1();
            exports.certificate = require_certificate();
            var RSAPrivateKey = asn1.define("RSAPrivateKey", function() {
                this.seq().obj(this.key("version")["int"](), this.key("modulus")["int"](), this.key("publicExponent")["int"](), this.key("privateExponent")["int"](), this.key("prime1")["int"](), this.key("prime2")["int"](), this.key("exponent1")["int"](), this.key("exponent2")["int"](), this.key("coefficient")["int"]());
            });
            exports.RSAPrivateKey = RSAPrivateKey;
            var RSAPublicKey = asn1.define("RSAPublicKey", function() {
                this.seq().obj(this.key("modulus")["int"](), this.key("publicExponent")["int"]());
            });
            exports.RSAPublicKey = RSAPublicKey;
            var AlgorithmIdentifier = asn1.define("AlgorithmIdentifier", function() {
                this.seq().obj(this.key("algorithm").objid(), this.key("none").null_().optional(), this.key("curve").objid().optional(), this.key("params").seq().obj(this.key("p")["int"](), this.key("q")["int"](), this.key("g")["int"]()).optional());
            });
            var PublicKey = asn1.define("SubjectPublicKeyInfo", function() {
                this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr());
            });
            exports.PublicKey = PublicKey;
            var PrivateKeyInfo = asn1.define("PrivateKeyInfo", function() {
                this.seq().obj(this.key("version")["int"](), this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPrivateKey").octstr());
            });
            exports.PrivateKey = PrivateKeyInfo;
            var EncryptedPrivateKeyInfo = asn1.define("EncryptedPrivateKeyInfo", function() {
                this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(), this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(), this.key("kdeparams").seq().obj(this.key("salt").octstr(), this.key("iters")["int"]())), this.key("cipher").seq().obj(this.key("algo").objid(), this.key("iv").octstr()))), this.key("subjectPrivateKey").octstr());
            });
            exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;
            var DSAPrivateKey = asn1.define("DSAPrivateKey", function() {
                this.seq().obj(this.key("version")["int"](), this.key("p")["int"](), this.key("q")["int"](), this.key("g")["int"](), this.key("pub_key")["int"](), this.key("priv_key")["int"]());
            });
            exports.DSAPrivateKey = DSAPrivateKey;
            exports.DSAparam = asn1.define("DSAparam", function() {
                this["int"]();
            });
            var ECParameters = asn1.define("ECParameters", function() {
                this.choice({
                    namedCurve: this.objid()
                });
            });
            var ECPrivateKey = asn1.define("ECPrivateKey", function() {
                this.seq().obj(this.key("version")["int"](), this.key("privateKey").octstr(), this.key("parameters").optional().explicit(0).use(ECParameters), this.key("publicKey").optional().explicit(1).bitstr());
            });
            exports.ECPrivateKey = ECPrivateKey;
            exports.signature = asn1.define("signature", function() {
                this.seq().obj(this.key("r")["int"](), this.key("s")["int"]());
            });
        }
    });
    // node_modules/parse-asn1/aesid.json
    var require_aesid = __commonJS({
        "node_modules/parse-asn1/aesid.json": function(exports, module) {
            module.exports = {
                "2.16.840.1.101.3.4.1.1": "aes-128-ecb",
                "2.16.840.1.101.3.4.1.2": "aes-128-cbc",
                "2.16.840.1.101.3.4.1.3": "aes-128-ofb",
                "2.16.840.1.101.3.4.1.4": "aes-128-cfb",
                "2.16.840.1.101.3.4.1.21": "aes-192-ecb",
                "2.16.840.1.101.3.4.1.22": "aes-192-cbc",
                "2.16.840.1.101.3.4.1.23": "aes-192-ofb",
                "2.16.840.1.101.3.4.1.24": "aes-192-cfb",
                "2.16.840.1.101.3.4.1.41": "aes-256-ecb",
                "2.16.840.1.101.3.4.1.42": "aes-256-cbc",
                "2.16.840.1.101.3.4.1.43": "aes-256-ofb",
                "2.16.840.1.101.3.4.1.44": "aes-256-cfb"
            };
        }
    });
    // node_modules/parse-asn1/node_modules/safe-buffer/index.js
    var require_safe_buffer10 = __commonJS({
        "node_modules/parse-asn1/node_modules/safe-buffer/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var buffer = require_buffer();
            var Buffer3 = buffer.Buffer;
            function copyProps(src, dst) {
                for(var key in src){
                    dst[key] = src[key];
                }
            }
            if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) {
                module.exports = buffer;
            } else {
                copyProps(buffer, exports);
                exports.Buffer = SafeBuffer;
            }
            function SafeBuffer(arg, encodingOrOffset, length) {
                return Buffer3(arg, encodingOrOffset, length);
            }
            SafeBuffer.prototype = Object.create(Buffer3.prototype);
            copyProps(Buffer3, SafeBuffer);
            SafeBuffer.from = function(arg, encodingOrOffset, length) {
                if (typeof arg === "number") {
                    throw new TypeError("Argument must not be a number");
                }
                return Buffer3(arg, encodingOrOffset, length);
            };
            SafeBuffer.alloc = function(size, fill, encoding) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                var buf = Buffer3(size);
                if (fill !== void 0) {
                    if (typeof encoding === "string") {
                        buf.fill(fill, encoding);
                    } else {
                        buf.fill(fill);
                    }
                } else {
                    buf.fill(0);
                }
                return buf;
            };
            SafeBuffer.allocUnsafe = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return Buffer3(size);
            };
            SafeBuffer.allocUnsafeSlow = function(size) {
                if (typeof size !== "number") {
                    throw new TypeError("Argument must be a number");
                }
                return buffer.SlowBuffer(size);
            };
        }
    });
    // node_modules/parse-asn1/fixProc.js
    var require_fixProc = __commonJS({
        "node_modules/parse-asn1/fixProc.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m;
            var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;
            var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m;
            var evp = require_evp_bytestokey();
            var ciphers = require_browser9();
            var Buffer3 = require_safe_buffer10().Buffer;
            module.exports = function(okey, password) {
                var key = okey.toString();
                var match = key.match(findProc);
                var decrypted;
                if (!match) {
                    var match2 = key.match(fullRegex);
                    decrypted = Buffer3.from(match2[2].replace(/[\r\n]/g, ""), "base64");
                } else {
                    var suite = "aes" + match[1];
                    var iv = Buffer3.from(match[2], "hex");
                    var cipherText = Buffer3.from(match[3].replace(/[\r\n]/g, ""), "base64");
                    var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;
                    var out = [];
                    var cipher = ciphers.createDecipheriv(suite, cipherKey, iv);
                    out.push(cipher.update(cipherText));
                    out.push(cipher["final"]());
                    decrypted = Buffer3.concat(out);
                }
                var tag2 = key.match(startRegex)[1];
                return {
                    tag: tag2,
                    data: decrypted
                };
            };
        }
    });
    // node_modules/parse-asn1/index.js
    var require_parse_asn1 = __commonJS({
        "node_modules/parse-asn1/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var asn1 = require_asn12();
            var aesid = require_aesid();
            var fixProc = require_fixProc();
            var ciphers = require_browser9();
            var pbkdf2Sync = require_browser8().pbkdf2Sync;
            var Buffer3 = require_safe_buffer10().Buffer;
            function decrypt4(data, password) {
                var salt = data.algorithm.decrypt.kde.kdeparams.salt;
                var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);
                var algo = aesid[data.algorithm.decrypt.cipher.algo.join(".")];
                var iv = data.algorithm.decrypt.cipher.iv;
                var cipherText = data.subjectPrivateKey;
                var keylen = parseInt(algo.split("-")[1], 10) / 8;
                var key = pbkdf2Sync(password, salt, iters, keylen, "sha1");
                var cipher = ciphers.createDecipheriv(algo, key, iv);
                var out = [];
                out.push(cipher.update(cipherText));
                out.push(cipher["final"]());
                return Buffer3.concat(out);
            }
            function parseKeys(buffer) {
                var password;
                if ((typeof buffer === "undefined" ? "undefined" : _type_of(buffer)) === "object" && !Buffer3.isBuffer(buffer)) {
                    password = buffer.passphrase;
                    buffer = buffer.key;
                }
                if (typeof buffer === "string") {
                    buffer = Buffer3.from(buffer);
                }
                var stripped = fixProc(buffer, password);
                var type = stripped.tag;
                var data = stripped.data;
                var subtype, ndata;
                switch(type){
                    case "CERTIFICATE":
                        ndata = asn1.certificate.decode(data, "der").tbsCertificate.subjectPublicKeyInfo;
                    case "PUBLIC KEY":
                        if (!ndata) {
                            ndata = asn1.PublicKey.decode(data, "der");
                        }
                        subtype = ndata.algorithm.algorithm.join(".");
                        switch(subtype){
                            case "1.2.840.113549.1.1.1":
                                return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, "der");
                            case "1.2.840.10045.2.1":
                                ndata.subjectPrivateKey = ndata.subjectPublicKey;
                                return {
                                    type: "ec",
                                    data: ndata
                                };
                            case "1.2.840.10040.4.1":
                                ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, "der");
                                return {
                                    type: "dsa",
                                    data: ndata.algorithm.params
                                };
                            default:
                                throw new Error("unknown key id " + subtype);
                        }
                    case "ENCRYPTED PRIVATE KEY":
                        data = asn1.EncryptedPrivateKey.decode(data, "der");
                        data = decrypt4(data, password);
                    case "PRIVATE KEY":
                        ndata = asn1.PrivateKey.decode(data, "der");
                        subtype = ndata.algorithm.algorithm.join(".");
                        switch(subtype){
                            case "1.2.840.113549.1.1.1":
                                return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, "der");
                            case "1.2.840.10045.2.1":
                                return {
                                    curve: ndata.algorithm.curve,
                                    privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, "der").privateKey
                                };
                            case "1.2.840.10040.4.1":
                                ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, "der");
                                return {
                                    type: "dsa",
                                    params: ndata.algorithm.params
                                };
                            default:
                                throw new Error("unknown key id " + subtype);
                        }
                    case "RSA PUBLIC KEY":
                        return asn1.RSAPublicKey.decode(data, "der");
                    case "RSA PRIVATE KEY":
                        return asn1.RSAPrivateKey.decode(data, "der");
                    case "DSA PRIVATE KEY":
                        return {
                            type: "dsa",
                            params: asn1.DSAPrivateKey.decode(data, "der")
                        };
                    case "EC PRIVATE KEY":
                        data = asn1.ECPrivateKey.decode(data, "der");
                        return {
                            curve: data.parameters.value,
                            privateKey: data.privateKey
                        };
                    default:
                        throw new Error("unknown key type " + type);
                }
            }
            parseKeys.signature = asn1.signature;
            module.exports = parseKeys;
        }
    });
    // node_modules/browserify-sign/browser/curves.json
    var require_curves2 = __commonJS({
        "node_modules/browserify-sign/browser/curves.json": function(exports, module) {
            module.exports = {
                "1.3.132.0.10": "secp256k1",
                "1.3.132.0.33": "p224",
                "1.2.840.10045.3.1.1": "p192",
                "1.2.840.10045.3.1.7": "p256",
                "1.3.132.0.34": "p384",
                "1.3.132.0.35": "p521"
            };
        }
    });
    // node_modules/browserify-sign/browser/sign.js
    var require_sign2 = __commonJS({
        "node_modules/browserify-sign/browser/sign.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer8().Buffer;
            var createHmac = require_browser7();
            var crt = require_browserify_rsa();
            var EC = require_elliptic().ec;
            var BN = require_bn3();
            var parseKeys = require_parse_asn1();
            var curves = require_curves2();
            var RSA_PKCS1_PADDING = 1;
            function sign2(hash, key, hashType, signType, tag2) {
                var priv = parseKeys(key);
                if (priv.curve) {
                    if (signType !== "ecdsa" && signType !== "ecdsa/rsa") {
                        throw new Error("wrong private key type");
                    }
                    return ecSign(hash, priv);
                } else if (priv.type === "dsa") {
                    if (signType !== "dsa") {
                        throw new Error("wrong private key type");
                    }
                    return dsaSign(hash, priv, hashType);
                }
                if (signType !== "rsa" && signType !== "ecdsa/rsa") {
                    throw new Error("wrong private key type");
                }
                if (key.padding !== void 0 && key.padding !== RSA_PKCS1_PADDING) {
                    throw new Error("illegal or unsupported padding mode");
                }
                hash = Buffer3.concat([
                    tag2,
                    hash
                ]);
                var len = priv.modulus.byteLength();
                var pad = [
                    0,
                    1
                ];
                while(hash.length + pad.length + 1 < len){
                    pad.push(255);
                }
                pad.push(0);
                var i = -1;
                while(++i < hash.length){
                    pad.push(hash[i]);
                }
                var out = crt(pad, priv);
                return out;
            }
            function ecSign(hash, priv) {
                var curveId = curves[priv.curve.join(".")];
                if (!curveId) {
                    throw new Error("unknown curve " + priv.curve.join("."));
                }
                var curve = new EC(curveId);
                var key = curve.keyFromPrivate(priv.privateKey);
                var out = key.sign(hash);
                return Buffer3.from(out.toDER());
            }
            function dsaSign(hash, priv, algo) {
                var x = priv.params.priv_key;
                var p = priv.params.p;
                var q = priv.params.q;
                var g = priv.params.g;
                var r = new BN(0);
                var k;
                var H = bits2int(hash, q).mod(q);
                var s = false;
                var kv = getKey(x, q, hash, algo);
                while(s === false){
                    k = makeKey(q, kv, algo);
                    r = makeR(g, k, p, q);
                    s = k.invm(q).imul(H.add(x.mul(r))).mod(q);
                    if (s.cmpn(0) === 0) {
                        s = false;
                        r = new BN(0);
                    }
                }
                return toDER(r, s);
            }
            function toDER(r, s) {
                r = r.toArray();
                s = s.toArray();
                if (r[0] & 128) {
                    r = [
                        0
                    ].concat(r);
                }
                if (s[0] & 128) {
                    s = [
                        0
                    ].concat(s);
                }
                var total = r.length + s.length + 4;
                var res = [
                    48,
                    total,
                    2,
                    r.length
                ];
                res = res.concat(r, [
                    2,
                    s.length
                ], s);
                return Buffer3.from(res);
            }
            function getKey(x, q, hash, algo) {
                x = Buffer3.from(x.toArray());
                if (x.length < q.byteLength()) {
                    var zeros = Buffer3.alloc(q.byteLength() - x.length);
                    x = Buffer3.concat([
                        zeros,
                        x
                    ]);
                }
                var hlen = hash.length;
                var hbits = bits2octets(hash, q);
                var v = Buffer3.alloc(hlen);
                v.fill(1);
                var k = Buffer3.alloc(hlen);
                k = createHmac(algo, k).update(v).update(Buffer3.from([
                    0
                ])).update(x).update(hbits).digest();
                v = createHmac(algo, k).update(v).digest();
                k = createHmac(algo, k).update(v).update(Buffer3.from([
                    1
                ])).update(x).update(hbits).digest();
                v = createHmac(algo, k).update(v).digest();
                return {
                    k: k,
                    v: v
                };
            }
            function bits2int(obits, q) {
                var bits = new BN(obits);
                var shift = (obits.length << 3) - q.bitLength();
                if (shift > 0) {
                    bits.ishrn(shift);
                }
                return bits;
            }
            function bits2octets(bits, q) {
                bits = bits2int(bits, q);
                bits = bits.mod(q);
                var out = Buffer3.from(bits.toArray());
                if (out.length < q.byteLength()) {
                    var zeros = Buffer3.alloc(q.byteLength() - out.length);
                    out = Buffer3.concat([
                        zeros,
                        out
                    ]);
                }
                return out;
            }
            function makeKey(q, kv, algo) {
                var t;
                var k;
                do {
                    t = Buffer3.alloc(0);
                    while(t.length * 8 < q.bitLength()){
                        kv.v = createHmac(algo, kv.k).update(kv.v).digest();
                        t = Buffer3.concat([
                            t,
                            kv.v
                        ]);
                    }
                    k = bits2int(t, q);
                    kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer3.from([
                        0
                    ])).digest();
                    kv.v = createHmac(algo, kv.k).update(kv.v).digest();
                }while (k.cmp(q) !== -1);
                return k;
            }
            function makeR(g, k, p, q) {
                return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);
            }
            module.exports = sign2;
            module.exports.getKey = getKey;
            module.exports.makeKey = makeKey;
        }
    });
    // node_modules/browserify-sign/browser/verify.js
    var require_verify = __commonJS({
        "node_modules/browserify-sign/browser/verify.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer8().Buffer;
            var BN = require_bn3();
            var EC = require_elliptic().ec;
            var parseKeys = require_parse_asn1();
            var curves = require_curves2();
            function verify2(sig, hash, key, signType, tag2) {
                var pub = parseKeys(key);
                if (pub.type === "ec") {
                    if (signType !== "ecdsa" && signType !== "ecdsa/rsa") {
                        throw new Error("wrong public key type");
                    }
                    return ecVerify(sig, hash, pub);
                } else if (pub.type === "dsa") {
                    if (signType !== "dsa") {
                        throw new Error("wrong public key type");
                    }
                    return dsaVerify(sig, hash, pub);
                }
                if (signType !== "rsa" && signType !== "ecdsa/rsa") {
                    throw new Error("wrong public key type");
                }
                hash = Buffer3.concat([
                    tag2,
                    hash
                ]);
                var len = pub.modulus.byteLength();
                var pad = [
                    1
                ];
                var padNum = 0;
                while(hash.length + pad.length + 2 < len){
                    pad.push(255);
                    padNum += 1;
                }
                pad.push(0);
                var i = -1;
                while(++i < hash.length){
                    pad.push(hash[i]);
                }
                pad = Buffer3.from(pad);
                var red = BN.mont(pub.modulus);
                sig = new BN(sig).toRed(red);
                sig = sig.redPow(new BN(pub.publicExponent));
                sig = Buffer3.from(sig.fromRed().toArray());
                var out = padNum < 8 ? 1 : 0;
                len = Math.min(sig.length, pad.length);
                if (sig.length !== pad.length) {
                    out = 1;
                }
                i = -1;
                while(++i < len){
                    out |= sig[i] ^ pad[i];
                }
                return out === 0;
            }
            function ecVerify(sig, hash, pub) {
                var curveId = curves[pub.data.algorithm.curve.join(".")];
                if (!curveId) {
                    throw new Error("unknown curve " + pub.data.algorithm.curve.join("."));
                }
                var curve = new EC(curveId);
                var pubkey = pub.data.subjectPrivateKey.data;
                return curve.verify(hash, sig, pubkey);
            }
            function dsaVerify(sig, hash, pub) {
                var p = pub.data.p;
                var q = pub.data.q;
                var g = pub.data.g;
                var y = pub.data.pub_key;
                var unpacked = parseKeys.signature.decode(sig, "der");
                var s = unpacked.s;
                var r = unpacked.r;
                checkValue(s, q);
                checkValue(r, q);
                var montp = BN.mont(p);
                var w = s.invm(q);
                var v = g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);
                return v.cmp(r) === 0;
            }
            function checkValue(b, q) {
                if (b.cmpn(0) <= 0) {
                    throw new Error("invalid sig");
                }
                if (b.cmp(q) >= 0) {
                    throw new Error("invalid sig");
                }
            }
            module.exports = verify2;
        }
    });
    // node_modules/browserify-sign/browser/index.js
    var require_browser12 = __commonJS({
        "node_modules/browserify-sign/browser/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Buffer3 = require_safe_buffer8().Buffer;
            var createHash = require_browser6();
            var stream = require_readable_browser();
            var inherits = require_inherits_browser();
            var sign2 = require_sign2();
            var verify2 = require_verify();
            var algorithms = require_algorithms();
            Object.keys(algorithms).forEach(function(key) {
                algorithms[key].id = Buffer3.from(algorithms[key].id, "hex");
                algorithms[key.toLowerCase()] = algorithms[key];
            });
            function Sign(algorithm) {
                stream.Writable.call(this);
                var data = algorithms[algorithm];
                if (!data) {
                    throw new Error("Unknown message digest");
                }
                this._hashType = data.hash;
                this._hash = createHash(data.hash);
                this._tag = data.id;
                this._signType = data.sign;
            }
            inherits(Sign, stream.Writable);
            Sign.prototype._write = function _write(data, _2, done3) {
                this._hash.update(data);
                done3();
            };
            Sign.prototype.update = function update(data, enc) {
                this._hash.update(typeof data === "string" ? Buffer3.from(data, enc) : data);
                return this;
            };
            Sign.prototype.sign = function signMethod(key, enc) {
                this.end();
                var hash = this._hash.digest();
                var sig = sign2(hash, key, this._hashType, this._signType, this._tag);
                return enc ? sig.toString(enc) : sig;
            };
            function Verify(algorithm) {
                stream.Writable.call(this);
                var data = algorithms[algorithm];
                if (!data) {
                    throw new Error("Unknown message digest");
                }
                this._hash = createHash(data.hash);
                this._tag = data.id;
                this._signType = data.sign;
            }
            inherits(Verify, stream.Writable);
            Verify.prototype._write = function _write(data, _2, done3) {
                this._hash.update(data);
                done3();
            };
            Verify.prototype.update = function update(data, enc) {
                this._hash.update(typeof data === "string" ? Buffer3.from(data, enc) : data);
                return this;
            };
            Verify.prototype.verify = function verifyMethod(key, sig, enc) {
                var sigBuffer = typeof sig === "string" ? Buffer3.from(sig, enc) : sig;
                this.end();
                var hash = this._hash.digest();
                return verify2(sigBuffer, hash, key, this._signType, this._tag);
            };
            function createSign(algorithm) {
                return new Sign(algorithm);
            }
            function createVerify(algorithm) {
                return new Verify(algorithm);
            }
            module.exports = {
                Sign: createSign,
                Verify: createVerify,
                createSign: createSign,
                createVerify: createVerify
            };
        }
    });
    // node_modules/create-ecdh/node_modules/bn.js/lib/bn.js
    var require_bn6 = __commonJS({
        "node_modules/create-ecdh/node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this.strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        return c - 48 & 15;
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this.strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            r += c - 49 + 10;
                        } else if (c >= 17) {
                            r += c - 17 + 10;
                        } else {
                            r += c;
                        }
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this.strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype.strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                BN.prototype.inspect = function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                };
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16);
                };
                BN.prototype.toBuffer = function toBuffer(endian, length) {
                    assert(typeof Buffer3 !== "undefined");
                    return this.toArrayLike(Buffer3, endian, length);
                };
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    this.strip();
                    var littleEndian = endian === "le";
                    var res = new ArrayType(reqLength);
                    var b, i;
                    var q = this.clone();
                    if (!littleEndian) {
                        for(i = 0; i < reqLength - byteLength; i++){
                            res[i] = 0;
                        }
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[reqLength - i - 1] = b;
                        }
                    } else {
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[i] = b;
                        }
                        for(; i < reqLength; i++){
                            res[i] = 0;
                        }
                    }
                    return res;
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this.strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this.strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this.strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this.strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this.strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this.strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                function jumboMulTo(self2, num, out) {
                    var fftm = new FFTM();
                    return fftm.mulp(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out.strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this.strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) < num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this.strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this.strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this.strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q.strip();
                    }
                    a.strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modn = function modn(num) {
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return acc;
                };
                BN.prototype.idivn = function idivn(num) {
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    return this.strip();
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this.strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    return a.umod(this.m)._forceRed(this);
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/create-ecdh/browser.js
    var require_browser13 = __commonJS({
        "node_modules/create-ecdh/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var elliptic = require_elliptic();
            var BN = require_bn6();
            module.exports = function createECDH(curve) {
                return new ECDH(curve);
            };
            var aliases = {
                secp256k1: {
                    name: "secp256k1",
                    byteLength: 32
                },
                secp224r1: {
                    name: "p224",
                    byteLength: 28
                },
                prime256v1: {
                    name: "p256",
                    byteLength: 32
                },
                prime192v1: {
                    name: "p192",
                    byteLength: 24
                },
                ed25519: {
                    name: "ed25519",
                    byteLength: 32
                },
                secp384r1: {
                    name: "p384",
                    byteLength: 48
                },
                secp521r1: {
                    name: "p521",
                    byteLength: 66
                }
            };
            aliases.p224 = aliases.secp224r1;
            aliases.p256 = aliases.secp256r1 = aliases.prime256v1;
            aliases.p192 = aliases.secp192r1 = aliases.prime192v1;
            aliases.p384 = aliases.secp384r1;
            aliases.p521 = aliases.secp521r1;
            function ECDH(curve) {
                this.curveType = aliases[curve];
                if (!this.curveType) {
                    this.curveType = {
                        name: curve
                    };
                }
                this.curve = new elliptic.ec(this.curveType.name);
                this.keys = void 0;
            }
            ECDH.prototype.generateKeys = function(enc, format) {
                this.keys = this.curve.genKeyPair();
                return this.getPublicKey(enc, format);
            };
            ECDH.prototype.computeSecret = function(other, inenc, enc) {
                inenc = inenc || "utf8";
                if (!import_buffer.Buffer.isBuffer(other)) {
                    other = new import_buffer.Buffer(other, inenc);
                }
                var otherPub = this.curve.keyFromPublic(other).getPublic();
                var out = otherPub.mul(this.keys.getPrivate()).getX();
                return formatReturnValue(out, enc, this.curveType.byteLength);
            };
            ECDH.prototype.getPublicKey = function(enc, format) {
                var key = this.keys.getPublic(format === "compressed", true);
                if (format === "hybrid") {
                    if (key[key.length - 1] % 2) {
                        key[0] = 7;
                    } else {
                        key[0] = 6;
                    }
                }
                return formatReturnValue(key, enc);
            };
            ECDH.prototype.getPrivateKey = function(enc) {
                return formatReturnValue(this.keys.getPrivate(), enc);
            };
            ECDH.prototype.setPublicKey = function(pub, enc) {
                enc = enc || "utf8";
                if (!import_buffer.Buffer.isBuffer(pub)) {
                    pub = new import_buffer.Buffer(pub, enc);
                }
                this.keys._importPublic(pub);
                return this;
            };
            ECDH.prototype.setPrivateKey = function(priv, enc) {
                enc = enc || "utf8";
                if (!import_buffer.Buffer.isBuffer(priv)) {
                    priv = new import_buffer.Buffer(priv, enc);
                }
                var _priv = new BN(priv);
                _priv = _priv.toString(16);
                this.keys = this.curve.genKeyPair();
                this.keys._importPrivate(_priv);
                return this;
            };
            function formatReturnValue(bn, enc, len) {
                if (!Array.isArray(bn)) {
                    bn = bn.toArray();
                }
                var buf = new import_buffer.Buffer(bn);
                if (len && buf.length < len) {
                    var zeros = new import_buffer.Buffer(len - buf.length);
                    zeros.fill(0);
                    buf = import_buffer.Buffer.concat([
                        zeros,
                        buf
                    ]);
                }
                if (!enc) {
                    return buf;
                } else {
                    return buf.toString(enc);
                }
            }
        }
    });
    // node_modules/public-encrypt/mgf.js
    var require_mgf = __commonJS({
        "node_modules/public-encrypt/mgf.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var createHash = require_browser6();
            var Buffer3 = require_safe_buffer().Buffer;
            module.exports = function(seed, len) {
                var t = Buffer3.alloc(0);
                var i = 0;
                var c;
                while(t.length < len){
                    c = i2ops(i++);
                    t = Buffer3.concat([
                        t,
                        createHash("sha1").update(seed).update(c).digest()
                    ]);
                }
                return t.slice(0, len);
            };
            function i2ops(c) {
                var out = Buffer3.allocUnsafe(4);
                out.writeUInt32BE(c, 0);
                return out;
            }
        }
    });
    // node_modules/public-encrypt/xor.js
    var require_xor = __commonJS({
        "node_modules/public-encrypt/xor.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function xor(a, b) {
                var len = a.length;
                var i = -1;
                while(++i < len){
                    a[i] ^= b[i];
                }
                return a;
            };
        }
    });
    // node_modules/public-encrypt/node_modules/bn.js/lib/bn.js
    var require_bn7 = __commonJS({
        "node_modules/public-encrypt/node_modules/bn.js/lib/bn.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(module2, exports2) {
                "use strict";
                function assert(val, msg) {
                    if (!val) throw new Error(msg || "Assertion failed");
                }
                function inherits(ctor, superCtor) {
                    ctor.super_ = superCtor;
                    var TempCtor = function TempCtor() {};
                    TempCtor.prototype = superCtor.prototype;
                    ctor.prototype = new TempCtor();
                    ctor.prototype.constructor = ctor;
                }
                function BN(number, base, endian) {
                    if (BN.isBN(number)) {
                        return number;
                    }
                    this.negative = 0;
                    this.words = null;
                    this.length = 0;
                    this.red = null;
                    if (number !== null) {
                        if (base === "le" || base === "be") {
                            endian = base;
                            base = 10;
                        }
                        this._init(number || 0, base || 10, endian || "be");
                    }
                }
                if ((typeof module2 === "undefined" ? "undefined" : _type_of(module2)) === "object") {
                    module2.exports = BN;
                } else {
                    exports2.BN = BN;
                }
                BN.BN = BN;
                BN.wordSize = 26;
                var Buffer3;
                try {
                    if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
                        Buffer3 = window.Buffer;
                    } else {
                        Buffer3 = require_buffer().Buffer;
                    }
                } catch (e) {}
                BN.isBN = function isBN(num) {
                    if (num instanceof BN) {
                        return true;
                    }
                    return num !== null && (typeof num === "undefined" ? "undefined" : _type_of(num)) === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
                };
                BN.max = function max(left, right) {
                    if (left.cmp(right) > 0) return left;
                    return right;
                };
                BN.min = function min(left, right) {
                    if (left.cmp(right) < 0) return left;
                    return right;
                };
                BN.prototype._init = function init(number, base, endian) {
                    if (typeof number === "number") {
                        return this._initNumber(number, base, endian);
                    }
                    if ((typeof number === "undefined" ? "undefined" : _type_of(number)) === "object") {
                        return this._initArray(number, base, endian);
                    }
                    if (base === "hex") {
                        base = 16;
                    }
                    assert(base === (base | 0) && base >= 2 && base <= 36);
                    number = number.toString().replace(/\s+/g, "");
                    var start = 0;
                    if (number[0] === "-") {
                        start++;
                        this.negative = 1;
                    }
                    if (start < number.length) {
                        if (base === 16) {
                            this._parseHex(number, start, endian);
                        } else {
                            this._parseBase(number, base, start);
                            if (endian === "le") {
                                this._initArray(this.toArray(), base, endian);
                            }
                        }
                    }
                };
                BN.prototype._initNumber = function _initNumber(number, base, endian) {
                    if (number < 0) {
                        this.negative = 1;
                        number = -number;
                    }
                    if (number < 67108864) {
                        this.words = [
                            number & 67108863
                        ];
                        this.length = 1;
                    } else if (number < 4503599627370496) {
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863
                        ];
                        this.length = 2;
                    } else {
                        assert(number < 9007199254740992);
                        this.words = [
                            number & 67108863,
                            number / 67108864 & 67108863,
                            1
                        ];
                        this.length = 3;
                    }
                    if (endian !== "le") return;
                    this._initArray(this.toArray(), base, endian);
                };
                BN.prototype._initArray = function _initArray(number, base, endian) {
                    assert(typeof number.length === "number");
                    if (number.length <= 0) {
                        this.words = [
                            0
                        ];
                        this.length = 1;
                        return this;
                    }
                    this.length = Math.ceil(number.length / 3);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var j, w;
                    var off = 0;
                    if (endian === "be") {
                        for(i = number.length - 1, j = 0; i >= 0; i -= 3){
                            w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    } else if (endian === "le") {
                        for(i = 0, j = 0; i < number.length; i += 3){
                            w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
                            this.words[j] |= w << off & 67108863;
                            this.words[j + 1] = w >>> 26 - off & 67108863;
                            off += 24;
                            if (off >= 26) {
                                off -= 26;
                                j++;
                            }
                        }
                    }
                    return this.strip();
                };
                function parseHex4Bits(string5, index) {
                    var c = string5.charCodeAt(index);
                    if (c >= 65 && c <= 70) {
                        return c - 55;
                    } else if (c >= 97 && c <= 102) {
                        return c - 87;
                    } else {
                        return c - 48 & 15;
                    }
                }
                function parseHexByte(string5, lowerBound, index) {
                    var r = parseHex4Bits(string5, index);
                    if (index - 1 >= lowerBound) {
                        r |= parseHex4Bits(string5, index - 1) << 4;
                    }
                    return r;
                }
                BN.prototype._parseHex = function _parseHex(number, start, endian) {
                    this.length = Math.ceil((number.length - start) / 6);
                    this.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    var off = 0;
                    var j = 0;
                    var w;
                    if (endian === "be") {
                        for(i = number.length - 1; i >= start; i -= 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    } else {
                        var parseLength = number.length - start;
                        for(i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2){
                            w = parseHexByte(number, start, i) << off;
                            this.words[j] |= w & 67108863;
                            if (off >= 18) {
                                off -= 18;
                                j += 1;
                                this.words[j] |= w >>> 26;
                            } else {
                                off += 8;
                            }
                        }
                    }
                    this.strip();
                };
                function parseBase(str, start, end, mul) {
                    var r = 0;
                    var len = Math.min(str.length, end);
                    for(var i = start; i < len; i++){
                        var c = str.charCodeAt(i) - 48;
                        r *= mul;
                        if (c >= 49) {
                            r += c - 49 + 10;
                        } else if (c >= 17) {
                            r += c - 17 + 10;
                        } else {
                            r += c;
                        }
                    }
                    return r;
                }
                BN.prototype._parseBase = function _parseBase(number, base, start) {
                    this.words = [
                        0
                    ];
                    this.length = 1;
                    for(var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base){
                        limbLen++;
                    }
                    limbLen--;
                    limbPow = limbPow / base | 0;
                    var total = number.length - start;
                    var mod = total % limbLen;
                    var end = Math.min(total, total - mod) + start;
                    var word = 0;
                    for(var i = start; i < end; i += limbLen){
                        word = parseBase(number, i, i + limbLen, base);
                        this.imuln(limbPow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    if (mod !== 0) {
                        var pow = 1;
                        word = parseBase(number, i, number.length, base);
                        for(i = 0; i < mod; i++){
                            pow *= base;
                        }
                        this.imuln(pow);
                        if (this.words[0] + word < 67108864) {
                            this.words[0] += word;
                        } else {
                            this._iaddn(word);
                        }
                    }
                    this.strip();
                };
                BN.prototype.copy = function copy(dest) {
                    dest.words = new Array(this.length);
                    for(var i = 0; i < this.length; i++){
                        dest.words[i] = this.words[i];
                    }
                    dest.length = this.length;
                    dest.negative = this.negative;
                    dest.red = this.red;
                };
                BN.prototype.clone = function clone2() {
                    var r = new BN(null);
                    this.copy(r);
                    return r;
                };
                BN.prototype._expand = function _expand(size) {
                    while(this.length < size){
                        this.words[this.length++] = 0;
                    }
                    return this;
                };
                BN.prototype.strip = function strip() {
                    while(this.length > 1 && this.words[this.length - 1] === 0){
                        this.length--;
                    }
                    return this._normSign();
                };
                BN.prototype._normSign = function _normSign() {
                    if (this.length === 1 && this.words[0] === 0) {
                        this.negative = 0;
                    }
                    return this;
                };
                BN.prototype.inspect = function inspect() {
                    return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
                };
                var zeros = [
                    "",
                    "0",
                    "00",
                    "000",
                    "0000",
                    "00000",
                    "000000",
                    "0000000",
                    "00000000",
                    "000000000",
                    "0000000000",
                    "00000000000",
                    "000000000000",
                    "0000000000000",
                    "00000000000000",
                    "000000000000000",
                    "0000000000000000",
                    "00000000000000000",
                    "000000000000000000",
                    "0000000000000000000",
                    "00000000000000000000",
                    "000000000000000000000",
                    "0000000000000000000000",
                    "00000000000000000000000",
                    "000000000000000000000000",
                    "0000000000000000000000000"
                ];
                var groupSizes = [
                    0,
                    0,
                    25,
                    16,
                    12,
                    11,
                    10,
                    9,
                    8,
                    8,
                    7,
                    7,
                    7,
                    7,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    6,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5,
                    5
                ];
                var groupBases = [
                    0,
                    0,
                    33554432,
                    43046721,
                    16777216,
                    48828125,
                    60466176,
                    40353607,
                    16777216,
                    43046721,
                    1e7,
                    19487171,
                    35831808,
                    62748517,
                    7529536,
                    11390625,
                    16777216,
                    24137569,
                    34012224,
                    47045881,
                    64e6,
                    4084101,
                    5153632,
                    6436343,
                    7962624,
                    9765625,
                    11881376,
                    14348907,
                    17210368,
                    20511149,
                    243e5,
                    28629151,
                    33554432,
                    39135393,
                    45435424,
                    52521875,
                    60466176
                ];
                BN.prototype.toString = function toString3(base, padding) {
                    base = base || 10;
                    padding = padding | 0 || 1;
                    var out;
                    if (base === 16 || base === "hex") {
                        out = "";
                        var off = 0;
                        var carry = 0;
                        for(var i = 0; i < this.length; i++){
                            var w = this.words[i];
                            var word = ((w << off | carry) & 16777215).toString(16);
                            carry = w >>> 24 - off & 16777215;
                            off += 2;
                            if (off >= 26) {
                                off -= 26;
                                i--;
                            }
                            if (carry !== 0 || i !== this.length - 1) {
                                out = zeros[6 - word.length] + word + out;
                            } else {
                                out = word + out;
                            }
                        }
                        if (carry !== 0) {
                            out = carry.toString(16) + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    if (base === (base | 0) && base >= 2 && base <= 36) {
                        var groupSize = groupSizes[base];
                        var groupBase = groupBases[base];
                        out = "";
                        var c = this.clone();
                        c.negative = 0;
                        while(!c.isZero()){
                            var r = c.modn(groupBase).toString(base);
                            c = c.idivn(groupBase);
                            if (!c.isZero()) {
                                out = zeros[groupSize - r.length] + r + out;
                            } else {
                                out = r + out;
                            }
                        }
                        if (this.isZero()) {
                            out = "0" + out;
                        }
                        while(out.length % padding !== 0){
                            out = "0" + out;
                        }
                        if (this.negative !== 0) {
                            out = "-" + out;
                        }
                        return out;
                    }
                    assert(false, "Base should be between 2 and 36");
                };
                BN.prototype.toNumber = function toNumber() {
                    var ret = this.words[0];
                    if (this.length === 2) {
                        ret += this.words[1] * 67108864;
                    } else if (this.length === 3 && this.words[2] === 1) {
                        ret += 4503599627370496 + this.words[1] * 67108864;
                    } else if (this.length > 2) {
                        assert(false, "Number can only safely store up to 53 bits");
                    }
                    return this.negative !== 0 ? -ret : ret;
                };
                BN.prototype.toJSON = function toJSON() {
                    return this.toString(16);
                };
                BN.prototype.toBuffer = function toBuffer(endian, length) {
                    assert(typeof Buffer3 !== "undefined");
                    return this.toArrayLike(Buffer3, endian, length);
                };
                BN.prototype.toArray = function toArray(endian, length) {
                    return this.toArrayLike(Array, endian, length);
                };
                BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
                    var byteLength = this.byteLength();
                    var reqLength = length || Math.max(1, byteLength);
                    assert(byteLength <= reqLength, "byte array longer than desired length");
                    assert(reqLength > 0, "Requested array length <= 0");
                    this.strip();
                    var littleEndian = endian === "le";
                    var res = new ArrayType(reqLength);
                    var b, i;
                    var q = this.clone();
                    if (!littleEndian) {
                        for(i = 0; i < reqLength - byteLength; i++){
                            res[i] = 0;
                        }
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[reqLength - i - 1] = b;
                        }
                    } else {
                        for(i = 0; !q.isZero(); i++){
                            b = q.andln(255);
                            q.iushrn(8);
                            res[i] = b;
                        }
                        for(; i < reqLength; i++){
                            res[i] = 0;
                        }
                    }
                    return res;
                };
                if (Math.clz32) {
                    BN.prototype._countBits = function _countBits(w) {
                        return 32 - Math.clz32(w);
                    };
                } else {
                    BN.prototype._countBits = function _countBits(w) {
                        var t = w;
                        var r = 0;
                        if (t >= 4096) {
                            r += 13;
                            t >>>= 13;
                        }
                        if (t >= 64) {
                            r += 7;
                            t >>>= 7;
                        }
                        if (t >= 8) {
                            r += 4;
                            t >>>= 4;
                        }
                        if (t >= 2) {
                            r += 2;
                            t >>>= 2;
                        }
                        return r + t;
                    };
                }
                BN.prototype._zeroBits = function _zeroBits(w) {
                    if (w === 0) return 26;
                    var t = w;
                    var r = 0;
                    if ((t & 8191) === 0) {
                        r += 13;
                        t >>>= 13;
                    }
                    if ((t & 127) === 0) {
                        r += 7;
                        t >>>= 7;
                    }
                    if ((t & 15) === 0) {
                        r += 4;
                        t >>>= 4;
                    }
                    if ((t & 3) === 0) {
                        r += 2;
                        t >>>= 2;
                    }
                    if ((t & 1) === 0) {
                        r++;
                    }
                    return r;
                };
                BN.prototype.bitLength = function bitLength3() {
                    var w = this.words[this.length - 1];
                    var hi = this._countBits(w);
                    return (this.length - 1) * 26 + hi;
                };
                function toBitArray(num) {
                    var w = new Array(num.bitLength());
                    for(var bit = 0; bit < w.length; bit++){
                        var off = bit / 26 | 0;
                        var wbit = bit % 26;
                        w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
                    }
                    return w;
                }
                BN.prototype.zeroBits = function zeroBits() {
                    if (this.isZero()) return 0;
                    var r = 0;
                    for(var i = 0; i < this.length; i++){
                        var b = this._zeroBits(this.words[i]);
                        r += b;
                        if (b !== 26) break;
                    }
                    return r;
                };
                BN.prototype.byteLength = function byteLength() {
                    return Math.ceil(this.bitLength() / 8);
                };
                BN.prototype.toTwos = function toTwos(width) {
                    if (this.negative !== 0) {
                        return this.abs().inotn(width).iaddn(1);
                    }
                    return this.clone();
                };
                BN.prototype.fromTwos = function fromTwos(width) {
                    if (this.testn(width - 1)) {
                        return this.notn(width).iaddn(1).ineg();
                    }
                    return this.clone();
                };
                BN.prototype.isNeg = function isNeg() {
                    return this.negative !== 0;
                };
                BN.prototype.neg = function neg() {
                    return this.clone().ineg();
                };
                BN.prototype.ineg = function ineg() {
                    if (!this.isZero()) {
                        this.negative ^= 1;
                    }
                    return this;
                };
                BN.prototype.iuor = function iuor(num) {
                    while(this.length < num.length){
                        this.words[this.length++] = 0;
                    }
                    for(var i = 0; i < num.length; i++){
                        this.words[i] = this.words[i] | num.words[i];
                    }
                    return this.strip();
                };
                BN.prototype.ior = function ior(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuor(num);
                };
                BN.prototype.or = function or(num) {
                    if (this.length > num.length) return this.clone().ior(num);
                    return num.clone().ior(this);
                };
                BN.prototype.uor = function uor(num) {
                    if (this.length > num.length) return this.clone().iuor(num);
                    return num.clone().iuor(this);
                };
                BN.prototype.iuand = function iuand(num) {
                    var b;
                    if (this.length > num.length) {
                        b = num;
                    } else {
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = this.words[i] & num.words[i];
                    }
                    this.length = b.length;
                    return this.strip();
                };
                BN.prototype.iand = function iand(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuand(num);
                };
                BN.prototype.and = function and(num) {
                    if (this.length > num.length) return this.clone().iand(num);
                    return num.clone().iand(this);
                };
                BN.prototype.uand = function uand(num) {
                    if (this.length > num.length) return this.clone().iuand(num);
                    return num.clone().iuand(this);
                };
                BN.prototype.iuxor = function iuxor(num) {
                    var a;
                    var b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    for(var i = 0; i < b.length; i++){
                        this.words[i] = a.words[i] ^ b.words[i];
                    }
                    if (this !== a) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = a.length;
                    return this.strip();
                };
                BN.prototype.ixor = function ixor(num) {
                    assert((this.negative | num.negative) === 0);
                    return this.iuxor(num);
                };
                BN.prototype.xor = function xor(num) {
                    if (this.length > num.length) return this.clone().ixor(num);
                    return num.clone().ixor(this);
                };
                BN.prototype.uxor = function uxor(num) {
                    if (this.length > num.length) return this.clone().iuxor(num);
                    return num.clone().iuxor(this);
                };
                BN.prototype.inotn = function inotn(width) {
                    assert(typeof width === "number" && width >= 0);
                    var bytesNeeded = Math.ceil(width / 26) | 0;
                    var bitsLeft = width % 26;
                    this._expand(bytesNeeded);
                    if (bitsLeft > 0) {
                        bytesNeeded--;
                    }
                    for(var i = 0; i < bytesNeeded; i++){
                        this.words[i] = ~this.words[i] & 67108863;
                    }
                    if (bitsLeft > 0) {
                        this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
                        i++;
                    }
                    for(; i < this.length; i++){
                        this.words[i] = 0;
                    }
                    return this.strip();
                };
                BN.prototype.notn = function notn(width) {
                    return this.clone().inotn(width);
                };
                BN.prototype.setn = function setn(bit, val) {
                    assert(typeof bit === "number" && bit >= 0);
                    var off = bit / 26 | 0;
                    var wbit = bit % 26;
                    this._expand(off + 1);
                    if (val) {
                        this.words[off] = this.words[off] | 1 << wbit;
                    } else {
                        this.words[off] = this.words[off] & ~(1 << wbit);
                    }
                    return this.strip();
                };
                BN.prototype.iadd = function iadd(num) {
                    var r;
                    if (this.negative !== 0 && num.negative === 0) {
                        this.negative = 0;
                        r = this.isub(num);
                        this.negative ^= 1;
                        return this._normSign();
                    } else if (this.negative === 0 && num.negative !== 0) {
                        num.negative = 0;
                        r = this.isub(num);
                        num.negative = 1;
                        return r._normSign();
                    }
                    var a, b;
                    if (this.length > num.length) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        this.words[i] = r & 67108863;
                        carry = r >>> 26;
                    }
                    this.length = a.length;
                    if (carry !== 0) {
                        this.words[this.length] = carry;
                        this.length++;
                    } else if (a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    return this;
                };
                BN.prototype.add = function add(num) {
                    var res;
                    if (num.negative !== 0 && this.negative === 0) {
                        num.negative = 0;
                        res = this.sub(num);
                        num.negative ^= 1;
                        return res;
                    } else if (num.negative === 0 && this.negative !== 0) {
                        this.negative = 0;
                        res = num.sub(this);
                        this.negative = 1;
                        return res;
                    }
                    if (this.length > num.length) return this.clone().iadd(num);
                    return num.clone().iadd(this);
                };
                BN.prototype.isub = function isub(num) {
                    if (num.negative !== 0) {
                        num.negative = 0;
                        var r = this.iadd(num);
                        num.negative = 1;
                        return r._normSign();
                    } else if (this.negative !== 0) {
                        this.negative = 0;
                        this.iadd(num);
                        this.negative = 1;
                        return this._normSign();
                    }
                    var cmp = this.cmp(num);
                    if (cmp === 0) {
                        this.negative = 0;
                        this.length = 1;
                        this.words[0] = 0;
                        return this;
                    }
                    var a, b;
                    if (cmp > 0) {
                        a = this;
                        b = num;
                    } else {
                        a = num;
                        b = this;
                    }
                    var carry = 0;
                    for(var i = 0; i < b.length; i++){
                        r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    for(; carry !== 0 && i < a.length; i++){
                        r = (a.words[i] | 0) + carry;
                        carry = r >> 26;
                        this.words[i] = r & 67108863;
                    }
                    if (carry === 0 && i < a.length && a !== this) {
                        for(; i < a.length; i++){
                            this.words[i] = a.words[i];
                        }
                    }
                    this.length = Math.max(this.length, i);
                    if (a !== this) {
                        this.negative = 1;
                    }
                    return this.strip();
                };
                BN.prototype.sub = function sub(num) {
                    return this.clone().isub(num);
                };
                function smallMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    var len = self2.length + num.length | 0;
                    out.length = len;
                    len = len - 1 | 0;
                    var a = self2.words[0] | 0;
                    var b = num.words[0] | 0;
                    var r = a * b;
                    var lo = r & 67108863;
                    var carry = r / 67108864 | 0;
                    out.words[0] = lo;
                    for(var k = 1; k < len; k++){
                        var ncarry = carry >>> 26;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j | 0;
                            a = self2.words[i] | 0;
                            b = num.words[j] | 0;
                            r = a * b + rword;
                            ncarry += r / 67108864 | 0;
                            rword = r & 67108863;
                        }
                        out.words[k] = rword | 0;
                        carry = ncarry | 0;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry | 0;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                var comb10MulTo = function comb10MulTo2(self2, num, out) {
                    var a = self2.words;
                    var b = num.words;
                    var o = out.words;
                    var c = 0;
                    var lo;
                    var mid;
                    var hi;
                    var a0 = a[0] | 0;
                    var al0 = a0 & 8191;
                    var ah0 = a0 >>> 13;
                    var a1 = a[1] | 0;
                    var al1 = a1 & 8191;
                    var ah1 = a1 >>> 13;
                    var a2 = a[2] | 0;
                    var al2 = a2 & 8191;
                    var ah2 = a2 >>> 13;
                    var a3 = a[3] | 0;
                    var al3 = a3 & 8191;
                    var ah3 = a3 >>> 13;
                    var a4 = a[4] | 0;
                    var al4 = a4 & 8191;
                    var ah4 = a4 >>> 13;
                    var a5 = a[5] | 0;
                    var al5 = a5 & 8191;
                    var ah5 = a5 >>> 13;
                    var a6 = a[6] | 0;
                    var al6 = a6 & 8191;
                    var ah6 = a6 >>> 13;
                    var a7 = a[7] | 0;
                    var al7 = a7 & 8191;
                    var ah7 = a7 >>> 13;
                    var a8 = a[8] | 0;
                    var al8 = a8 & 8191;
                    var ah8 = a8 >>> 13;
                    var a9 = a[9] | 0;
                    var al9 = a9 & 8191;
                    var ah9 = a9 >>> 13;
                    var b0 = b[0] | 0;
                    var bl0 = b0 & 8191;
                    var bh0 = b0 >>> 13;
                    var b1 = b[1] | 0;
                    var bl1 = b1 & 8191;
                    var bh1 = b1 >>> 13;
                    var b2 = b[2] | 0;
                    var bl2 = b2 & 8191;
                    var bh2 = b2 >>> 13;
                    var b3 = b[3] | 0;
                    var bl3 = b3 & 8191;
                    var bh3 = b3 >>> 13;
                    var b4 = b[4] | 0;
                    var bl4 = b4 & 8191;
                    var bh4 = b4 >>> 13;
                    var b5 = b[5] | 0;
                    var bl5 = b5 & 8191;
                    var bh5 = b5 >>> 13;
                    var b6 = b[6] | 0;
                    var bl6 = b6 & 8191;
                    var bh6 = b6 >>> 13;
                    var b7 = b[7] | 0;
                    var bl7 = b7 & 8191;
                    var bh7 = b7 >>> 13;
                    var b8 = b[8] | 0;
                    var bl8 = b8 & 8191;
                    var bh8 = b8 >>> 13;
                    var b9 = b[9] | 0;
                    var bl9 = b9 & 8191;
                    var bh9 = b9 >>> 13;
                    out.negative = self2.negative ^ num.negative;
                    out.length = 19;
                    lo = Math.imul(al0, bl0);
                    mid = Math.imul(al0, bh0);
                    mid = mid + Math.imul(ah0, bl0) | 0;
                    hi = Math.imul(ah0, bh0);
                    var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
                    w0 &= 67108863;
                    lo = Math.imul(al1, bl0);
                    mid = Math.imul(al1, bh0);
                    mid = mid + Math.imul(ah1, bl0) | 0;
                    hi = Math.imul(ah1, bh0);
                    lo = lo + Math.imul(al0, bl1) | 0;
                    mid = mid + Math.imul(al0, bh1) | 0;
                    mid = mid + Math.imul(ah0, bl1) | 0;
                    hi = hi + Math.imul(ah0, bh1) | 0;
                    var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
                    w1 &= 67108863;
                    lo = Math.imul(al2, bl0);
                    mid = Math.imul(al2, bh0);
                    mid = mid + Math.imul(ah2, bl0) | 0;
                    hi = Math.imul(ah2, bh0);
                    lo = lo + Math.imul(al1, bl1) | 0;
                    mid = mid + Math.imul(al1, bh1) | 0;
                    mid = mid + Math.imul(ah1, bl1) | 0;
                    hi = hi + Math.imul(ah1, bh1) | 0;
                    lo = lo + Math.imul(al0, bl2) | 0;
                    mid = mid + Math.imul(al0, bh2) | 0;
                    mid = mid + Math.imul(ah0, bl2) | 0;
                    hi = hi + Math.imul(ah0, bh2) | 0;
                    var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
                    w2 &= 67108863;
                    lo = Math.imul(al3, bl0);
                    mid = Math.imul(al3, bh0);
                    mid = mid + Math.imul(ah3, bl0) | 0;
                    hi = Math.imul(ah3, bh0);
                    lo = lo + Math.imul(al2, bl1) | 0;
                    mid = mid + Math.imul(al2, bh1) | 0;
                    mid = mid + Math.imul(ah2, bl1) | 0;
                    hi = hi + Math.imul(ah2, bh1) | 0;
                    lo = lo + Math.imul(al1, bl2) | 0;
                    mid = mid + Math.imul(al1, bh2) | 0;
                    mid = mid + Math.imul(ah1, bl2) | 0;
                    hi = hi + Math.imul(ah1, bh2) | 0;
                    lo = lo + Math.imul(al0, bl3) | 0;
                    mid = mid + Math.imul(al0, bh3) | 0;
                    mid = mid + Math.imul(ah0, bl3) | 0;
                    hi = hi + Math.imul(ah0, bh3) | 0;
                    var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
                    w3 &= 67108863;
                    lo = Math.imul(al4, bl0);
                    mid = Math.imul(al4, bh0);
                    mid = mid + Math.imul(ah4, bl0) | 0;
                    hi = Math.imul(ah4, bh0);
                    lo = lo + Math.imul(al3, bl1) | 0;
                    mid = mid + Math.imul(al3, bh1) | 0;
                    mid = mid + Math.imul(ah3, bl1) | 0;
                    hi = hi + Math.imul(ah3, bh1) | 0;
                    lo = lo + Math.imul(al2, bl2) | 0;
                    mid = mid + Math.imul(al2, bh2) | 0;
                    mid = mid + Math.imul(ah2, bl2) | 0;
                    hi = hi + Math.imul(ah2, bh2) | 0;
                    lo = lo + Math.imul(al1, bl3) | 0;
                    mid = mid + Math.imul(al1, bh3) | 0;
                    mid = mid + Math.imul(ah1, bl3) | 0;
                    hi = hi + Math.imul(ah1, bh3) | 0;
                    lo = lo + Math.imul(al0, bl4) | 0;
                    mid = mid + Math.imul(al0, bh4) | 0;
                    mid = mid + Math.imul(ah0, bl4) | 0;
                    hi = hi + Math.imul(ah0, bh4) | 0;
                    var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
                    w4 &= 67108863;
                    lo = Math.imul(al5, bl0);
                    mid = Math.imul(al5, bh0);
                    mid = mid + Math.imul(ah5, bl0) | 0;
                    hi = Math.imul(ah5, bh0);
                    lo = lo + Math.imul(al4, bl1) | 0;
                    mid = mid + Math.imul(al4, bh1) | 0;
                    mid = mid + Math.imul(ah4, bl1) | 0;
                    hi = hi + Math.imul(ah4, bh1) | 0;
                    lo = lo + Math.imul(al3, bl2) | 0;
                    mid = mid + Math.imul(al3, bh2) | 0;
                    mid = mid + Math.imul(ah3, bl2) | 0;
                    hi = hi + Math.imul(ah3, bh2) | 0;
                    lo = lo + Math.imul(al2, bl3) | 0;
                    mid = mid + Math.imul(al2, bh3) | 0;
                    mid = mid + Math.imul(ah2, bl3) | 0;
                    hi = hi + Math.imul(ah2, bh3) | 0;
                    lo = lo + Math.imul(al1, bl4) | 0;
                    mid = mid + Math.imul(al1, bh4) | 0;
                    mid = mid + Math.imul(ah1, bl4) | 0;
                    hi = hi + Math.imul(ah1, bh4) | 0;
                    lo = lo + Math.imul(al0, bl5) | 0;
                    mid = mid + Math.imul(al0, bh5) | 0;
                    mid = mid + Math.imul(ah0, bl5) | 0;
                    hi = hi + Math.imul(ah0, bh5) | 0;
                    var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
                    w5 &= 67108863;
                    lo = Math.imul(al6, bl0);
                    mid = Math.imul(al6, bh0);
                    mid = mid + Math.imul(ah6, bl0) | 0;
                    hi = Math.imul(ah6, bh0);
                    lo = lo + Math.imul(al5, bl1) | 0;
                    mid = mid + Math.imul(al5, bh1) | 0;
                    mid = mid + Math.imul(ah5, bl1) | 0;
                    hi = hi + Math.imul(ah5, bh1) | 0;
                    lo = lo + Math.imul(al4, bl2) | 0;
                    mid = mid + Math.imul(al4, bh2) | 0;
                    mid = mid + Math.imul(ah4, bl2) | 0;
                    hi = hi + Math.imul(ah4, bh2) | 0;
                    lo = lo + Math.imul(al3, bl3) | 0;
                    mid = mid + Math.imul(al3, bh3) | 0;
                    mid = mid + Math.imul(ah3, bl3) | 0;
                    hi = hi + Math.imul(ah3, bh3) | 0;
                    lo = lo + Math.imul(al2, bl4) | 0;
                    mid = mid + Math.imul(al2, bh4) | 0;
                    mid = mid + Math.imul(ah2, bl4) | 0;
                    hi = hi + Math.imul(ah2, bh4) | 0;
                    lo = lo + Math.imul(al1, bl5) | 0;
                    mid = mid + Math.imul(al1, bh5) | 0;
                    mid = mid + Math.imul(ah1, bl5) | 0;
                    hi = hi + Math.imul(ah1, bh5) | 0;
                    lo = lo + Math.imul(al0, bl6) | 0;
                    mid = mid + Math.imul(al0, bh6) | 0;
                    mid = mid + Math.imul(ah0, bl6) | 0;
                    hi = hi + Math.imul(ah0, bh6) | 0;
                    var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
                    w6 &= 67108863;
                    lo = Math.imul(al7, bl0);
                    mid = Math.imul(al7, bh0);
                    mid = mid + Math.imul(ah7, bl0) | 0;
                    hi = Math.imul(ah7, bh0);
                    lo = lo + Math.imul(al6, bl1) | 0;
                    mid = mid + Math.imul(al6, bh1) | 0;
                    mid = mid + Math.imul(ah6, bl1) | 0;
                    hi = hi + Math.imul(ah6, bh1) | 0;
                    lo = lo + Math.imul(al5, bl2) | 0;
                    mid = mid + Math.imul(al5, bh2) | 0;
                    mid = mid + Math.imul(ah5, bl2) | 0;
                    hi = hi + Math.imul(ah5, bh2) | 0;
                    lo = lo + Math.imul(al4, bl3) | 0;
                    mid = mid + Math.imul(al4, bh3) | 0;
                    mid = mid + Math.imul(ah4, bl3) | 0;
                    hi = hi + Math.imul(ah4, bh3) | 0;
                    lo = lo + Math.imul(al3, bl4) | 0;
                    mid = mid + Math.imul(al3, bh4) | 0;
                    mid = mid + Math.imul(ah3, bl4) | 0;
                    hi = hi + Math.imul(ah3, bh4) | 0;
                    lo = lo + Math.imul(al2, bl5) | 0;
                    mid = mid + Math.imul(al2, bh5) | 0;
                    mid = mid + Math.imul(ah2, bl5) | 0;
                    hi = hi + Math.imul(ah2, bh5) | 0;
                    lo = lo + Math.imul(al1, bl6) | 0;
                    mid = mid + Math.imul(al1, bh6) | 0;
                    mid = mid + Math.imul(ah1, bl6) | 0;
                    hi = hi + Math.imul(ah1, bh6) | 0;
                    lo = lo + Math.imul(al0, bl7) | 0;
                    mid = mid + Math.imul(al0, bh7) | 0;
                    mid = mid + Math.imul(ah0, bl7) | 0;
                    hi = hi + Math.imul(ah0, bh7) | 0;
                    var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
                    w7 &= 67108863;
                    lo = Math.imul(al8, bl0);
                    mid = Math.imul(al8, bh0);
                    mid = mid + Math.imul(ah8, bl0) | 0;
                    hi = Math.imul(ah8, bh0);
                    lo = lo + Math.imul(al7, bl1) | 0;
                    mid = mid + Math.imul(al7, bh1) | 0;
                    mid = mid + Math.imul(ah7, bl1) | 0;
                    hi = hi + Math.imul(ah7, bh1) | 0;
                    lo = lo + Math.imul(al6, bl2) | 0;
                    mid = mid + Math.imul(al6, bh2) | 0;
                    mid = mid + Math.imul(ah6, bl2) | 0;
                    hi = hi + Math.imul(ah6, bh2) | 0;
                    lo = lo + Math.imul(al5, bl3) | 0;
                    mid = mid + Math.imul(al5, bh3) | 0;
                    mid = mid + Math.imul(ah5, bl3) | 0;
                    hi = hi + Math.imul(ah5, bh3) | 0;
                    lo = lo + Math.imul(al4, bl4) | 0;
                    mid = mid + Math.imul(al4, bh4) | 0;
                    mid = mid + Math.imul(ah4, bl4) | 0;
                    hi = hi + Math.imul(ah4, bh4) | 0;
                    lo = lo + Math.imul(al3, bl5) | 0;
                    mid = mid + Math.imul(al3, bh5) | 0;
                    mid = mid + Math.imul(ah3, bl5) | 0;
                    hi = hi + Math.imul(ah3, bh5) | 0;
                    lo = lo + Math.imul(al2, bl6) | 0;
                    mid = mid + Math.imul(al2, bh6) | 0;
                    mid = mid + Math.imul(ah2, bl6) | 0;
                    hi = hi + Math.imul(ah2, bh6) | 0;
                    lo = lo + Math.imul(al1, bl7) | 0;
                    mid = mid + Math.imul(al1, bh7) | 0;
                    mid = mid + Math.imul(ah1, bl7) | 0;
                    hi = hi + Math.imul(ah1, bh7) | 0;
                    lo = lo + Math.imul(al0, bl8) | 0;
                    mid = mid + Math.imul(al0, bh8) | 0;
                    mid = mid + Math.imul(ah0, bl8) | 0;
                    hi = hi + Math.imul(ah0, bh8) | 0;
                    var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
                    w8 &= 67108863;
                    lo = Math.imul(al9, bl0);
                    mid = Math.imul(al9, bh0);
                    mid = mid + Math.imul(ah9, bl0) | 0;
                    hi = Math.imul(ah9, bh0);
                    lo = lo + Math.imul(al8, bl1) | 0;
                    mid = mid + Math.imul(al8, bh1) | 0;
                    mid = mid + Math.imul(ah8, bl1) | 0;
                    hi = hi + Math.imul(ah8, bh1) | 0;
                    lo = lo + Math.imul(al7, bl2) | 0;
                    mid = mid + Math.imul(al7, bh2) | 0;
                    mid = mid + Math.imul(ah7, bl2) | 0;
                    hi = hi + Math.imul(ah7, bh2) | 0;
                    lo = lo + Math.imul(al6, bl3) | 0;
                    mid = mid + Math.imul(al6, bh3) | 0;
                    mid = mid + Math.imul(ah6, bl3) | 0;
                    hi = hi + Math.imul(ah6, bh3) | 0;
                    lo = lo + Math.imul(al5, bl4) | 0;
                    mid = mid + Math.imul(al5, bh4) | 0;
                    mid = mid + Math.imul(ah5, bl4) | 0;
                    hi = hi + Math.imul(ah5, bh4) | 0;
                    lo = lo + Math.imul(al4, bl5) | 0;
                    mid = mid + Math.imul(al4, bh5) | 0;
                    mid = mid + Math.imul(ah4, bl5) | 0;
                    hi = hi + Math.imul(ah4, bh5) | 0;
                    lo = lo + Math.imul(al3, bl6) | 0;
                    mid = mid + Math.imul(al3, bh6) | 0;
                    mid = mid + Math.imul(ah3, bl6) | 0;
                    hi = hi + Math.imul(ah3, bh6) | 0;
                    lo = lo + Math.imul(al2, bl7) | 0;
                    mid = mid + Math.imul(al2, bh7) | 0;
                    mid = mid + Math.imul(ah2, bl7) | 0;
                    hi = hi + Math.imul(ah2, bh7) | 0;
                    lo = lo + Math.imul(al1, bl8) | 0;
                    mid = mid + Math.imul(al1, bh8) | 0;
                    mid = mid + Math.imul(ah1, bl8) | 0;
                    hi = hi + Math.imul(ah1, bh8) | 0;
                    lo = lo + Math.imul(al0, bl9) | 0;
                    mid = mid + Math.imul(al0, bh9) | 0;
                    mid = mid + Math.imul(ah0, bl9) | 0;
                    hi = hi + Math.imul(ah0, bh9) | 0;
                    var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
                    w9 &= 67108863;
                    lo = Math.imul(al9, bl1);
                    mid = Math.imul(al9, bh1);
                    mid = mid + Math.imul(ah9, bl1) | 0;
                    hi = Math.imul(ah9, bh1);
                    lo = lo + Math.imul(al8, bl2) | 0;
                    mid = mid + Math.imul(al8, bh2) | 0;
                    mid = mid + Math.imul(ah8, bl2) | 0;
                    hi = hi + Math.imul(ah8, bh2) | 0;
                    lo = lo + Math.imul(al7, bl3) | 0;
                    mid = mid + Math.imul(al7, bh3) | 0;
                    mid = mid + Math.imul(ah7, bl3) | 0;
                    hi = hi + Math.imul(ah7, bh3) | 0;
                    lo = lo + Math.imul(al6, bl4) | 0;
                    mid = mid + Math.imul(al6, bh4) | 0;
                    mid = mid + Math.imul(ah6, bl4) | 0;
                    hi = hi + Math.imul(ah6, bh4) | 0;
                    lo = lo + Math.imul(al5, bl5) | 0;
                    mid = mid + Math.imul(al5, bh5) | 0;
                    mid = mid + Math.imul(ah5, bl5) | 0;
                    hi = hi + Math.imul(ah5, bh5) | 0;
                    lo = lo + Math.imul(al4, bl6) | 0;
                    mid = mid + Math.imul(al4, bh6) | 0;
                    mid = mid + Math.imul(ah4, bl6) | 0;
                    hi = hi + Math.imul(ah4, bh6) | 0;
                    lo = lo + Math.imul(al3, bl7) | 0;
                    mid = mid + Math.imul(al3, bh7) | 0;
                    mid = mid + Math.imul(ah3, bl7) | 0;
                    hi = hi + Math.imul(ah3, bh7) | 0;
                    lo = lo + Math.imul(al2, bl8) | 0;
                    mid = mid + Math.imul(al2, bh8) | 0;
                    mid = mid + Math.imul(ah2, bl8) | 0;
                    hi = hi + Math.imul(ah2, bh8) | 0;
                    lo = lo + Math.imul(al1, bl9) | 0;
                    mid = mid + Math.imul(al1, bh9) | 0;
                    mid = mid + Math.imul(ah1, bl9) | 0;
                    hi = hi + Math.imul(ah1, bh9) | 0;
                    var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
                    w10 &= 67108863;
                    lo = Math.imul(al9, bl2);
                    mid = Math.imul(al9, bh2);
                    mid = mid + Math.imul(ah9, bl2) | 0;
                    hi = Math.imul(ah9, bh2);
                    lo = lo + Math.imul(al8, bl3) | 0;
                    mid = mid + Math.imul(al8, bh3) | 0;
                    mid = mid + Math.imul(ah8, bl3) | 0;
                    hi = hi + Math.imul(ah8, bh3) | 0;
                    lo = lo + Math.imul(al7, bl4) | 0;
                    mid = mid + Math.imul(al7, bh4) | 0;
                    mid = mid + Math.imul(ah7, bl4) | 0;
                    hi = hi + Math.imul(ah7, bh4) | 0;
                    lo = lo + Math.imul(al6, bl5) | 0;
                    mid = mid + Math.imul(al6, bh5) | 0;
                    mid = mid + Math.imul(ah6, bl5) | 0;
                    hi = hi + Math.imul(ah6, bh5) | 0;
                    lo = lo + Math.imul(al5, bl6) | 0;
                    mid = mid + Math.imul(al5, bh6) | 0;
                    mid = mid + Math.imul(ah5, bl6) | 0;
                    hi = hi + Math.imul(ah5, bh6) | 0;
                    lo = lo + Math.imul(al4, bl7) | 0;
                    mid = mid + Math.imul(al4, bh7) | 0;
                    mid = mid + Math.imul(ah4, bl7) | 0;
                    hi = hi + Math.imul(ah4, bh7) | 0;
                    lo = lo + Math.imul(al3, bl8) | 0;
                    mid = mid + Math.imul(al3, bh8) | 0;
                    mid = mid + Math.imul(ah3, bl8) | 0;
                    hi = hi + Math.imul(ah3, bh8) | 0;
                    lo = lo + Math.imul(al2, bl9) | 0;
                    mid = mid + Math.imul(al2, bh9) | 0;
                    mid = mid + Math.imul(ah2, bl9) | 0;
                    hi = hi + Math.imul(ah2, bh9) | 0;
                    var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
                    w11 &= 67108863;
                    lo = Math.imul(al9, bl3);
                    mid = Math.imul(al9, bh3);
                    mid = mid + Math.imul(ah9, bl3) | 0;
                    hi = Math.imul(ah9, bh3);
                    lo = lo + Math.imul(al8, bl4) | 0;
                    mid = mid + Math.imul(al8, bh4) | 0;
                    mid = mid + Math.imul(ah8, bl4) | 0;
                    hi = hi + Math.imul(ah8, bh4) | 0;
                    lo = lo + Math.imul(al7, bl5) | 0;
                    mid = mid + Math.imul(al7, bh5) | 0;
                    mid = mid + Math.imul(ah7, bl5) | 0;
                    hi = hi + Math.imul(ah7, bh5) | 0;
                    lo = lo + Math.imul(al6, bl6) | 0;
                    mid = mid + Math.imul(al6, bh6) | 0;
                    mid = mid + Math.imul(ah6, bl6) | 0;
                    hi = hi + Math.imul(ah6, bh6) | 0;
                    lo = lo + Math.imul(al5, bl7) | 0;
                    mid = mid + Math.imul(al5, bh7) | 0;
                    mid = mid + Math.imul(ah5, bl7) | 0;
                    hi = hi + Math.imul(ah5, bh7) | 0;
                    lo = lo + Math.imul(al4, bl8) | 0;
                    mid = mid + Math.imul(al4, bh8) | 0;
                    mid = mid + Math.imul(ah4, bl8) | 0;
                    hi = hi + Math.imul(ah4, bh8) | 0;
                    lo = lo + Math.imul(al3, bl9) | 0;
                    mid = mid + Math.imul(al3, bh9) | 0;
                    mid = mid + Math.imul(ah3, bl9) | 0;
                    hi = hi + Math.imul(ah3, bh9) | 0;
                    var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
                    w12 &= 67108863;
                    lo = Math.imul(al9, bl4);
                    mid = Math.imul(al9, bh4);
                    mid = mid + Math.imul(ah9, bl4) | 0;
                    hi = Math.imul(ah9, bh4);
                    lo = lo + Math.imul(al8, bl5) | 0;
                    mid = mid + Math.imul(al8, bh5) | 0;
                    mid = mid + Math.imul(ah8, bl5) | 0;
                    hi = hi + Math.imul(ah8, bh5) | 0;
                    lo = lo + Math.imul(al7, bl6) | 0;
                    mid = mid + Math.imul(al7, bh6) | 0;
                    mid = mid + Math.imul(ah7, bl6) | 0;
                    hi = hi + Math.imul(ah7, bh6) | 0;
                    lo = lo + Math.imul(al6, bl7) | 0;
                    mid = mid + Math.imul(al6, bh7) | 0;
                    mid = mid + Math.imul(ah6, bl7) | 0;
                    hi = hi + Math.imul(ah6, bh7) | 0;
                    lo = lo + Math.imul(al5, bl8) | 0;
                    mid = mid + Math.imul(al5, bh8) | 0;
                    mid = mid + Math.imul(ah5, bl8) | 0;
                    hi = hi + Math.imul(ah5, bh8) | 0;
                    lo = lo + Math.imul(al4, bl9) | 0;
                    mid = mid + Math.imul(al4, bh9) | 0;
                    mid = mid + Math.imul(ah4, bl9) | 0;
                    hi = hi + Math.imul(ah4, bh9) | 0;
                    var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
                    w13 &= 67108863;
                    lo = Math.imul(al9, bl5);
                    mid = Math.imul(al9, bh5);
                    mid = mid + Math.imul(ah9, bl5) | 0;
                    hi = Math.imul(ah9, bh5);
                    lo = lo + Math.imul(al8, bl6) | 0;
                    mid = mid + Math.imul(al8, bh6) | 0;
                    mid = mid + Math.imul(ah8, bl6) | 0;
                    hi = hi + Math.imul(ah8, bh6) | 0;
                    lo = lo + Math.imul(al7, bl7) | 0;
                    mid = mid + Math.imul(al7, bh7) | 0;
                    mid = mid + Math.imul(ah7, bl7) | 0;
                    hi = hi + Math.imul(ah7, bh7) | 0;
                    lo = lo + Math.imul(al6, bl8) | 0;
                    mid = mid + Math.imul(al6, bh8) | 0;
                    mid = mid + Math.imul(ah6, bl8) | 0;
                    hi = hi + Math.imul(ah6, bh8) | 0;
                    lo = lo + Math.imul(al5, bl9) | 0;
                    mid = mid + Math.imul(al5, bh9) | 0;
                    mid = mid + Math.imul(ah5, bl9) | 0;
                    hi = hi + Math.imul(ah5, bh9) | 0;
                    var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
                    w14 &= 67108863;
                    lo = Math.imul(al9, bl6);
                    mid = Math.imul(al9, bh6);
                    mid = mid + Math.imul(ah9, bl6) | 0;
                    hi = Math.imul(ah9, bh6);
                    lo = lo + Math.imul(al8, bl7) | 0;
                    mid = mid + Math.imul(al8, bh7) | 0;
                    mid = mid + Math.imul(ah8, bl7) | 0;
                    hi = hi + Math.imul(ah8, bh7) | 0;
                    lo = lo + Math.imul(al7, bl8) | 0;
                    mid = mid + Math.imul(al7, bh8) | 0;
                    mid = mid + Math.imul(ah7, bl8) | 0;
                    hi = hi + Math.imul(ah7, bh8) | 0;
                    lo = lo + Math.imul(al6, bl9) | 0;
                    mid = mid + Math.imul(al6, bh9) | 0;
                    mid = mid + Math.imul(ah6, bl9) | 0;
                    hi = hi + Math.imul(ah6, bh9) | 0;
                    var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
                    w15 &= 67108863;
                    lo = Math.imul(al9, bl7);
                    mid = Math.imul(al9, bh7);
                    mid = mid + Math.imul(ah9, bl7) | 0;
                    hi = Math.imul(ah9, bh7);
                    lo = lo + Math.imul(al8, bl8) | 0;
                    mid = mid + Math.imul(al8, bh8) | 0;
                    mid = mid + Math.imul(ah8, bl8) | 0;
                    hi = hi + Math.imul(ah8, bh8) | 0;
                    lo = lo + Math.imul(al7, bl9) | 0;
                    mid = mid + Math.imul(al7, bh9) | 0;
                    mid = mid + Math.imul(ah7, bl9) | 0;
                    hi = hi + Math.imul(ah7, bh9) | 0;
                    var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
                    w16 &= 67108863;
                    lo = Math.imul(al9, bl8);
                    mid = Math.imul(al9, bh8);
                    mid = mid + Math.imul(ah9, bl8) | 0;
                    hi = Math.imul(ah9, bh8);
                    lo = lo + Math.imul(al8, bl9) | 0;
                    mid = mid + Math.imul(al8, bh9) | 0;
                    mid = mid + Math.imul(ah8, bl9) | 0;
                    hi = hi + Math.imul(ah8, bh9) | 0;
                    var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
                    w17 &= 67108863;
                    lo = Math.imul(al9, bl9);
                    mid = Math.imul(al9, bh9);
                    mid = mid + Math.imul(ah9, bl9) | 0;
                    hi = Math.imul(ah9, bh9);
                    var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
                    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
                    w18 &= 67108863;
                    o[0] = w0;
                    o[1] = w1;
                    o[2] = w2;
                    o[3] = w3;
                    o[4] = w4;
                    o[5] = w5;
                    o[6] = w6;
                    o[7] = w7;
                    o[8] = w8;
                    o[9] = w9;
                    o[10] = w10;
                    o[11] = w11;
                    o[12] = w12;
                    o[13] = w13;
                    o[14] = w14;
                    o[15] = w15;
                    o[16] = w16;
                    o[17] = w17;
                    o[18] = w18;
                    if (c !== 0) {
                        o[19] = c;
                        out.length++;
                    }
                    return out;
                };
                if (!Math.imul) {
                    comb10MulTo = smallMulTo;
                }
                function bigMulTo(self2, num, out) {
                    out.negative = num.negative ^ self2.negative;
                    out.length = self2.length + num.length;
                    var carry = 0;
                    var hncarry = 0;
                    for(var k = 0; k < out.length - 1; k++){
                        var ncarry = hncarry;
                        hncarry = 0;
                        var rword = carry & 67108863;
                        var maxJ = Math.min(k, num.length - 1);
                        for(var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++){
                            var i = k - j;
                            var a = self2.words[i] | 0;
                            var b = num.words[j] | 0;
                            var r = a * b;
                            var lo = r & 67108863;
                            ncarry = ncarry + (r / 67108864 | 0) | 0;
                            lo = lo + rword | 0;
                            rword = lo & 67108863;
                            ncarry = ncarry + (lo >>> 26) | 0;
                            hncarry += ncarry >>> 26;
                            ncarry &= 67108863;
                        }
                        out.words[k] = rword;
                        carry = ncarry;
                        ncarry = hncarry;
                    }
                    if (carry !== 0) {
                        out.words[k] = carry;
                    } else {
                        out.length--;
                    }
                    return out.strip();
                }
                function jumboMulTo(self2, num, out) {
                    var fftm = new FFTM();
                    return fftm.mulp(self2, num, out);
                }
                BN.prototype.mulTo = function mulTo(num, out) {
                    var res;
                    var len = this.length + num.length;
                    if (this.length === 10 && num.length === 10) {
                        res = comb10MulTo(this, num, out);
                    } else if (len < 63) {
                        res = smallMulTo(this, num, out);
                    } else if (len < 1024) {
                        res = bigMulTo(this, num, out);
                    } else {
                        res = jumboMulTo(this, num, out);
                    }
                    return res;
                };
                function FFTM(x, y) {
                    this.x = x;
                    this.y = y;
                }
                FFTM.prototype.makeRBT = function makeRBT(N) {
                    var t = new Array(N);
                    var l = BN.prototype._countBits(N) - 1;
                    for(var i = 0; i < N; i++){
                        t[i] = this.revBin(i, l, N);
                    }
                    return t;
                };
                FFTM.prototype.revBin = function revBin(x, l, N) {
                    if (x === 0 || x === N - 1) return x;
                    var rb = 0;
                    for(var i = 0; i < l; i++){
                        rb |= (x & 1) << l - i - 1;
                        x >>= 1;
                    }
                    return rb;
                };
                FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
                    for(var i = 0; i < N; i++){
                        rtws[i] = rws[rbt[i]];
                        itws[i] = iws[rbt[i]];
                    }
                };
                FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
                    this.permute(rbt, rws, iws, rtws, itws, N);
                    for(var s = 1; s < N; s <<= 1){
                        var l = s << 1;
                        var rtwdf = Math.cos(2 * Math.PI / l);
                        var itwdf = Math.sin(2 * Math.PI / l);
                        for(var p = 0; p < N; p += l){
                            var rtwdf_ = rtwdf;
                            var itwdf_ = itwdf;
                            for(var j = 0; j < s; j++){
                                var re = rtws[p + j];
                                var ie = itws[p + j];
                                var ro = rtws[p + j + s];
                                var io = itws[p + j + s];
                                var rx = rtwdf_ * ro - itwdf_ * io;
                                io = rtwdf_ * io + itwdf_ * ro;
                                ro = rx;
                                rtws[p + j] = re + ro;
                                itws[p + j] = ie + io;
                                rtws[p + j + s] = re - ro;
                                itws[p + j + s] = ie - io;
                                if (j !== l) {
                                    rx = rtwdf * rtwdf_ - itwdf * itwdf_;
                                    itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
                                    rtwdf_ = rx;
                                }
                            }
                        }
                    }
                };
                FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
                    var N = Math.max(m, n) | 1;
                    var odd = N & 1;
                    var i = 0;
                    for(N = N / 2 | 0; N; N = N >>> 1){
                        i++;
                    }
                    return 1 << i + 1 + odd;
                };
                FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
                    if (N <= 1) return;
                    for(var i = 0; i < N / 2; i++){
                        var t = rws[i];
                        rws[i] = rws[N - i - 1];
                        rws[N - i - 1] = t;
                        t = iws[i];
                        iws[i] = -iws[N - i - 1];
                        iws[N - i - 1] = -t;
                    }
                };
                FFTM.prototype.normalize13b = function normalize13b(ws, N) {
                    var carry = 0;
                    for(var i = 0; i < N / 2; i++){
                        var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
                        ws[i] = w & 67108863;
                        if (w < 67108864) {
                            carry = 0;
                        } else {
                            carry = w / 67108864 | 0;
                        }
                    }
                    return ws;
                };
                FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
                    var carry = 0;
                    for(var i = 0; i < len; i++){
                        carry = carry + (ws[i] | 0);
                        rws[2 * i] = carry & 8191;
                        carry = carry >>> 13;
                        rws[2 * i + 1] = carry & 8191;
                        carry = carry >>> 13;
                    }
                    for(i = 2 * len; i < N; ++i){
                        rws[i] = 0;
                    }
                    assert(carry === 0);
                    assert((carry & ~8191) === 0);
                };
                FFTM.prototype.stub = function stub(N) {
                    var ph = new Array(N);
                    for(var i = 0; i < N; i++){
                        ph[i] = 0;
                    }
                    return ph;
                };
                FFTM.prototype.mulp = function mulp(x, y, out) {
                    var N = 2 * this.guessLen13b(x.length, y.length);
                    var rbt = this.makeRBT(N);
                    var _2 = this.stub(N);
                    var rws = new Array(N);
                    var rwst = new Array(N);
                    var iwst = new Array(N);
                    var nrws = new Array(N);
                    var nrwst = new Array(N);
                    var niwst = new Array(N);
                    var rmws = out.words;
                    rmws.length = N;
                    this.convert13b(x.words, x.length, rws, N);
                    this.convert13b(y.words, y.length, nrws, N);
                    this.transform(rws, _2, rwst, iwst, N, rbt);
                    this.transform(nrws, _2, nrwst, niwst, N, rbt);
                    for(var i = 0; i < N; i++){
                        var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
                        iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
                        rwst[i] = rx;
                    }
                    this.conjugate(rwst, iwst, N);
                    this.transform(rwst, iwst, rmws, _2, N, rbt);
                    this.conjugate(rmws, _2, N);
                    this.normalize13b(rmws, N);
                    out.negative = x.negative ^ y.negative;
                    out.length = x.length + y.length;
                    return out.strip();
                };
                BN.prototype.mul = function mul(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return this.mulTo(num, out);
                };
                BN.prototype.mulf = function mulf(num) {
                    var out = new BN(null);
                    out.words = new Array(this.length + num.length);
                    return jumboMulTo(this, num, out);
                };
                BN.prototype.imul = function imul(num) {
                    return this.clone().mulTo(num, this);
                };
                BN.prototype.imuln = function imuln(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    var carry = 0;
                    for(var i = 0; i < this.length; i++){
                        var w = (this.words[i] | 0) * num;
                        var lo = (w & 67108863) + (carry & 67108863);
                        carry >>= 26;
                        carry += w / 67108864 | 0;
                        carry += lo >>> 26;
                        this.words[i] = lo & 67108863;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    this.length = num === 0 ? 1 : this.length;
                    return this;
                };
                BN.prototype.muln = function muln(num) {
                    return this.clone().imuln(num);
                };
                BN.prototype.sqr = function sqr() {
                    return this.mul(this);
                };
                BN.prototype.isqr = function isqr() {
                    return this.imul(this.clone());
                };
                BN.prototype.pow = function pow(num) {
                    var w = toBitArray(num);
                    if (w.length === 0) return new BN(1);
                    var res = this;
                    for(var i = 0; i < w.length; i++, res = res.sqr()){
                        if (w[i] !== 0) break;
                    }
                    if (++i < w.length) {
                        for(var q = res.sqr(); i < w.length; i++, q = q.sqr()){
                            if (w[i] === 0) continue;
                            res = res.mul(q);
                        }
                    }
                    return res;
                };
                BN.prototype.iushln = function iushln(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    var carryMask = 67108863 >>> 26 - r << 26 - r;
                    var i;
                    if (r !== 0) {
                        var carry = 0;
                        for(i = 0; i < this.length; i++){
                            var newCarry = this.words[i] & carryMask;
                            var c = (this.words[i] | 0) - newCarry << r;
                            this.words[i] = c | carry;
                            carry = newCarry >>> 26 - r;
                        }
                        if (carry) {
                            this.words[i] = carry;
                            this.length++;
                        }
                    }
                    if (s !== 0) {
                        for(i = this.length - 1; i >= 0; i--){
                            this.words[i + s] = this.words[i];
                        }
                        for(i = 0; i < s; i++){
                            this.words[i] = 0;
                        }
                        this.length += s;
                    }
                    return this.strip();
                };
                BN.prototype.ishln = function ishln(bits) {
                    assert(this.negative === 0);
                    return this.iushln(bits);
                };
                BN.prototype.iushrn = function iushrn(bits, hint, extended) {
                    assert(typeof bits === "number" && bits >= 0);
                    var h;
                    if (hint) {
                        h = (hint - hint % 26) / 26;
                    } else {
                        h = 0;
                    }
                    var r = bits % 26;
                    var s = Math.min((bits - r) / 26, this.length);
                    var mask = 67108863 ^ 67108863 >>> r << r;
                    var maskedWords = extended;
                    h -= s;
                    h = Math.max(0, h);
                    if (maskedWords) {
                        for(var i = 0; i < s; i++){
                            maskedWords.words[i] = this.words[i];
                        }
                        maskedWords.length = s;
                    }
                    if (s === 0) {} else if (this.length > s) {
                        this.length -= s;
                        for(i = 0; i < this.length; i++){
                            this.words[i] = this.words[i + s];
                        }
                    } else {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    var carry = 0;
                    for(i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--){
                        var word = this.words[i] | 0;
                        this.words[i] = carry << 26 - r | word >>> r;
                        carry = word & mask;
                    }
                    if (maskedWords && carry !== 0) {
                        maskedWords.words[maskedWords.length++] = carry;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.ishrn = function ishrn(bits, hint, extended) {
                    assert(this.negative === 0);
                    return this.iushrn(bits, hint, extended);
                };
                BN.prototype.shln = function shln(bits) {
                    return this.clone().ishln(bits);
                };
                BN.prototype.ushln = function ushln(bits) {
                    return this.clone().iushln(bits);
                };
                BN.prototype.shrn = function shrn(bits) {
                    return this.clone().ishrn(bits);
                };
                BN.prototype.ushrn = function ushrn(bits) {
                    return this.clone().iushrn(bits);
                };
                BN.prototype.testn = function testn(bit) {
                    assert(typeof bit === "number" && bit >= 0);
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) return false;
                    var w = this.words[s];
                    return !!(w & q);
                };
                BN.prototype.imaskn = function imaskn(bits) {
                    assert(typeof bits === "number" && bits >= 0);
                    var r = bits % 26;
                    var s = (bits - r) / 26;
                    assert(this.negative === 0, "imaskn works only with positive numbers");
                    if (this.length <= s) {
                        return this;
                    }
                    if (r !== 0) {
                        s++;
                    }
                    this.length = Math.min(s, this.length);
                    if (r !== 0) {
                        var mask = 67108863 ^ 67108863 >>> r << r;
                        this.words[this.length - 1] &= mask;
                    }
                    if (this.length === 0) {
                        this.words[0] = 0;
                        this.length = 1;
                    }
                    return this.strip();
                };
                BN.prototype.maskn = function maskn(bits) {
                    return this.clone().imaskn(bits);
                };
                BN.prototype.iaddn = function iaddn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.isubn(-num);
                    if (this.negative !== 0) {
                        if (this.length === 1 && (this.words[0] | 0) < num) {
                            this.words[0] = num - (this.words[0] | 0);
                            this.negative = 0;
                            return this;
                        }
                        this.negative = 0;
                        this.isubn(num);
                        this.negative = 1;
                        return this;
                    }
                    return this._iaddn(num);
                };
                BN.prototype._iaddn = function _iaddn(num) {
                    this.words[0] += num;
                    for(var i = 0; i < this.length && this.words[i] >= 67108864; i++){
                        this.words[i] -= 67108864;
                        if (i === this.length - 1) {
                            this.words[i + 1] = 1;
                        } else {
                            this.words[i + 1]++;
                        }
                    }
                    this.length = Math.max(this.length, i + 1);
                    return this;
                };
                BN.prototype.isubn = function isubn(num) {
                    assert(typeof num === "number");
                    assert(num < 67108864);
                    if (num < 0) return this.iaddn(-num);
                    if (this.negative !== 0) {
                        this.negative = 0;
                        this.iaddn(num);
                        this.negative = 1;
                        return this;
                    }
                    this.words[0] -= num;
                    if (this.length === 1 && this.words[0] < 0) {
                        this.words[0] = -this.words[0];
                        this.negative = 1;
                    } else {
                        for(var i = 0; i < this.length && this.words[i] < 0; i++){
                            this.words[i] += 67108864;
                            this.words[i + 1] -= 1;
                        }
                    }
                    return this.strip();
                };
                BN.prototype.addn = function addn(num) {
                    return this.clone().iaddn(num);
                };
                BN.prototype.subn = function subn(num) {
                    return this.clone().isubn(num);
                };
                BN.prototype.iabs = function iabs() {
                    this.negative = 0;
                    return this;
                };
                BN.prototype.abs = function abs() {
                    return this.clone().iabs();
                };
                BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
                    var len = num.length + shift;
                    var i;
                    this._expand(len);
                    var w;
                    var carry = 0;
                    for(i = 0; i < num.length; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        var right = (num.words[i] | 0) * mul;
                        w -= right & 67108863;
                        carry = (w >> 26) - (right / 67108864 | 0);
                        this.words[i + shift] = w & 67108863;
                    }
                    for(; i < this.length - shift; i++){
                        w = (this.words[i + shift] | 0) + carry;
                        carry = w >> 26;
                        this.words[i + shift] = w & 67108863;
                    }
                    if (carry === 0) return this.strip();
                    assert(carry === -1);
                    carry = 0;
                    for(i = 0; i < this.length; i++){
                        w = -(this.words[i] | 0) + carry;
                        carry = w >> 26;
                        this.words[i] = w & 67108863;
                    }
                    this.negative = 1;
                    return this.strip();
                };
                BN.prototype._wordDiv = function _wordDiv(num, mode) {
                    var shift = this.length - num.length;
                    var a = this.clone();
                    var b = num;
                    var bhi = b.words[b.length - 1] | 0;
                    var bhiBits = this._countBits(bhi);
                    shift = 26 - bhiBits;
                    if (shift !== 0) {
                        b = b.ushln(shift);
                        a.iushln(shift);
                        bhi = b.words[b.length - 1] | 0;
                    }
                    var m = a.length - b.length;
                    var q;
                    if (mode !== "mod") {
                        q = new BN(null);
                        q.length = m + 1;
                        q.words = new Array(q.length);
                        for(var i = 0; i < q.length; i++){
                            q.words[i] = 0;
                        }
                    }
                    var diff = a.clone()._ishlnsubmul(b, 1, m);
                    if (diff.negative === 0) {
                        a = diff;
                        if (q) {
                            q.words[m] = 1;
                        }
                    }
                    for(var j = m - 1; j >= 0; j--){
                        var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
                        qj = Math.min(qj / bhi | 0, 67108863);
                        a._ishlnsubmul(b, qj, j);
                        while(a.negative !== 0){
                            qj--;
                            a.negative = 0;
                            a._ishlnsubmul(b, 1, j);
                            if (!a.isZero()) {
                                a.negative ^= 1;
                            }
                        }
                        if (q) {
                            q.words[j] = qj;
                        }
                    }
                    if (q) {
                        q.strip();
                    }
                    a.strip();
                    if (mode !== "div" && shift !== 0) {
                        a.iushrn(shift);
                    }
                    return {
                        div: q || null,
                        mod: a
                    };
                };
                BN.prototype.divmod = function divmod(num, mode, positive) {
                    assert(!num.isZero());
                    if (this.isZero()) {
                        return {
                            div: new BN(0),
                            mod: new BN(0)
                        };
                    }
                    var div, mod, res;
                    if (this.negative !== 0 && num.negative === 0) {
                        res = this.neg().divmod(num, mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.iadd(num);
                            }
                        }
                        return {
                            div: div,
                            mod: mod
                        };
                    }
                    if (this.negative === 0 && num.negative !== 0) {
                        res = this.divmod(num.neg(), mode);
                        if (mode !== "mod") {
                            div = res.div.neg();
                        }
                        return {
                            div: div,
                            mod: res.mod
                        };
                    }
                    if ((this.negative & num.negative) !== 0) {
                        res = this.neg().divmod(num.neg(), mode);
                        if (mode !== "div") {
                            mod = res.mod.neg();
                            if (positive && mod.negative !== 0) {
                                mod.isub(num);
                            }
                        }
                        return {
                            div: res.div,
                            mod: mod
                        };
                    }
                    if (num.length > this.length || this.cmp(num) < 0) {
                        return {
                            div: new BN(0),
                            mod: this
                        };
                    }
                    if (num.length === 1) {
                        if (mode === "div") {
                            return {
                                div: this.divn(num.words[0]),
                                mod: null
                            };
                        }
                        if (mode === "mod") {
                            return {
                                div: null,
                                mod: new BN(this.modn(num.words[0]))
                            };
                        }
                        return {
                            div: this.divn(num.words[0]),
                            mod: new BN(this.modn(num.words[0]))
                        };
                    }
                    return this._wordDiv(num, mode);
                };
                BN.prototype.div = function div(num) {
                    return this.divmod(num, "div", false).div;
                };
                BN.prototype.mod = function mod(num) {
                    return this.divmod(num, "mod", false).mod;
                };
                BN.prototype.umod = function umod(num) {
                    return this.divmod(num, "mod", true).mod;
                };
                BN.prototype.divRound = function divRound(num) {
                    var dm = this.divmod(num);
                    if (dm.mod.isZero()) return dm.div;
                    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
                    var half = num.ushrn(1);
                    var r2 = num.andln(1);
                    var cmp = mod.cmp(half);
                    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
                    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
                };
                BN.prototype.modn = function modn(num) {
                    assert(num <= 67108863);
                    var p = (1 << 26) % num;
                    var acc = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        acc = (p * acc + (this.words[i] | 0)) % num;
                    }
                    return acc;
                };
                BN.prototype.idivn = function idivn(num) {
                    assert(num <= 67108863);
                    var carry = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var w = (this.words[i] | 0) + carry * 67108864;
                        this.words[i] = w / num | 0;
                        carry = w % num;
                    }
                    return this.strip();
                };
                BN.prototype.divn = function divn(num) {
                    return this.clone().idivn(num);
                };
                BN.prototype.egcd = function egcd(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var x = this;
                    var y = p.clone();
                    if (x.negative !== 0) {
                        x = x.umod(p);
                    } else {
                        x = x.clone();
                    }
                    var A = new BN(1);
                    var B = new BN(0);
                    var C = new BN(0);
                    var D = new BN(1);
                    var g = 0;
                    while(x.isEven() && y.isEven()){
                        x.iushrn(1);
                        y.iushrn(1);
                        ++g;
                    }
                    var yp = y.clone();
                    var xp = x.clone();
                    while(!x.isZero()){
                        for(var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            x.iushrn(i);
                            while(i-- > 0){
                                if (A.isOdd() || B.isOdd()) {
                                    A.iadd(yp);
                                    B.isub(xp);
                                }
                                A.iushrn(1);
                                B.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            y.iushrn(j);
                            while(j-- > 0){
                                if (C.isOdd() || D.isOdd()) {
                                    C.iadd(yp);
                                    D.isub(xp);
                                }
                                C.iushrn(1);
                                D.iushrn(1);
                            }
                        }
                        if (x.cmp(y) >= 0) {
                            x.isub(y);
                            A.isub(C);
                            B.isub(D);
                        } else {
                            y.isub(x);
                            C.isub(A);
                            D.isub(B);
                        }
                    }
                    return {
                        a: C,
                        b: D,
                        gcd: y.iushln(g)
                    };
                };
                BN.prototype._invmp = function _invmp(p) {
                    assert(p.negative === 0);
                    assert(!p.isZero());
                    var a = this;
                    var b = p.clone();
                    if (a.negative !== 0) {
                        a = a.umod(p);
                    } else {
                        a = a.clone();
                    }
                    var x1 = new BN(1);
                    var x2 = new BN(0);
                    var delta = b.clone();
                    while(a.cmpn(1) > 0 && b.cmpn(1) > 0){
                        for(var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
                        if (i > 0) {
                            a.iushrn(i);
                            while(i-- > 0){
                                if (x1.isOdd()) {
                                    x1.iadd(delta);
                                }
                                x1.iushrn(1);
                            }
                        }
                        for(var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
                        if (j > 0) {
                            b.iushrn(j);
                            while(j-- > 0){
                                if (x2.isOdd()) {
                                    x2.iadd(delta);
                                }
                                x2.iushrn(1);
                            }
                        }
                        if (a.cmp(b) >= 0) {
                            a.isub(b);
                            x1.isub(x2);
                        } else {
                            b.isub(a);
                            x2.isub(x1);
                        }
                    }
                    var res;
                    if (a.cmpn(1) === 0) {
                        res = x1;
                    } else {
                        res = x2;
                    }
                    if (res.cmpn(0) < 0) {
                        res.iadd(p);
                    }
                    return res;
                };
                BN.prototype.gcd = function gcd(num) {
                    if (this.isZero()) return num.abs();
                    if (num.isZero()) return this.abs();
                    var a = this.clone();
                    var b = num.clone();
                    a.negative = 0;
                    b.negative = 0;
                    for(var shift = 0; a.isEven() && b.isEven(); shift++){
                        a.iushrn(1);
                        b.iushrn(1);
                    }
                    do {
                        while(a.isEven()){
                            a.iushrn(1);
                        }
                        while(b.isEven()){
                            b.iushrn(1);
                        }
                        var r = a.cmp(b);
                        if (r < 0) {
                            var t = a;
                            a = b;
                            b = t;
                        } else if (r === 0 || b.cmpn(1) === 0) {
                            break;
                        }
                        a.isub(b);
                    }while (true);
                    return b.iushln(shift);
                };
                BN.prototype.invm = function invm(num) {
                    return this.egcd(num).a.umod(num);
                };
                BN.prototype.isEven = function isEven() {
                    return (this.words[0] & 1) === 0;
                };
                BN.prototype.isOdd = function isOdd() {
                    return (this.words[0] & 1) === 1;
                };
                BN.prototype.andln = function andln(num) {
                    return this.words[0] & num;
                };
                BN.prototype.bincn = function bincn(bit) {
                    assert(typeof bit === "number");
                    var r = bit % 26;
                    var s = (bit - r) / 26;
                    var q = 1 << r;
                    if (this.length <= s) {
                        this._expand(s + 1);
                        this.words[s] |= q;
                        return this;
                    }
                    var carry = q;
                    for(var i = s; carry !== 0 && i < this.length; i++){
                        var w = this.words[i] | 0;
                        w += carry;
                        carry = w >>> 26;
                        w &= 67108863;
                        this.words[i] = w;
                    }
                    if (carry !== 0) {
                        this.words[i] = carry;
                        this.length++;
                    }
                    return this;
                };
                BN.prototype.isZero = function isZero() {
                    return this.length === 1 && this.words[0] === 0;
                };
                BN.prototype.cmpn = function cmpn(num) {
                    var negative = num < 0;
                    if (this.negative !== 0 && !negative) return -1;
                    if (this.negative === 0 && negative) return 1;
                    this.strip();
                    var res;
                    if (this.length > 1) {
                        res = 1;
                    } else {
                        if (negative) {
                            num = -num;
                        }
                        assert(num <= 67108863, "Number is too big");
                        var w = this.words[0] | 0;
                        res = w === num ? 0 : w < num ? -1 : 1;
                    }
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.cmp = function cmp(num) {
                    if (this.negative !== 0 && num.negative === 0) return -1;
                    if (this.negative === 0 && num.negative !== 0) return 1;
                    var res = this.ucmp(num);
                    if (this.negative !== 0) return -res | 0;
                    return res;
                };
                BN.prototype.ucmp = function ucmp(num) {
                    if (this.length > num.length) return 1;
                    if (this.length < num.length) return -1;
                    var res = 0;
                    for(var i = this.length - 1; i >= 0; i--){
                        var a = this.words[i] | 0;
                        var b = num.words[i] | 0;
                        if (a === b) continue;
                        if (a < b) {
                            res = -1;
                        } else if (a > b) {
                            res = 1;
                        }
                        break;
                    }
                    return res;
                };
                BN.prototype.gtn = function gtn(num) {
                    return this.cmpn(num) === 1;
                };
                BN.prototype.gt = function gt(num) {
                    return this.cmp(num) === 1;
                };
                BN.prototype.gten = function gten(num) {
                    return this.cmpn(num) >= 0;
                };
                BN.prototype.gte = function gte(num) {
                    return this.cmp(num) >= 0;
                };
                BN.prototype.ltn = function ltn(num) {
                    return this.cmpn(num) === -1;
                };
                BN.prototype.lt = function lt(num) {
                    return this.cmp(num) === -1;
                };
                BN.prototype.lten = function lten(num) {
                    return this.cmpn(num) <= 0;
                };
                BN.prototype.lte = function lte(num) {
                    return this.cmp(num) <= 0;
                };
                BN.prototype.eqn = function eqn(num) {
                    return this.cmpn(num) === 0;
                };
                BN.prototype.eq = function eq(num) {
                    return this.cmp(num) === 0;
                };
                BN.red = function red(num) {
                    return new Red(num);
                };
                BN.prototype.toRed = function toRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    assert(this.negative === 0, "red works only with positives");
                    return ctx.convertTo(this)._forceRed(ctx);
                };
                BN.prototype.fromRed = function fromRed() {
                    assert(this.red, "fromRed works only with numbers in reduction context");
                    return this.red.convertFrom(this);
                };
                BN.prototype._forceRed = function _forceRed(ctx) {
                    this.red = ctx;
                    return this;
                };
                BN.prototype.forceRed = function forceRed(ctx) {
                    assert(!this.red, "Already a number in reduction context");
                    return this._forceRed(ctx);
                };
                BN.prototype.redAdd = function redAdd(num) {
                    assert(this.red, "redAdd works only with red numbers");
                    return this.red.add(this, num);
                };
                BN.prototype.redIAdd = function redIAdd(num) {
                    assert(this.red, "redIAdd works only with red numbers");
                    return this.red.iadd(this, num);
                };
                BN.prototype.redSub = function redSub(num) {
                    assert(this.red, "redSub works only with red numbers");
                    return this.red.sub(this, num);
                };
                BN.prototype.redISub = function redISub(num) {
                    assert(this.red, "redISub works only with red numbers");
                    return this.red.isub(this, num);
                };
                BN.prototype.redShl = function redShl(num) {
                    assert(this.red, "redShl works only with red numbers");
                    return this.red.shl(this, num);
                };
                BN.prototype.redMul = function redMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.mul(this, num);
                };
                BN.prototype.redIMul = function redIMul(num) {
                    assert(this.red, "redMul works only with red numbers");
                    this.red._verify2(this, num);
                    return this.red.imul(this, num);
                };
                BN.prototype.redSqr = function redSqr() {
                    assert(this.red, "redSqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqr(this);
                };
                BN.prototype.redISqr = function redISqr() {
                    assert(this.red, "redISqr works only with red numbers");
                    this.red._verify1(this);
                    return this.red.isqr(this);
                };
                BN.prototype.redSqrt = function redSqrt() {
                    assert(this.red, "redSqrt works only with red numbers");
                    this.red._verify1(this);
                    return this.red.sqrt(this);
                };
                BN.prototype.redInvm = function redInvm() {
                    assert(this.red, "redInvm works only with red numbers");
                    this.red._verify1(this);
                    return this.red.invm(this);
                };
                BN.prototype.redNeg = function redNeg() {
                    assert(this.red, "redNeg works only with red numbers");
                    this.red._verify1(this);
                    return this.red.neg(this);
                };
                BN.prototype.redPow = function redPow(num) {
                    assert(this.red && !num.red, "redPow(normalNum)");
                    this.red._verify1(this);
                    return this.red.pow(this, num);
                };
                var primes = {
                    k256: null,
                    p224: null,
                    p192: null,
                    p25519: null
                };
                function MPrime(name, p) {
                    this.name = name;
                    this.p = new BN(p, 16);
                    this.n = this.p.bitLength();
                    this.k = new BN(1).iushln(this.n).isub(this.p);
                    this.tmp = this._tmp();
                }
                MPrime.prototype._tmp = function _tmp() {
                    var tmp = new BN(null);
                    tmp.words = new Array(Math.ceil(this.n / 13));
                    return tmp;
                };
                MPrime.prototype.ireduce = function ireduce(num) {
                    var r = num;
                    var rlen;
                    do {
                        this.split(r, this.tmp);
                        r = this.imulK(r);
                        r = r.iadd(this.tmp);
                        rlen = r.bitLength();
                    }while (rlen > this.n);
                    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
                    if (cmp === 0) {
                        r.words[0] = 0;
                        r.length = 1;
                    } else if (cmp > 0) {
                        r.isub(this.p);
                    } else {
                        if (r.strip !== void 0) {
                            r.strip();
                        } else {
                            r._strip();
                        }
                    }
                    return r;
                };
                MPrime.prototype.split = function split(input, out) {
                    input.iushrn(this.n, 0, out);
                };
                MPrime.prototype.imulK = function imulK(num) {
                    return num.imul(this.k);
                };
                function K256() {
                    MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
                }
                inherits(K256, MPrime);
                K256.prototype.split = function split(input, output) {
                    var mask = 4194303;
                    var outLen = Math.min(input.length, 9);
                    for(var i = 0; i < outLen; i++){
                        output.words[i] = input.words[i];
                    }
                    output.length = outLen;
                    if (input.length <= 9) {
                        input.words[0] = 0;
                        input.length = 1;
                        return;
                    }
                    var prev = input.words[9];
                    output.words[output.length++] = prev & mask;
                    for(i = 10; i < input.length; i++){
                        var next = input.words[i] | 0;
                        input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
                        prev = next;
                    }
                    prev >>>= 22;
                    input.words[i - 10] = prev;
                    if (prev === 0 && input.length > 10) {
                        input.length -= 10;
                    } else {
                        input.length -= 9;
                    }
                };
                K256.prototype.imulK = function imulK(num) {
                    num.words[num.length] = 0;
                    num.words[num.length + 1] = 0;
                    num.length += 2;
                    var lo = 0;
                    for(var i = 0; i < num.length; i++){
                        var w = num.words[i] | 0;
                        lo += w * 977;
                        num.words[i] = lo & 67108863;
                        lo = w * 64 + (lo / 67108864 | 0);
                    }
                    if (num.words[num.length - 1] === 0) {
                        num.length--;
                        if (num.words[num.length - 1] === 0) {
                            num.length--;
                        }
                    }
                    return num;
                };
                function P224() {
                    MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
                }
                inherits(P224, MPrime);
                function P192() {
                    MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
                }
                inherits(P192, MPrime);
                function P25519() {
                    MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
                }
                inherits(P25519, MPrime);
                P25519.prototype.imulK = function imulK(num) {
                    var carry = 0;
                    for(var i = 0; i < num.length; i++){
                        var hi = (num.words[i] | 0) * 19 + carry;
                        var lo = hi & 67108863;
                        hi >>>= 26;
                        num.words[i] = lo;
                        carry = hi;
                    }
                    if (carry !== 0) {
                        num.words[num.length++] = carry;
                    }
                    return num;
                };
                BN._prime = function prime(name) {
                    if (primes[name]) return primes[name];
                    var prime2;
                    if (name === "k256") {
                        prime2 = new K256();
                    } else if (name === "p224") {
                        prime2 = new P224();
                    } else if (name === "p192") {
                        prime2 = new P192();
                    } else if (name === "p25519") {
                        prime2 = new P25519();
                    } else {
                        throw new Error("Unknown prime " + name);
                    }
                    primes[name] = prime2;
                    return prime2;
                };
                function Red(m) {
                    if (typeof m === "string") {
                        var prime = BN._prime(m);
                        this.m = prime.p;
                        this.prime = prime;
                    } else {
                        assert(m.gtn(1), "modulus must be greater than 1");
                        this.m = m;
                        this.prime = null;
                    }
                }
                Red.prototype._verify1 = function _verify1(a) {
                    assert(a.negative === 0, "red works only with positives");
                    assert(a.red, "red works only with red numbers");
                };
                Red.prototype._verify2 = function _verify2(a, b) {
                    assert((a.negative | b.negative) === 0, "red works only with positives");
                    assert(a.red && a.red === b.red, "red works only with red numbers");
                };
                Red.prototype.imod = function imod(a) {
                    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
                    return a.umod(this.m)._forceRed(this);
                };
                Red.prototype.neg = function neg(a) {
                    if (a.isZero()) {
                        return a.clone();
                    }
                    return this.m.sub(a)._forceRed(this);
                };
                Red.prototype.add = function add(a, b) {
                    this._verify2(a, b);
                    var res = a.add(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.iadd = function iadd(a, b) {
                    this._verify2(a, b);
                    var res = a.iadd(b);
                    if (res.cmp(this.m) >= 0) {
                        res.isub(this.m);
                    }
                    return res;
                };
                Red.prototype.sub = function sub(a, b) {
                    this._verify2(a, b);
                    var res = a.sub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Red.prototype.isub = function isub(a, b) {
                    this._verify2(a, b);
                    var res = a.isub(b);
                    if (res.cmpn(0) < 0) {
                        res.iadd(this.m);
                    }
                    return res;
                };
                Red.prototype.shl = function shl(a, num) {
                    this._verify1(a);
                    return this.imod(a.ushln(num));
                };
                Red.prototype.imul = function imul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.imul(b));
                };
                Red.prototype.mul = function mul(a, b) {
                    this._verify2(a, b);
                    return this.imod(a.mul(b));
                };
                Red.prototype.isqr = function isqr(a) {
                    return this.imul(a, a.clone());
                };
                Red.prototype.sqr = function sqr(a) {
                    return this.mul(a, a);
                };
                Red.prototype.sqrt = function sqrt(a) {
                    if (a.isZero()) return a.clone();
                    var mod3 = this.m.andln(3);
                    assert(mod3 % 2 === 1);
                    if (mod3 === 3) {
                        var pow = this.m.add(new BN(1)).iushrn(2);
                        return this.pow(a, pow);
                    }
                    var q = this.m.subn(1);
                    var s = 0;
                    while(!q.isZero() && q.andln(1) === 0){
                        s++;
                        q.iushrn(1);
                    }
                    assert(!q.isZero());
                    var one = new BN(1).toRed(this);
                    var nOne = one.redNeg();
                    var lpow = this.m.subn(1).iushrn(1);
                    var z = this.m.bitLength();
                    z = new BN(2 * z * z).toRed(this);
                    while(this.pow(z, lpow).cmp(nOne) !== 0){
                        z.redIAdd(nOne);
                    }
                    var c = this.pow(z, q);
                    var r = this.pow(a, q.addn(1).iushrn(1));
                    var t = this.pow(a, q);
                    var m = s;
                    while(t.cmp(one) !== 0){
                        var tmp = t;
                        for(var i = 0; tmp.cmp(one) !== 0; i++){
                            tmp = tmp.redSqr();
                        }
                        assert(i < m);
                        var b = this.pow(c, new BN(1).iushln(m - i - 1));
                        r = r.redMul(b);
                        c = b.redSqr();
                        t = t.redMul(c);
                        m = i;
                    }
                    return r;
                };
                Red.prototype.invm = function invm(a) {
                    var inv = a._invmp(this.m);
                    if (inv.negative !== 0) {
                        inv.negative = 0;
                        return this.imod(inv).redNeg();
                    } else {
                        return this.imod(inv);
                    }
                };
                Red.prototype.pow = function pow(a, num) {
                    if (num.isZero()) return new BN(1).toRed(this);
                    if (num.cmpn(1) === 0) return a.clone();
                    var windowSize = 4;
                    var wnd = new Array(1 << windowSize);
                    wnd[0] = new BN(1).toRed(this);
                    wnd[1] = a;
                    for(var i = 2; i < wnd.length; i++){
                        wnd[i] = this.mul(wnd[i - 1], a);
                    }
                    var res = wnd[0];
                    var current2 = 0;
                    var currentLen = 0;
                    var start = num.bitLength() % 26;
                    if (start === 0) {
                        start = 26;
                    }
                    for(i = num.length - 1; i >= 0; i--){
                        var word = num.words[i];
                        for(var j = start - 1; j >= 0; j--){
                            var bit = word >> j & 1;
                            if (res !== wnd[0]) {
                                res = this.sqr(res);
                            }
                            if (bit === 0 && current2 === 0) {
                                currentLen = 0;
                                continue;
                            }
                            current2 <<= 1;
                            current2 |= bit;
                            currentLen++;
                            if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
                            res = this.mul(res, wnd[current2]);
                            currentLen = 0;
                            current2 = 0;
                        }
                        start = 26;
                    }
                    return res;
                };
                Red.prototype.convertTo = function convertTo(num) {
                    var r = num.umod(this.m);
                    return r === num ? r.clone() : r;
                };
                Red.prototype.convertFrom = function convertFrom(num) {
                    var res = num.clone();
                    res.red = null;
                    return res;
                };
                BN.mont = function mont(num) {
                    return new Mont(num);
                };
                function Mont(m) {
                    Red.call(this, m);
                    this.shift = this.m.bitLength();
                    if (this.shift % 26 !== 0) {
                        this.shift += 26 - this.shift % 26;
                    }
                    this.r = new BN(1).iushln(this.shift);
                    this.r2 = this.imod(this.r.sqr());
                    this.rinv = this.r._invmp(this.m);
                    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
                    this.minv = this.minv.umod(this.r);
                    this.minv = this.r.sub(this.minv);
                }
                inherits(Mont, Red);
                Mont.prototype.convertTo = function convertTo(num) {
                    return this.imod(num.ushln(this.shift));
                };
                Mont.prototype.convertFrom = function convertFrom(num) {
                    var r = this.imod(num.mul(this.rinv));
                    r.red = null;
                    return r;
                };
                Mont.prototype.imul = function imul(a, b) {
                    if (a.isZero() || b.isZero()) {
                        a.words[0] = 0;
                        a.length = 1;
                        return a;
                    }
                    var t = a.imul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.mul = function mul(a, b) {
                    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
                    var t = a.mul(b);
                    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
                    var u = t.isub(c).iushrn(this.shift);
                    var res = u;
                    if (u.cmp(this.m) >= 0) {
                        res = u.isub(this.m);
                    } else if (u.cmpn(0) < 0) {
                        res = u.iadd(this.m);
                    }
                    return res._forceRed(this);
                };
                Mont.prototype.invm = function invm(a) {
                    var res = this.imod(a._invmp(this.m).mul(this.r2));
                    return res._forceRed(this);
                };
            })(typeof module === "undefined" || module, exports);
        }
    });
    // node_modules/public-encrypt/withPublic.js
    var require_withPublic = __commonJS({
        "node_modules/public-encrypt/withPublic.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BN = require_bn7();
            var Buffer3 = require_safe_buffer().Buffer;
            function withPublic(paddedMsg, key) {
                return Buffer3.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray());
            }
            module.exports = withPublic;
        }
    });
    // node_modules/public-encrypt/publicEncrypt.js
    var require_publicEncrypt = __commonJS({
        "node_modules/public-encrypt/publicEncrypt.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var parseKeys = require_parse_asn1();
            var randomBytes = require_browser4();
            var createHash = require_browser6();
            var mgf = require_mgf();
            var xor = require_xor();
            var BN = require_bn7();
            var withPublic = require_withPublic();
            var crt = require_browserify_rsa();
            var Buffer3 = require_safe_buffer().Buffer;
            module.exports = function publicEncrypt(publicKey, msg, reverse) {
                var padding;
                if (publicKey.padding) {
                    padding = publicKey.padding;
                } else if (reverse) {
                    padding = 1;
                } else {
                    padding = 4;
                }
                var key = parseKeys(publicKey);
                var paddedMsg;
                if (padding === 4) {
                    paddedMsg = oaep(key, msg);
                } else if (padding === 1) {
                    paddedMsg = pkcs1(key, msg, reverse);
                } else if (padding === 3) {
                    paddedMsg = new BN(msg);
                    if (paddedMsg.cmp(key.modulus) >= 0) {
                        throw new Error("data too long for modulus");
                    }
                } else {
                    throw new Error("unknown padding");
                }
                if (reverse) {
                    return crt(paddedMsg, key);
                } else {
                    return withPublic(paddedMsg, key);
                }
            };
            function oaep(key, msg) {
                var k = key.modulus.byteLength();
                var mLen = msg.length;
                var iHash = createHash("sha1").update(Buffer3.alloc(0)).digest();
                var hLen = iHash.length;
                var hLen2 = 2 * hLen;
                if (mLen > k - hLen2 - 2) {
                    throw new Error("message too long");
                }
                var ps = Buffer3.alloc(k - mLen - hLen2 - 2);
                var dblen = k - hLen - 1;
                var seed = randomBytes(hLen);
                var maskedDb = xor(Buffer3.concat([
                    iHash,
                    ps,
                    Buffer3.alloc(1, 1),
                    msg
                ], dblen), mgf(seed, dblen));
                var maskedSeed = xor(seed, mgf(maskedDb, hLen));
                return new BN(Buffer3.concat([
                    Buffer3.alloc(1),
                    maskedSeed,
                    maskedDb
                ], k));
            }
            function pkcs1(key, msg, reverse) {
                var mLen = msg.length;
                var k = key.modulus.byteLength();
                if (mLen > k - 11) {
                    throw new Error("message too long");
                }
                var ps;
                if (reverse) {
                    ps = Buffer3.alloc(k - mLen - 3, 255);
                } else {
                    ps = nonZero(k - mLen - 3);
                }
                return new BN(Buffer3.concat([
                    Buffer3.from([
                        0,
                        reverse ? 1 : 2
                    ]),
                    ps,
                    Buffer3.alloc(1),
                    msg
                ], k));
            }
            function nonZero(len) {
                var out = Buffer3.allocUnsafe(len);
                var i = 0;
                var cache = randomBytes(len * 2);
                var cur = 0;
                var num;
                while(i < len){
                    if (cur === cache.length) {
                        cache = randomBytes(len * 2);
                        cur = 0;
                    }
                    num = cache[cur++];
                    if (num) {
                        out[i++] = num;
                    }
                }
                return out;
            }
        }
    });
    // node_modules/public-encrypt/privateDecrypt.js
    var require_privateDecrypt = __commonJS({
        "node_modules/public-encrypt/privateDecrypt.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var parseKeys = require_parse_asn1();
            var mgf = require_mgf();
            var xor = require_xor();
            var BN = require_bn7();
            var crt = require_browserify_rsa();
            var createHash = require_browser6();
            var withPublic = require_withPublic();
            var Buffer3 = require_safe_buffer().Buffer;
            module.exports = function privateDecrypt(privateKey, enc, reverse) {
                var padding;
                if (privateKey.padding) {
                    padding = privateKey.padding;
                } else if (reverse) {
                    padding = 1;
                } else {
                    padding = 4;
                }
                var key = parseKeys(privateKey);
                var k = key.modulus.byteLength();
                if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {
                    throw new Error("decryption error");
                }
                var msg;
                if (reverse) {
                    msg = withPublic(new BN(enc), key);
                } else {
                    msg = crt(enc, key);
                }
                var zBuffer = Buffer3.alloc(k - msg.length);
                msg = Buffer3.concat([
                    zBuffer,
                    msg
                ], k);
                if (padding === 4) {
                    return oaep(key, msg);
                } else if (padding === 1) {
                    return pkcs1(key, msg, reverse);
                } else if (padding === 3) {
                    return msg;
                } else {
                    throw new Error("unknown padding");
                }
            };
            function oaep(key, msg) {
                var k = key.modulus.byteLength();
                var iHash = createHash("sha1").update(Buffer3.alloc(0)).digest();
                var hLen = iHash.length;
                if (msg[0] !== 0) {
                    throw new Error("decryption error");
                }
                var maskedSeed = msg.slice(1, hLen + 1);
                var maskedDb = msg.slice(hLen + 1);
                var seed = xor(maskedSeed, mgf(maskedDb, hLen));
                var db = xor(maskedDb, mgf(seed, k - hLen - 1));
                if (compare(iHash, db.slice(0, hLen))) {
                    throw new Error("decryption error");
                }
                var i = hLen;
                while(db[i] === 0){
                    i++;
                }
                if (db[i++] !== 1) {
                    throw new Error("decryption error");
                }
                return db.slice(i);
            }
            function pkcs1(key, msg, reverse) {
                var p1 = msg.slice(0, 2);
                var i = 2;
                var status = 0;
                while(msg[i++] !== 0){
                    if (i >= msg.length) {
                        status++;
                        break;
                    }
                }
                var ps = msg.slice(2, i - 1);
                if (p1.toString("hex") !== "0002" && !reverse || p1.toString("hex") !== "0001" && reverse) {
                    status++;
                }
                if (ps.length < 8) {
                    status++;
                }
                if (status) {
                    throw new Error("decryption error");
                }
                return msg.slice(i);
            }
            function compare(a, b) {
                a = Buffer3.from(a);
                b = Buffer3.from(b);
                var dif = 0;
                var len = a.length;
                if (a.length !== b.length) {
                    dif++;
                    len = Math.min(a.length, b.length);
                }
                var i = -1;
                while(++i < len){
                    dif += a[i] ^ b[i];
                }
                return dif;
            }
        }
    });
    // node_modules/public-encrypt/browser.js
    var require_browser14 = __commonJS({
        "node_modules/public-encrypt/browser.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.publicEncrypt = require_publicEncrypt();
            exports.privateDecrypt = require_privateDecrypt();
            exports.privateEncrypt = function privateEncrypt(key, buf) {
                return exports.publicEncrypt(key, buf, true);
            };
            exports.publicDecrypt = function publicDecrypt(key, buf) {
                return exports.privateDecrypt(key, buf, true);
            };
        }
    });
    // node_modules/randomfill/browser.js
    var require_browser15 = __commonJS({
        "node_modules/randomfill/browser.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function oldBrowser() {
                throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11");
            }
            var safeBuffer = require_safe_buffer();
            var randombytes = require_browser4();
            var Buffer3 = safeBuffer.Buffer;
            var kBufferMaxLength = safeBuffer.kMaxLength;
            var crypto2 = globalThis.crypto || globalThis.msCrypto;
            var kMaxUint32 = Math.pow(2, 32) - 1;
            function assertOffset(offset, length) {
                if (typeof offset !== "number" || offset !== offset) {
                    throw new TypeError("offset must be a number");
                }
                if (offset > kMaxUint32 || offset < 0) {
                    throw new TypeError("offset must be a uint32");
                }
                if (offset > kBufferMaxLength || offset > length) {
                    throw new RangeError("offset out of range");
                }
            }
            function assertSize(size, offset, length) {
                if (typeof size !== "number" || size !== size) {
                    throw new TypeError("size must be a number");
                }
                if (size > kMaxUint32 || size < 0) {
                    throw new TypeError("size must be a uint32");
                }
                if (size + offset > length || size > kBufferMaxLength) {
                    throw new RangeError("buffer too small");
                }
            }
            if (crypto2 && crypto2.getRandomValues || !process.browser) {
                exports.randomFill = randomFill;
                exports.randomFillSync = randomFillSync;
            } else {
                exports.randomFill = oldBrowser;
                exports.randomFillSync = oldBrowser;
            }
            function randomFill(buf, offset, size, cb) {
                if (!Buffer3.isBuffer(buf) && !(buf instanceof globalThis.Uint8Array)) {
                    throw new TypeError('"buf" argument must be a Buffer or Uint8Array');
                }
                if (typeof offset === "function") {
                    cb = offset;
                    offset = 0;
                    size = buf.length;
                } else if (typeof size === "function") {
                    cb = size;
                    size = buf.length - offset;
                } else if (typeof cb !== "function") {
                    throw new TypeError('"cb" argument must be a function');
                }
                assertOffset(offset, buf.length);
                assertSize(size, offset, buf.length);
                return actualFill(buf, offset, size, cb);
            }
            function actualFill(buf, offset, size, cb) {
                if (process.browser) {
                    var ourBuf = buf.buffer;
                    var uint = new Uint8Array(ourBuf, offset, size);
                    crypto2.getRandomValues(uint);
                    if (cb) {
                        process.nextTick(function() {
                            cb(null, buf);
                        });
                        return;
                    }
                    return buf;
                }
                if (cb) {
                    randombytes(size, function(err, bytes2) {
                        if (err) {
                            return cb(err);
                        }
                        bytes2.copy(buf, offset);
                        cb(null, buf);
                    });
                    return;
                }
                var bytes = randombytes(size);
                bytes.copy(buf, offset);
                return buf;
            }
            function randomFillSync(buf, offset, size) {
                if (typeof offset === "undefined") {
                    offset = 0;
                }
                if (!Buffer3.isBuffer(buf) && !(buf instanceof globalThis.Uint8Array)) {
                    throw new TypeError('"buf" argument must be a Buffer or Uint8Array');
                }
                assertOffset(offset, buf.length);
                if (size === void 0) size = buf.length - offset;
                assertSize(size, offset, buf.length);
                return actualFill(buf, offset, size);
            }
        }
    });
    // node_modules/crypto-browserify/index.js
    var require_crypto_browserify = __commonJS({
        "node_modules/crypto-browserify/index.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require_browser4();
            exports.createHash = exports.Hash = require_browser6();
            exports.createHmac = exports.Hmac = require_browser7();
            var algos = require_algos();
            var algoKeys = Object.keys(algos);
            var hashes = [
                "sha1",
                "sha224",
                "sha256",
                "sha384",
                "sha512",
                "md5",
                "rmd160"
            ].concat(algoKeys);
            exports.getHashes = function() {
                return hashes;
            };
            var p = require_browser8();
            exports.pbkdf2 = p.pbkdf2;
            exports.pbkdf2Sync = p.pbkdf2Sync;
            var aes = require_browser10();
            exports.Cipher = aes.Cipher;
            exports.createCipher = aes.createCipher;
            exports.Cipheriv = aes.Cipheriv;
            exports.createCipheriv = aes.createCipheriv;
            exports.Decipher = aes.Decipher;
            exports.createDecipher = aes.createDecipher;
            exports.Decipheriv = aes.Decipheriv;
            exports.createDecipheriv = aes.createDecipheriv;
            exports.getCiphers = aes.getCiphers;
            exports.listCiphers = aes.listCiphers;
            var dh = require_browser11();
            exports.DiffieHellmanGroup = dh.DiffieHellmanGroup;
            exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;
            exports.getDiffieHellman = dh.getDiffieHellman;
            exports.createDiffieHellman = dh.createDiffieHellman;
            exports.DiffieHellman = dh.DiffieHellman;
            var sign2 = require_browser12();
            exports.createSign = sign2.createSign;
            exports.Sign = sign2.Sign;
            exports.createVerify = sign2.createVerify;
            exports.Verify = sign2.Verify;
            exports.createECDH = require_browser13();
            var publicEncrypt = require_browser14();
            exports.publicEncrypt = publicEncrypt.publicEncrypt;
            exports.privateEncrypt = publicEncrypt.privateEncrypt;
            exports.publicDecrypt = publicEncrypt.publicDecrypt;
            exports.privateDecrypt = publicEncrypt.privateDecrypt;
            var rf = require_browser15();
            exports.randomFill = rf.randomFill;
            exports.randomFillSync = rf.randomFillSync;
            exports.createCredentials = function() {
                throw new Error("sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify");
            };
            exports.constants = {
                DH_CHECK_P_NOT_SAFE_PRIME: 2,
                DH_CHECK_P_NOT_PRIME: 1,
                DH_UNABLE_TO_CHECK_GENERATOR: 4,
                DH_NOT_SUITABLE_GENERATOR: 8,
                NPN_ENABLED: 1,
                ALPN_ENABLED: 1,
                RSA_PKCS1_PADDING: 1,
                RSA_SSLV23_PADDING: 2,
                RSA_NO_PADDING: 3,
                RSA_PKCS1_OAEP_PADDING: 4,
                RSA_X931_PADDING: 5,
                RSA_PKCS1_PSS_PADDING: 6,
                POINT_CONVERSION_COMPRESSED: 2,
                POINT_CONVERSION_UNCOMPRESSED: 4,
                POINT_CONVERSION_HYBRID: 6
            };
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Hash/generator.js
    var require_generator = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Hash/generator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.generateUniqueHash = generateUniqueHash;
            exports.generateSalt = generateSalt;
            var crypto_1 = require_crypto_browserify();
            function generateUniqueHash(length) {
                if (length === void 0) {
                    length = 50;
                }
                var hash = (0, crypto_1.createHash)("sha256");
                hash.update("" + /* @__PURE__ */ new Date().valueOf() + Math.random());
                return hash.digest("hex").substring(0, length);
            }
            function generateSalt(length) {
                return (0, crypto_1.randomBytes)(length).toString("hex").substring(0, length);
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Debug/debugDecorator.js
    var require_debugDecorator = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Debug/debugDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __assign = exports && exports.__assign || function() {
                __assign = Object.assign || function(t) {
                    for(var s, i = 1, n = arguments.length; i < n; i++){
                        s = arguments[i];
                        for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
                    }
                    return t;
                };
                return __assign.apply(this, arguments);
            };
            var __spreadArray = exports && exports.__spreadArray || function(to, from, pack) {
                if (pack || arguments.length === 2) for(var i = 0, l = from.length, ar; i < l; i++){
                    if (ar || !(i in from)) {
                        if (!ar) ar = Array.prototype.slice.call(from, 0, i);
                        ar[i] = from[i];
                    }
                }
                return to.concat(ar || Array.prototype.slice.call(from));
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDebugMethod = void 0;
            exports.debug = debug4;
            exports.getDebugConfig = getDebugConfig;
            exports.setDebugConfig = setDebugConfig;
            var debug_1 = __importDefault(require_browser2());
            var generator_1 = require_generator();
            var config = {
                serialize: false,
                logDuration: false
            };
            function getDurationLog(start) {
                if (config.logDuration) {
                    var duration = /* @__PURE__ */ new Date().getTime() - start.getTime();
                    return " (".concat(duration, "ms)");
                }
            }
            var createDebugMethod = function createDebugMethod(localDebug) {
                return function(originalMethod, that, label, args) {
                    var invocationUid = (0, generator_1.generateUniqueHash)(10);
                    var start = /* @__PURE__ */ new Date();
                    localDebug.apply(void 0, __spreadArray([
                        "invoking ".concat(label, " <").concat(invocationUid, ">")
                    ], serializeArgsIfEnabled(args), false));
                    try {
                        var returnValue = originalMethod.apply(that, args);
                        if (returnValue instanceof Promise) {
                            return returnValue.then(function(result17) {
                                localDebug("success ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), result17);
                                return result17;
                            })["catch"](function(error) {
                                localDebug("fail ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), error);
                                throw error;
                            });
                        } else {
                            localDebug("success ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), returnValue);
                            return returnValue;
                        }
                    } catch (error) {
                        localDebug("fail ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), error);
                        throw error;
                    }
                };
            };
            exports.createDebugMethod = createDebugMethod;
            function serializeArgsIfEnabled(args) {
                return args.map(function(arg) {
                    if ((typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object" && arg !== null && config.serialize) {
                        return JSON.stringify(arg);
                    } else {
                        return arg;
                    }
                });
            }
            function debug4(namespace, debugFactory) {
                if (debugFactory === void 0) {
                    debugFactory = debug_1["default"];
                }
                var debugMethod = (0, exports.createDebugMethod)(debugFactory(namespace));
                return function(_target, propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        var args = [];
                        for(var _i = 0; _i < arguments.length; _i++){
                            args[_i] = arguments[_i];
                        }
                        return debugMethod(originalMethod, this, "".concat(this.constructor.name, ":").concat(propertyKey), args);
                    };
                };
            }
            function getDebugConfig() {
                return config;
            }
            function setDebugConfig(newConfig) {
                config = __assign(__assign({}, config), newConfig);
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Offline/OfflineActionsUploader.js
    var require_OfflineActionsUploader = __commonJS({
        "node_modules/@signageos/front-display/es6/Offline/OfflineActionsUploader.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.OfflineActionsUploader = exports.NO_FILE = void 0;
            var lodash_1 = __importDefault(require_lodash());
            var path_1 = __importDefault(require_path_browserify());
            var lockedDecorator_1 = require_lockedDecorator();
            var debugDecorator_1 = require_debugDecorator();
            var offlineActionsSagas_1 = require_offlineActionsSagas();
            var systemLogActions_1 = require_systemLogActions();
            var constants_1 = require_constants();
            var OFFLINE_DIR = ".offline-actions";
            var LOCK_KEY = "OfflineActionsUploader";
            var DEBUG_NAMESPACE3 = "@signageos/front-display:Offline:OfflineActionsUploader";
            var MINIMAL_STORAGE_FREE_SPACE = 50 * 1024;
            var FRONT_FILE = "front";
            var MANAGEMENT_FILE = "management";
            exports.NO_FILE = "no_file_for_upload";
            var OfflineActionsUploader = /*#__PURE__*/ function() {
                function OfflineActionsUploader(fileNamePrefix, fileSystem) {
                    _class_call_check(this, OfflineActionsUploader);
                    this.fileNamePrefix = fileNamePrefix;
                    this.fileSystem = fileSystem;
                }
                _create_class(OfflineActionsUploader, [
                    {
                        key: "addAction",
                        value: function addAction(action) {
                            return __awaiter(this, void 0, void 0, function() {
                                var appletCommandsFilePath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.start();
                                            if (!(this.deviceFreeSpace && this.deviceFreeSpace < MINIMAL_STORAGE_FREE_SPACE)) return [
                                                3,
                                                1
                                            ];
                                            console.warn("No space for saving offline actions");
                                            return [
                                                3,
                                                5
                                            ];
                                        case 1:
                                            return [
                                                4,
                                                this.ensureOfflineDir()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.getFilePath(offlineActionsSagas_1.offlineActionFile, this.getFileNumber())
                                            ];
                                        case 3:
                                            appletCommandsFilePath = _state.sent();
                                            return [
                                                4,
                                                this.fileSystem.appendFile(appletCommandsFilePath, this.actionToFileEntry(action))
                                            ];
                                        case 4:
                                            _state.sent();
                                            _state.label = 5;
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "upload",
                        value: function upload(deviceUid, fileName, baseUrl) {
                            return __awaiter(this, void 0, void 0, function() {
                                var filePath, uploadUri, response;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getFilePathUpload(fileName)
                                            ];
                                        case 1:
                                            filePath = _state.sent();
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 2:
                                            if (!_state.sent()) return [
                                                3,
                                                7
                                            ];
                                            uploadUri = this.getUploadUri(baseUrl, deviceUid);
                                            return [
                                                4,
                                                this.fileSystem.uploadFile(filePath, uploadUri, "file")
                                            ];
                                        case 3:
                                            response = _state.sent();
                                            if (!(response === null || response === void 0 ? void 0 : response.includes(systemLogActions_1.SystemLog))) return [
                                                3,
                                                5
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.deleteFile(filePath, false)
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                2,
                                                response
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                response
                                            ];
                                        case 6:
                                            return [
                                                3,
                                                8
                                            ];
                                        case 7:
                                            this.stop();
                                            return [
                                                2,
                                                exports.NO_FILE
                                            ];
                                        case 8:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureOfflineDir",
                        value: function ensureOfflineDir() {
                            return __awaiter(this, void 0, void 0, function() {
                                var offlineDirPath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getOfflineDirFilePath()
                                            ];
                                        case 1:
                                            offlineDirPath = _state.sent();
                                            return [
                                                4,
                                                this.ensureDir(offlineDirPath)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureDir",
                        value: function ensureDir(dirPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.exists(dirPath)
                                            ];
                                        case 1:
                                            if (!_state.sent()) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.isDirectory(dirPath)
                                            ];
                                        case 2:
                                            if (!!_state.sent()) return [
                                                3,
                                                5
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.deleteFile(dirPath, true)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                4,
                                                this.fileSystem.createDirectory(dirPath)
                                            ];
                                        case 4:
                                            _state.sent();
                                            _state.label = 5;
                                        case 5:
                                            return [
                                                3,
                                                8
                                            ];
                                        case 6:
                                            return [
                                                4,
                                                this.fileSystem.createDirectory(dirPath)
                                            ];
                                        case 7:
                                            _state.sent();
                                            _state.label = 8;
                                        case 8:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFilePath",
                        value: function getFilePath(fileName, fileNumber) {
                            return __awaiter(this, void 0, void 0, function() {
                                var dirPath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getOfflineDirFilePath()
                                            ];
                                        case 1:
                                            dirPath = _state.sent();
                                            return [
                                                2,
                                                Object.assign(Object.assign({}, dirPath), {
                                                    filePath: path_1["default"].join(dirPath.filePath, this.fileNamePrefix + fileName + "." + fileNumber)
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getOfflineDirFilePath",
                        value: function getOfflineDirFilePath() {
                            return __awaiter(this, void 0, void 0, function() {
                                var storageUnits, internalStorageUnit;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.listStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            internalStorageUnit = storageUnits.filter(function(storageUnit) {
                                                return !storageUnit.removable;
                                            })[0];
                                            return [
                                                2,
                                                {
                                                    filePath: OFFLINE_DIR,
                                                    storageUnit: internalStorageUnit
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "actionToFileEntry",
                        value: function actionToFileEntry(action) {
                            var sanitizedAction = lodash_1["default"].omit(action, "__offline");
                            return JSON.stringify(sanitizedAction) + "\n";
                        }
                    },
                    {
                        key: "getUploadUri",
                        value: function getUploadUri(baseUrl, deviceUid) {
                            var UPLOAD_PATH = "/upload/file";
                            var prefix = "offline-actions/".concat(systemLogActions_1.SystemLog, "/").concat(deviceUid, "/");
                            return "".concat(baseUrl).concat(UPLOAD_PATH, "?prefix=").concat(prefix);
                        }
                    },
                    {
                        key: "updateDeviceSpace",
                        value: function updateDeviceSpace() {
                            return __awaiter(this, void 0, void 0, function() {
                                var localStorages, internalStorage;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.listStorageUnits()
                                            ];
                                        case 1:
                                            localStorages = _state.sent();
                                            internalStorage = localStorages.find(function(storage) {
                                                return !storage.removable;
                                            });
                                            if (internalStorage) {
                                                this.deviceFreeSpace = internalStorage === null || internalStorage === void 0 ? void 0 : internalStorage.freeSpace;
                                            }
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFileNumber",
                        value: function getFileNumber() {
                            var dates = /* @__PURE__ */ new Date();
                            return dates.getFullYear() + dates.getMonth() + dates.getDay() + dates.getHours();
                        }
                    },
                    {
                        key: "getFilePathUpload",
                        value: function getFilePathUpload(fileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var dirPath, filePath, directoryExists, dirContent, rightFilePath, files, rightFilePathFiles;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getOfflineDirFilePath()
                                            ];
                                        case 1:
                                            dirPath = _state.sent();
                                            return [
                                                4,
                                                this.fileSystem.exists(dirPath)
                                            ];
                                        case 2:
                                            directoryExists = _state.sent();
                                            if (!!directoryExists) return [
                                                3,
                                                3
                                            ];
                                            filePath = Object.assign(Object.assign({}, dirPath), {
                                                filePath: path_1["default"].join(dirPath.filePath, this.fileNamePrefix + fileName)
                                            });
                                            return [
                                                3,
                                                5
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                this.fileSystem.listFiles(dirPath)
                                            ];
                                        case 4:
                                            dirContent = _state.sent();
                                            switch(dirContent.length){
                                                case 0:
                                                    filePath = Object.assign(Object.assign({}, dirPath), {
                                                        filePath: path_1["default"].join(dirPath.filePath, this.fileNamePrefix + fileName)
                                                    });
                                                    break;
                                                case 1:
                                                    rightFilePath = this.checkFilePath(dirContent[0].filePath);
                                                    filePath = Object.assign(Object.assign({}, dirPath), {
                                                        filePath: rightFilePath
                                                    });
                                                    break;
                                                default:
                                                    files = this.fileNamePrefix.includes(FRONT_FILE) ? dirContent.filter(function(file) {
                                                        return file.filePath.includes(FRONT_FILE);
                                                    }) : dirContent.filter(function(file) {
                                                        return file.filePath.includes(MANAGEMENT_FILE);
                                                    });
                                                    rightFilePathFiles = this.checkFilePath(files[0].filePath);
                                                    filePath = Object.assign(Object.assign({}, dirPath), {
                                                        filePath: rightFilePathFiles
                                                    });
                                                    break;
                                            }
                                            _state.label = 5;
                                        case 5:
                                            return [
                                                2,
                                                filePath
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "checkFilePath",
                        value: function checkFilePath(filePath) {
                            return !filePath.startsWith(".") ? "." + filePath : filePath;
                        }
                    },
                    {
                        key: "start",
                        value: function start() {
                            var _this = this;
                            var deviceFreeSpace = this.deviceFreeSpace;
                            if (deviceFreeSpace === void 0) {
                                this.storageInterval = setInterval(function() {
                                    _this.updateDeviceSpace();
                                }, constants_1.SOMETIMES);
                            }
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            if (this.storageInterval) {
                                this.deviceFreeSpace = void 0;
                                clearInterval(this.storageInterval);
                            }
                        }
                    }
                ]);
                return OfflineActionsUploader;
            }();
            exports.OfflineActionsUploader = OfflineActionsUploader;
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], OfflineActionsUploader.prototype, "addAction", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    String,
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], OfflineActionsUploader.prototype, "upload", null);
        }
    });
    // node_modules/clone/clone.js
    var require_clone = __commonJS({
        "node_modules/clone/clone.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var clone2 = function() {
                "use strict";
                function _instanceof(obj, type) {
                    return type != null && obj instanceof type;
                }
                var nativeMap;
                try {
                    nativeMap = Map;
                } catch (_2) {
                    nativeMap = function nativeMap() {};
                }
                var nativeSet;
                try {
                    nativeSet = Set;
                } catch (_2) {
                    nativeSet = function nativeSet() {};
                }
                var nativePromise;
                try {
                    nativePromise = Promise;
                } catch (_2) {
                    nativePromise = function nativePromise() {};
                }
                function clone3(parent2, circular, depth, prototype, includeNonEnumerable) {
                    if ((typeof circular === "undefined" ? "undefined" : _type_of(circular)) === "object") {
                        depth = circular.depth;
                        prototype = circular.prototype;
                        includeNonEnumerable = circular.includeNonEnumerable;
                        circular = circular.circular;
                    }
                    var allParents = [];
                    var allChildren = [];
                    var useBuffer = typeof import_buffer.Buffer != "undefined";
                    if (typeof circular == "undefined") circular = true;
                    if (typeof depth == "undefined") depth = Infinity;
                    function _clone(parent3, depth2) {
                        if (parent3 === null) return null;
                        if (depth2 === 0) return parent3;
                        var child;
                        var proto;
                        if ((typeof parent3 === "undefined" ? "undefined" : _type_of(parent3)) != "object") {
                            return parent3;
                        }
                        if (_instanceof(parent3, nativeMap)) {
                            child = new nativeMap();
                        } else if (_instanceof(parent3, nativeSet)) {
                            child = new nativeSet();
                        } else if (_instanceof(parent3, nativePromise)) {
                            child = new nativePromise(function(resolve, reject) {
                                parent3.then(function(value) {
                                    resolve(_clone(value, depth2 - 1));
                                }, function(err) {
                                    reject(_clone(err, depth2 - 1));
                                });
                            });
                        } else if (clone3.__isArray(parent3)) {
                            child = [];
                        } else if (clone3.__isRegExp(parent3)) {
                            child = new RegExp(parent3.source, __getRegExpFlags(parent3));
                            if (parent3.lastIndex) child.lastIndex = parent3.lastIndex;
                        } else if (clone3.__isDate(parent3)) {
                            child = new Date(parent3.getTime());
                        } else if (useBuffer && import_buffer.Buffer.isBuffer(parent3)) {
                            if (import_buffer.Buffer.allocUnsafe) {
                                child = import_buffer.Buffer.allocUnsafe(parent3.length);
                            } else {
                                child = new import_buffer.Buffer(parent3.length);
                            }
                            parent3.copy(child);
                            return child;
                        } else if (_instanceof(parent3, Error)) {
                            child = Object.create(parent3);
                        } else {
                            if (typeof prototype == "undefined") {
                                proto = Object.getPrototypeOf(parent3);
                                child = Object.create(proto);
                            } else {
                                child = Object.create(prototype);
                                proto = prototype;
                            }
                        }
                        if (circular) {
                            var index = allParents.indexOf(parent3);
                            if (index != -1) {
                                return allChildren[index];
                            }
                            allParents.push(parent3);
                            allChildren.push(child);
                        }
                        if (_instanceof(parent3, nativeMap)) {
                            parent3.forEach(function(value, key) {
                                var keyChild = _clone(key, depth2 - 1);
                                var valueChild = _clone(value, depth2 - 1);
                                child.set(keyChild, valueChild);
                            });
                        }
                        if (_instanceof(parent3, nativeSet)) {
                            parent3.forEach(function(value) {
                                var entryChild = _clone(value, depth2 - 1);
                                child.add(entryChild);
                            });
                        }
                        for(var i in parent3){
                            var attrs;
                            if (proto) {
                                attrs = Object.getOwnPropertyDescriptor(proto, i);
                            }
                            if (attrs && attrs.set == null) {
                                continue;
                            }
                            child[i] = _clone(parent3[i], depth2 - 1);
                        }
                        if (Object.getOwnPropertySymbols) {
                            var symbols = Object.getOwnPropertySymbols(parent3);
                            for(var i = 0; i < symbols.length; i++){
                                var symbol5 = symbols[i];
                                var descriptor = Object.getOwnPropertyDescriptor(parent3, symbol5);
                                if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
                                    continue;
                                }
                                child[symbol5] = _clone(parent3[symbol5], depth2 - 1);
                                if (!descriptor.enumerable) {
                                    Object.defineProperty(child, symbol5, {
                                        enumerable: false
                                    });
                                }
                            }
                        }
                        if (includeNonEnumerable) {
                            var allPropertyNames = Object.getOwnPropertyNames(parent3);
                            for(var i = 0; i < allPropertyNames.length; i++){
                                var propertyName = allPropertyNames[i];
                                var descriptor = Object.getOwnPropertyDescriptor(parent3, propertyName);
                                if (descriptor && descriptor.enumerable) {
                                    continue;
                                }
                                child[propertyName] = _clone(parent3[propertyName], depth2 - 1);
                                Object.defineProperty(child, propertyName, {
                                    enumerable: false
                                });
                            }
                        }
                        return child;
                    }
                    return _clone(parent2, depth);
                }
                clone3.clonePrototype = function clonePrototype(parent2) {
                    if (parent2 === null) return null;
                    var c = function c() {};
                    c.prototype = parent2;
                    return new c();
                };
                function __objToStr(o) {
                    return Object.prototype.toString.call(o);
                }
                clone3.__objToStr = __objToStr;
                function __isDate(o) {
                    return (typeof o === "undefined" ? "undefined" : _type_of(o)) === "object" && __objToStr(o) === "[object Date]";
                }
                clone3.__isDate = __isDate;
                function __isArray(o) {
                    return (typeof o === "undefined" ? "undefined" : _type_of(o)) === "object" && __objToStr(o) === "[object Array]";
                }
                clone3.__isArray = __isArray;
                function __isRegExp(o) {
                    return (typeof o === "undefined" ? "undefined" : _type_of(o)) === "object" && __objToStr(o) === "[object RegExp]";
                }
                clone3.__isRegExp = __isRegExp;
                function __getRegExpFlags(re) {
                    var flags = "";
                    if (re.global) flags += "g";
                    if (re.ignoreCase) flags += "i";
                    if (re.multiline) flags += "m";
                    return flags;
                }
                clone3.__getRegExpFlags = __getRegExpFlags;
                return clone3;
            }();
            if ((typeof module === "undefined" ? "undefined" : _type_of(module)) === "object" && module.exports) {
                module.exports = clone2;
            }
        }
    });
    // node_modules/node-cache/lib/node_cache.js
    var require_node_cache = __commonJS({
        "node_modules/node-cache/lib/node_cache.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function() {
                var EventEmitter5, NodeCache, clone2, splice = [].splice, boundMethodCheck = function boundMethodCheck(instance, Constructor) {
                    if (!(instance instanceof Constructor)) {
                        throw new Error("Bound instance method accessed before binding");
                    }
                }, indexOf = [].indexOf;
                clone2 = require_clone();
                EventEmitter5 = require_events().EventEmitter;
                module.exports = NodeCache = (function() {
                    var NodeCache2 = /*#__PURE__*/ function(EventEmitter5) {
                        "use strict";
                        _inherits(NodeCache2, EventEmitter5);
                        var _super = _create_super(NodeCache2);
                        function NodeCache2() {
                            var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
                            _class_call_check(this, NodeCache2);
                            var _this;
                            _this = _super.call(this);
                            _this.get = _this.get.bind(_assert_this_initialized(_this));
                            _this.mget = _this.mget.bind(_assert_this_initialized(_this));
                            _this.set = _this.set.bind(_assert_this_initialized(_this));
                            _this.mset = _this.mset.bind(_assert_this_initialized(_this));
                            _this.del = _this.del.bind(_assert_this_initialized(_this));
                            _this.take = _this.take.bind(_assert_this_initialized(_this));
                            _this.ttl = _this.ttl.bind(_assert_this_initialized(_this));
                            _this.getTtl = _this.getTtl.bind(_assert_this_initialized(_this));
                            _this.keys = _this.keys.bind(_assert_this_initialized(_this));
                            _this.has = _this.has.bind(_assert_this_initialized(_this));
                            _this.getStats = _this.getStats.bind(_assert_this_initialized(_this));
                            _this.flushAll = _this.flushAll.bind(_assert_this_initialized(_this));
                            _this.flushStats = _this.flushStats.bind(_assert_this_initialized(_this));
                            _this.close = _this.close.bind(_assert_this_initialized(_this));
                            _this._checkData = _this._checkData.bind(_assert_this_initialized(_this));
                            _this._check = _this._check.bind(_assert_this_initialized(_this));
                            _this._isInvalidKey = _this._isInvalidKey.bind(_assert_this_initialized(_this));
                            _this._wrap = _this._wrap.bind(_assert_this_initialized(_this));
                            _this._getValLength = _this._getValLength.bind(_assert_this_initialized(_this));
                            _this._error = _this._error.bind(_assert_this_initialized(_this));
                            _this._initErrors = _this._initErrors.bind(_assert_this_initialized(_this));
                            _this.options = options;
                            _this._initErrors();
                            _this.data = {};
                            _this.options = Object.assign({
                                // convert all elements to string
                                forceString: false,
                                // used standard size for calculating value size
                                objectValueSize: 80,
                                promiseValueSize: 80,
                                arrayValueSize: 40,
                                // standard time to live in seconds. 0 = infinity;
                                stdTTL: 0,
                                // time in seconds to check all data and delete expired keys
                                checkperiod: 600,
                                // en/disable cloning of variables. If `true` you'll get a copy of the cached variable. If `false` you'll save and get just the reference
                                useClones: true,
                                // whether values should be deleted automatically at expiration
                                deleteOnExpire: true,
                                // enable legacy callbacks
                                enableLegacyCallbacks: false,
                                // max amount of keys that are being stored
                                maxKeys: -1
                            }, _this.options);
                            if (_this.options.enableLegacyCallbacks) {
                                console.warn("WARNING! node-cache legacy callback support will drop in v6.x");
                                [
                                    "get",
                                    "mget",
                                    "set",
                                    "del",
                                    "ttl",
                                    "getTtl",
                                    "keys",
                                    "has"
                                ].forEach(function(methodKey) {
                                    var oldMethod;
                                    oldMethod = _this[methodKey];
                                    _this[methodKey] = function() {
                                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                            args[_key] = arguments[_key];
                                        }
                                        var cb, err, ref, res;
                                        var ref1, ref2;
                                        ref = args, ref1 = _to_array(ref), args = ref1.slice(0), ref1, ref2 = _sliced_to_array(splice.call(args, -1), 1), cb = ref2[0], ref2;
                                        if (typeof cb === "function") {
                                            try {
                                                res = oldMethod.apply(void 0, _to_consumable_array(args));
                                                cb(null, res);
                                            } catch (error1) {
                                                err = error1;
                                                cb(err);
                                            }
                                        } else {
                                            return oldMethod.apply(void 0, _to_consumable_array(args).concat([
                                                cb
                                            ]));
                                        }
                                    };
                                });
                            }
                            _this.stats = {
                                hits: 0,
                                misses: 0,
                                keys: 0,
                                ksize: 0,
                                vsize: 0
                            };
                            _this.validKeyTypes = [
                                "string",
                                "number"
                            ];
                            _this._checkData();
                            return _possible_constructor_return(_this);
                        }
                        _create_class(NodeCache2, [
                            {
                                key: "get",
                                value: function get(key) {
                                    var _ret, err;
                                    boundMethodCheck(this, NodeCache2);
                                    if ((err = this._isInvalidKey(key)) != null) {
                                        throw err;
                                    }
                                    if (this.data[key] != null && this._check(key, this.data[key])) {
                                        this.stats.hits++;
                                        _ret = this._unwrap(this.data[key]);
                                        return _ret;
                                    } else {
                                        this.stats.misses++;
                                        return void 0;
                                    }
                                }
                            },
                            {
                                key: "mget",
                                value: function mget(keys) {
                                    var _err, err, i, key, len, oRet;
                                    boundMethodCheck(this, NodeCache2);
                                    if (!Array.isArray(keys)) {
                                        _err = this._error("EKEYSTYPE");
                                        throw _err;
                                    }
                                    oRet = {};
                                    for(i = 0, len = keys.length; i < len; i++){
                                        key = keys[i];
                                        if ((err = this._isInvalidKey(key)) != null) {
                                            throw err;
                                        }
                                        if (this.data[key] != null && this._check(key, this.data[key])) {
                                            this.stats.hits++;
                                            oRet[key] = this._unwrap(this.data[key]);
                                        } else {
                                            this.stats.misses++;
                                        }
                                    }
                                    return oRet;
                                }
                            },
                            {
                                key: "set",
                                value: function set(key, value, ttl) {
                                    var _err, err, existent;
                                    boundMethodCheck(this, NodeCache2);
                                    if (this.options.maxKeys > -1 && this.stats.keys >= this.options.maxKeys) {
                                        _err = this._error("ECACHEFULL");
                                        throw _err;
                                    }
                                    if (this.options.forceString && false === "string") {
                                        value = JSON.stringify(value);
                                    }
                                    if (ttl == null) {
                                        ttl = this.options.stdTTL;
                                    }
                                    if ((err = this._isInvalidKey(key)) != null) {
                                        throw err;
                                    }
                                    existent = false;
                                    if (this.data[key]) {
                                        existent = true;
                                        this.stats.vsize -= this._getValLength(this._unwrap(this.data[key], false));
                                    }
                                    this.data[key] = this._wrap(value, ttl);
                                    this.stats.vsize += this._getValLength(value);
                                    if (!existent) {
                                        this.stats.ksize += this._getKeyLength(key);
                                        this.stats.keys++;
                                    }
                                    this.emit("set", key, value);
                                    return true;
                                }
                            },
                            {
                                key: "mset",
                                value: function mset(keyValueSet) {
                                    var _err, err, i, j, key, keyValuePair, len, len1, ttl, val;
                                    boundMethodCheck(this, NodeCache2);
                                    if (this.options.maxKeys > -1 && this.stats.keys + keyValueSet.length >= this.options.maxKeys) {
                                        _err = this._error("ECACHEFULL");
                                        throw _err;
                                    }
                                    for(i = 0, len = keyValueSet.length; i < len; i++){
                                        keyValuePair = keyValueSet[i];
                                        var ref;
                                        ref = keyValuePair, key = ref.key, val = ref.val, ttl = ref.ttl, ref;
                                        if (ttl && typeof ttl !== "number") {
                                            _err = this._error("ETTLTYPE");
                                            throw _err;
                                        }
                                        if ((err = this._isInvalidKey(key)) != null) {
                                            throw err;
                                        }
                                    }
                                    for(j = 0, len1 = keyValueSet.length; j < len1; j++){
                                        keyValuePair = keyValueSet[j];
                                        var ref1;
                                        ref1 = keyValuePair, key = ref1.key, val = ref1.val, ttl = ref1.ttl, ref1;
                                        this.set(key, val, ttl);
                                    }
                                    return true;
                                }
                            },
                            {
                                key: "del",
                                value: function del(keys) {
                                    var delCount, err, i, key, len, oldVal;
                                    boundMethodCheck(this, NodeCache2);
                                    if (!Array.isArray(keys)) {
                                        keys = [
                                            keys
                                        ];
                                    }
                                    delCount = 0;
                                    for(i = 0, len = keys.length; i < len; i++){
                                        key = keys[i];
                                        if ((err = this._isInvalidKey(key)) != null) {
                                            throw err;
                                        }
                                        if (this.data[key] != null) {
                                            this.stats.vsize -= this._getValLength(this._unwrap(this.data[key], false));
                                            this.stats.ksize -= this._getKeyLength(key);
                                            this.stats.keys--;
                                            delCount++;
                                            oldVal = this.data[key];
                                            delete this.data[key];
                                            this.emit("del", key, oldVal.v);
                                        }
                                    }
                                    return delCount;
                                }
                            },
                            {
                                key: "take",
                                value: function take(key) {
                                    var _ret;
                                    boundMethodCheck(this, NodeCache2);
                                    _ret = this.get(key);
                                    if (_ret != null) {
                                        this.del(key);
                                    }
                                    return _ret;
                                }
                            },
                            {
                                key: "ttl",
                                value: function ttl(key, _ttl) {
                                    var err;
                                    boundMethodCheck(this, NodeCache2);
                                    _ttl || (_ttl = this.options.stdTTL);
                                    if (!key) {
                                        return false;
                                    }
                                    if ((err = this._isInvalidKey(key)) != null) {
                                        throw err;
                                    }
                                    if (this.data[key] != null && this._check(key, this.data[key])) {
                                        if (_ttl >= 0) {
                                            this.data[key] = this._wrap(this.data[key].v, _ttl, false);
                                        } else {
                                            this.del(key);
                                        }
                                        return true;
                                    } else {
                                        return false;
                                    }
                                }
                            },
                            {
                                key: "getTtl",
                                value: function getTtl(key) {
                                    var _ttl, err;
                                    boundMethodCheck(this, NodeCache2);
                                    if (!key) {
                                        return void 0;
                                    }
                                    if ((err = this._isInvalidKey(key)) != null) {
                                        throw err;
                                    }
                                    if (this.data[key] != null && this._check(key, this.data[key])) {
                                        _ttl = this.data[key].t;
                                        return _ttl;
                                    } else {
                                        return void 0;
                                    }
                                }
                            },
                            {
                                key: "keys",
                                value: function keys() {
                                    var _keys;
                                    boundMethodCheck(this, NodeCache2);
                                    _keys = Object.keys(this.data);
                                    return _keys;
                                }
                            },
                            {
                                key: "has",
                                value: function has(key) {
                                    var _exists;
                                    boundMethodCheck(this, NodeCache2);
                                    _exists = this.data[key] != null && this._check(key, this.data[key]);
                                    return _exists;
                                }
                            },
                            {
                                key: "getStats",
                                value: function getStats() {
                                    boundMethodCheck(this, NodeCache2);
                                    return this.stats;
                                }
                            },
                            {
                                key: "flushAll",
                                value: function flushAll() {
                                    var _startPeriod = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
                                    boundMethodCheck(this, NodeCache2);
                                    this.data = {};
                                    this.stats = {
                                        hits: 0,
                                        misses: 0,
                                        keys: 0,
                                        ksize: 0,
                                        vsize: 0
                                    };
                                    this._killCheckPeriod();
                                    this._checkData(_startPeriod);
                                    this.emit("flush");
                                }
                            },
                            {
                                key: "flushStats",
                                value: function flushStats() {
                                    boundMethodCheck(this, NodeCache2);
                                    this.stats = {
                                        hits: 0,
                                        misses: 0,
                                        keys: 0,
                                        ksize: 0,
                                        vsize: 0
                                    };
                                    this.emit("flush_stats");
                                }
                            },
                            {
                                key: "close",
                                value: function close() {
                                    boundMethodCheck(this, NodeCache2);
                                    this._killCheckPeriod();
                                }
                            },
                            {
                                key: "_checkData",
                                value: function _checkData() {
                                    var startPeriod = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
                                    var key, ref, value;
                                    boundMethodCheck(this, NodeCache2);
                                    ref = this.data;
                                    for(key in ref){
                                        value = ref[key];
                                        this._check(key, value);
                                    }
                                    if (startPeriod && this.options.checkperiod > 0) {
                                        this.checkTimeout = setTimeout(this._checkData, this.options.checkperiod * 1e3, startPeriod);
                                        if (this.checkTimeout != null && this.checkTimeout.unref != null) {
                                            this.checkTimeout.unref();
                                        }
                                    }
                                }
                            },
                            {
                                // ## _killCheckPeriod
                                // stop the checkdata period. Only needed to abort the script in testing mode.
                                key: "_killCheckPeriod",
                                value: function _killCheckPeriod() {
                                    if (this.checkTimeout != null) {
                                        return clearTimeout(this.checkTimeout);
                                    }
                                }
                            },
                            {
                                key: "_check",
                                value: function _check(key, data) {
                                    var _retval;
                                    boundMethodCheck(this, NodeCache2);
                                    _retval = true;
                                    if (data.t !== 0 && data.t < Date.now()) {
                                        if (this.options.deleteOnExpire) {
                                            _retval = false;
                                            this.del(key);
                                        }
                                        this.emit("expired", key, this._unwrap(data));
                                    }
                                    return _retval;
                                }
                            },
                            {
                                key: "_isInvalidKey",
                                value: function _isInvalidKey(key) {
                                    var ref;
                                    boundMethodCheck(this, NodeCache2);
                                    if (ref = typeof key === "undefined" ? "undefined" : _type_of(key), indexOf.call(this.validKeyTypes, ref) < 0) {
                                        return this._error("EKEYTYPE", {
                                            type: typeof key === "undefined" ? "undefined" : _type_of(key)
                                        });
                                    }
                                }
                            },
                            {
                                key: "_wrap",
                                value: function _wrap(value, ttl) {
                                    var asClone = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
                                    var livetime, now2, oReturn, ttlMultiplicator;
                                    boundMethodCheck(this, NodeCache2);
                                    if (!this.options.useClones) {
                                        asClone = false;
                                    }
                                    now2 = Date.now();
                                    livetime = 0;
                                    ttlMultiplicator = 1e3;
                                    if (ttl === 0) {
                                        livetime = 0;
                                    } else if (ttl) {
                                        livetime = now2 + ttl * ttlMultiplicator;
                                    } else {
                                        if (this.options.stdTTL === 0) {
                                            livetime = this.options.stdTTL;
                                        } else {
                                            livetime = now2 + this.options.stdTTL * ttlMultiplicator;
                                        }
                                    }
                                    return oReturn = {
                                        t: livetime,
                                        v: asClone ? clone2(value) : value
                                    };
                                }
                            },
                            {
                                // ## _unwrap
                                // internal method to extract get the value out of the wrapped value
                                key: "_unwrap",
                                value: function _unwrap(value) {
                                    var asClone = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
                                    if (!this.options.useClones) {
                                        asClone = false;
                                    }
                                    if (value.v != null) {
                                        if (asClone) {
                                            return clone2(value.v);
                                        } else {
                                            return value.v;
                                        }
                                    }
                                    return null;
                                }
                            },
                            {
                                // ## _getKeyLength
                                // internal method the calculate the key length
                                key: "_getKeyLength",
                                value: function _getKeyLength(key) {
                                    return key.toString().length;
                                }
                            },
                            {
                                key: "_getValLength",
                                value: function _getValLength(value) {
                                    boundMethodCheck(this, NodeCache2);
                                    if (typeof value === "string") {
                                        return value.length;
                                    } else if (this.options.forceString) {
                                        return JSON.stringify(value).length;
                                    } else if (Array.isArray(value)) {
                                        return this.options.arrayValueSize * value.length;
                                    } else if (typeof value === "number") {
                                        return 8;
                                    } else if (typeof (value != null ? value.then : void 0) === "function") {
                                        return this.options.promiseValueSize;
                                    } else if (typeof import_buffer.Buffer !== "undefined" && import_buffer.Buffer !== null ? import_buffer.Buffer.isBuffer(value) : void 0) {
                                        return value.length;
                                    } else if (value != null && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
                                        return this.options.objectValueSize * Object.keys(value).length;
                                    } else if (typeof value === "boolean") {
                                        return 8;
                                    } else {
                                        return 0;
                                    }
                                }
                            },
                            {
                                key: "_error",
                                value: function _error(type) {
                                    var data = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
                                    var error;
                                    boundMethodCheck(this, NodeCache2);
                                    error = new Error();
                                    error.name = type;
                                    error.errorcode = type;
                                    error.message = this.ERRORS[type] != null ? this.ERRORS[type](data) : "-";
                                    error.data = data;
                                    return error;
                                }
                            },
                            {
                                key: "_initErrors",
                                value: function _initErrors() {
                                    var _errMsg, _errT, ref;
                                    boundMethodCheck(this, NodeCache2);
                                    this.ERRORS = {};
                                    ref = this._ERRORS;
                                    for(_errT in ref){
                                        _errMsg = ref[_errT];
                                        this.ERRORS[_errT] = this.createErrorMessage(_errMsg);
                                    }
                                }
                            },
                            {
                                key: "createErrorMessage",
                                value: function createErrorMessage(errMsg) {
                                    return function(args) {
                                        return errMsg.replace("__key", args.type);
                                    };
                                }
                            }
                        ]);
                        return NodeCache2;
                    }(EventEmitter5);
                    ;
                    NodeCache2.prototype._ERRORS = {
                        ENOTFOUND: "Key `__key` not found",
                        ECACHEFULL: "Cache max keys amount exceeded",
                        EKEYTYPE: "The key argument has to be of type `string` or `number`. Found: `__key`",
                        EKEYSTYPE: "The keys argument has to be an array.",
                        ETTLTYPE: "The ttl argument has to be a number."
                    };
                    return NodeCache2;
                }).call(this);
            }).call(exports);
        }
    });
    // node_modules/node-cache/index.js
    var require_node_cache2 = __commonJS({
        "node_modules/node-cache/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function() {
                var exports2;
                exports2 = module.exports = require_node_cache();
                exports2.version = "5.1.2";
            }).call(exports);
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/ThrottledActionsChecker.js
    var require_ThrottledActionsChecker = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/ThrottledActionsChecker.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ThrottledActionsChecker = void 0;
            var node_cache_1 = __importDefault(require_node_cache2());
            var ThrottledActionsChecker = /*#__PURE__*/ function() {
                function ThrottledActionsChecker(actionUploader, actionLimitMap) {
                    _class_call_check(this, ThrottledActionsChecker);
                    this.actionUploader = actionUploader;
                    this.actionLimitMap = actionLimitMap;
                    this.cache = new node_cache_1["default"]({
                        checkperiod: 5,
                        deleteOnExpire: true,
                        useClones: false
                    });
                }
                _create_class(ThrottledActionsChecker, [
                    {
                        key: "addActionOrPass",
                        value: function addActionOrPass(action) {
                            return __awaiter(this, void 0, void 0, function() {
                                var key, _this_actionLimitMap_action_type, limit, ttl, counterObj;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            key = "".concat(action.type);
                                            if (!this.actionLimitMap[action.type]) return [
                                                3,
                                                5
                                            ];
                                            _this_actionLimitMap_action_type = this.actionLimitMap[action.type], limit = _this_actionLimitMap_action_type.limit, ttl = _this_actionLimitMap_action_type.windowSecs;
                                            if (!this.cache.has(key)) return [
                                                3,
                                                3
                                            ];
                                            counterObj = this.cache.get(key);
                                            if (!(counterObj && counterObj.counter < limit)) return [
                                                3,
                                                2
                                            ];
                                            counterObj.counter++;
                                            return [
                                                4,
                                                this.actionUploader.addAction(action)
                                            ];
                                        case 1:
                                            _state.sent();
                                            _state.label = 2;
                                        case 2:
                                            return [
                                                3,
                                                5
                                            ];
                                        case 3:
                                            this.cache.set(key, {
                                                counter: 1
                                            }, ttl);
                                            return [
                                                4,
                                                this.actionUploader.addAction(action)
                                            ];
                                        case 4:
                                            _state.sent();
                                            _state.label = 5;
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return ThrottledActionsChecker;
            }();
            exports.ThrottledActionsChecker = ThrottledActionsChecker;
        }
    });
    // node_modules/@signageos/front-display/es6/Offline/offlineActionsSagas.js
    var require_offlineActionsSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Offline/offlineActionsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.offlineActionsSaga = exports.offlineActionFile = void 0;
            var activeAppletActions_1 = require_activeAppletActions();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var offlineActions_1 = require_offlineActions();
            var periodicTaskSaga_1 = require_periodicTaskSaga();
            var OfflineActionsUploader_1 = require_OfflineActionsUploader();
            var dependencyInjection_1 = require_dependencyInjection();
            var systemLogActions_1 = require_systemLogActions();
            var ThrottledActionsChecker_1 = require_ThrottledActionsChecker();
            var ACTIONS_TO_SAVE = [
                activeAppletActions_1.ActiveAppletDispatchCommand,
                systemLogActions_1.SystemLog
            ];
            exports.offlineActionFile = "offlineActions";
            function offlineActionsSaga(fileNamePrefix, getNativeDriver, getManagementDriver, options) {
                var uploader, offlineActionsLimits, actionChecker, deviceUid;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            uploader = new OfflineActionsUploader_1.OfflineActionsUploader(fileNamePrefix, getManagementDriver().fileSystem);
                            return [
                                4,
                                (0, dependencyInjection_1.awaitDependencies)([
                                    "offlineActionsLimits"
                                ])
                            ];
                        case 1:
                            offlineActionsLimits = _state.sent().offlineActionsLimits;
                            actionChecker = new ThrottledActionsChecker_1.ThrottledActionsChecker(uploader, offlineActionsLimits);
                            return [
                                4,
                                getNativeDriver().getDeviceUid()
                            ];
                        case 2:
                            deviceUid = _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                                    "uploadBaseUrl"
                                ], function(param) {
                                    var uploadBaseUrl, _a2, _b2;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                uploadBaseUrl = param.uploadBaseUrl;
                                                return [
                                                    4,
                                                    (0, periodicTaskSaga_1.runPeriodicTaskSagaWhilePlatform)((_a2 = options === null || options === void 0 ? void 0 : options.initDelayMs) !== null && _a2 !== void 0 ? _a2 : 6e4, (_b2 = options === null || options === void 0 ? void 0 : options.periodMs) !== null && _b2 !== void 0 ? _b2 : 6e4, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        uploadOfflineActions(uploader, exports.offlineActionFile, deviceUid, uploadBaseUrl)
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    }, {
                                                        randomize: true
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                }))
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(offlineActions_1.SaveOfflineAction, function(action) {
                                    var e;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                if (!ACTIONS_TO_SAVE.includes(action.action.type)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    actionChecker.addActionOrPass(action.action)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                e = _state.sent();
                                                console.error("offline action ".concat(action.action.type, " failed"), e);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.offlineActionsSaga = offlineActionsSaga;
            function uploadOfflineActions(uploader, fileName, deviceUid, uploadBaseUrl) {
                var response, e;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                uploader.upload(deviceUid, fileName, uploadBaseUrl)
                            ];
                        case 1:
                            response = _state.sent();
                            if (response !== null) {
                                if (response !== OfflineActionsUploader_1.NO_FILE) {
                                    console.info("upload offline actions file ".concat(fileName, " succeeded"));
                                }
                            } else {
                                console.error("upload offline actions file ".concat(fileName, " failed: didn't get a response"));
                            }
                            return [
                                3,
                                3
                            ];
                        case 2:
                            e = _state.sent();
                            console.error("upload offline actions file ".concat(fileName, " failed"), e);
                            return [
                                3,
                                3
                            ];
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/DateTime/timer.js
    var require_timer = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/DateTime/timer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.wait = wait6;
            exports.observeInterval = observeInterval;
            function wait6(window2, timeout) {
                console.warn('wait is deprecated, use import("@signageos/lib/dist/Timer/wait") instead');
                return new Promise(function(resolve) {
                    return window2.setTimeout(resolve, timeout);
                });
            }
            function observeInterval(window2, interval) {
                return new Observable(function(observer) {
                    var runningInterval = window2.setInterval(function() {
                        return observer.next(void 0);
                    }, interval);
                    return function() {
                        return window2.clearInterval(runningInterval);
                    };
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/SosError.js
    var require_SosError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/SosError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var SosError = /*#__PURE__*/ function(Error1) {
                _inherits(SosError, Error1);
                var _super = _create_super(SosError);
                function SosError(param) {
                    var message2 = param.message, code = param.code, suggestion = param.suggestion, pathToDocs = param.pathToDocs;
                    _class_call_check(this, SosError);
                    var _this;
                    _this = _super.call(this, message2);
                    _this.name = "SosError";
                    _this.code = code;
                    _this.suggestion = suggestion;
                    _this.pathToDocs = pathToDocs;
                    return _this;
                }
                return SosError;
            }(_wrap_native_super(Error));
            exports["default"] = SosError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletError.js
    var require_AppletError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var SosError_1 = __importDefault(require_SosError());
            var AppletError = /*#__PURE__*/ function(_SosError_1_default) {
                _inherits(AppletError, _SosError_1_default);
                var _super = _create_super(AppletError);
                function AppletError(parameters2) {
                    _class_call_check(this, AppletError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        kind: "sosError"
                    }));
                    _this.name = "AppletError";
                    return _this;
                }
                return AppletError;
            }(SosError_1["default"]);
            exports["default"] = AppletError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/FileNotFoundError.js
    var require_FileNotFoundError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/FileNotFoundError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var FileNotFoundError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(FileNotFoundError, _AppletError_1_default);
                var _super = _create_super(FileNotFoundError);
                function FileNotFoundError(parameters2) {
                    _class_call_check(this, FileNotFoundError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        kind: "appletError"
                    }));
                    _this.name = "FileNotFoundError";
                    return _this;
                }
                return FileNotFoundError;
            }(AppletError_1["default"]);
            exports["default"] = FileNotFoundError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/ErrorCodes.js
    var require_ErrorCodes = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/ErrorCodes.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var ErrorCodes;
            (function(ErrorCodes2) {
                ErrorCodes2["UNEXPECTED_EXCEPTION"] = "UNEXPECTED_EXCEPTION";
                ErrorCodes2["FILE_IS_ALREADY_LOADING"] = "40105";
                ErrorCodes2["FILE_ALREADY_EXISTS"] = "40106";
                ErrorCodes2["FILE_NOT_FOUND"] = "49901";
                ErrorCodes2["BROWSER_LINK_IS_NOT_STRING"] = "40301";
                ErrorCodes2["BROWSER_OPEN_LINK_ERROR"] = "50301";
                ErrorCodes2["COMMAND_TYPE_IS_NOT_STRING"] = "40403";
                ErrorCodes2["FILE_SYSTEM_LIST_STORAGE_UNITS_ERROR"] = "50501";
                ErrorCodes2["FILE_SYSTEM_LIST_FILES_ERROR"] = "50502";
                ErrorCodes2["FILE_SYSTEM_FILE_EXISTS_ERROR"] = "50503";
                ErrorCodes2["FILE_SYSTEM_GET_FILE_ERROR"] = "50504";
                ErrorCodes2["FILE_SYSTEM_WRITE_FILE_ERROR"] = "50505";
                ErrorCodes2["FILE_SYSTEM_COPY_FILE_ERROR"] = "50506";
                ErrorCodes2["FILE_SYSTEM_MOVE_FILE_ERROR"] = "50507";
                ErrorCodes2["FILE_SYSTEM_DELETE_FILE_ERROR"] = "50508";
                ErrorCodes2["FILE_SYSTEM_DOWNLOAD_FILE_ERROR"] = "50509";
                ErrorCodes2["FILE_SYSTEM_EXTRACT_FILE_ERROR"] = "50510";
                ErrorCodes2["FILE_SYSTEM_GET_CHECKSUM_ERROR"] = "50511";
                ErrorCodes2["FILE_SYSTEM_CREATE_DIR_ERROR"] = "50512";
                ErrorCodes2["FILE_SYSTEM_IS_DIR_ERROR"] = "50513";
                ErrorCodes2["FILE_SYSTEM_READ_FILE_ERROR"] = "50514";
                ErrorCodes2["FILE_SYSTEM_LINK_ERROR"] = "50515";
                ErrorCodes2["FILE_SYSTEM_LINK_NOT_SUPPORTED"] = "50516";
                ErrorCodes2["FILE_SYSTEM_APPEND_FILE_ERROR"] = "50517";
                ErrorCodes2["FILE_SYSTEM_CREATE_ARCHIVE_FILE_ERROR"] = "50518";
                ErrorCodes2["FILE_SYSTEM_WIPEOUT_ERROR"] = "50519";
                ErrorCodes2["HARDWARE_SET_COLOR_ERROR"] = "50601";
                ErrorCodes2["HARDWARE_OPEN_SERIAL_PORT_ERROR"] = "50602";
                ErrorCodes2["HARDWARE_CLOSE_SERIAL_PORT_ERROR"] = "50603";
                ErrorCodes2["HARDWARE_WRITE_TO_SERIAL_PORT_ERROR"] = "50604";
                ErrorCodes2["HARDWARE_GET_BARCODE_SCANNER_VERSION_ERROR"] = "50605";
                ErrorCodes2["HARDWARE_START_OF_UNKNOWN_BARCODE_SCANNER"] = "50606";
                ErrorCodes2["HARDWARE_START_OF_BUSY_BARCODE_SCANNER"] = "50607";
                ErrorCodes2["HARDWARE_START_OF_BARCODE_SCANNER_ERROR"] = "50608";
                ErrorCodes2["HARDWARE_DEFAULT_DEVICE_NOT_FOUND"] = "50609";
                ErrorCodes2["HARDWARE_STOP_OF_IDLE_BARCODE_SCANNER"] = "50611";
                ErrorCodes2["HARDWARE_STOP_OF_BARCODE_SCANNER_ERROR"] = "50612";
                ErrorCodes2["OFFLINE_CACHE_LIST_FILES_ERROR"] = "50901";
                ErrorCodes2["OFFLINE_CACHE_SAVE_FILE_GET_FILE_ERROR"] = "50902";
                ErrorCodes2["OFFLINE_CACHE_GET_FILE_ERROR"] = "50903";
                ErrorCodes2["NATIVE_CACHE_GET_CONTENT_ERROR"] = "51001";
                ErrorCodes2["NATIVE_CACHE_SAVE_CONTENT_ERROR"] = "51002";
                ErrorCodes2["NATIVE_CACHE_DELETE_CONTENT_ERROR"] = "51003";
                ErrorCodes2["NATIVE_CACHE_ALREADY_SAVING_CONTENT"] = "41001";
                ErrorCodes2["SYNCHRONIZER_CONNECT_ERROR"] = "51101";
                ErrorCodes2["SYNCHRONIZER_CLOSE_ERROR"] = "51102";
                ErrorCodes2["SYNCHRONIZER_JOIN_GROUP_ERROR"] = "51103";
                ErrorCodes2["SYNCHRONIZER_WAIT_ERROR"] = "51104";
                ErrorCodes2["SYNCHRONIZER_BROADCAST_VALUE_ERROR"] = "51105";
                ErrorCodes2["SYNCHRONIZER_LEAVE_GROUP_ERROR"] = "51106";
                ErrorCodes2["SYNCHRONIZER_CANCEL_WAIT_ERROR"] = "51107";
                ErrorCodes2["SYNCHRONIZER_IS_MASTER_ERROR"] = "51108";
                ErrorCodes2["STREAM_STOP_ERROR"] = "51301";
                ErrorCodes2["STREAM_PREPARE_ERROR"] = "51302";
                ErrorCodes2["STREAM_GET_TRACKS_ERROR"] = "51303";
                ErrorCodes2["STREAM_SELECT_TRACK"] = "51304";
                ErrorCodes2["STREAM_RESET_TRACK"] = "51305";
                ErrorCodes2["STREAM_PAUSE_ERROR"] = "51306";
                ErrorCodes2["STREAM_RESUME_ERROR"] = "51307";
                ErrorCodes2["STREAM_PLAY_ERROR"] = "51308";
                ErrorCodes2["VIDEO_PLAY_ERROR"] = "51501";
                ErrorCodes2["VIDEO_PREPARE_ERROR"] = "51502";
                ErrorCodes2["VIDEO_STOP_ERROR"] = "51503";
                ErrorCodes2["VIDEO_PAUSE_ERROR"] = "51504";
                ErrorCodes2["VIDEO_RESUME_ERROR"] = "51505";
                ErrorCodes2["DISPLAY_CAPABILITY_INVALID"] = "41601";
                ErrorCodes2["SECURITY_PIN_CODE_INVALID"] = "41701";
                ErrorCodes2["SECURITY_PIN_CODE_0000"] = "41702";
                ErrorCodes2["SECURITY_PIN_CODE_NOT_SET_YET"] = "41703";
            })(ErrorCodes || (ErrorCodes = {}));
            exports["default"] = ErrorCodes;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/ErrorSuggestions.js
    var require_ErrorSuggestions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/ErrorSuggestions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var ErrorSuggestions;
            (function(ErrorSuggestions2) {
                ErrorSuggestions2["FILE_IS_ALREADY_LOADING"] = "Please, check your code for multiple occurrences of addFile/s methods.";
                ErrorSuggestions2["FILE_ALREADY_EXISTS"] = "Please, check your code for occurrences of addFile/s methods on lines before this error.";
                ErrorSuggestions2["FILE_NOT_FOUND"] = "Please, check if the used URL is correct.";
                ErrorSuggestions2["SECURITY_PIN_CODE_NOT_SET_YET"] = "Try again later or setPinCode by yourself first.";
            })(ErrorSuggestions || (ErrorSuggestions = {}));
            exports["default"] = ErrorSuggestions;
        }
    });
    // node_modules/@signageos/front-display/es6/OfflineCache/OfflineCache.js
    var require_OfflineCache = __commonJS({
        "node_modules/@signageos/front-display/es6/OfflineCache/OfflineCache.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var async_lock_1 = __importDefault(require_async_lock());
            var path_1 = require_path_browserify();
            var lodash_1 = __importDefault(require_lodash());
            var timer_1 = require_timer();
            var FileNotFoundError_1 = __importDefault(require_FileNotFoundError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var ErrorSuggestions_1 = __importDefault(require_ErrorSuggestions());
            var constants_1 = require_constants();
            var DATA_PATH_PREFIX = "data";
            var OfflineCache = /*#__PURE__*/ function() {
                function OfflineCache(fileSystem) {
                    var _this = this;
                    _class_call_check(this, OfflineCache);
                    this.fileSystem = fileSystem;
                    this.storageUnitsCache = null;
                    this.asyncLock = new async_lock_1["default"]();
                    this.fileSystem.onStorageUnitsChanged(function() {
                        return _this.storageUnitsCache = null;
                    });
                    setInterval(function() {
                        return _this.storageUnitsCache = null;
                    }, constants_1.REGULARLY);
                }
                _create_class(OfflineCache, [
                    {
                        key: "retriableDownloadFile",
                        value: function retriableDownloadFile(countOfRetrials, uid, uri, headers) {
                            var forceInternalStorageUnit = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
                            return __awaiter(this, void 0, void 0, function() {
                                var storageUnit, targetFilePath, error, defferSeconds;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                4,
                                                ,
                                                9
                                            ]);
                                            return [
                                                4,
                                                this.getMostFreeStorageUnit(forceInternalStorageUnit)
                                            ];
                                        case 1:
                                            storageUnit = _state.sent();
                                            targetFilePath = {
                                                storageUnit: storageUnit,
                                                filePath: this.addDataPrefixToUid(uid)
                                            };
                                            return [
                                                4,
                                                this.ensureDirectory({
                                                    storageUnit: storageUnit,
                                                    filePath: this.getParentDirectoryPath(targetFilePath.filePath)
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.fileSystem.downloadFile(targetFilePath, uri, headers)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                3,
                                                9
                                            ];
                                        case 4:
                                            error = _state.sent();
                                            console.info("Failed to download " + uid + ". Retrying " + countOfRetrials, error);
                                            if (!(countOfRetrials > 0)) return [
                                                3,
                                                7
                                            ];
                                            defferSeconds = Math.pow(2, Math.max(5 - countOfRetrials, 0));
                                            return [
                                                4,
                                                (0, timer_1.wait)(window, defferSeconds * constants_1.CONSTANTLY)
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                4,
                                                this.retriableDownloadFile(countOfRetrials - 1, uid, uri, headers)
                                            ];
                                        case 6:
                                            _state.sent();
                                            return [
                                                3,
                                                8
                                            ];
                                        case 7:
                                            throw error;
                                        case 8:
                                            return [
                                                3,
                                                9
                                            ];
                                        case 9:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "fileExists",
                        value: function fileExists(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                7,
                                                8,
                                                9
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                6
                                            ];
                                            storageUnit = _step.value;
                                            return [
                                                4,
                                                this.fileSystem.exists({
                                                    storageUnit: storageUnit,
                                                    filePath: prefixedPath
                                                })
                                            ];
                                        case 4:
                                            if (_state.sent()) {
                                                return [
                                                    2,
                                                    true
                                                ];
                                            }
                                            _state.label = 5;
                                        case 5:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 6:
                                            return [
                                                3,
                                                9
                                            ];
                                        case 7:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                9
                                            ];
                                        case 8:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 9:
                                            return [
                                                2,
                                                false
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "fileIsDirectory",
                        value: function fileIsDirectory(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                8,
                                                9,
                                                10
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                7
                                            ];
                                            storageUnit = _step.value;
                                            return [
                                                4,
                                                this.fileSystem.exists({
                                                    storageUnit: storageUnit,
                                                    filePath: prefixedPath
                                                })
                                            ];
                                        case 4:
                                            if (!_state.sent()) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.isDirectory({
                                                    storageUnit: storageUnit,
                                                    filePath: prefixedPath
                                                })
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 6:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 7:
                                            return [
                                                3,
                                                10
                                            ];
                                        case 8:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                10
                                            ];
                                        case 9:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 10:
                                            throw this.createFileNotFoundError(uid);
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFile",
                        value: function getFile(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, filePath, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                8,
                                                9,
                                                10
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                7
                                            ];
                                            storageUnit = _step.value;
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedPath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 4:
                                            if (!_state.sent()) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.getFile(filePath)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 6:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 7:
                                            return [
                                                3,
                                                10
                                            ];
                                        case 8:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                10
                                            ];
                                        case 9:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 10:
                                            throw this.createFileNotFoundError(uid);
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFullFilePath",
                        value: function getFullFilePath(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, filePath, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                7,
                                                8,
                                                9
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                6
                                            ];
                                            storageUnit = _step.value;
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedPath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 4:
                                            if (_state.sent()) {
                                                return [
                                                    2,
                                                    filePath
                                                ];
                                            }
                                            _state.label = 5;
                                        case 5:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 6:
                                            return [
                                                3,
                                                9
                                            ];
                                        case 7:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                9
                                            ];
                                        case 8:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 9:
                                            throw this.createFileNotFoundError(uid);
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "readFile",
                        value: function readFile(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, filePath, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                8,
                                                9,
                                                10
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                7
                                            ];
                                            storageUnit = _step.value;
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedPath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 4:
                                            if (!_state.sent()) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.readFile(filePath)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 6:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 7:
                                            return [
                                                3,
                                                10
                                            ];
                                        case 8:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                10
                                            ];
                                        case 9:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 10:
                                            throw this.createFileNotFoundError(uid);
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteFile",
                        value: function deleteFile(uid, recursive) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, filePath, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileExists(uid)
                                            ];
                                        case 1:
                                            if (!_state.sent()) {
                                                throw this.createFileNotFoundError(uid);
                                            }
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 2:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 3;
                                        case 3:
                                            _state.trys.push([
                                                3,
                                                9,
                                                10,
                                                11
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 4;
                                        case 4:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                8
                                            ];
                                            storageUnit = _step.value;
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedPath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 5:
                                            if (!_state.sent()) return [
                                                3,
                                                7
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.deleteFile(filePath, recursive)
                                            ];
                                        case 6:
                                            _state.sent();
                                            _state.label = 7;
                                        case 7:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                4
                                            ];
                                        case 8:
                                            return [
                                                3,
                                                11
                                            ];
                                        case 9:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                11
                                            ];
                                        case 10:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 11:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteFileAndDeleteDirectoryIfEmpty",
                        value: function deleteFileAndDeleteDirectoryIfEmpty(uid) {
                            var recursive = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
                            return __awaiter(this, void 0, void 0, function() {
                                var parentDirectoryUid;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.deleteFile(uid, recursive)
                                            ];
                                        case 1:
                                            _state.sent();
                                            parentDirectoryUid = this.getParentDirectoryPath(uid);
                                            if (!(parentDirectoryUid !== "")) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.deleteDirectoryIfEmpty(parentDirectoryUid)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFileChecksum",
                        value: function getFileChecksum(uid, hashType) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, filePath, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                8,
                                                9,
                                                10
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                7
                                            ];
                                            storageUnit = _step.value;
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedPath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 4:
                                            if (!_state.sent()) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.getFileChecksum(filePath, hashType)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 6:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 7:
                                            return [
                                                3,
                                                10
                                            ];
                                        case 8:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                10
                                            ];
                                        case 9:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 10:
                                            throw this.createFileNotFoundError(uid);
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "extractFile",
                        value: function extractFile(archiveUid, destinationDirectoryUid, method) {
                            var forceInternalStorageUnit = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, prefixedArchivePath, prefixedDestinationDirectoryPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, archiveFilePath, destinationStorageUnit, destinationDirectoryPath, destinationFileUids, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            prefixedArchivePath = this.addDataPrefixToUid(archiveUid);
                                            prefixedDestinationDirectoryPath = this.addDataPrefixToUid(destinationDirectoryUid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                14,
                                                15,
                                                16
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                13
                                            ];
                                            storageUnit = _step.value;
                                            archiveFilePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedArchivePath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(archiveFilePath)
                                            ];
                                        case 4:
                                            if (!_state.sent()) return [
                                                3,
                                                12
                                            ];
                                            return [
                                                4,
                                                this.getMostFreeStorageUnit(forceInternalStorageUnit)
                                            ];
                                        case 5:
                                            destinationStorageUnit = _state.sent();
                                            destinationDirectoryPath = {
                                                storageUnit: destinationStorageUnit,
                                                filePath: prefixedDestinationDirectoryPath
                                            };
                                            return [
                                                4,
                                                this.listFilesRecursively(destinationDirectoryUid)
                                            ];
                                        case 6:
                                            destinationFileUids = _state.sent();
                                            return [
                                                4,
                                                this.fileExists(destinationDirectoryUid)
                                            ];
                                        case 7:
                                            if (!_state.sent()) return [
                                                3,
                                                9
                                            ];
                                            return [
                                                4,
                                                Promise.all(destinationFileUids.map(function(destinationFileUid) {
                                                    return _this.deleteFileAndDeleteDirectoryIfEmpty(destinationFileUid);
                                                }))
                                            ];
                                        case 8:
                                            _state.sent();
                                            _state.label = 9;
                                        case 9:
                                            return [
                                                4,
                                                this.ensureDirectory(destinationDirectoryPath)
                                            ];
                                        case 10:
                                            _state.sent();
                                            return [
                                                4,
                                                this.fileSystem.extractFile(archiveFilePath, destinationDirectoryPath, method)
                                            ];
                                        case 11:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 12:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 13:
                                            return [
                                                3,
                                                16
                                            ];
                                        case 14:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                16
                                            ];
                                        case 15:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 16:
                                            throw new FileNotFoundError_1["default"]({
                                                kind: "fileNotFoundError",
                                                message: "Archive file ".concat(archiveUid, " was not found"),
                                                code: ErrorCodes_1["default"].FILE_NOT_FOUND,
                                                suggestion: ErrorSuggestions_1["default"].FILE_NOT_FOUND
                                            });
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getArchiveInfo",
                        value: function getArchiveInfo(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var prefixedPath, storageUnits, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, storageUnit, filePath, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            prefixedPath = this.addDataPrefixToUid(uid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                8,
                                                9,
                                                10
                                            ]);
                                            _iterator = storageUnits[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                7
                                            ];
                                            storageUnit = _step.value;
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: prefixedPath
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 4:
                                            if (!_state.sent()) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.getArchiveInfo(filePath)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 6:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 7:
                                            return [
                                                3,
                                                10
                                            ];
                                        case 8:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                10
                                            ];
                                        case 9:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 10:
                                            throw this.createFileNotFoundError(uid);
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "listFilesRecursively",
                        value: function listFilesRecursively() {
                            var directoryUid = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, fileUids, recursiveFileUids, _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.fileExists(directoryUid)
                                            ];
                                        case 1:
                                            if (!_state.sent()) {
                                                return [
                                                    2,
                                                    []
                                                ];
                                            }
                                            return [
                                                4,
                                                this.listFileUids(directoryUid)
                                            ];
                                        case 2:
                                            fileUids = _state.sent();
                                            recursiveFileUids = fileUids.map(function(fileUid) {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                return [
                                                                    4,
                                                                    this.fileIsDirectory(fileUid)
                                                                ];
                                                            case 1:
                                                                if (!_state.sent()) return [
                                                                    3,
                                                                    3
                                                                ];
                                                                return [
                                                                    4,
                                                                    this.listFilesRecursively(fileUid)
                                                                ];
                                                            case 2:
                                                                return [
                                                                    2,
                                                                    _state.sent()
                                                                ];
                                                            case 3:
                                                                return [
                                                                    2,
                                                                    fileUid
                                                                ];
                                                            case 4:
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                });
                                            });
                                            _1 = (_ = lodash_1["default"]).flatten;
                                            return [
                                                4,
                                                Promise.all(recursiveFileUids)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _1.apply(_, [
                                                    _state.sent()
                                                ])
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "listFileUids",
                        value: function listFileUids(directoryUid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, prefixedDirectoryPath, storageUnits, _, _1, _2, _3;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            prefixedDirectoryPath = this.addDataPrefixToUid(directoryUid);
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            _1 = (_ = lodash_1["default"]).uniq;
                                            _3 = (_2 = lodash_1["default"]).flatten;
                                            return [
                                                4,
                                                Promise.all(storageUnits.map(function(storageUnit) {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var _this, directoryPath, filePaths;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _this = this;
                                                                    directoryPath = {
                                                                        storageUnit: storageUnit,
                                                                        filePath: prefixedDirectoryPath
                                                                    };
                                                                    return [
                                                                        4,
                                                                        this.fileSystem.exists(directoryPath)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        this.fileSystem.listFiles(directoryPath)
                                                                    ];
                                                                case 2:
                                                                    filePaths = _state.sent();
                                                                    return [
                                                                        2,
                                                                        filePaths.map(function(filePath) {
                                                                            return _this.stripDataPrefixFromPath(filePath.filePath);
                                                                        })
                                                                    ];
                                                                case 3:
                                                                    return [
                                                                        2,
                                                                        []
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                }))
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _1.apply(_, [
                                                    _3.apply(_2, [
                                                        _state.sent()
                                                    ])
                                                ])
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteDirectoryIfEmpty",
                        value: function deleteDirectoryIfEmpty(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.asyncLock.acquire("cleanupDirectory.".concat(uid), function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var files;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        this.fileExists(uid)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        this.listFileUids(uid)
                                                                    ];
                                                                case 2:
                                                                    files = _state.sent();
                                                                    if (!(files.length === 0)) return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        this.deleteFileAndDeleteDirectoryIfEmpty(uid)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    _state.label = 4;
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureDirectory",
                        value: function ensureDirectory(directoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.exists(directoryPath)
                                            ];
                                        case 1:
                                            if (!!_state.sent()) return [
                                                3,
                                                5
                                            ];
                                            if (!!this.isRootFilePath(directoryPath)) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.ensureDirectory({
                                                    storageUnit: directoryPath.storageUnit,
                                                    filePath: this.getParentDirectoryPath(directoryPath.filePath)
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                4,
                                                this.fileSystem.createDirectory(directoryPath)
                                            ];
                                        case 4:
                                            _state.sent();
                                            _state.label = 5;
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getParentDirectoryPath",
                        value: function getParentDirectoryPath(directoryPath) {
                            var parentDirectoryPath = path_1.posix.dirname(directoryPath);
                            if (parentDirectoryPath === ".") {
                                return "";
                            } else {
                                return parentDirectoryPath;
                            }
                        }
                    },
                    {
                        key: "isRootFilePath",
                        value: function isRootFilePath(filePath) {
                            return filePath.filePath === DATA_PATH_PREFIX;
                        }
                    },
                    {
                        key: "getMostFreeStorageUnit",
                        value: function getMostFreeStorageUnit() {
                            var onlyInternal = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
                            return __awaiter(this, void 0, void 0, function() {
                                var storageUnits;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            if (onlyInternal) {
                                                storageUnits = storageUnits.filter(function(storageUnit) {
                                                    return !storageUnit.removable;
                                                });
                                            }
                                            return [
                                                2,
                                                storageUnits.sort(function(a, b) {
                                                    return b.usableSpace - a.usableSpace;
                                                })[0]
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getStorageUnits",
                        value: function getStorageUnits() {
                            return __awaiter(this, void 0, void 0, function() {
                                var storageUnits;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (this.storageUnitsCache !== null) {
                                                return [
                                                    2,
                                                    this.storageUnitsCache
                                                ];
                                            }
                                            return [
                                                4,
                                                this.fileSystem.listStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            this.storageUnitsCache = storageUnits;
                                            return [
                                                2,
                                                storageUnits
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "addDataPrefixToUid",
                        value: function addDataPrefixToUid(filePath) {
                            if (filePath === "") {
                                return DATA_PATH_PREFIX;
                            }
                            return DATA_PATH_PREFIX + "/" + filePath;
                        }
                    },
                    {
                        key: "stripDataPrefixFromPath",
                        value: function stripDataPrefixFromPath(filePath) {
                            var uid = filePath;
                            if (uid.startsWith(DATA_PATH_PREFIX)) {
                                uid = uid.slice(DATA_PATH_PREFIX.length);
                            }
                            if (uid.startsWith("/")) {
                                return uid.slice(1);
                            }
                            return uid;
                        }
                    },
                    {
                        key: "createFileNotFoundError",
                        value: function createFileNotFoundError(fileUid) {
                            return new FileNotFoundError_1["default"]({
                                kind: "fileNotFoundError",
                                message: "File ".concat(fileUid, " was not found"),
                                code: ErrorCodes_1["default"].FILE_NOT_FOUND,
                                suggestion: ErrorSuggestions_1["default"].FILE_NOT_FOUND
                            });
                        }
                    }
                ]);
                return OfflineCache;
            }();
            exports["default"] = OfflineCache;
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/socketHealthCheckSagas.js
    var require_socketHealthCheckSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/socketHealthCheckSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.healthChecking = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var wait_1 = __importDefault(require_wait());
            var socketActions_1 = require_socketActions();
            var applicationActions_1 = require_applicationActions2();
            var socketActions_2 = require_socketActions2();
            var debug_1 = __importDefault(require_browser2());
            var constants_1 = require_constants();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Socket:socketHealthCheckSagas");
            function healthChecking() {
                var platformUri, socketDriver, isSocketConnected;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            isSocketConnected = false;
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(socketActions_1.PlatformConnect, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        platformUri = action.platformUri;
                                        socketDriver = action.driver;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(socketActions_2.SocketConnected, function() {
                                    return _ts_generator(this, function(_state) {
                                        debug4("socket connected");
                                        isSocketConnected = true;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(socketActions_1.SocketDisconnected, function() {
                                    return _ts_generator(this, function(_state) {
                                        debug4("socket disconnected");
                                        isSocketConnected = false;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var _loop, RESPONSE_TIMEOUT;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _loop = function() {
                                                    var checkSocketHealth, error;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                _state.trys.push([
                                                                    0,
                                                                    5,
                                                                    8,
                                                                    10
                                                                ]);
                                                                if (!isSocketConnected) return [
                                                                    3,
                                                                    3
                                                                ];
                                                                return [
                                                                    4,
                                                                    (0, effects_1.put)({
                                                                        type: socketActions_2.CheckSocketHealth
                                                                    })
                                                                ];
                                                            case 1:
                                                                checkSocketHealth = _state.sent();
                                                                return [
                                                                    4,
                                                                    new Promise(function(resolve, reject) {
                                                                        var timoutHandler = setTimeout(function() {
                                                                            return reject(new Error("Action timed out"));
                                                                        }, RESPONSE_TIMEOUT);
                                                                        checkSocketHealth.__emitter.once("delivered", function() {
                                                                            clearTimeout(timoutHandler);
                                                                            resolve();
                                                                        });
                                                                    })
                                                                ];
                                                            case 2:
                                                                _state.sent();
                                                                return [
                                                                    3,
                                                                    4
                                                                ];
                                                            case 3:
                                                                debug4("don't check because socket isn't connected");
                                                                _state.label = 4;
                                                            case 4:
                                                                return [
                                                                    3,
                                                                    10
                                                                ];
                                                            case 5:
                                                                error = _state.sent();
                                                                debug4("healthChecking failed. Try reconnect socket.", error);
                                                                if (!isSocketConnected) return [
                                                                    3,
                                                                    7
                                                                ];
                                                                return [
                                                                    4,
                                                                    (0, effects_1.put)({
                                                                        type: socketActions_1.PlatformConnect,
                                                                        platformUri: platformUri,
                                                                        driver: socketDriver,
                                                                        trigger: "Health-check failed"
                                                                    })
                                                                ];
                                                            case 6:
                                                                _state.sent();
                                                                _state.label = 7;
                                                            case 7:
                                                                return [
                                                                    3,
                                                                    10
                                                                ];
                                                            case 8:
                                                                return [
                                                                    4,
                                                                    (0, wait_1["default"])(2 * constants_1.SOMETIMES)
                                                                ];
                                                            case 9:
                                                                _state.sent();
                                                                return [
                                                                    7
                                                                ];
                                                            case 10:
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                };
                                                RESPONSE_TIMEOUT = constants_1.SOMETIMES;
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.SOMETIMES)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                if (!true) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    5,
                                                    _ts_values(_loop())
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    3,
                                                    2
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.healthChecking = healthChecking;
        }
    });
    // node_modules/@signageos/front-display/es6/ReduxSaga/channels.js
    var require_channels = __commonJS({
        "node_modules/@signageos/front-display/es6/ReduxSaga/channels.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createChannel = exports.takeEvery = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var takeEvery2 = function takeEvery2(channel4, saga) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.spawn)(function() {
                                    var message2;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!true) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.call)(channel4.take)
                                                ];
                                            case 1:
                                                message2 = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.fork)(saga, message2)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    0
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            };
            exports.takeEvery = takeEvery2;
            function createChannel(executor) {
                var messageQueue = [];
                var resolveQueue = [];
                var rejectQueue = [];
                var open = true;
                function put2(message2) {
                    if (resolveQueue.length) {
                        var nextResolve = resolveQueue.shift();
                        rejectQueue.shift();
                        nextResolve(message2);
                    } else if (open) {
                        messageQueue.push(message2);
                    }
                }
                function take2() {
                    if (messageQueue.length) {
                        return Promise.resolve(messageQueue.shift());
                    } else if (open) {
                        return new Promise(function(resolve, reject) {
                            resolveQueue.push(resolve);
                            rejectQueue.push(reject);
                        });
                    } else {
                        return Promise.reject();
                    }
                }
                function close() {
                    open = false;
                    while(resolveQueue.length > 0){
                        resolveQueue.shift();
                        var nextReject = rejectQueue.shift();
                        nextReject();
                    }
                }
                if (executor) {
                    executor(put2);
                }
                return {
                    take: take2,
                    put: put2,
                    close: close
                };
            }
            exports.createChannel = createChannel;
        }
    });
    // node_modules/parseuri/index.js
    var require_parseuri = __commonJS({
        "node_modules/parseuri/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;
            var parts = [
                "source",
                "protocol",
                "authority",
                "userInfo",
                "user",
                "password",
                "host",
                "port",
                "relative",
                "path",
                "directory",
                "file",
                "query",
                "anchor"
            ];
            module.exports = function parseuri(str) {
                var src = str, b = str.indexOf("["), e = str.indexOf("]");
                if (b != -1 && e != -1) {
                    str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ";") + str.substring(e, str.length);
                }
                var m = re.exec(str || ""), uri = {}, i = 14;
                while(i--){
                    uri[parts[i]] = m[i] || "";
                }
                if (b != -1 && e != -1) {
                    uri.source = src;
                    uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ":");
                    uri.authority = uri.authority.replace("[", "").replace("]", "").replace(/;/g, ":");
                    uri.ipv6uri = true;
                }
                return uri;
            };
        }
    });
    // node_modules/socket.io-client/node_modules/ms/index.js
    var require_ms2 = __commonJS({
        "node_modules/socket.io-client/node_modules/ms/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var s = 1e3;
            var m = s * 60;
            var h = m * 60;
            var d = h * 24;
            var y = d * 365.25;
            module.exports = function(val, options) {
                options = options || {};
                var type = typeof val === "undefined" ? "undefined" : _type_of(val);
                if (type === "string" && val.length > 0) {
                    return parse2(val);
                } else if (type === "number" && isNaN(val) === false) {
                    return options["long"] ? fmtLong(val) : fmtShort(val);
                }
                throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
            };
            function parse2(str) {
                str = String(str);
                if (str.length > 1e4) {
                    return;
                }
                var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
                if (!match) {
                    return;
                }
                var n = parseFloat(match[1]);
                var type = (match[2] || "ms").toLowerCase();
                switch(type){
                    case "years":
                    case "year":
                    case "yrs":
                    case "yr":
                    case "y":
                        return n * y;
                    case "days":
                    case "day":
                    case "d":
                        return n * d;
                    case "hours":
                    case "hour":
                    case "hrs":
                    case "hr":
                    case "h":
                        return n * h;
                    case "minutes":
                    case "minute":
                    case "mins":
                    case "min":
                    case "m":
                        return n * m;
                    case "seconds":
                    case "second":
                    case "secs":
                    case "sec":
                    case "s":
                        return n * s;
                    case "milliseconds":
                    case "millisecond":
                    case "msecs":
                    case "msec":
                    case "ms":
                        return n;
                    default:
                        return void 0;
                }
            }
            function fmtShort(ms) {
                if (ms >= d) {
                    return Math.round(ms / d) + "d";
                }
                if (ms >= h) {
                    return Math.round(ms / h) + "h";
                }
                if (ms >= m) {
                    return Math.round(ms / m) + "m";
                }
                if (ms >= s) {
                    return Math.round(ms / s) + "s";
                }
                return ms + "ms";
            }
            function fmtLong(ms) {
                return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
            }
            function plural(ms, n, name) {
                if (ms < n) {
                    return;
                }
                if (ms < n * 1.5) {
                    return Math.floor(ms / n) + " " + name;
                }
                return Math.ceil(ms / n) + " " + name + "s";
            }
        }
    });
    // node_modules/socket.io-client/node_modules/debug/debug.js
    var require_debug = __commonJS({
        "node_modules/socket.io-client/node_modules/debug/debug.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = debug4.debug = debug4;
            exports.coerce = coerce;
            exports.disable = disable;
            exports.enable = enable;
            exports.enabled = enabled;
            exports.humanize = require_ms2();
            exports.names = [];
            exports.skips = [];
            exports.formatters = {};
            var prevColor = 0;
            var prevTime;
            function selectColor() {
                return exports.colors[prevColor++ % exports.colors.length];
            }
            function debug4(namespace) {
                function disabled() {}
                disabled.enabled = false;
                function enabled2() {
                    var self2 = enabled2;
                    var curr = +/* @__PURE__ */ new Date();
                    var ms = curr - (prevTime || curr);
                    self2.diff = ms;
                    self2.prev = prevTime;
                    self2.curr = curr;
                    prevTime = curr;
                    if (null == self2.useColors) self2.useColors = exports.useColors();
                    if (null == self2.color && self2.useColors) self2.color = selectColor();
                    var args = new Array(arguments.length);
                    for(var i = 0; i < args.length; i++){
                        args[i] = arguments[i];
                    }
                    args[0] = exports.coerce(args[0]);
                    if ("string" !== typeof args[0]) {
                        args = [
                            "%o"
                        ].concat(args);
                    }
                    var index = 0;
                    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
                        if (match === "%%") return match;
                        index++;
                        var formatter = exports.formatters[format];
                        if ("function" === typeof formatter) {
                            var val = args[index];
                            match = formatter.call(self2, val);
                            args.splice(index, 1);
                            index--;
                        }
                        return match;
                    });
                    args = exports.formatArgs.apply(self2, args);
                    var logFn = enabled2.log || exports.log || console.log.bind(console);
                    logFn.apply(self2, args);
                }
                enabled2.enabled = true;
                var fn = exports.enabled(namespace) ? enabled2 : disabled;
                fn.namespace = namespace;
                return fn;
            }
            function enable(namespaces) {
                exports.save(namespaces);
                var split = (namespaces || "").split(/[\s,]+/);
                var len = split.length;
                for(var i = 0; i < len; i++){
                    if (!split[i]) continue;
                    namespaces = split[i].replace(/[\\^$+?.()|[\]{}]/g, "\\$&").replace(/\*/g, ".*?");
                    if (namespaces[0] === "-") {
                        exports.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
                    } else {
                        exports.names.push(new RegExp("^" + namespaces + "$"));
                    }
                }
            }
            function disable() {
                exports.enable("");
            }
            function enabled(name) {
                var i, len;
                for(i = 0, len = exports.skips.length; i < len; i++){
                    if (exports.skips[i].test(name)) {
                        return false;
                    }
                }
                for(i = 0, len = exports.names.length; i < len; i++){
                    if (exports.names[i].test(name)) {
                        return true;
                    }
                }
                return false;
            }
            function coerce(val) {
                if (val instanceof Error) return val.stack || val.message;
                return val;
            }
        }
    });
    // node_modules/socket.io-client/node_modules/debug/browser.js
    var require_browser16 = __commonJS({
        "node_modules/socket.io-client/node_modules/debug/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = require_debug();
            exports.log = log;
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
            exports.colors = [
                "lightseagreen",
                "forestgreen",
                "goldenrod",
                "dodgerblue",
                "darkorchid",
                "crimson"
            ];
            function useColors() {
                return typeof document !== "undefined" && "WebkitAppearance" in document.documentElement.style || // is firebug? http://stackoverflow.com/a/398120/376773
                window.console && (console.firebug || console.exception && console.table) || // is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31;
            }
            exports.formatters.j = function(v) {
                try {
                    return JSON.stringify(v);
                } catch (err) {
                    return "[UnexpectedJSONParseError]: " + err.message;
                }
            };
            function formatArgs() {
                var args = arguments;
                var useColors2 = this.useColors;
                args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports.humanize(this.diff);
                if (!useColors2) return args;
                var c = "color: " + this.color;
                args = [
                    args[0],
                    c,
                    "color: inherit"
                ].concat(Array.prototype.slice.call(args, 1));
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-z%]/g, function(match) {
                    if ("%%" === match) return;
                    index++;
                    if ("%c" === match) {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
                return args;
            }
            function log() {
                return "object" === (typeof console === "undefined" ? "undefined" : _type_of(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);
            }
            function save(namespaces) {
                try {
                    if (null == namespaces) {
                        exports.storage.removeItem("debug");
                    } else {
                        exports.storage.debug = namespaces;
                    }
                } catch (e) {}
            }
            function load() {
                var r;
                try {
                    return exports.storage.debug;
                } catch (e) {}
                if (typeof process !== "undefined" && "env" in process) {
                    return process.env.DEBUG;
                }
            }
            exports.enable(load());
            function localstorage() {
                try {
                    return window.localStorage;
                } catch (e) {}
            }
        }
    });
    // node_modules/socket.io-client/lib/url.js
    var require_url2 = __commonJS({
        "node_modules/socket.io-client/lib/url.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var parseuri = require_parseuri();
            var debug4 = require_browser16()("socket.io-client:url");
            module.exports = url;
            function url(uri, loc) {
                var obj = uri;
                loc = loc || globalThis.location;
                if (null == uri) uri = loc.protocol + "//" + loc.host;
                if ("string" === typeof uri) {
                    if ("/" === uri.charAt(0)) {
                        if ("/" === uri.charAt(1)) {
                            uri = loc.protocol + uri;
                        } else {
                            uri = loc.host + uri;
                        }
                    }
                    if (!/^(https?|wss?):\/\//.test(uri)) {
                        debug4("protocol-less url %s", uri);
                        if ("undefined" !== typeof loc) {
                            uri = loc.protocol + "//" + uri;
                        } else {
                            uri = "https://" + uri;
                        }
                    }
                    debug4("parse %s", uri);
                    obj = parseuri(uri);
                }
                if (!obj.port) {
                    if (/^(http|ws)$/.test(obj.protocol)) {
                        obj.port = "80";
                    } else if (/^(http|ws)s$/.test(obj.protocol)) {
                        obj.port = "443";
                    }
                }
                obj.path = obj.path || "/";
                var ipv6 = obj.host.indexOf(":") !== -1;
                var host = ipv6 ? "[" + obj.host + "]" : obj.host;
                obj.id = obj.protocol + "://" + host + ":" + obj.port;
                obj.href = obj.protocol + "://" + host + (loc && loc.port === obj.port ? "" : ":" + obj.port);
                return obj;
            }
        }
    });
    // node_modules/socket.io-parser/node_modules/ms/index.js
    var require_ms3 = __commonJS({
        "node_modules/socket.io-parser/node_modules/ms/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var s = 1e3;
            var m = s * 60;
            var h = m * 60;
            var d = h * 24;
            var y = d * 365.25;
            module.exports = function(val, options) {
                options = options || {};
                if ("string" == typeof val) return parse2(val);
                return options["long"] ? long(val) : short(val);
            };
            function parse2(str) {
                str = "" + str;
                if (str.length > 1e4) return;
                var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
                if (!match) return;
                var n = parseFloat(match[1]);
                var type = (match[2] || "ms").toLowerCase();
                switch(type){
                    case "years":
                    case "year":
                    case "yrs":
                    case "yr":
                    case "y":
                        return n * y;
                    case "days":
                    case "day":
                    case "d":
                        return n * d;
                    case "hours":
                    case "hour":
                    case "hrs":
                    case "hr":
                    case "h":
                        return n * h;
                    case "minutes":
                    case "minute":
                    case "mins":
                    case "min":
                    case "m":
                        return n * m;
                    case "seconds":
                    case "second":
                    case "secs":
                    case "sec":
                    case "s":
                        return n * s;
                    case "milliseconds":
                    case "millisecond":
                    case "msecs":
                    case "msec":
                    case "ms":
                        return n;
                }
            }
            function short(ms) {
                if (ms >= d) return Math.round(ms / d) + "d";
                if (ms >= h) return Math.round(ms / h) + "h";
                if (ms >= m) return Math.round(ms / m) + "m";
                if (ms >= s) return Math.round(ms / s) + "s";
                return ms + "ms";
            }
            function long(ms) {
                return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
            }
            function plural(ms, n, name) {
                if (ms < n) return;
                if (ms < n * 1.5) return Math.floor(ms / n) + " " + name;
                return Math.ceil(ms / n) + " " + name + "s";
            }
        }
    });
    // node_modules/socket.io-parser/node_modules/debug/debug.js
    var require_debug2 = __commonJS({
        "node_modules/socket.io-parser/node_modules/debug/debug.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = debug4;
            exports.coerce = coerce;
            exports.disable = disable;
            exports.enable = enable;
            exports.enabled = enabled;
            exports.humanize = require_ms3();
            exports.names = [];
            exports.skips = [];
            exports.formatters = {};
            var prevColor = 0;
            var prevTime;
            function selectColor() {
                return exports.colors[prevColor++ % exports.colors.length];
            }
            function debug4(namespace) {
                function disabled() {}
                disabled.enabled = false;
                function enabled2() {
                    var self2 = enabled2;
                    var curr = +/* @__PURE__ */ new Date();
                    var ms = curr - (prevTime || curr);
                    self2.diff = ms;
                    self2.prev = prevTime;
                    self2.curr = curr;
                    prevTime = curr;
                    if (null == self2.useColors) self2.useColors = exports.useColors();
                    if (null == self2.color && self2.useColors) self2.color = selectColor();
                    var args = Array.prototype.slice.call(arguments);
                    args[0] = exports.coerce(args[0]);
                    if ("string" !== typeof args[0]) {
                        args = [
                            "%o"
                        ].concat(args);
                    }
                    var index = 0;
                    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
                        if (match === "%%") return match;
                        index++;
                        var formatter = exports.formatters[format];
                        if ("function" === typeof formatter) {
                            var val = args[index];
                            match = formatter.call(self2, val);
                            args.splice(index, 1);
                            index--;
                        }
                        return match;
                    });
                    if ("function" === typeof exports.formatArgs) {
                        args = exports.formatArgs.apply(self2, args);
                    }
                    var logFn = enabled2.log || exports.log || console.log.bind(console);
                    logFn.apply(self2, args);
                }
                enabled2.enabled = true;
                var fn = exports.enabled(namespace) ? enabled2 : disabled;
                fn.namespace = namespace;
                return fn;
            }
            function enable(namespaces) {
                exports.save(namespaces);
                var split = (namespaces || "").split(/[\s,]+/);
                var len = split.length;
                for(var i = 0; i < len; i++){
                    if (!split[i]) continue;
                    namespaces = split[i].replace(/\*/g, ".*?");
                    if (namespaces[0] === "-") {
                        exports.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
                    } else {
                        exports.names.push(new RegExp("^" + namespaces + "$"));
                    }
                }
            }
            function disable() {
                exports.enable("");
            }
            function enabled(name) {
                var i, len;
                for(i = 0, len = exports.skips.length; i < len; i++){
                    if (exports.skips[i].test(name)) {
                        return false;
                    }
                }
                for(i = 0, len = exports.names.length; i < len; i++){
                    if (exports.names[i].test(name)) {
                        return true;
                    }
                }
                return false;
            }
            function coerce(val) {
                if (val instanceof Error) return val.stack || val.message;
                return val;
            }
        }
    });
    // node_modules/socket.io-parser/node_modules/debug/browser.js
    var require_browser17 = __commonJS({
        "node_modules/socket.io-parser/node_modules/debug/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = require_debug2();
            exports.log = log;
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
            exports.colors = [
                "lightseagreen",
                "forestgreen",
                "goldenrod",
                "dodgerblue",
                "darkorchid",
                "crimson"
            ];
            function useColors() {
                return "WebkitAppearance" in document.documentElement.style || // is firebug? http://stackoverflow.com/a/398120/376773
                window.console && (console.firebug || console.exception && console.table) || // is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31;
            }
            exports.formatters.j = function(v) {
                return JSON.stringify(v);
            };
            function formatArgs() {
                var args = arguments;
                var useColors2 = this.useColors;
                args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports.humanize(this.diff);
                if (!useColors2) return args;
                var c = "color: " + this.color;
                args = [
                    args[0],
                    c,
                    "color: inherit"
                ].concat(Array.prototype.slice.call(args, 1));
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-z%]/g, function(match) {
                    if ("%%" === match) return;
                    index++;
                    if ("%c" === match) {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
                return args;
            }
            function log() {
                return "object" === (typeof console === "undefined" ? "undefined" : _type_of(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);
            }
            function save(namespaces) {
                try {
                    if (null == namespaces) {
                        exports.storage.removeItem("debug");
                    } else {
                        exports.storage.debug = namespaces;
                    }
                } catch (e) {}
            }
            function load() {
                var r;
                try {
                    r = exports.storage.debug;
                } catch (e) {}
                return r;
            }
            exports.enable(load());
            function localstorage() {
                try {
                    return window.localStorage;
                } catch (e) {}
            }
        }
    });
    // node_modules/json3/lib/json3.js
    var require_json3 = __commonJS({
        "node_modules/json3/lib/json3.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function() {
                var isLoader = typeof define === "function" && define.amd;
                var objectTypes = {
                    "function": true,
                    object: true
                };
                var freeExports = objectTypes[typeof exports === "undefined" ? "undefined" : _type_of(exports)] && exports && !exports.nodeType && exports;
                var root = objectTypes[typeof window === "undefined" ? "undefined" : _type_of(window)] && window || this, freeGlobal = freeExports && objectTypes[typeof module === "undefined" ? "undefined" : _type_of(module)] && module && !module.nodeType && (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) == "object" && globalThis;
                if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) {
                    root = freeGlobal;
                }
                function runInContext(context, exports2) {
                    context || (context = root["Object"]());
                    exports2 || (exports2 = root["Object"]());
                    var Number2 = context["Number"] || root["Number"], String2 = context["String"] || root["String"], Object2 = context["Object"] || root["Object"], Date2 = context["Date"] || root["Date"], SyntaxError2 = context["SyntaxError"] || root["SyntaxError"], TypeError2 = context["TypeError"] || root["TypeError"], Math2 = context["Math"] || root["Math"], nativeJSON2 = context["JSON"] || root["JSON"];
                    if ((typeof nativeJSON2 === "undefined" ? "undefined" : _type_of(nativeJSON2)) == "object" && nativeJSON2) {
                        exports2.stringify = nativeJSON2.stringify;
                        exports2.parse = nativeJSON2.parse;
                    }
                    var objectProto = Object2.prototype, getClass = objectProto.toString, isProperty, forEach, undef3;
                    var isExtended = new Date2(-3509827334573292);
                    try {
                        isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && // Safari < 2.0.2 stores the internal millisecond time value correctly,
                        // but clips the values returned by the date methods to the range of
                        // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
                        isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;
                    } catch (exception) {}
                    function has(name) {
                        if (has[name] !== undef3) {
                            return has[name];
                        }
                        var isSupported;
                        if (name == "bug-string-char-index") {
                            isSupported = "a"[0] != "a";
                        } else if (name == "json") {
                            isSupported = has("json-stringify") && has("json-parse");
                        } else {
                            var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
                            if (name == "json-stringify") {
                                var stringify = exports2.stringify, stringifySupported = typeof stringify == "function" && isExtended;
                                if (stringifySupported) {
                                    (value = function value() {
                                        return 1;
                                    }).toJSON = value;
                                    try {
                                        stringifySupported = // primitives as object literals.
                                        stringify(0) === "0" && // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
                                        // literals.
                                        stringify(new Number2()) === "0" && stringify(new String2()) == '""' && // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
                                        // does not define a canonical JSON representation (this applies to
                                        // objects with `toJSON` properties as well, *unless* they are nested
                                        // within an object or array).
                                        stringify(getClass) === undef3 && // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and
                                        // FF 3.1b3 pass this test.
                                        stringify(undef3) === undef3 && // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
                                        // respectively, if the value is omitted entirely.
                                        stringify() === undef3 && // FF 3.1b1, 2 throw an error if the given value is not a number,
                                        // string, array, object, Boolean, or `null` literal. This applies to
                                        // objects with custom `toJSON` methods as well, unless they are nested
                                        // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
                                        // methods entirely.
                                        stringify(value) === "1" && stringify([
                                            value
                                        ]) == "[1]" && // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of
                                        // `"[null]"`.
                                        stringify([
                                            undef3
                                        ]) == "[null]" && // YUI 3.0.0b1 fails to serialize `null` literals.
                                        stringify(null) == "null" && // FF 3.1b1, 2 halts serialization if an array contains a function:
                                        // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
                                        // elides non-JSON values from objects and arrays, unless they
                                        // define custom `toJSON` methods.
                                        stringify([
                                            undef3,
                                            getClass,
                                            null
                                        ]) == "[null,null,null]" && // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
                                        // where character escape codes are expected (e.g., `\b` => `\u0008`).
                                        stringify({
                                            a: [
                                                value,
                                                true,
                                                false,
                                                null,
                                                "\0\b\n\f\r	"
                                            ]
                                        }) == serialized && // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
                                        stringify(null, value) === "1" && stringify([
                                            1,
                                            2
                                        ], null, 1) == "[\n 1,\n 2\n]" && // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly
                                        // serialize extended years.
                                        stringify(new Date2(-864e13)) == '"-271821-04-20T00:00:00.000Z"' && // The milliseconds are optional in ES 5, but required in 5.1.
                                        stringify(new Date2(864e13)) == '"+275760-09-13T00:00:00.000Z"' && // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative
                                        // four-digit years instead of six-digit years. Credits: @Yaffle.
                                        stringify(new Date2(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond
                                        // values less than 1000. Credits: @Yaffle.
                                        stringify(new Date2(-1)) == '"1969-12-31T23:59:59.999Z"';
                                    } catch (exception) {
                                        stringifySupported = false;
                                    }
                                }
                                isSupported = stringifySupported;
                            }
                            if (name == "json-parse") {
                                var parse2 = exports2.parse;
                                if (typeof parse2 == "function") {
                                    try {
                                        if (parse2("0") === 0 && !parse2(false)) {
                                            value = parse2(serialized);
                                            var parseSupported = value["a"].length == 5 && value["a"][0] === 1;
                                            if (parseSupported) {
                                                try {
                                                    parseSupported = !parse2('"	"');
                                                } catch (exception) {}
                                                if (parseSupported) {
                                                    try {
                                                        parseSupported = parse2("01") !== 1;
                                                    } catch (exception) {}
                                                }
                                                if (parseSupported) {
                                                    try {
                                                        parseSupported = parse2("1.") !== 1;
                                                    } catch (exception) {}
                                                }
                                            }
                                        }
                                    } catch (exception) {
                                        parseSupported = false;
                                    }
                                }
                                isSupported = parseSupported;
                            }
                        }
                        return has[name] = !!isSupported;
                    }
                    if (!has("json")) {
                        var functionClass = "[object Function]", dateClass = "[object Date]", numberClass = "[object Number]", stringClass = "[object String]", arrayClass = "[object Array]", booleanClass = "[object Boolean]";
                        var charIndexBuggy = has("bug-string-char-index");
                        if (!isExtended) {
                            var floor = Math2.floor;
                            var Months = [
                                0,
                                31,
                                59,
                                90,
                                120,
                                151,
                                181,
                                212,
                                243,
                                273,
                                304,
                                334
                            ];
                            var getDay = function getDay(year2, month) {
                                return Months[month] + 365 * (year2 - 1970) + floor((year2 - 1969 + (month = +(month > 1))) / 4) - floor((year2 - 1901 + month) / 100) + floor((year2 - 1601 + month) / 400);
                            };
                        }
                        if (!(isProperty = objectProto.hasOwnProperty)) {
                            isProperty = function(property) {
                                var members = {}, constructor;
                                if ((members.__proto__ = null, members.__proto__ = {
                                    // The *proto* property cannot be set multiple times in recent
                                    // versions of Firefox and SeaMonkey.
                                    toString: 1
                                }, members).toString != getClass) {
                                    isProperty = function isProperty(property2) {
                                        var original = this.__proto__, result17 = property2 in (this.__proto__ = null, this);
                                        this.__proto__ = original;
                                        return result17;
                                    };
                                } else {
                                    constructor = members.constructor;
                                    isProperty = function isProperty(property2) {
                                        var parent2 = (this.constructor || constructor).prototype;
                                        return property2 in this && !(property2 in parent2 && this[property2] === parent2[property2]);
                                    };
                                }
                                members = null;
                                return isProperty.call(this, property);
                            };
                        }
                        forEach = function(object, callback) {
                            var size = 0, Properties, members, property;
                            (Properties = function Properties() {
                                this.valueOf = 0;
                            }).prototype.valueOf = 0;
                            members = new Properties();
                            for(property in members){
                                if (isProperty.call(members, property)) {
                                    size++;
                                }
                            }
                            Properties = members = null;
                            if (!size) {
                                members = [
                                    "valueOf",
                                    "toString",
                                    "toLocaleString",
                                    "propertyIsEnumerable",
                                    "isPrototypeOf",
                                    "hasOwnProperty",
                                    "constructor"
                                ];
                                forEach = function forEach(object2, callback2) {
                                    var isFunction = getClass.call(object2) == functionClass, property2, length;
                                    var hasProperty = !isFunction && typeof object2.constructor != "function" && objectTypes[_type_of(object2.hasOwnProperty)] && object2.hasOwnProperty || isProperty;
                                    for(property2 in object2){
                                        if (!(isFunction && property2 == "prototype") && hasProperty.call(object2, property2)) {
                                            callback2(property2);
                                        }
                                    }
                                    for(length = members.length; property2 = members[--length]; hasProperty.call(object2, property2) && callback2(property2));
                                };
                            } else if (size == 2) {
                                forEach = function forEach(object2, callback2) {
                                    var members2 = {}, isFunction = getClass.call(object2) == functionClass, property2;
                                    for(property2 in object2){
                                        if (!(isFunction && property2 == "prototype") && !isProperty.call(members2, property2) && (members2[property2] = 1) && isProperty.call(object2, property2)) {
                                            callback2(property2);
                                        }
                                    }
                                };
                            } else {
                                forEach = function forEach(object2, callback2) {
                                    var isFunction = getClass.call(object2) == functionClass, property2, isConstructor;
                                    for(property2 in object2){
                                        if (!(isFunction && property2 == "prototype") && isProperty.call(object2, property2) && !(isConstructor = property2 === "constructor")) {
                                            callback2(property2);
                                        }
                                    }
                                    if (isConstructor || isProperty.call(object2, property2 = "constructor")) {
                                        callback2(property2);
                                    }
                                };
                            }
                            return forEach(object, callback);
                        };
                        if (!has("json-stringify")) {
                            var Escapes = {
                                92: "\\\\",
                                34: '\\"',
                                8: "\\b",
                                12: "\\f",
                                10: "\\n",
                                13: "\\r",
                                9: "\\t"
                            };
                            var leadingZeroes = "000000";
                            var toPaddedString = function toPaddedString(width, value) {
                                return (leadingZeroes + (value || 0)).slice(-width);
                            };
                            var unicodePrefix = "\\u00";
                            var quote = function quote(value) {
                                var result17 = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10;
                                var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value);
                                for(; index < length; index++){
                                    var charCode = value.charCodeAt(index);
                                    switch(charCode){
                                        case 8:
                                        case 9:
                                        case 10:
                                        case 12:
                                        case 13:
                                        case 34:
                                        case 92:
                                            result17 += Escapes[charCode];
                                            break;
                                        default:
                                            if (charCode < 32) {
                                                result17 += unicodePrefix + toPaddedString(2, charCode.toString(16));
                                                break;
                                            }
                                            result17 += useCharIndex ? symbols[index] : value.charAt(index);
                                    }
                                }
                                return result17 + '"';
                            };
                            var serialize = function serialize1(property, object, callback, properties, whitespace, indentation, stack) {
                                var value, className, year2, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result17;
                                try {
                                    value = object[property];
                                } catch (exception) {}
                                if ((typeof value === "undefined" ? "undefined" : _type_of(value)) == "object" && value) {
                                    className = getClass.call(value);
                                    if (className == dateClass && !isProperty.call(value, "toJSON")) {
                                        if (value > -1 / 0 && value < 1 / 0) {
                                            if (getDay) {
                                                date = floor(value / 864e5);
                                                for(year2 = floor(date / 365.2425) + 1970 - 1; getDay(year2 + 1, 0) <= date; year2++);
                                                for(month = floor((date - getDay(year2, 0)) / 30.42); getDay(year2, month + 1) <= date; month++);
                                                date = 1 + date - getDay(year2, month);
                                                time = (value % 864e5 + 864e5) % 864e5;
                                                hours = floor(time / 36e5) % 24;
                                                minutes = floor(time / 6e4) % 60;
                                                seconds = floor(time / 1e3) % 60;
                                                milliseconds = time % 1e3;
                                            } else {
                                                year2 = value.getUTCFullYear();
                                                month = value.getUTCMonth();
                                                date = value.getUTCDate();
                                                hours = value.getUTCHours();
                                                minutes = value.getUTCMinutes();
                                                seconds = value.getUTCSeconds();
                                                milliseconds = value.getUTCMilliseconds();
                                            }
                                            value = (year2 <= 0 || year2 >= 1e4 ? (year2 < 0 ? "-" : "+") + toPaddedString(6, year2 < 0 ? -year2 : year2) : toPaddedString(4, year2)) + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + // Months, dates, hours, minutes, and seconds should have two
                                            // digits; milliseconds should have three.
                                            "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + // Milliseconds are optional in ES 5.0, but required in 5.1.
                                            "." + toPaddedString(3, milliseconds) + "Z";
                                        } else {
                                            value = null;
                                        }
                                    } else if (typeof value.toJSON == "function" && (className != numberClass && className != stringClass && className != arrayClass || isProperty.call(value, "toJSON"))) {
                                        value = value.toJSON(property);
                                    }
                                }
                                if (callback) {
                                    value = callback.call(object, property, value);
                                }
                                if (value === null) {
                                    return "null";
                                }
                                className = getClass.call(value);
                                if (className == booleanClass) {
                                    return "" + value;
                                } else if (className == numberClass) {
                                    return value > -1 / 0 && value < 1 / 0 ? "" + value : "null";
                                } else if (className == stringClass) {
                                    return quote("" + value);
                                }
                                if ((typeof value === "undefined" ? "undefined" : _type_of(value)) == "object") {
                                    for(length = stack.length; length--;){
                                        if (stack[length] === value) {
                                            throw TypeError2();
                                        }
                                    }
                                    stack.push(value);
                                    results = [];
                                    prefix = indentation;
                                    indentation += whitespace;
                                    if (className == arrayClass) {
                                        for(index = 0, length = value.length; index < length; index++){
                                            element = serialize(index, value, callback, properties, whitespace, indentation, stack);
                                            results.push(element === undef3 ? "null" : element);
                                        }
                                        result17 = results.length ? whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : "[" + results.join(",") + "]" : "[]";
                                    } else {
                                        forEach(properties || value, function(property2) {
                                            var element2 = serialize(property2, value, callback, properties, whitespace, indentation, stack);
                                            if (element2 !== undef3) {
                                                results.push(quote(property2) + ":" + (whitespace ? " " : "") + element2);
                                            }
                                        });
                                        result17 = results.length ? whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : "{" + results.join(",") + "}" : "{}";
                                    }
                                    stack.pop();
                                    return result17;
                                }
                            };
                            exports2.stringify = function(source, filter, width) {
                                var whitespace, callback, properties, className;
                                if (objectTypes[typeof filter === "undefined" ? "undefined" : _type_of(filter)] && filter) {
                                    if ((className = getClass.call(filter)) == functionClass) {
                                        callback = filter;
                                    } else if (className == arrayClass) {
                                        properties = {};
                                        for(var index = 0, length = filter.length, value; index < length; value = filter[index++], (className = getClass.call(value), className == stringClass || className == numberClass) && (properties[value] = 1));
                                    }
                                }
                                if (width) {
                                    if ((className = getClass.call(width)) == numberClass) {
                                        if ((width -= width % 1) > 0) {
                                            for(whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " ");
                                        }
                                    } else if (className == stringClass) {
                                        whitespace = width.length <= 10 ? width : width.slice(0, 10);
                                    }
                                }
                                return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);
                            };
                        }
                        if (!has("json-parse")) {
                            var fromCharCode = String2.fromCharCode;
                            var Unescapes = {
                                92: "\\",
                                34: '"',
                                47: "/",
                                98: "\b",
                                116: "	",
                                110: "\n",
                                102: "\f",
                                114: "\r"
                            };
                            var Index, Source;
                            var abort = function abort() {
                                Index = Source = null;
                                throw SyntaxError2();
                            };
                            var lex = function lex() {
                                var source = Source, length = source.length, value, begin, position, isSigned, charCode;
                                while(Index < length){
                                    charCode = source.charCodeAt(Index);
                                    switch(charCode){
                                        case 9:
                                        case 10:
                                        case 13:
                                        case 32:
                                            Index++;
                                            break;
                                        case 123:
                                        case 125:
                                        case 91:
                                        case 93:
                                        case 58:
                                        case 44:
                                            value = charIndexBuggy ? source.charAt(Index) : source[Index];
                                            Index++;
                                            return value;
                                        case 34:
                                            for(value = "@", Index++; Index < length;){
                                                charCode = source.charCodeAt(Index);
                                                if (charCode < 32) {
                                                    abort();
                                                } else if (charCode == 92) {
                                                    charCode = source.charCodeAt(++Index);
                                                    switch(charCode){
                                                        case 92:
                                                        case 34:
                                                        case 47:
                                                        case 98:
                                                        case 116:
                                                        case 110:
                                                        case 102:
                                                        case 114:
                                                            value += Unescapes[charCode];
                                                            Index++;
                                                            break;
                                                        case 117:
                                                            begin = ++Index;
                                                            for(position = Index + 4; Index < position; Index++){
                                                                charCode = source.charCodeAt(Index);
                                                                if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {
                                                                    abort();
                                                                }
                                                            }
                                                            value += fromCharCode("0x" + source.slice(begin, Index));
                                                            break;
                                                        default:
                                                            abort();
                                                    }
                                                } else {
                                                    if (charCode == 34) {
                                                        break;
                                                    }
                                                    charCode = source.charCodeAt(Index);
                                                    begin = Index;
                                                    while(charCode >= 32 && charCode != 92 && charCode != 34){
                                                        charCode = source.charCodeAt(++Index);
                                                    }
                                                    value += source.slice(begin, Index);
                                                }
                                            }
                                            if (source.charCodeAt(Index) == 34) {
                                                Index++;
                                                return value;
                                            }
                                            abort();
                                        default:
                                            begin = Index;
                                            if (charCode == 45) {
                                                isSigned = true;
                                                charCode = source.charCodeAt(++Index);
                                            }
                                            if (charCode >= 48 && charCode <= 57) {
                                                if (charCode == 48 && (charCode = source.charCodeAt(Index + 1), charCode >= 48 && charCode <= 57)) {
                                                    abort();
                                                }
                                                isSigned = false;
                                                for(; Index < length && (charCode = source.charCodeAt(Index), charCode >= 48 && charCode <= 57); Index++);
                                                if (source.charCodeAt(Index) == 46) {
                                                    position = ++Index;
                                                    for(; position < length && (charCode = source.charCodeAt(position), charCode >= 48 && charCode <= 57); position++);
                                                    if (position == Index) {
                                                        abort();
                                                    }
                                                    Index = position;
                                                }
                                                charCode = source.charCodeAt(Index);
                                                if (charCode == 101 || charCode == 69) {
                                                    charCode = source.charCodeAt(++Index);
                                                    if (charCode == 43 || charCode == 45) {
                                                        Index++;
                                                    }
                                                    for(position = Index; position < length && (charCode = source.charCodeAt(position), charCode >= 48 && charCode <= 57); position++);
                                                    if (position == Index) {
                                                        abort();
                                                    }
                                                    Index = position;
                                                }
                                                return +source.slice(begin, Index);
                                            }
                                            if (isSigned) {
                                                abort();
                                            }
                                            if (source.slice(Index, Index + 4) == "true") {
                                                Index += 4;
                                                return true;
                                            } else if (source.slice(Index, Index + 5) == "false") {
                                                Index += 5;
                                                return false;
                                            } else if (source.slice(Index, Index + 4) == "null") {
                                                Index += 4;
                                                return null;
                                            }
                                            abort();
                                    }
                                }
                                return "$";
                            };
                            var get = function get1(value) {
                                var results, hasMembers;
                                if (value == "$") {
                                    abort();
                                }
                                if (typeof value == "string") {
                                    if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {
                                        return value.slice(1);
                                    }
                                    if (value == "[") {
                                        results = [];
                                        for(;; hasMembers || (hasMembers = true)){
                                            value = lex();
                                            if (value == "]") {
                                                break;
                                            }
                                            if (hasMembers) {
                                                if (value == ",") {
                                                    value = lex();
                                                    if (value == "]") {
                                                        abort();
                                                    }
                                                } else {
                                                    abort();
                                                }
                                            }
                                            if (value == ",") {
                                                abort();
                                            }
                                            results.push(get(value));
                                        }
                                        return results;
                                    } else if (value == "{") {
                                        results = {};
                                        for(;; hasMembers || (hasMembers = true)){
                                            value = lex();
                                            if (value == "}") {
                                                break;
                                            }
                                            if (hasMembers) {
                                                if (value == ",") {
                                                    value = lex();
                                                    if (value == "}") {
                                                        abort();
                                                    }
                                                } else {
                                                    abort();
                                                }
                                            }
                                            if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {
                                                abort();
                                            }
                                            results[value.slice(1)] = get(lex());
                                        }
                                        return results;
                                    }
                                    abort();
                                }
                                return value;
                            };
                            var update = function update(source, property, callback) {
                                var element = walk(source, property, callback);
                                if (element === undef3) {
                                    delete source[property];
                                } else {
                                    source[property] = element;
                                }
                            };
                            var walk = function walk(source, property, callback) {
                                var value = source[property], length;
                                if ((typeof value === "undefined" ? "undefined" : _type_of(value)) == "object" && value) {
                                    if (getClass.call(value) == arrayClass) {
                                        for(length = value.length; length--;){
                                            update(value, length, callback);
                                        }
                                    } else {
                                        forEach(value, function(property2) {
                                            update(value, property2, callback);
                                        });
                                    }
                                }
                                return callback.call(source, property, value);
                            };
                            exports2.parse = function(source, callback) {
                                var result17, value;
                                Index = 0;
                                Source = "" + source;
                                result17 = get(lex());
                                if (lex() != "$") {
                                    abort();
                                }
                                Index = Source = null;
                                return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result17, value), "", callback) : result17;
                            };
                        }
                    }
                    exports2["runInContext"] = runInContext;
                    return exports2;
                }
                if (freeExports && !isLoader) {
                    runInContext(root, freeExports);
                } else {
                    var nativeJSON = root.JSON, previousJSON = root["JSON3"], isRestored = false;
                    var JSON3 = runInContext(root, root["JSON3"] = {
                        // Public: Restores the original value of the global `JSON` object and
                        // returns a reference to the `JSON3` object.
                        noConflict: function() {
                            if (!isRestored) {
                                isRestored = true;
                                root.JSON = nativeJSON;
                                root["JSON3"] = previousJSON;
                                nativeJSON = previousJSON = null;
                            }
                            return JSON3;
                        }
                    });
                    root.JSON = {
                        parse: JSON3.parse,
                        stringify: JSON3.stringify
                    };
                }
                if (isLoader) {
                    define(function() {
                        return JSON3;
                    });
                }
            }).call(exports);
        }
    });
    // node_modules/socket.io-parser/node_modules/component-emitter/index.js
    var require_component_emitter = __commonJS({
        "node_modules/socket.io-parser/node_modules/component-emitter/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Emitter;
            function Emitter(obj) {
                if (obj) return mixin(obj);
            }
            function mixin(obj) {
                for(var key in Emitter.prototype){
                    obj[key] = Emitter.prototype[key];
                }
                return obj;
            }
            Emitter.prototype.on = Emitter.prototype.addEventListener = function(event, fn) {
                this._callbacks = this._callbacks || {};
                (this._callbacks[event] = this._callbacks[event] || []).push(fn);
                return this;
            };
            Emitter.prototype.once = function(event, fn) {
                var self2 = this;
                this._callbacks = this._callbacks || {};
                function on() {
                    self2.off(event, on);
                    fn.apply(this, arguments);
                }
                on.fn = fn;
                this.on(event, on);
                return this;
            };
            Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function(event, fn) {
                this._callbacks = this._callbacks || {};
                if (0 == arguments.length) {
                    this._callbacks = {};
                    return this;
                }
                var callbacks = this._callbacks[event];
                if (!callbacks) return this;
                if (1 == arguments.length) {
                    delete this._callbacks[event];
                    return this;
                }
                var cb;
                for(var i = 0; i < callbacks.length; i++){
                    cb = callbacks[i];
                    if (cb === fn || cb.fn === fn) {
                        callbacks.splice(i, 1);
                        break;
                    }
                }
                return this;
            };
            Emitter.prototype.emit = function(event) {
                this._callbacks = this._callbacks || {};
                var args = [].slice.call(arguments, 1), callbacks = this._callbacks[event];
                if (callbacks) {
                    callbacks = callbacks.slice(0);
                    for(var i = 0, len = callbacks.length; i < len; ++i){
                        callbacks[i].apply(this, args);
                    }
                }
                return this;
            };
            Emitter.prototype.listeners = function(event) {
                this._callbacks = this._callbacks || {};
                return this._callbacks[event] || [];
            };
            Emitter.prototype.hasListeners = function(event) {
                return !!this.listeners(event).length;
            };
        }
    });
    // node_modules/socket.io-parser/node_modules/isarray/index.js
    var require_isarray3 = __commonJS({
        "node_modules/socket.io-parser/node_modules/isarray/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Array.isArray || function(arr) {
                return Object.prototype.toString.call(arr) == "[object Array]";
            };
        }
    });
    // node_modules/socket.io-parser/is-buffer.js
    var require_is_buffer = __commonJS({
        "node_modules/socket.io-parser/is-buffer.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = isBuf;
            function isBuf(obj) {
                return globalThis.Buffer && globalThis.Buffer.isBuffer(obj) || globalThis.ArrayBuffer && obj instanceof ArrayBuffer;
            }
        }
    });
    // node_modules/socket.io-parser/binary.js
    var require_binary = __commonJS({
        "node_modules/socket.io-parser/binary.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isArray = require_isarray3();
            var isBuf = require_is_buffer();
            exports.deconstructPacket = function(packet) {
                var buffers2 = [];
                var packetData = packet.data;
                function _deconstructPacket(data) {
                    if (!data) return data;
                    if (isBuf(data)) {
                        var placeholder = {
                            _placeholder: true,
                            num: buffers2.length
                        };
                        buffers2.push(data);
                        return placeholder;
                    } else if (isArray(data)) {
                        var newData = new Array(data.length);
                        for(var i = 0; i < data.length; i++){
                            newData[i] = _deconstructPacket(data[i]);
                        }
                        return newData;
                    } else if ("object" == (typeof data === "undefined" ? "undefined" : _type_of(data)) && !(data instanceof Date)) {
                        var newData = {};
                        for(var key in data){
                            newData[key] = _deconstructPacket(data[key]);
                        }
                        return newData;
                    }
                    return data;
                }
                var pack = packet;
                pack.data = _deconstructPacket(packetData);
                pack.attachments = buffers2.length;
                return {
                    packet: pack,
                    buffers: buffers2
                };
            };
            exports.reconstructPacket = function(packet, buffers2) {
                var curPlaceHolder = 0;
                function _reconstructPacket(data) {
                    if (data && data._placeholder) {
                        var buf = buffers2[data.num];
                        return buf;
                    } else if (isArray(data)) {
                        for(var i = 0; i < data.length; i++){
                            data[i] = _reconstructPacket(data[i]);
                        }
                        return data;
                    } else if (data && "object" == (typeof data === "undefined" ? "undefined" : _type_of(data))) {
                        for(var key in data){
                            data[key] = _reconstructPacket(data[key]);
                        }
                        return data;
                    }
                    return data;
                }
                packet.data = _reconstructPacket(packet.data);
                packet.attachments = void 0;
                return packet;
            };
            exports.removeBlobs = function(data, callback) {
                function _removeBlobs(obj, curKey, containingObject) {
                    if (!obj) return obj;
                    if (globalThis.Blob && obj instanceof Blob || globalThis.File && obj instanceof File) {
                        pendingBlobs++;
                        var fileReader = new FileReader();
                        fileReader.onload = function() {
                            if (containingObject) {
                                containingObject[curKey] = this.result;
                            } else {
                                bloblessData = this.result;
                            }
                            if (!--pendingBlobs) {
                                callback(bloblessData);
                            }
                        };
                        fileReader.readAsArrayBuffer(obj);
                    } else if (isArray(obj)) {
                        for(var i = 0; i < obj.length; i++){
                            _removeBlobs(obj[i], i, obj);
                        }
                    } else if (obj && "object" == (typeof obj === "undefined" ? "undefined" : _type_of(obj)) && !isBuf(obj)) {
                        for(var key in obj){
                            _removeBlobs(obj[key], key, obj);
                        }
                    }
                }
                var pendingBlobs = 0;
                var bloblessData = data;
                _removeBlobs(bloblessData);
                if (!pendingBlobs) {
                    callback(bloblessData);
                }
            };
        }
    });
    // node_modules/socket.io-parser/index.js
    var require_socket = __commonJS({
        "node_modules/socket.io-parser/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var debug4 = require_browser17()("socket.io-parser");
            var json = require_json3();
            var Emitter = require_component_emitter();
            var binary = require_binary();
            var isBuf = require_is_buffer();
            exports.protocol = 4;
            exports.types = [
                "CONNECT",
                "DISCONNECT",
                "EVENT",
                "ACK",
                "ERROR",
                "BINARY_EVENT",
                "BINARY_ACK"
            ];
            exports.CONNECT = 0;
            exports.DISCONNECT = 1;
            exports.EVENT = 2;
            exports.ACK = 3;
            exports.ERROR = 4;
            exports.BINARY_EVENT = 5;
            exports.BINARY_ACK = 6;
            exports.Encoder = Encoder;
            exports.Decoder = Decoder;
            function Encoder() {}
            Encoder.prototype.encode = function(obj, callback) {
                debug4("encoding packet %j", obj);
                if (exports.BINARY_EVENT == obj.type || exports.BINARY_ACK == obj.type) {
                    encodeAsBinary(obj, callback);
                } else {
                    var encoding = encodeAsString(obj);
                    callback([
                        encoding
                    ]);
                }
            };
            function encodeAsString(obj) {
                var str = "";
                var nsp = false;
                str += obj.type;
                if (exports.BINARY_EVENT == obj.type || exports.BINARY_ACK == obj.type) {
                    str += obj.attachments;
                    str += "-";
                }
                if (obj.nsp && "/" != obj.nsp) {
                    nsp = true;
                    str += obj.nsp;
                }
                if (null != obj.id) {
                    if (nsp) {
                        str += ",";
                        nsp = false;
                    }
                    str += obj.id;
                }
                if (null != obj.data) {
                    if (nsp) str += ",";
                    str += json.stringify(obj.data);
                }
                debug4("encoded %j as %s", obj, str);
                return str;
            }
            function encodeAsBinary(obj, callback) {
                function writeEncoding(bloblessData) {
                    var deconstruction = binary.deconstructPacket(bloblessData);
                    var pack = encodeAsString(deconstruction.packet);
                    var buffers2 = deconstruction.buffers;
                    buffers2.unshift(pack);
                    callback(buffers2);
                }
                binary.removeBlobs(obj, writeEncoding);
            }
            function Decoder() {
                this.reconstructor = null;
            }
            Emitter(Decoder.prototype);
            Decoder.prototype.add = function(obj) {
                var packet;
                if ("string" == typeof obj) {
                    packet = decodeString(obj);
                    if (exports.BINARY_EVENT == packet.type || exports.BINARY_ACK == packet.type) {
                        this.reconstructor = new BinaryReconstructor(packet);
                        if (this.reconstructor.reconPack.attachments === 0) {
                            this.emit("decoded", packet);
                        }
                    } else {
                        this.emit("decoded", packet);
                    }
                } else if (isBuf(obj) || obj.base64) {
                    if (!this.reconstructor) {
                        throw new Error("got binary data when not reconstructing a packet");
                    } else {
                        packet = this.reconstructor.takeBinaryData(obj);
                        if (packet) {
                            this.reconstructor = null;
                            this.emit("decoded", packet);
                        }
                    }
                } else {
                    throw new Error("Unknown type: " + obj);
                }
            };
            function decodeString(str) {
                var p = {};
                var i = 0;
                p.type = Number(str.charAt(0));
                if (null == exports.types[p.type]) return error();
                if (exports.BINARY_EVENT == p.type || exports.BINARY_ACK == p.type) {
                    var buf = "";
                    while(str.charAt(++i) != "-"){
                        buf += str.charAt(i);
                        if (i == str.length) break;
                    }
                    if (buf != Number(buf) || str.charAt(i) != "-") {
                        throw new Error("Illegal attachments");
                    }
                    p.attachments = Number(buf);
                }
                if ("/" == str.charAt(i + 1)) {
                    p.nsp = "";
                    while(++i){
                        var c = str.charAt(i);
                        if ("," == c) break;
                        p.nsp += c;
                        if (i == str.length) break;
                    }
                } else {
                    p.nsp = "/";
                }
                var next = str.charAt(i + 1);
                if ("" !== next && Number(next) == next) {
                    p.id = "";
                    while(++i){
                        var c = str.charAt(i);
                        if (null == c || Number(c) != c) {
                            --i;
                            break;
                        }
                        p.id += str.charAt(i);
                        if (i == str.length) break;
                    }
                    p.id = Number(p.id);
                }
                if (str.charAt(++i)) {
                    p = tryParse(p, str.substr(i));
                }
                debug4("decoded %s as %j", str, p);
                return p;
            }
            function tryParse(p, str) {
                try {
                    p.data = json.parse(str);
                } catch (e) {
                    return error();
                }
                return p;
            }
            Decoder.prototype.destroy = function() {
                if (this.reconstructor) {
                    this.reconstructor.finishedReconstruction();
                }
            };
            function BinaryReconstructor(packet) {
                this.reconPack = packet;
                this.buffers = [];
            }
            BinaryReconstructor.prototype.takeBinaryData = function(binData) {
                this.buffers.push(binData);
                if (this.buffers.length == this.reconPack.attachments) {
                    var packet = binary.reconstructPacket(this.reconPack, this.buffers);
                    this.finishedReconstruction();
                    return packet;
                }
                return null;
            };
            BinaryReconstructor.prototype.finishedReconstruction = function() {
                this.reconPack = null;
                this.buffers = [];
            };
            function error(data) {
                return {
                    type: exports.ERROR,
                    data: "parser error"
                };
            }
        }
    });
    // node_modules/has-cors/index.js
    var require_has_cors = __commonJS({
        "node_modules/has-cors/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            try {
                module.exports = typeof XMLHttpRequest !== "undefined" && "withCredentials" in new XMLHttpRequest();
            } catch (err) {
                module.exports = false;
            }
        }
    });
    // node_modules/engine.io-client/lib/xmlhttprequest.js
    var require_xmlhttprequest = __commonJS({
        "node_modules/engine.io-client/lib/xmlhttprequest.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hasCORS = require_has_cors();
            module.exports = function(opts) {
                var xdomain = opts.xdomain;
                var xscheme = opts.xscheme;
                var enablesXDR = opts.enablesXDR;
                try {
                    if ("undefined" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {
                        return new XMLHttpRequest();
                    }
                } catch (e) {}
                try {
                    if ("undefined" !== typeof XDomainRequest && !xscheme && enablesXDR) {
                        return new XDomainRequest();
                    }
                } catch (e) {}
                if (!xdomain) {
                    try {
                        return new globalThis[[
                            "Active"
                        ].concat("Object").join("X")]("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            };
        }
    });
    // node_modules/engine.io-parser/lib/keys.js
    var require_keys = __commonJS({
        "node_modules/engine.io-parser/lib/keys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Object.keys || function keys(obj) {
                var arr = [];
                var has = Object.prototype.hasOwnProperty;
                for(var i in obj){
                    if (has.call(obj, i)) {
                        arr.push(i);
                    }
                }
                return arr;
            };
        }
    });
    // node_modules/has-binary/node_modules/isarray/index.js
    var require_isarray4 = __commonJS({
        "node_modules/has-binary/node_modules/isarray/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Array.isArray || function(arr) {
                return Object.prototype.toString.call(arr) == "[object Array]";
            };
        }
    });
    // node_modules/has-binary/index.js
    var require_has_binary = __commonJS({
        "node_modules/has-binary/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isArray = require_isarray4();
            module.exports = hasBinary;
            function hasBinary(data) {
                function _hasBinary(obj) {
                    if (!obj) return false;
                    if (globalThis.Buffer && globalThis.Buffer.isBuffer && globalThis.Buffer.isBuffer(obj) || globalThis.ArrayBuffer && obj instanceof ArrayBuffer || globalThis.Blob && obj instanceof Blob || globalThis.File && obj instanceof File) {
                        return true;
                    }
                    if (isArray(obj)) {
                        for(var i = 0; i < obj.length; i++){
                            if (_hasBinary(obj[i])) {
                                return true;
                            }
                        }
                    } else if (obj && "object" == (typeof obj === "undefined" ? "undefined" : _type_of(obj))) {
                        if (obj.toJSON && "function" == typeof obj.toJSON) {
                            obj = obj.toJSON();
                        }
                        for(var key in obj){
                            if (Object.prototype.hasOwnProperty.call(obj, key) && _hasBinary(obj[key])) {
                                return true;
                            }
                        }
                    }
                    return false;
                }
                return _hasBinary(data);
            }
        }
    });
    // node_modules/arraybuffer.slice/index.js
    var require_arraybuffer = __commonJS({
        "node_modules/arraybuffer.slice/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function(arraybuffer, start, end) {
                var bytes = arraybuffer.byteLength;
                start = start || 0;
                end = end || bytes;
                if (arraybuffer.slice) {
                    return arraybuffer.slice(start, end);
                }
                if (start < 0) {
                    start += bytes;
                }
                if (end < 0) {
                    end += bytes;
                }
                if (end > bytes) {
                    end = bytes;
                }
                if (start >= bytes || start >= end || bytes === 0) {
                    return new ArrayBuffer(0);
                }
                var abv = new Uint8Array(arraybuffer);
                var result17 = new Uint8Array(end - start);
                for(var i = start, ii = 0; i < end; i++, ii++){
                    result17[ii] = abv[i];
                }
                return result17.buffer;
            };
        }
    });
    // node_modules/after/index.js
    var require_after = __commonJS({
        "node_modules/after/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = after;
            function after(count, callback, err_cb) {
                var bail = false;
                err_cb = err_cb || noop3;
                proxy.count = count;
                return count === 0 ? callback() : proxy;
                function proxy(err, result17) {
                    if (proxy.count <= 0) {
                        throw new Error("after called too many times");
                    }
                    --proxy.count;
                    if (err) {
                        bail = true;
                        callback(err);
                        callback = err_cb;
                    } else if (proxy.count === 0 && !bail) {
                        callback(null, result17);
                    }
                }
            }
            function noop3() {}
        }
    });
    // node_modules/wtf-8/wtf-8.js
    var require_wtf_8 = __commonJS({
        "node_modules/wtf-8/wtf-8.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root) {
                var freeExports = (typeof exports === "undefined" ? "undefined" : _type_of(exports)) == "object" && exports;
                var freeModule = (typeof module === "undefined" ? "undefined" : _type_of(module)) == "object" && module && module.exports == freeExports && module;
                var freeGlobal = (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) == "object" && globalThis;
                if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
                    root = freeGlobal;
                }
                var stringFromCharCode = String.fromCharCode;
                function ucs2decode(string5) {
                    var output = [];
                    var counter = 0;
                    var length = string5.length;
                    var value;
                    var extra;
                    while(counter < length){
                        value = string5.charCodeAt(counter++);
                        if (value >= 55296 && value <= 56319 && counter < length) {
                            extra = string5.charCodeAt(counter++);
                            if ((extra & 64512) == 56320) {
                                output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
                            } else {
                                output.push(value);
                                counter--;
                            }
                        } else {
                            output.push(value);
                        }
                    }
                    return output;
                }
                function ucs2encode(array4) {
                    var length = array4.length;
                    var index = -1;
                    var value;
                    var output = "";
                    while(++index < length){
                        value = array4[index];
                        if (value > 65535) {
                            value -= 65536;
                            output += stringFromCharCode(value >>> 10 & 1023 | 55296);
                            value = 56320 | value & 1023;
                        }
                        output += stringFromCharCode(value);
                    }
                    return output;
                }
                function createByte(codePoint, shift) {
                    return stringFromCharCode(codePoint >> shift & 63 | 128);
                }
                function encodeCodePoint(codePoint) {
                    if ((codePoint & 4294967168) == 0) {
                        return stringFromCharCode(codePoint);
                    }
                    var symbol5 = "";
                    if ((codePoint & 4294965248) == 0) {
                        symbol5 = stringFromCharCode(codePoint >> 6 & 31 | 192);
                    } else if ((codePoint & 4294901760) == 0) {
                        symbol5 = stringFromCharCode(codePoint >> 12 & 15 | 224);
                        symbol5 += createByte(codePoint, 6);
                    } else if ((codePoint & 4292870144) == 0) {
                        symbol5 = stringFromCharCode(codePoint >> 18 & 7 | 240);
                        symbol5 += createByte(codePoint, 12);
                        symbol5 += createByte(codePoint, 6);
                    }
                    symbol5 += stringFromCharCode(codePoint & 63 | 128);
                    return symbol5;
                }
                function wtf8encode(string5) {
                    var codePoints = ucs2decode(string5);
                    var length = codePoints.length;
                    var index = -1;
                    var codePoint;
                    var byteString = "";
                    while(++index < length){
                        codePoint = codePoints[index];
                        byteString += encodeCodePoint(codePoint);
                    }
                    return byteString;
                }
                function readContinuationByte() {
                    if (byteIndex >= byteCount) {
                        throw Error("Invalid byte index");
                    }
                    var continuationByte = byteArray[byteIndex] & 255;
                    byteIndex++;
                    if ((continuationByte & 192) == 128) {
                        return continuationByte & 63;
                    }
                    throw Error("Invalid continuation byte");
                }
                function decodeSymbol() {
                    var byte1;
                    var byte2;
                    var byte3;
                    var byte4;
                    var codePoint;
                    if (byteIndex > byteCount) {
                        throw Error("Invalid byte index");
                    }
                    if (byteIndex == byteCount) {
                        return false;
                    }
                    byte1 = byteArray[byteIndex] & 255;
                    byteIndex++;
                    if ((byte1 & 128) == 0) {
                        return byte1;
                    }
                    if ((byte1 & 224) == 192) {
                        var byte2 = readContinuationByte();
                        codePoint = (byte1 & 31) << 6 | byte2;
                        if (codePoint >= 128) {
                            return codePoint;
                        } else {
                            throw Error("Invalid continuation byte");
                        }
                    }
                    if ((byte1 & 240) == 224) {
                        byte2 = readContinuationByte();
                        byte3 = readContinuationByte();
                        codePoint = (byte1 & 15) << 12 | byte2 << 6 | byte3;
                        if (codePoint >= 2048) {
                            return codePoint;
                        } else {
                            throw Error("Invalid continuation byte");
                        }
                    }
                    if ((byte1 & 248) == 240) {
                        byte2 = readContinuationByte();
                        byte3 = readContinuationByte();
                        byte4 = readContinuationByte();
                        codePoint = (byte1 & 15) << 18 | byte2 << 12 | byte3 << 6 | byte4;
                        if (codePoint >= 65536 && codePoint <= 1114111) {
                            return codePoint;
                        }
                    }
                    throw Error("Invalid WTF-8 detected");
                }
                var byteArray;
                var byteCount;
                var byteIndex;
                function wtf8decode(byteString) {
                    byteArray = ucs2decode(byteString);
                    byteCount = byteArray.length;
                    byteIndex = 0;
                    var codePoints = [];
                    var tmp;
                    while((tmp = decodeSymbol()) !== false){
                        codePoints.push(tmp);
                    }
                    return ucs2encode(codePoints);
                }
                var wtf8 = {
                    version: "1.0.0",
                    encode: wtf8encode,
                    decode: wtf8decode
                };
                if (typeof define == "function" && _type_of(define.amd) == "object" && define.amd) {
                    define(function() {
                        return wtf8;
                    });
                } else if (freeExports && !freeExports.nodeType) {
                    if (freeModule) {
                        freeModule.exports = wtf8;
                    } else {
                        var object = {};
                        var hasOwnProperty = object.hasOwnProperty;
                        for(var key in wtf8){
                            hasOwnProperty.call(wtf8, key) && (freeExports[key] = wtf8[key]);
                        }
                    }
                } else {
                    root.wtf8 = wtf8;
                }
            })(exports);
        }
    });
    // node_modules/base64-arraybuffer/lib/base64-arraybuffer.js
    var require_base64_arraybuffer = __commonJS({
        "node_modules/base64-arraybuffer/lib/base64-arraybuffer.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function() {
                "use strict";
                var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
                var lookup = new Uint8Array(256);
                for(var i = 0; i < chars.length; i++){
                    lookup[chars.charCodeAt(i)] = i;
                }
                exports.encode = function(arraybuffer) {
                    var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = "";
                    for(i2 = 0; i2 < len; i2 += 3){
                        base64 += chars[bytes[i2] >> 2];
                        base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];
                        base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];
                        base64 += chars[bytes[i2 + 2] & 63];
                    }
                    if (len % 3 === 2) {
                        base64 = base64.substring(0, base64.length - 1) + "=";
                    } else if (len % 3 === 1) {
                        base64 = base64.substring(0, base64.length - 2) + "==";
                    }
                    return base64;
                };
                exports.decode = function(base64) {
                    var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;
                    if (base64[base64.length - 1] === "=") {
                        bufferLength--;
                        if (base64[base64.length - 2] === "=") {
                            bufferLength--;
                        }
                    }
                    var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
                    for(i2 = 0; i2 < len; i2 += 4){
                        encoded1 = lookup[base64.charCodeAt(i2)];
                        encoded2 = lookup[base64.charCodeAt(i2 + 1)];
                        encoded3 = lookup[base64.charCodeAt(i2 + 2)];
                        encoded4 = lookup[base64.charCodeAt(i2 + 3)];
                        bytes[p++] = encoded1 << 2 | encoded2 >> 4;
                        bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;
                        bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;
                    }
                    return arraybuffer;
                };
            })();
        }
    });
    // node_modules/blob/index.js
    var require_blob = __commonJS({
        "node_modules/blob/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var BlobBuilder = globalThis.BlobBuilder || globalThis.WebKitBlobBuilder || globalThis.MSBlobBuilder || globalThis.MozBlobBuilder;
            var blobSupported = function() {
                try {
                    var a = new Blob([
                        "hi"
                    ]);
                    return a.size === 2;
                } catch (e) {
                    return false;
                }
            }();
            var blobSupportsArrayBufferView = blobSupported && function() {
                try {
                    var b = new Blob([
                        new Uint8Array([
                            1,
                            2
                        ])
                    ]);
                    return b.size === 2;
                } catch (e) {
                    return false;
                }
            }();
            var blobBuilderSupported = BlobBuilder && BlobBuilder.prototype.append && BlobBuilder.prototype.getBlob;
            function mapArrayBufferViews(ary) {
                for(var i = 0; i < ary.length; i++){
                    var chunk = ary[i];
                    if (chunk.buffer instanceof ArrayBuffer) {
                        var buf = chunk.buffer;
                        if (chunk.byteLength !== buf.byteLength) {
                            var copy = new Uint8Array(chunk.byteLength);
                            copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));
                            buf = copy.buffer;
                        }
                        ary[i] = buf;
                    }
                }
            }
            function BlobBuilderConstructor(ary, options) {
                options = options || {};
                var bb = new BlobBuilder();
                mapArrayBufferViews(ary);
                for(var i = 0; i < ary.length; i++){
                    bb.append(ary[i]);
                }
                return options.type ? bb.getBlob(options.type) : bb.getBlob();
            }
            function BlobConstructor(ary, options) {
                mapArrayBufferViews(ary);
                return new Blob(ary, options || {});
            }
            module.exports = function() {
                if (blobSupported) {
                    return blobSupportsArrayBufferView ? globalThis.Blob : BlobConstructor;
                } else if (blobBuilderSupported) {
                    return BlobBuilderConstructor;
                } else {
                    return void 0;
                }
            }();
        }
    });
    // node_modules/engine.io-parser/lib/browser.js
    var require_browser18 = __commonJS({
        "node_modules/engine.io-parser/lib/browser.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var keys = require_keys();
            var hasBinary = require_has_binary();
            var sliceBuffer = require_arraybuffer();
            var after = require_after();
            var utf8 = require_wtf_8();
            var base64encoder;
            if (globalThis && globalThis.ArrayBuffer) {
                base64encoder = require_base64_arraybuffer();
            }
            var isAndroid = typeof navigator !== "undefined" && /Android/i.test(navigator.userAgent);
            var isPhantomJS = typeof navigator !== "undefined" && /PhantomJS/i.test(navigator.userAgent);
            var dontSendBlobs = isAndroid || isPhantomJS;
            exports.protocol = 3;
            var packets = exports.packets = {
                open: 0,
                close: 1,
                ping: 2,
                pong: 3,
                message: 4,
                upgrade: 5,
                noop: 6
            };
            var packetslist = keys(packets);
            var err = {
                type: "error",
                data: "parser error"
            };
            var Blob2 = require_blob();
            exports.encodePacket = function(packet, supportsBinary, utf8encode, callback) {
                if ("function" == typeof supportsBinary) {
                    callback = supportsBinary;
                    supportsBinary = false;
                }
                if ("function" == typeof utf8encode) {
                    callback = utf8encode;
                    utf8encode = null;
                }
                var data = packet.data === void 0 ? void 0 : packet.data.buffer || packet.data;
                if (globalThis.ArrayBuffer && data instanceof ArrayBuffer) {
                    return encodeArrayBuffer(packet, supportsBinary, callback);
                } else if (Blob2 && data instanceof globalThis.Blob) {
                    return encodeBlob(packet, supportsBinary, callback);
                }
                if (data && data.base64) {
                    return encodeBase64Object(packet, callback);
                }
                var encoded = packets[packet.type];
                if (void 0 !== packet.data) {
                    encoded += utf8encode ? utf8.encode(String(packet.data)) : String(packet.data);
                }
                return callback("" + encoded);
            };
            function encodeBase64Object(packet, callback) {
                var message2 = "b" + exports.packets[packet.type] + packet.data.data;
                return callback(message2);
            }
            function encodeArrayBuffer(packet, supportsBinary, callback) {
                if (!supportsBinary) {
                    return exports.encodeBase64Packet(packet, callback);
                }
                var data = packet.data;
                var contentArray = new Uint8Array(data);
                var resultBuffer = new Uint8Array(1 + data.byteLength);
                resultBuffer[0] = packets[packet.type];
                for(var i = 0; i < contentArray.length; i++){
                    resultBuffer[i + 1] = contentArray[i];
                }
                return callback(resultBuffer.buffer);
            }
            function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {
                if (!supportsBinary) {
                    return exports.encodeBase64Packet(packet, callback);
                }
                var fr = new FileReader();
                fr.onload = function() {
                    packet.data = fr.result;
                    exports.encodePacket(packet, supportsBinary, true, callback);
                };
                return fr.readAsArrayBuffer(packet.data);
            }
            function encodeBlob(packet, supportsBinary, callback) {
                if (!supportsBinary) {
                    return exports.encodeBase64Packet(packet, callback);
                }
                if (dontSendBlobs) {
                    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);
                }
                var length = new Uint8Array(1);
                length[0] = packets[packet.type];
                var blob = new Blob2([
                    length.buffer,
                    packet.data
                ]);
                return callback(blob);
            }
            exports.encodeBase64Packet = function(packet, callback) {
                var message2 = "b" + exports.packets[packet.type];
                if (Blob2 && packet.data instanceof globalThis.Blob) {
                    var fr = new FileReader();
                    fr.onload = function() {
                        var b64 = fr.result.split(",")[1];
                        callback(message2 + b64);
                    };
                    return fr.readAsDataURL(packet.data);
                }
                var b64data;
                try {
                    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));
                } catch (e) {
                    var typed = new Uint8Array(packet.data);
                    var basic = new Array(typed.length);
                    for(var i = 0; i < typed.length; i++){
                        basic[i] = typed[i];
                    }
                    b64data = String.fromCharCode.apply(null, basic);
                }
                message2 += globalThis.btoa(b64data);
                return callback(message2);
            };
            exports.decodePacket = function(data, binaryType, utf8decode) {
                if (data === void 0) {
                    return err;
                }
                if (typeof data == "string") {
                    if (data.charAt(0) == "b") {
                        return exports.decodeBase64Packet(data.substr(1), binaryType);
                    }
                    if (utf8decode) {
                        data = tryDecode(data);
                        if (data === false) {
                            return err;
                        }
                    }
                    var type = data.charAt(0);
                    if (Number(type) != type || !packetslist[type]) {
                        return err;
                    }
                    if (data.length > 1) {
                        return {
                            type: packetslist[type],
                            data: data.substring(1)
                        };
                    } else {
                        return {
                            type: packetslist[type]
                        };
                    }
                }
                var asArray = new Uint8Array(data);
                var type = asArray[0];
                var rest = sliceBuffer(data, 1);
                if (Blob2 && binaryType === "blob") {
                    rest = new Blob2([
                        rest
                    ]);
                }
                return {
                    type: packetslist[type],
                    data: rest
                };
            };
            function tryDecode(data) {
                try {
                    data = utf8.decode(data);
                } catch (e) {
                    return false;
                }
                return data;
            }
            exports.decodeBase64Packet = function(msg, binaryType) {
                var type = packetslist[msg.charAt(0)];
                if (!base64encoder) {
                    return {
                        type: type,
                        data: {
                            base64: true,
                            data: msg.substr(1)
                        }
                    };
                }
                var data = base64encoder.decode(msg.substr(1));
                if (binaryType === "blob" && Blob2) {
                    data = new Blob2([
                        data
                    ]);
                }
                return {
                    type: type,
                    data: data
                };
            };
            exports.encodePayload = function(packets2, supportsBinary, callback) {
                if (typeof supportsBinary == "function") {
                    callback = supportsBinary;
                    supportsBinary = null;
                }
                var isBinary = hasBinary(packets2);
                if (supportsBinary && isBinary) {
                    if (Blob2 && !dontSendBlobs) {
                        return exports.encodePayloadAsBlob(packets2, callback);
                    }
                    return exports.encodePayloadAsArrayBuffer(packets2, callback);
                }
                if (!packets2.length) {
                    return callback("0:");
                }
                function setLengthHeader(message2) {
                    return message2.length + ":" + message2;
                }
                function encodeOne(packet, doneCallback) {
                    exports.encodePacket(packet, !isBinary ? false : supportsBinary, true, function(message2) {
                        doneCallback(null, setLengthHeader(message2));
                    });
                }
                map(packets2, encodeOne, function(err2, results) {
                    return callback(results.join(""));
                });
            };
            function map(ary, each, done3) {
                var result17 = new Array(ary.length);
                var next = after(ary.length, done3);
                var eachWithIndex = function eachWithIndex(i2, el, cb) {
                    each(el, function(error, msg) {
                        result17[i2] = msg;
                        cb(error, result17);
                    });
                };
                for(var i = 0; i < ary.length; i++){
                    eachWithIndex(i, ary[i], next);
                }
            }
            exports.decodePayload = function(data, binaryType, callback) {
                if (typeof data != "string") {
                    return exports.decodePayloadAsBinary(data, binaryType, callback);
                }
                if (typeof binaryType === "function") {
                    callback = binaryType;
                    binaryType = null;
                }
                var packet;
                if (data == "") {
                    return callback(err, 0, 1);
                }
                var length = "", n, msg;
                for(var i = 0, l = data.length; i < l; i++){
                    var chr = data.charAt(i);
                    if (":" != chr) {
                        length += chr;
                    } else {
                        if ("" == length || length != (n = Number(length))) {
                            return callback(err, 0, 1);
                        }
                        msg = data.substr(i + 1, n);
                        if (length != msg.length) {
                            return callback(err, 0, 1);
                        }
                        if (msg.length) {
                            packet = exports.decodePacket(msg, binaryType, true);
                            if (err.type == packet.type && err.data == packet.data) {
                                return callback(err, 0, 1);
                            }
                            var ret = callback(packet, i + n, l);
                            if (false === ret) return;
                        }
                        i += n;
                        length = "";
                    }
                }
                if (length != "") {
                    return callback(err, 0, 1);
                }
            };
            exports.encodePayloadAsArrayBuffer = function(packets2, callback) {
                if (!packets2.length) {
                    return callback(new ArrayBuffer(0));
                }
                function encodeOne(packet, doneCallback) {
                    exports.encodePacket(packet, true, true, function(data) {
                        return doneCallback(null, data);
                    });
                }
                map(packets2, encodeOne, function(err2, encodedPackets) {
                    var totalLength = encodedPackets.reduce(function(acc, p) {
                        var len;
                        if (typeof p === "string") {
                            len = p.length;
                        } else {
                            len = p.byteLength;
                        }
                        return acc + len.toString().length + len + 2;
                    }, 0);
                    var resultArray = new Uint8Array(totalLength);
                    var bufferIndex = 0;
                    encodedPackets.forEach(function(p) {
                        var isString = typeof p === "string";
                        var ab = p;
                        if (isString) {
                            var view = new Uint8Array(p.length);
                            for(var i = 0; i < p.length; i++){
                                view[i] = p.charCodeAt(i);
                            }
                            ab = view.buffer;
                        }
                        if (isString) {
                            resultArray[bufferIndex++] = 0;
                        } else {
                            resultArray[bufferIndex++] = 1;
                        }
                        var lenStr = ab.byteLength.toString();
                        for(var i = 0; i < lenStr.length; i++){
                            resultArray[bufferIndex++] = parseInt(lenStr[i]);
                        }
                        resultArray[bufferIndex++] = 255;
                        var view = new Uint8Array(ab);
                        for(var i = 0; i < view.length; i++){
                            resultArray[bufferIndex++] = view[i];
                        }
                    });
                    return callback(resultArray.buffer);
                });
            };
            exports.encodePayloadAsBlob = function(packets2, callback) {
                function encodeOne(packet, doneCallback) {
                    exports.encodePacket(packet, true, true, function(encoded) {
                        var binaryIdentifier = new Uint8Array(1);
                        binaryIdentifier[0] = 1;
                        if (typeof encoded === "string") {
                            var view = new Uint8Array(encoded.length);
                            for(var i = 0; i < encoded.length; i++){
                                view[i] = encoded.charCodeAt(i);
                            }
                            encoded = view.buffer;
                            binaryIdentifier[0] = 0;
                        }
                        var len = encoded instanceof ArrayBuffer ? encoded.byteLength : encoded.size;
                        var lenStr = len.toString();
                        var lengthAry = new Uint8Array(lenStr.length + 1);
                        for(var i = 0; i < lenStr.length; i++){
                            lengthAry[i] = parseInt(lenStr[i]);
                        }
                        lengthAry[lenStr.length] = 255;
                        if (Blob2) {
                            var blob = new Blob2([
                                binaryIdentifier.buffer,
                                lengthAry.buffer,
                                encoded
                            ]);
                            doneCallback(null, blob);
                        }
                    });
                }
                map(packets2, encodeOne, function(err2, results) {
                    return callback(new Blob2(results));
                });
            };
            exports.decodePayloadAsBinary = function(data, binaryType, callback) {
                if (typeof binaryType === "function") {
                    callback = binaryType;
                    binaryType = null;
                }
                var bufferTail = data;
                var buffers2 = [];
                var numberTooLong = false;
                while(bufferTail.byteLength > 0){
                    var tailArray = new Uint8Array(bufferTail);
                    var isString = tailArray[0] === 0;
                    var msgLength = "";
                    for(var i = 1;; i++){
                        if (tailArray[i] == 255) break;
                        if (msgLength.length > 310) {
                            numberTooLong = true;
                            break;
                        }
                        msgLength += tailArray[i];
                    }
                    if (numberTooLong) return callback(err, 0, 1);
                    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);
                    msgLength = parseInt(msgLength);
                    var msg = sliceBuffer(bufferTail, 0, msgLength);
                    if (isString) {
                        try {
                            msg = String.fromCharCode.apply(null, new Uint8Array(msg));
                        } catch (e) {
                            var typed = new Uint8Array(msg);
                            msg = "";
                            for(var i = 0; i < typed.length; i++){
                                msg += String.fromCharCode(typed[i]);
                            }
                        }
                    }
                    buffers2.push(msg);
                    bufferTail = sliceBuffer(bufferTail, msgLength);
                }
                var total = buffers2.length;
                buffers2.forEach(function(buffer, i2) {
                    callback(exports.decodePacket(buffer, binaryType, true), i2, total);
                });
            };
        }
    });
    // node_modules/component-emitter/index.js
    var require_component_emitter2 = __commonJS({
        "node_modules/component-emitter/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            if (typeof module !== "undefined") {
                module.exports = Emitter;
            }
            function Emitter(obj) {
                if (obj) return mixin(obj);
            }
            function mixin(obj) {
                for(var key in Emitter.prototype){
                    obj[key] = Emitter.prototype[key];
                }
                return obj;
            }
            Emitter.prototype.on = Emitter.prototype.addEventListener = function(event, fn) {
                this._callbacks = this._callbacks || {};
                (this._callbacks["$" + event] = this._callbacks["$" + event] || []).push(fn);
                return this;
            };
            Emitter.prototype.once = function(event, fn) {
                function on() {
                    this.off(event, on);
                    fn.apply(this, arguments);
                }
                on.fn = fn;
                this.on(event, on);
                return this;
            };
            Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function(event, fn) {
                this._callbacks = this._callbacks || {};
                if (0 == arguments.length) {
                    this._callbacks = {};
                    return this;
                }
                var callbacks = this._callbacks["$" + event];
                if (!callbacks) return this;
                if (1 == arguments.length) {
                    delete this._callbacks["$" + event];
                    return this;
                }
                var cb;
                for(var i = 0; i < callbacks.length; i++){
                    cb = callbacks[i];
                    if (cb === fn || cb.fn === fn) {
                        callbacks.splice(i, 1);
                        break;
                    }
                }
                return this;
            };
            Emitter.prototype.emit = function(event) {
                this._callbacks = this._callbacks || {};
                var args = [].slice.call(arguments, 1), callbacks = this._callbacks["$" + event];
                if (callbacks) {
                    callbacks = callbacks.slice(0);
                    for(var i = 0, len = callbacks.length; i < len; ++i){
                        callbacks[i].apply(this, args);
                    }
                }
                return this;
            };
            Emitter.prototype.listeners = function(event) {
                this._callbacks = this._callbacks || {};
                return this._callbacks["$" + event] || [];
            };
            Emitter.prototype.hasListeners = function(event) {
                return !!this.listeners(event).length;
            };
        }
    });
    // node_modules/engine.io-client/lib/transport.js
    var require_transport = __commonJS({
        "node_modules/engine.io-client/lib/transport.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var parser = require_browser18();
            var Emitter = require_component_emitter2();
            module.exports = Transport;
            function Transport(opts) {
                this.path = opts.path;
                this.hostname = opts.hostname;
                this.port = opts.port;
                this.secure = opts.secure;
                this.query = opts.query;
                this.timestampParam = opts.timestampParam;
                this.timestampRequests = opts.timestampRequests;
                this.readyState = "";
                this.agent = opts.agent || false;
                this.socket = opts.socket;
                this.enablesXDR = opts.enablesXDR;
                this.pfx = opts.pfx;
                this.key = opts.key;
                this.passphrase = opts.passphrase;
                this.cert = opts.cert;
                this.ca = opts.ca;
                this.ciphers = opts.ciphers;
                this.rejectUnauthorized = opts.rejectUnauthorized;
                this.forceNode = opts.forceNode;
                this.extraHeaders = opts.extraHeaders;
                this.localAddress = opts.localAddress;
            }
            Emitter(Transport.prototype);
            Transport.prototype.onError = function(msg, desc) {
                var err = new Error(msg);
                err.type = "TransportError";
                err.description = desc;
                this.emit("error", err);
                return this;
            };
            Transport.prototype.open = function() {
                if ("closed" === this.readyState || "" === this.readyState) {
                    this.readyState = "opening";
                    this.doOpen();
                }
                return this;
            };
            Transport.prototype.close = function() {
                if ("opening" === this.readyState || "open" === this.readyState) {
                    this.doClose();
                    this.onClose();
                }
                return this;
            };
            Transport.prototype.send = function(packets) {
                if ("open" === this.readyState) {
                    this.write(packets);
                } else {
                    throw new Error("Transport not open");
                }
            };
            Transport.prototype.onOpen = function() {
                this.readyState = "open";
                this.writable = true;
                this.emit("open");
            };
            Transport.prototype.onData = function(data) {
                var packet = parser.decodePacket(data, this.socket.binaryType);
                this.onPacket(packet);
            };
            Transport.prototype.onPacket = function(packet) {
                this.emit("packet", packet);
            };
            Transport.prototype.onClose = function() {
                this.readyState = "closed";
                this.emit("close");
            };
        }
    });
    // node_modules/parseqs/index.js
    var require_parseqs = __commonJS({
        "node_modules/parseqs/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.encode = function(obj) {
                var str = "";
                for(var i in obj){
                    if (obj.hasOwnProperty(i)) {
                        if (str.length) str += "&";
                        str += encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]);
                    }
                }
                return str;
            };
            exports.decode = function(qs) {
                var qry = {};
                var pairs = qs.split("&");
                for(var i = 0, l = pairs.length; i < l; i++){
                    var pair = pairs[i].split("=");
                    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
                }
                return qry;
            };
        }
    });
    // node_modules/component-inherit/index.js
    var require_component_inherit = __commonJS({
        "node_modules/component-inherit/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = function(a, b) {
                var fn = function fn() {};
                fn.prototype = b.prototype;
                a.prototype = new fn();
                a.prototype.constructor = a;
            };
        }
    });
    // node_modules/yeast/index.js
    var require_yeast = __commonJS({
        "node_modules/yeast/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split("");
            var length = 64;
            var map = {};
            var seed = 0;
            var i = 0;
            var prev;
            function encode3(num) {
                var encoded = "";
                do {
                    encoded = alphabet[num % length] + encoded;
                    num = Math.floor(num / length);
                }while (num > 0);
                return encoded;
            }
            function decode3(str) {
                var decoded = 0;
                for(i = 0; i < str.length; i++){
                    decoded = decoded * length + map[str.charAt(i)];
                }
                return decoded;
            }
            function yeast() {
                var now2 = encode3(+/* @__PURE__ */ new Date());
                if (now2 !== prev) return seed = 0, prev = now2;
                return now2 + "." + encode3(seed++);
            }
            for(; i < length; i++)map[alphabet[i]] = i;
            yeast.encode = encode3;
            yeast.decode = decode3;
            module.exports = yeast;
        }
    });
    // node_modules/engine.io-client/node_modules/ms/index.js
    var require_ms4 = __commonJS({
        "node_modules/engine.io-client/node_modules/ms/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var s = 1e3;
            var m = s * 60;
            var h = m * 60;
            var d = h * 24;
            var y = d * 365.25;
            module.exports = function(val, options) {
                options = options || {};
                var type = typeof val === "undefined" ? "undefined" : _type_of(val);
                if (type === "string" && val.length > 0) {
                    return parse2(val);
                } else if (type === "number" && isNaN(val) === false) {
                    return options["long"] ? fmtLong(val) : fmtShort(val);
                }
                throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
            };
            function parse2(str) {
                str = String(str);
                if (str.length > 1e4) {
                    return;
                }
                var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
                if (!match) {
                    return;
                }
                var n = parseFloat(match[1]);
                var type = (match[2] || "ms").toLowerCase();
                switch(type){
                    case "years":
                    case "year":
                    case "yrs":
                    case "yr":
                    case "y":
                        return n * y;
                    case "days":
                    case "day":
                    case "d":
                        return n * d;
                    case "hours":
                    case "hour":
                    case "hrs":
                    case "hr":
                    case "h":
                        return n * h;
                    case "minutes":
                    case "minute":
                    case "mins":
                    case "min":
                    case "m":
                        return n * m;
                    case "seconds":
                    case "second":
                    case "secs":
                    case "sec":
                    case "s":
                        return n * s;
                    case "milliseconds":
                    case "millisecond":
                    case "msecs":
                    case "msec":
                    case "ms":
                        return n;
                    default:
                        return void 0;
                }
            }
            function fmtShort(ms) {
                if (ms >= d) {
                    return Math.round(ms / d) + "d";
                }
                if (ms >= h) {
                    return Math.round(ms / h) + "h";
                }
                if (ms >= m) {
                    return Math.round(ms / m) + "m";
                }
                if (ms >= s) {
                    return Math.round(ms / s) + "s";
                }
                return ms + "ms";
            }
            function fmtLong(ms) {
                return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
            }
            function plural(ms, n, name) {
                if (ms < n) {
                    return;
                }
                if (ms < n * 1.5) {
                    return Math.floor(ms / n) + " " + name;
                }
                return Math.ceil(ms / n) + " " + name + "s";
            }
        }
    });
    // node_modules/engine.io-client/node_modules/debug/debug.js
    var require_debug3 = __commonJS({
        "node_modules/engine.io-client/node_modules/debug/debug.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = debug4.debug = debug4;
            exports.coerce = coerce;
            exports.disable = disable;
            exports.enable = enable;
            exports.enabled = enabled;
            exports.humanize = require_ms4();
            exports.names = [];
            exports.skips = [];
            exports.formatters = {};
            var prevColor = 0;
            var prevTime;
            function selectColor() {
                return exports.colors[prevColor++ % exports.colors.length];
            }
            function debug4(namespace) {
                function disabled() {}
                disabled.enabled = false;
                function enabled2() {
                    var self2 = enabled2;
                    var curr = +/* @__PURE__ */ new Date();
                    var ms = curr - (prevTime || curr);
                    self2.diff = ms;
                    self2.prev = prevTime;
                    self2.curr = curr;
                    prevTime = curr;
                    if (null == self2.useColors) self2.useColors = exports.useColors();
                    if (null == self2.color && self2.useColors) self2.color = selectColor();
                    var args = new Array(arguments.length);
                    for(var i = 0; i < args.length; i++){
                        args[i] = arguments[i];
                    }
                    args[0] = exports.coerce(args[0]);
                    if ("string" !== typeof args[0]) {
                        args = [
                            "%o"
                        ].concat(args);
                    }
                    var index = 0;
                    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
                        if (match === "%%") return match;
                        index++;
                        var formatter = exports.formatters[format];
                        if ("function" === typeof formatter) {
                            var val = args[index];
                            match = formatter.call(self2, val);
                            args.splice(index, 1);
                            index--;
                        }
                        return match;
                    });
                    args = exports.formatArgs.apply(self2, args);
                    var logFn = enabled2.log || exports.log || console.log.bind(console);
                    logFn.apply(self2, args);
                }
                enabled2.enabled = true;
                var fn = exports.enabled(namespace) ? enabled2 : disabled;
                fn.namespace = namespace;
                return fn;
            }
            function enable(namespaces) {
                exports.save(namespaces);
                var split = (namespaces || "").split(/[\s,]+/);
                var len = split.length;
                for(var i = 0; i < len; i++){
                    if (!split[i]) continue;
                    namespaces = split[i].replace(/[\\^$+?.()|[\]{}]/g, "\\$&").replace(/\*/g, ".*?");
                    if (namespaces[0] === "-") {
                        exports.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
                    } else {
                        exports.names.push(new RegExp("^" + namespaces + "$"));
                    }
                }
            }
            function disable() {
                exports.enable("");
            }
            function enabled(name) {
                var i, len;
                for(i = 0, len = exports.skips.length; i < len; i++){
                    if (exports.skips[i].test(name)) {
                        return false;
                    }
                }
                for(i = 0, len = exports.names.length; i < len; i++){
                    if (exports.names[i].test(name)) {
                        return true;
                    }
                }
                return false;
            }
            function coerce(val) {
                if (val instanceof Error) return val.stack || val.message;
                return val;
            }
        }
    });
    // node_modules/engine.io-client/node_modules/debug/browser.js
    var require_browser19 = __commonJS({
        "node_modules/engine.io-client/node_modules/debug/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = require_debug3();
            exports.log = log;
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
            exports.colors = [
                "lightseagreen",
                "forestgreen",
                "goldenrod",
                "dodgerblue",
                "darkorchid",
                "crimson"
            ];
            function useColors() {
                return typeof document !== "undefined" && "WebkitAppearance" in document.documentElement.style || // is firebug? http://stackoverflow.com/a/398120/376773
                window.console && (console.firebug || console.exception && console.table) || // is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31;
            }
            exports.formatters.j = function(v) {
                try {
                    return JSON.stringify(v);
                } catch (err) {
                    return "[UnexpectedJSONParseError]: " + err.message;
                }
            };
            function formatArgs() {
                var args = arguments;
                var useColors2 = this.useColors;
                args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports.humanize(this.diff);
                if (!useColors2) return args;
                var c = "color: " + this.color;
                args = [
                    args[0],
                    c,
                    "color: inherit"
                ].concat(Array.prototype.slice.call(args, 1));
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-z%]/g, function(match) {
                    if ("%%" === match) return;
                    index++;
                    if ("%c" === match) {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
                return args;
            }
            function log() {
                return "object" === (typeof console === "undefined" ? "undefined" : _type_of(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);
            }
            function save(namespaces) {
                try {
                    if (null == namespaces) {
                        exports.storage.removeItem("debug");
                    } else {
                        exports.storage.debug = namespaces;
                    }
                } catch (e) {}
            }
            function load() {
                var r;
                try {
                    return exports.storage.debug;
                } catch (e) {}
                if (typeof process !== "undefined" && "env" in process) {
                    return process.env.DEBUG;
                }
            }
            exports.enable(load());
            function localstorage() {
                try {
                    return window.localStorage;
                } catch (e) {}
            }
        }
    });
    // node_modules/engine.io-client/lib/transports/polling.js
    var require_polling = __commonJS({
        "node_modules/engine.io-client/lib/transports/polling.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Transport = require_transport();
            var parseqs = require_parseqs();
            var parser = require_browser18();
            var inherit = require_component_inherit();
            var yeast = require_yeast();
            var debug4 = require_browser19()("engine.io-client:polling");
            module.exports = Polling;
            var hasXHR2 = function() {
                var XMLHttpRequest2 = require_xmlhttprequest();
                var xhr = new XMLHttpRequest2({
                    xdomain: false
                });
                return null != xhr.responseType;
            }();
            function Polling(opts) {
                var forceBase64 = opts && opts.forceBase64;
                if (!hasXHR2 || forceBase64) {
                    this.supportsBinary = false;
                }
                Transport.call(this, opts);
            }
            inherit(Polling, Transport);
            Polling.prototype.name = "polling";
            Polling.prototype.doOpen = function() {
                this.poll();
            };
            Polling.prototype.pause = function(onPause) {
                var self2 = this;
                this.readyState = "pausing";
                function pause() {
                    debug4("paused");
                    self2.readyState = "paused";
                    onPause();
                }
                if (this.polling || !this.writable) {
                    var total = 0;
                    if (this.polling) {
                        debug4("we are currently polling - waiting to pause");
                        total++;
                        this.once("pollComplete", function() {
                            debug4("pre-pause polling complete");
                            --total || pause();
                        });
                    }
                    if (!this.writable) {
                        debug4("we are currently writing - waiting to pause");
                        total++;
                        this.once("drain", function() {
                            debug4("pre-pause writing complete");
                            --total || pause();
                        });
                    }
                } else {
                    pause();
                }
            };
            Polling.prototype.poll = function() {
                debug4("polling");
                this.polling = true;
                this.doPoll();
                this.emit("poll");
            };
            Polling.prototype.onData = function(data) {
                var self2 = this;
                debug4("polling got data %s", data);
                var callback = function callback(packet, index, total) {
                    if ("opening" === self2.readyState) {
                        self2.onOpen();
                    }
                    if ("close" === packet.type) {
                        self2.onClose();
                        return false;
                    }
                    self2.onPacket(packet);
                };
                parser.decodePayload(data, this.socket.binaryType, callback);
                if ("closed" !== this.readyState) {
                    this.polling = false;
                    this.emit("pollComplete");
                    if ("open" === this.readyState) {
                        this.poll();
                    } else {
                        debug4('ignoring poll - transport state "%s"', this.readyState);
                    }
                }
            };
            Polling.prototype.doClose = function() {
                var self2 = this;
                function close() {
                    debug4("writing close packet");
                    self2.write([
                        {
                            type: "close"
                        }
                    ]);
                }
                if ("open" === this.readyState) {
                    debug4("transport open - closing");
                    close();
                } else {
                    debug4("transport not open - deferring close");
                    this.once("open", close);
                }
            };
            Polling.prototype.write = function(packets) {
                var self2 = this;
                this.writable = false;
                var callbackfn = function callbackfn() {
                    self2.writable = true;
                    self2.emit("drain");
                };
                parser.encodePayload(packets, this.supportsBinary, function(data) {
                    self2.doWrite(data, callbackfn);
                });
            };
            Polling.prototype.uri = function() {
                var query = this.query || {};
                var schema = this.secure ? "https" : "http";
                var port = "";
                if (false !== this.timestampRequests) {
                    query[this.timestampParam] = yeast();
                }
                if (!this.supportsBinary && !query.sid) {
                    query.b64 = 1;
                }
                query = parseqs.encode(query);
                if (this.port && ("https" === schema && Number(this.port) !== 443 || "http" === schema && Number(this.port) !== 80)) {
                    port = ":" + this.port;
                }
                if (query.length) {
                    query = "?" + query;
                }
                var ipv6 = this.hostname.indexOf(":") !== -1;
                return schema + "://" + (ipv6 ? "[" + this.hostname + "]" : this.hostname) + port + this.path + query;
            };
        }
    });
    // node_modules/engine.io-client/lib/transports/polling-xhr.js
    var require_polling_xhr = __commonJS({
        "node_modules/engine.io-client/lib/transports/polling-xhr.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var XMLHttpRequest2 = require_xmlhttprequest();
            var Polling = require_polling();
            var Emitter = require_component_emitter2();
            var inherit = require_component_inherit();
            var debug4 = require_browser19()("engine.io-client:polling-xhr");
            module.exports = XHR;
            module.exports.Request = Request2;
            function empty() {}
            function XHR(opts) {
                Polling.call(this, opts);
                this.requestTimeout = opts.requestTimeout;
                if (globalThis.location) {
                    var isSSL = "https:" === location.protocol;
                    var port = location.port;
                    if (!port) {
                        port = isSSL ? 443 : 80;
                    }
                    this.xd = opts.hostname !== globalThis.location.hostname || port !== opts.port;
                    this.xs = opts.secure !== isSSL;
                } else {
                    this.extraHeaders = opts.extraHeaders;
                }
            }
            inherit(XHR, Polling);
            XHR.prototype.supportsBinary = true;
            XHR.prototype.request = function(opts) {
                opts = opts || {};
                opts.uri = this.uri();
                opts.xd = this.xd;
                opts.xs = this.xs;
                opts.agent = this.agent || false;
                opts.supportsBinary = this.supportsBinary;
                opts.enablesXDR = this.enablesXDR;
                opts.pfx = this.pfx;
                opts.key = this.key;
                opts.passphrase = this.passphrase;
                opts.cert = this.cert;
                opts.ca = this.ca;
                opts.ciphers = this.ciphers;
                opts.rejectUnauthorized = this.rejectUnauthorized;
                opts.requestTimeout = this.requestTimeout;
                opts.extraHeaders = this.extraHeaders;
                return new Request2(opts);
            };
            XHR.prototype.doWrite = function(data, fn) {
                var isBinary = typeof data !== "string" && data !== void 0;
                var req = this.request({
                    method: "POST",
                    data: data,
                    isBinary: isBinary
                });
                var self2 = this;
                req.on("success", fn);
                req.on("error", function(err) {
                    self2.onError("xhr post error", err);
                });
                this.sendXhr = req;
            };
            XHR.prototype.doPoll = function() {
                debug4("xhr poll");
                var req = this.request();
                var self2 = this;
                req.on("data", function(data) {
                    self2.onData(data);
                });
                req.on("error", function(err) {
                    self2.onError("xhr poll error", err);
                });
                this.pollXhr = req;
            };
            function Request2(opts) {
                this.method = opts.method || "GET";
                this.uri = opts.uri;
                this.xd = !!opts.xd;
                this.xs = !!opts.xs;
                this.async = false !== opts.async;
                this.data = void 0 !== opts.data ? opts.data : null;
                this.agent = opts.agent;
                this.isBinary = opts.isBinary;
                this.supportsBinary = opts.supportsBinary;
                this.enablesXDR = opts.enablesXDR;
                this.requestTimeout = opts.requestTimeout;
                this.pfx = opts.pfx;
                this.key = opts.key;
                this.passphrase = opts.passphrase;
                this.cert = opts.cert;
                this.ca = opts.ca;
                this.ciphers = opts.ciphers;
                this.rejectUnauthorized = opts.rejectUnauthorized;
                this.extraHeaders = opts.extraHeaders;
                this.create();
            }
            Emitter(Request2.prototype);
            Request2.prototype.create = function() {
                var opts = {
                    agent: this.agent,
                    xdomain: this.xd,
                    xscheme: this.xs,
                    enablesXDR: this.enablesXDR
                };
                opts.pfx = this.pfx;
                opts.key = this.key;
                opts.passphrase = this.passphrase;
                opts.cert = this.cert;
                opts.ca = this.ca;
                opts.ciphers = this.ciphers;
                opts.rejectUnauthorized = this.rejectUnauthorized;
                var xhr = this.xhr = new XMLHttpRequest2(opts);
                var self2 = this;
                try {
                    debug4("xhr open %s: %s", this.method, this.uri);
                    xhr.open(this.method, this.uri, this.async);
                    try {
                        if (this.extraHeaders) {
                            xhr.setDisableHeaderCheck(true);
                            for(var i in this.extraHeaders){
                                if (this.extraHeaders.hasOwnProperty(i)) {
                                    xhr.setRequestHeader(i, this.extraHeaders[i]);
                                }
                            }
                        }
                    } catch (e) {}
                    if (this.supportsBinary) {
                        xhr.responseType = "arraybuffer";
                    }
                    if ("POST" === this.method) {
                        try {
                            if (this.isBinary) {
                                xhr.setRequestHeader("Content-type", "application/octet-stream");
                            } else {
                                xhr.setRequestHeader("Content-type", "text/plain;charset=UTF-8");
                            }
                        } catch (e) {}
                    }
                    try {
                        xhr.setRequestHeader("Accept", "*/*");
                    } catch (e) {}
                    if ("withCredentials" in xhr) {
                        xhr.withCredentials = true;
                    }
                    if (this.requestTimeout) {
                        xhr.timeout = this.requestTimeout;
                    }
                    if (this.hasXDR()) {
                        xhr.onload = function() {
                            self2.onLoad();
                        };
                        xhr.onerror = function() {
                            self2.onError(xhr.responseText);
                        };
                    } else {
                        xhr.onreadystatechange = function() {
                            if (4 !== xhr.readyState) return;
                            if (200 === xhr.status || 1223 === xhr.status) {
                                self2.onLoad();
                            } else {
                                setTimeout(function() {
                                    self2.onError(xhr.status);
                                }, 0);
                            }
                        };
                    }
                    debug4("xhr data %s", this.data);
                    xhr.send(this.data);
                } catch (e) {
                    setTimeout(function() {
                        self2.onError(e);
                    }, 0);
                    return;
                }
                if (globalThis.document) {
                    this.index = Request2.requestsCount++;
                    Request2.requests[this.index] = this;
                }
            };
            Request2.prototype.onSuccess = function() {
                this.emit("success");
                this.cleanup();
            };
            Request2.prototype.onData = function(data) {
                this.emit("data", data);
                this.onSuccess();
            };
            Request2.prototype.onError = function(err) {
                this.emit("error", err);
                this.cleanup(true);
            };
            Request2.prototype.cleanup = function(fromError) {
                if ("undefined" === typeof this.xhr || null === this.xhr) {
                    return;
                }
                if (this.hasXDR()) {
                    this.xhr.onload = this.xhr.onerror = empty;
                } else {
                    this.xhr.onreadystatechange = empty;
                }
                if (fromError) {
                    try {
                        this.xhr.abort();
                    } catch (e) {}
                }
                if (globalThis.document) {
                    delete Request2.requests[this.index];
                }
                this.xhr = null;
            };
            Request2.prototype.onLoad = function() {
                var data;
                try {
                    var contentType;
                    try {
                        contentType = this.xhr.getResponseHeader("Content-Type").split(";")[0];
                    } catch (e) {}
                    if (contentType === "application/octet-stream") {
                        data = this.xhr.response || this.xhr.responseText;
                    } else {
                        if (!this.supportsBinary) {
                            data = this.xhr.responseText;
                        } else {
                            try {
                                data = String.fromCharCode.apply(null, new Uint8Array(this.xhr.response));
                            } catch (e) {
                                var ui8Arr = new Uint8Array(this.xhr.response);
                                var dataArray = [];
                                for(var idx = 0, length = ui8Arr.length; idx < length; idx++){
                                    dataArray.push(ui8Arr[idx]);
                                }
                                data = String.fromCharCode.apply(null, dataArray);
                            }
                        }
                    }
                } catch (e) {
                    this.onError(e);
                }
                if (null != data) {
                    this.onData(data);
                }
            };
            Request2.prototype.hasXDR = function() {
                return "undefined" !== typeof globalThis.XDomainRequest && !this.xs && this.enablesXDR;
            };
            Request2.prototype.abort = function() {
                this.cleanup();
            };
            Request2.requestsCount = 0;
            Request2.requests = {};
            if (globalThis.document) {
                if (globalThis.attachEvent) {
                    globalThis.attachEvent("onunload", unloadHandler);
                } else if (globalThis.addEventListener) {
                    globalThis.addEventListener("beforeunload", unloadHandler, false);
                }
            }
            function unloadHandler() {
                for(var i in Request2.requests){
                    if (Request2.requests.hasOwnProperty(i)) {
                        Request2.requests[i].abort();
                    }
                }
            }
        }
    });
    // node_modules/engine.io-client/lib/transports/polling-jsonp.js
    var require_polling_jsonp = __commonJS({
        "node_modules/engine.io-client/lib/transports/polling-jsonp.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Polling = require_polling();
            var inherit = require_component_inherit();
            module.exports = JSONPPolling;
            var rNewline = /\n/g;
            var rEscapedNewline = /\\n/g;
            var callbacks;
            function empty() {}
            function JSONPPolling(opts) {
                Polling.call(this, opts);
                this.query = this.query || {};
                if (!callbacks) {
                    if (!globalThis.___eio) globalThis.___eio = [];
                    callbacks = globalThis.___eio;
                }
                this.index = callbacks.length;
                var self2 = this;
                callbacks.push(function(msg) {
                    self2.onData(msg);
                });
                this.query.j = this.index;
                if (globalThis.document && globalThis.addEventListener) {
                    globalThis.addEventListener("beforeunload", function() {
                        if (self2.script) self2.script.onerror = empty;
                    }, false);
                }
            }
            inherit(JSONPPolling, Polling);
            JSONPPolling.prototype.supportsBinary = false;
            JSONPPolling.prototype.doClose = function() {
                if (this.script) {
                    this.script.parentNode.removeChild(this.script);
                    this.script = null;
                }
                if (this.form) {
                    this.form.parentNode.removeChild(this.form);
                    this.form = null;
                    this.iframe = null;
                }
                Polling.prototype.doClose.call(this);
            };
            JSONPPolling.prototype.doPoll = function() {
                var self2 = this;
                var script = document.createElement("script");
                if (this.script) {
                    this.script.parentNode.removeChild(this.script);
                    this.script = null;
                }
                script.async = true;
                script.src = this.uri();
                script.onerror = function(e) {
                    self2.onError("jsonp poll error", e);
                };
                var insertAt = document.getElementsByTagName("script")[0];
                if (insertAt) {
                    insertAt.parentNode.insertBefore(script, insertAt);
                } else {
                    (document.head || document.body).appendChild(script);
                }
                this.script = script;
                var isUAgecko = "undefined" !== typeof navigator && /gecko/i.test(navigator.userAgent);
                if (isUAgecko) {
                    setTimeout(function() {
                        var iframe = document.createElement("iframe");
                        document.body.appendChild(iframe);
                        document.body.removeChild(iframe);
                    }, 100);
                }
            };
            JSONPPolling.prototype.doWrite = function(data, fn) {
                var self2 = this;
                if (!this.form) {
                    var form = document.createElement("form");
                    var area = document.createElement("textarea");
                    var id = this.iframeId = "eio_iframe_" + this.index;
                    var iframe;
                    form.className = "socketio";
                    form.style.position = "absolute";
                    form.style.top = "-1000px";
                    form.style.left = "-1000px";
                    form.target = id;
                    form.method = "POST";
                    form.setAttribute("accept-charset", "utf-8");
                    area.name = "d";
                    form.appendChild(area);
                    document.body.appendChild(form);
                    this.form = form;
                    this.area = area;
                }
                this.form.action = this.uri();
                function complete() {
                    initIframe();
                    fn();
                }
                function initIframe() {
                    if (self2.iframe) {
                        try {
                            self2.form.removeChild(self2.iframe);
                        } catch (e) {
                            self2.onError("jsonp polling iframe removal error", e);
                        }
                    }
                    try {
                        var html = '<iframe src="javascript:0" name="' + self2.iframeId + '">';
                        iframe = document.createElement(html);
                    } catch (e) {
                        iframe = document.createElement("iframe");
                        iframe.name = self2.iframeId;
                        iframe.src = "javascript:0";
                    }
                    iframe.id = self2.iframeId;
                    self2.form.appendChild(iframe);
                    self2.iframe = iframe;
                }
                initIframe();
                data = data.replace(rEscapedNewline, "\\\n");
                this.area.value = data.replace(rNewline, "\\n");
                try {
                    this.form.submit();
                } catch (e) {}
                if (this.iframe.attachEvent) {
                    this.iframe.onreadystatechange = function() {
                        if (self2.iframe.readyState === "complete") {
                            complete();
                        }
                    };
                } else {
                    this.iframe.onload = complete;
                }
            };
        }
    });
    // (disabled):node_modules/engine.io-client/node_modules/ws/index.js
    var require_ws = __commonJS({
        "(disabled):node_modules/engine.io-client/node_modules/ws/index.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // node_modules/engine.io-client/lib/transports/websocket.js
    var require_websocket = __commonJS({
        "node_modules/engine.io-client/lib/transports/websocket.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Transport = require_transport();
            var parser = require_browser18();
            var parseqs = require_parseqs();
            var inherit = require_component_inherit();
            var yeast = require_yeast();
            var debug4 = require_browser19()("engine.io-client:websocket");
            var BrowserWebSocket = globalThis.WebSocket || globalThis.MozWebSocket;
            var NodeWebSocket;
            if (typeof window === "undefined") {
                try {
                    NodeWebSocket = require_ws();
                } catch (e) {}
            }
            var WebSocket2 = BrowserWebSocket;
            if (!WebSocket2 && typeof window === "undefined") {
                WebSocket2 = NodeWebSocket;
            }
            module.exports = WS;
            function WS(opts) {
                var forceBase64 = opts && opts.forceBase64;
                if (forceBase64) {
                    this.supportsBinary = false;
                }
                this.perMessageDeflate = opts.perMessageDeflate;
                this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;
                if (!this.usingBrowserWebSocket) {
                    WebSocket2 = NodeWebSocket;
                }
                Transport.call(this, opts);
            }
            inherit(WS, Transport);
            WS.prototype.name = "websocket";
            WS.prototype.supportsBinary = true;
            WS.prototype.doOpen = function() {
                if (!this.check()) {
                    return;
                }
                var uri = this.uri();
                var protocols = void 0;
                var opts = {
                    agent: this.agent,
                    perMessageDeflate: this.perMessageDeflate
                };
                opts.pfx = this.pfx;
                opts.key = this.key;
                opts.passphrase = this.passphrase;
                opts.cert = this.cert;
                opts.ca = this.ca;
                opts.ciphers = this.ciphers;
                opts.rejectUnauthorized = this.rejectUnauthorized;
                if (this.extraHeaders) {
                    opts.headers = this.extraHeaders;
                }
                if (this.localAddress) {
                    opts.localAddress = this.localAddress;
                }
                try {
                    this.ws = this.usingBrowserWebSocket ? new WebSocket2(uri) : new WebSocket2(uri, protocols, opts);
                } catch (err) {
                    return this.emit("error", err);
                }
                if (this.ws.binaryType === void 0) {
                    this.supportsBinary = false;
                }
                if (this.ws.supports && this.ws.supports.binary) {
                    this.supportsBinary = true;
                    this.ws.binaryType = "nodebuffer";
                } else {
                    this.ws.binaryType = "arraybuffer";
                }
                this.addEventListeners();
            };
            WS.prototype.addEventListeners = function() {
                var self2 = this;
                this.ws.onopen = function() {
                    self2.onOpen();
                };
                this.ws.onclose = function() {
                    self2.onClose();
                };
                this.ws.onmessage = function(ev) {
                    self2.onData(ev.data);
                };
                this.ws.onerror = function(e) {
                    self2.onError("websocket error", e);
                };
            };
            WS.prototype.write = function(packets) {
                var self2 = this;
                this.writable = false;
                var total = packets.length;
                for(var i = 0, l = total; i < l; i++){
                    (function(packet) {
                        parser.encodePacket(packet, self2.supportsBinary, function(data) {
                            if (!self2.usingBrowserWebSocket) {
                                var opts = {};
                                if (packet.options) {
                                    opts.compress = packet.options.compress;
                                }
                                if (self2.perMessageDeflate) {
                                    var len = "string" === typeof data ? globalThis.Buffer.byteLength(data) : data.length;
                                    if (len < self2.perMessageDeflate.threshold) {
                                        opts.compress = false;
                                    }
                                }
                            }
                            try {
                                if (self2.usingBrowserWebSocket) {
                                    self2.ws.send(data);
                                } else {
                                    self2.ws.send(data, opts);
                                }
                            } catch (e) {
                                debug4("websocket closed before onclose event");
                            }
                            --total || done3();
                        });
                    })(packets[i]);
                }
                function done3() {
                    self2.emit("flush");
                    setTimeout(function() {
                        self2.writable = true;
                        self2.emit("drain");
                    }, 0);
                }
            };
            WS.prototype.onClose = function() {
                Transport.prototype.onClose.call(this);
            };
            WS.prototype.doClose = function() {
                if (typeof this.ws !== "undefined") {
                    this.ws.close();
                }
            };
            WS.prototype.uri = function() {
                var query = this.query || {};
                var schema = this.secure ? "wss" : "ws";
                var port = "";
                if (this.port && ("wss" === schema && Number(this.port) !== 443 || "ws" === schema && Number(this.port) !== 80)) {
                    port = ":" + this.port;
                }
                if (this.timestampRequests) {
                    query[this.timestampParam] = yeast();
                }
                if (!this.supportsBinary) {
                    query.b64 = 1;
                }
                query = parseqs.encode(query);
                if (query.length) {
                    query = "?" + query;
                }
                var ipv6 = this.hostname.indexOf(":") !== -1;
                return schema + "://" + (ipv6 ? "[" + this.hostname + "]" : this.hostname) + port + this.path + query;
            };
            WS.prototype.check = function() {
                return !!WebSocket2 && !("__initialize" in WebSocket2 && this.name === WS.prototype.name);
            };
        }
    });
    // node_modules/engine.io-client/lib/transports/index.js
    var require_transports = __commonJS({
        "node_modules/engine.io-client/lib/transports/index.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var XMLHttpRequest2 = require_xmlhttprequest();
            var XHR = require_polling_xhr();
            var JSONP = require_polling_jsonp();
            var websocket = require_websocket();
            exports.polling = polling;
            exports.websocket = websocket;
            function polling(opts) {
                var xhr;
                var xd = false;
                var xs = false;
                var jsonp = false !== opts.jsonp;
                if (globalThis.location) {
                    var isSSL = "https:" === location.protocol;
                    var port = location.port;
                    if (!port) {
                        port = isSSL ? 443 : 80;
                    }
                    xd = opts.hostname !== location.hostname || port !== opts.port;
                    xs = opts.secure !== isSSL;
                }
                opts.xdomain = xd;
                opts.xscheme = xs;
                xhr = new XMLHttpRequest2(opts);
                if ("open" in xhr && !opts.forceJSONP) {
                    return new XHR(opts);
                } else {
                    if (!jsonp) throw new Error("JSONP disabled");
                    return new JSONP(opts);
                }
            }
        }
    });
    // node_modules/indexof/index.js
    var require_indexof = __commonJS({
        "node_modules/indexof/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var indexOf = [].indexOf;
            module.exports = function(arr, obj) {
                if (indexOf) return arr.indexOf(obj);
                for(var i = 0; i < arr.length; ++i){
                    if (arr[i] === obj) return i;
                }
                return -1;
            };
        }
    });
    // node_modules/parsejson/index.js
    var require_parsejson = __commonJS({
        "node_modules/parsejson/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var rvalidchars = /^[\],:{}\s]*$/;
            var rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g;
            var rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;
            var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;
            var rtrimLeft = /^\s+/;
            var rtrimRight = /\s+$/;
            module.exports = function parsejson(data) {
                if ("string" != typeof data || !data) {
                    return null;
                }
                data = data.replace(rtrimLeft, "").replace(rtrimRight, "");
                if (globalThis.JSON && JSON.parse) {
                    return JSON.parse(data);
                }
                if (rvalidchars.test(data.replace(rvalidescape, "@").replace(rvalidtokens, "]").replace(rvalidbraces, ""))) {
                    return new Function("return " + data)();
                }
            };
        }
    });
    // node_modules/engine.io-client/lib/socket.js
    var require_socket2 = __commonJS({
        "node_modules/engine.io-client/lib/socket.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var transports = require_transports();
            var Emitter = require_component_emitter2();
            var debug4 = require_browser19()("engine.io-client:socket");
            var index = require_indexof();
            var parser = require_browser18();
            var parseuri = require_parseuri();
            var parsejson = require_parsejson();
            var parseqs = require_parseqs();
            module.exports = Socket;
            function Socket(uri, opts) {
                if (!(this instanceof Socket)) return new Socket(uri, opts);
                opts = opts || {};
                if (uri && "object" === (typeof uri === "undefined" ? "undefined" : _type_of(uri))) {
                    opts = uri;
                    uri = null;
                }
                if (uri) {
                    uri = parseuri(uri);
                    opts.hostname = uri.host;
                    opts.secure = uri.protocol === "https" || uri.protocol === "wss";
                    opts.port = uri.port;
                    if (uri.query) opts.query = uri.query;
                } else if (opts.host) {
                    opts.hostname = parseuri(opts.host).host;
                }
                this.secure = null != opts.secure ? opts.secure : globalThis.location && "https:" === location.protocol;
                if (opts.hostname && !opts.port) {
                    opts.port = this.secure ? "443" : "80";
                }
                this.agent = opts.agent || false;
                this.hostname = opts.hostname || (globalThis.location ? location.hostname : "localhost");
                this.port = opts.port || (globalThis.location && location.port ? location.port : this.secure ? 443 : 80);
                this.query = opts.query || {};
                if ("string" === typeof this.query) this.query = parseqs.decode(this.query);
                this.upgrade = false !== opts.upgrade;
                this.path = (opts.path || "/engine.io").replace(/\/$/, "") + "/";
                this.forceJSONP = !!opts.forceJSONP;
                this.jsonp = false !== opts.jsonp;
                this.forceBase64 = !!opts.forceBase64;
                this.enablesXDR = !!opts.enablesXDR;
                this.timestampParam = opts.timestampParam || "t";
                this.timestampRequests = opts.timestampRequests;
                this.transports = opts.transports || [
                    "polling",
                    "websocket"
                ];
                this.readyState = "";
                this.writeBuffer = [];
                this.prevBufferLen = 0;
                this.policyPort = opts.policyPort || 843;
                this.rememberUpgrade = opts.rememberUpgrade || false;
                this.binaryType = null;
                this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;
                this.perMessageDeflate = false !== opts.perMessageDeflate ? opts.perMessageDeflate || {} : false;
                if (true === this.perMessageDeflate) this.perMessageDeflate = {};
                if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {
                    this.perMessageDeflate.threshold = 1024;
                }
                this.pfx = opts.pfx || null;
                this.key = opts.key || null;
                this.passphrase = opts.passphrase || null;
                this.cert = opts.cert || null;
                this.ca = opts.ca || null;
                this.ciphers = opts.ciphers || null;
                this.rejectUnauthorized = opts.rejectUnauthorized === void 0 ? null : opts.rejectUnauthorized;
                this.forceNode = !!opts.forceNode;
                var freeGlobal = (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) === "object" && globalThis;
                if (freeGlobal.global === freeGlobal) {
                    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {
                        this.extraHeaders = opts.extraHeaders;
                    }
                    if (opts.localAddress) {
                        this.localAddress = opts.localAddress;
                    }
                }
                this.id = null;
                this.upgrades = null;
                this.pingInterval = null;
                this.pingTimeout = null;
                this.pingIntervalTimer = null;
                this.pingTimeoutTimer = null;
                this.open();
            }
            Socket.priorWebsocketSuccess = false;
            Emitter(Socket.prototype);
            Socket.protocol = parser.protocol;
            Socket.Socket = Socket;
            Socket.Transport = require_transport();
            Socket.transports = require_transports();
            Socket.parser = require_browser18();
            Socket.prototype.createTransport = function(name) {
                debug4('creating transport "%s"', name);
                var query = clone2(this.query);
                query.EIO = parser.protocol;
                query.transport = name;
                if (this.id) query.sid = this.id;
                var transport = new transports[name]({
                    agent: this.agent,
                    hostname: this.hostname,
                    port: this.port,
                    secure: this.secure,
                    path: this.path,
                    query: query,
                    forceJSONP: this.forceJSONP,
                    jsonp: this.jsonp,
                    forceBase64: this.forceBase64,
                    enablesXDR: this.enablesXDR,
                    timestampRequests: this.timestampRequests,
                    timestampParam: this.timestampParam,
                    policyPort: this.policyPort,
                    socket: this,
                    pfx: this.pfx,
                    key: this.key,
                    passphrase: this.passphrase,
                    cert: this.cert,
                    ca: this.ca,
                    ciphers: this.ciphers,
                    rejectUnauthorized: this.rejectUnauthorized,
                    perMessageDeflate: this.perMessageDeflate,
                    extraHeaders: this.extraHeaders,
                    forceNode: this.forceNode,
                    localAddress: this.localAddress
                });
                return transport;
            };
            function clone2(obj) {
                var o = {};
                for(var i in obj){
                    if (obj.hasOwnProperty(i)) {
                        o[i] = obj[i];
                    }
                }
                return o;
            }
            Socket.prototype.open = function() {
                var transport;
                if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf("websocket") !== -1) {
                    transport = "websocket";
                } else if (0 === this.transports.length) {
                    var self2 = this;
                    setTimeout(function() {
                        self2.emit("error", "No transports available");
                    }, 0);
                    return;
                } else {
                    transport = this.transports[0];
                }
                this.readyState = "opening";
                try {
                    transport = this.createTransport(transport);
                } catch (e) {
                    this.transports.shift();
                    this.open();
                    return;
                }
                transport.open();
                this.setTransport(transport);
            };
            Socket.prototype.setTransport = function(transport) {
                debug4("setting transport %s", transport.name);
                var self2 = this;
                if (this.transport) {
                    debug4("clearing existing transport %s", this.transport.name);
                    this.transport.removeAllListeners();
                }
                this.transport = transport;
                transport.on("drain", function() {
                    self2.onDrain();
                }).on("packet", function(packet) {
                    self2.onPacket(packet);
                }).on("error", function(e) {
                    self2.onError(e);
                }).on("close", function() {
                    self2.onClose("transport close");
                });
            };
            Socket.prototype.probe = function(name) {
                debug4('probing transport "%s"', name);
                var transport = this.createTransport(name, {
                    probe: 1
                });
                var failed = false;
                var self2 = this;
                Socket.priorWebsocketSuccess = false;
                function onTransportOpen() {
                    if (self2.onlyBinaryUpgrades) {
                        var upgradeLosesBinary = !this.supportsBinary && self2.transport.supportsBinary;
                        failed = failed || upgradeLosesBinary;
                    }
                    if (failed) return;
                    debug4('probe transport "%s" opened', name);
                    transport.send([
                        {
                            type: "ping",
                            data: "probe"
                        }
                    ]);
                    transport.once("packet", function(msg) {
                        if (failed) return;
                        if ("pong" === msg.type && "probe" === msg.data) {
                            debug4('probe transport "%s" pong', name);
                            self2.upgrading = true;
                            self2.emit("upgrading", transport);
                            if (!transport) return;
                            Socket.priorWebsocketSuccess = "websocket" === transport.name;
                            debug4('pausing current transport "%s"', self2.transport.name);
                            self2.transport.pause(function() {
                                if (failed) return;
                                if ("closed" === self2.readyState) return;
                                debug4("changing transport and sending upgrade packet");
                                cleanup();
                                self2.setTransport(transport);
                                transport.send([
                                    {
                                        type: "upgrade"
                                    }
                                ]);
                                self2.emit("upgrade", transport);
                                transport = null;
                                self2.upgrading = false;
                                self2.flush();
                            });
                        } else {
                            debug4('probe transport "%s" failed', name);
                            var err = new Error("probe error");
                            err.transport = transport.name;
                            self2.emit("upgradeError", err);
                        }
                    });
                }
                function freezeTransport() {
                    if (failed) return;
                    failed = true;
                    cleanup();
                    transport.close();
                    transport = null;
                }
                function onerror(err) {
                    var error = new Error("probe error: " + err);
                    error.transport = transport.name;
                    freezeTransport();
                    debug4('probe transport "%s" failed because of error: %s', name, err);
                    self2.emit("upgradeError", error);
                }
                function onTransportClose() {
                    onerror("transport closed");
                }
                function onclose() {
                    onerror("socket closed");
                }
                function onupgrade(to) {
                    if (transport && to.name !== transport.name) {
                        debug4('"%s" works - aborting "%s"', to.name, transport.name);
                        freezeTransport();
                    }
                }
                function cleanup() {
                    transport.removeListener("open", onTransportOpen);
                    transport.removeListener("error", onerror);
                    transport.removeListener("close", onTransportClose);
                    self2.removeListener("close", onclose);
                    self2.removeListener("upgrading", onupgrade);
                }
                transport.once("open", onTransportOpen);
                transport.once("error", onerror);
                transport.once("close", onTransportClose);
                this.once("close", onclose);
                this.once("upgrading", onupgrade);
                transport.open();
            };
            Socket.prototype.onOpen = function() {
                debug4("socket open");
                this.readyState = "open";
                Socket.priorWebsocketSuccess = "websocket" === this.transport.name;
                this.emit("open");
                this.flush();
                if ("open" === this.readyState && this.upgrade && this.transport.pause) {
                    debug4("starting upgrade probes");
                    for(var i = 0, l = this.upgrades.length; i < l; i++){
                        this.probe(this.upgrades[i]);
                    }
                }
            };
            Socket.prototype.onPacket = function(packet) {
                if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) {
                    debug4('socket receive: type "%s", data "%s"', packet.type, packet.data);
                    this.emit("packet", packet);
                    this.emit("heartbeat");
                    switch(packet.type){
                        case "open":
                            this.onHandshake(parsejson(packet.data));
                            break;
                        case "pong":
                            this.setPing();
                            this.emit("pong");
                            break;
                        case "error":
                            var err = new Error("server error");
                            err.code = packet.data;
                            this.onError(err);
                            break;
                        case "message":
                            this.emit("data", packet.data);
                            this.emit("message", packet.data);
                            break;
                    }
                } else {
                    debug4('packet received with socket readyState "%s"', this.readyState);
                }
            };
            Socket.prototype.onHandshake = function(data) {
                this.emit("handshake", data);
                this.id = data.sid;
                this.transport.query.sid = data.sid;
                this.upgrades = this.filterUpgrades(data.upgrades);
                this.pingInterval = data.pingInterval;
                this.pingTimeout = data.pingTimeout;
                this.onOpen();
                if ("closed" === this.readyState) return;
                this.setPing();
                this.removeListener("heartbeat", this.onHeartbeat);
                this.on("heartbeat", this.onHeartbeat);
            };
            Socket.prototype.onHeartbeat = function(timeout) {
                clearTimeout(this.pingTimeoutTimer);
                var self2 = this;
                self2.pingTimeoutTimer = setTimeout(function() {
                    if ("closed" === self2.readyState) return;
                    self2.onClose("ping timeout");
                }, timeout || self2.pingInterval + self2.pingTimeout);
            };
            Socket.prototype.setPing = function() {
                var self2 = this;
                clearTimeout(self2.pingIntervalTimer);
                self2.pingIntervalTimer = setTimeout(function() {
                    debug4("writing ping packet - expecting pong within %sms", self2.pingTimeout);
                    self2.ping();
                    self2.onHeartbeat(self2.pingTimeout);
                }, self2.pingInterval);
            };
            Socket.prototype.ping = function() {
                var self2 = this;
                this.sendPacket("ping", function() {
                    self2.emit("ping");
                });
            };
            Socket.prototype.onDrain = function() {
                this.writeBuffer.splice(0, this.prevBufferLen);
                this.prevBufferLen = 0;
                if (0 === this.writeBuffer.length) {
                    this.emit("drain");
                } else {
                    this.flush();
                }
            };
            Socket.prototype.flush = function() {
                if ("closed" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length) {
                    debug4("flushing %d packets in socket", this.writeBuffer.length);
                    this.transport.send(this.writeBuffer);
                    this.prevBufferLen = this.writeBuffer.length;
                    this.emit("flush");
                }
            };
            Socket.prototype.write = Socket.prototype.send = function(msg, options, fn) {
                this.sendPacket("message", msg, options, fn);
                return this;
            };
            Socket.prototype.sendPacket = function(type, data, options, fn) {
                if ("function" === typeof data) {
                    fn = data;
                    data = void 0;
                }
                if ("function" === typeof options) {
                    fn = options;
                    options = null;
                }
                if ("closing" === this.readyState || "closed" === this.readyState) {
                    return;
                }
                options = options || {};
                options.compress = false !== options.compress;
                var packet = {
                    type: type,
                    data: data,
                    options: options
                };
                this.emit("packetCreate", packet);
                this.writeBuffer.push(packet);
                if (fn) this.once("flush", fn);
                this.flush();
            };
            Socket.prototype.close = function() {
                if ("opening" === this.readyState || "open" === this.readyState) {
                    this.readyState = "closing";
                    var self2 = this;
                    if (this.writeBuffer.length) {
                        this.once("drain", function() {
                            if (this.upgrading) {
                                waitForUpgrade();
                            } else {
                                close();
                            }
                        });
                    } else if (this.upgrading) {
                        waitForUpgrade();
                    } else {
                        close();
                    }
                }
                function close() {
                    self2.onClose("forced close");
                    debug4("socket closing - telling transport to close");
                    self2.transport.close();
                }
                function cleanupAndClose() {
                    self2.removeListener("upgrade", cleanupAndClose);
                    self2.removeListener("upgradeError", cleanupAndClose);
                    close();
                }
                function waitForUpgrade() {
                    self2.once("upgrade", cleanupAndClose);
                    self2.once("upgradeError", cleanupAndClose);
                }
                return this;
            };
            Socket.prototype.onError = function(err) {
                debug4("socket error %j", err);
                Socket.priorWebsocketSuccess = false;
                this.emit("error", err);
                this.onClose("transport error", err);
            };
            Socket.prototype.onClose = function(reason, desc) {
                if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) {
                    debug4('socket close with reason: "%s"', reason);
                    var self2 = this;
                    clearTimeout(this.pingIntervalTimer);
                    clearTimeout(this.pingTimeoutTimer);
                    this.transport.removeAllListeners("close");
                    this.transport.close();
                    this.transport.removeAllListeners();
                    this.readyState = "closed";
                    this.id = null;
                    this.emit("close", reason, desc);
                    self2.writeBuffer = [];
                    self2.prevBufferLen = 0;
                }
            };
            Socket.prototype.filterUpgrades = function(upgrades) {
                var filteredUpgrades = [];
                for(var i = 0, j = upgrades.length; i < j; i++){
                    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);
                }
                return filteredUpgrades;
            };
        }
    });
    // node_modules/engine.io-client/lib/index.js
    var require_lib6 = __commonJS({
        "node_modules/engine.io-client/lib/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_socket2();
            module.exports.parser = require_browser18();
        }
    });
    // node_modules/engine.io-client/index.js
    var require_engine = __commonJS({
        "node_modules/engine.io-client/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_lib6();
        }
    });
    // node_modules/to-array/index.js
    var require_to_array = __commonJS({
        "node_modules/to-array/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = toArray;
            function toArray(list, index) {
                var array4 = [];
                index = index || 0;
                for(var i = index || 0; i < list.length; i++){
                    array4[i - index] = list[i];
                }
                return array4;
            }
        }
    });
    // node_modules/socket.io-client/lib/on.js
    var require_on = __commonJS({
        "node_modules/socket.io-client/lib/on.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = on;
            function on(obj, ev, fn) {
                obj.on(ev, fn);
                return {
                    destroy: function destroy() {
                        obj.removeListener(ev, fn);
                    }
                };
            }
        }
    });
    // node_modules/component-bind/index.js
    var require_component_bind = __commonJS({
        "node_modules/component-bind/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var slice = [].slice;
            module.exports = function(obj, fn) {
                if ("string" == typeof fn) fn = obj[fn];
                if ("function" != typeof fn) throw new Error("bind() requires a function");
                var args = slice.call(arguments, 2);
                return function() {
                    return fn.apply(obj, args.concat(slice.call(arguments)));
                };
            };
        }
    });
    // node_modules/socket.io-client/lib/socket.js
    var require_socket3 = __commonJS({
        "node_modules/socket.io-client/lib/socket.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var parser = require_socket();
            var Emitter = require_component_emitter2();
            var toArray = require_to_array();
            var on = require_on();
            var bind = require_component_bind();
            var debug4 = require_browser16()("socket.io-client:socket");
            var hasBin = require_has_binary();
            module.exports = exports = Socket;
            var events = {
                connect: 1,
                connect_error: 1,
                connect_timeout: 1,
                connecting: 1,
                disconnect: 1,
                error: 1,
                reconnect: 1,
                reconnect_attempt: 1,
                reconnect_failed: 1,
                reconnect_error: 1,
                reconnecting: 1,
                ping: 1,
                pong: 1
            };
            var emit = Emitter.prototype.emit;
            function Socket(io, nsp, opts) {
                this.io = io;
                this.nsp = nsp;
                this.json = this;
                this.ids = 0;
                this.acks = {};
                this.receiveBuffer = [];
                this.sendBuffer = [];
                this.connected = false;
                this.disconnected = true;
                if (opts && opts.query) {
                    this.query = opts.query;
                }
                if (this.io.autoConnect) this.open();
            }
            Emitter(Socket.prototype);
            Socket.prototype.subEvents = function() {
                if (this.subs) return;
                var io = this.io;
                this.subs = [
                    on(io, "open", bind(this, "onopen")),
                    on(io, "packet", bind(this, "onpacket")),
                    on(io, "close", bind(this, "onclose"))
                ];
            };
            Socket.prototype.open = Socket.prototype.connect = function() {
                if (this.connected) return this;
                this.subEvents();
                this.io.open();
                if ("open" === this.io.readyState) this.onopen();
                this.emit("connecting");
                return this;
            };
            Socket.prototype.send = function() {
                var args = toArray(arguments);
                args.unshift("message");
                this.emit.apply(this, args);
                return this;
            };
            Socket.prototype.emit = function(ev) {
                if (events.hasOwnProperty(ev)) {
                    emit.apply(this, arguments);
                    return this;
                }
                var args = toArray(arguments);
                var parserType = parser.EVENT;
                if (hasBin(args)) {
                    parserType = parser.BINARY_EVENT;
                }
                var packet = {
                    type: parserType,
                    data: args
                };
                packet.options = {};
                packet.options.compress = !this.flags || false !== this.flags.compress;
                if ("function" === typeof args[args.length - 1]) {
                    debug4("emitting packet with ack id %d", this.ids);
                    this.acks[this.ids] = args.pop();
                    packet.id = this.ids++;
                }
                if (this.connected) {
                    this.packet(packet);
                } else {
                    this.sendBuffer.push(packet);
                }
                delete this.flags;
                return this;
            };
            Socket.prototype.packet = function(packet) {
                packet.nsp = this.nsp;
                this.io.packet(packet);
            };
            Socket.prototype.onopen = function() {
                debug4("transport is open - connecting");
                if ("/" !== this.nsp) {
                    if (this.query) {
                        this.packet({
                            type: parser.CONNECT,
                            query: this.query
                        });
                    } else {
                        this.packet({
                            type: parser.CONNECT
                        });
                    }
                }
            };
            Socket.prototype.onclose = function(reason) {
                debug4("close (%s)", reason);
                this.connected = false;
                this.disconnected = true;
                delete this.id;
                this.emit("disconnect", reason);
            };
            Socket.prototype.onpacket = function(packet) {
                if (packet.nsp !== this.nsp) return;
                switch(packet.type){
                    case parser.CONNECT:
                        this.onconnect();
                        break;
                    case parser.EVENT:
                        this.onevent(packet);
                        break;
                    case parser.BINARY_EVENT:
                        this.onevent(packet);
                        break;
                    case parser.ACK:
                        this.onack(packet);
                        break;
                    case parser.BINARY_ACK:
                        this.onack(packet);
                        break;
                    case parser.DISCONNECT:
                        this.ondisconnect();
                        break;
                    case parser.ERROR:
                        this.emit("error", packet.data);
                        break;
                }
            };
            Socket.prototype.onevent = function(packet) {
                var args = packet.data || [];
                debug4("emitting event %j", args);
                if (null != packet.id) {
                    debug4("attaching ack callback to event");
                    args.push(this.ack(packet.id));
                }
                if (this.connected) {
                    emit.apply(this, args);
                } else {
                    this.receiveBuffer.push(args);
                }
            };
            Socket.prototype.ack = function(id) {
                var self2 = this;
                var sent = false;
                return function() {
                    if (sent) return;
                    sent = true;
                    var args = toArray(arguments);
                    debug4("sending ack %j", args);
                    var type = hasBin(args) ? parser.BINARY_ACK : parser.ACK;
                    self2.packet({
                        type: type,
                        id: id,
                        data: args
                    });
                };
            };
            Socket.prototype.onack = function(packet) {
                var ack = this.acks[packet.id];
                if ("function" === typeof ack) {
                    debug4("calling ack %s with %j", packet.id, packet.data);
                    ack.apply(this, packet.data);
                    delete this.acks[packet.id];
                } else {
                    debug4("bad ack %s", packet.id);
                }
            };
            Socket.prototype.onconnect = function() {
                this.connected = true;
                this.disconnected = false;
                this.emit("connect");
                this.emitBuffered();
            };
            Socket.prototype.emitBuffered = function() {
                var i;
                for(i = 0; i < this.receiveBuffer.length; i++){
                    emit.apply(this, this.receiveBuffer[i]);
                }
                this.receiveBuffer = [];
                for(i = 0; i < this.sendBuffer.length; i++){
                    this.packet(this.sendBuffer[i]);
                }
                this.sendBuffer = [];
            };
            Socket.prototype.ondisconnect = function() {
                debug4("server disconnect (%s)", this.nsp);
                this.destroy();
                this.onclose("io server disconnect");
            };
            Socket.prototype.destroy = function() {
                if (this.subs) {
                    for(var i = 0; i < this.subs.length; i++){
                        this.subs[i].destroy();
                    }
                    this.subs = null;
                }
                this.io.destroy(this);
            };
            Socket.prototype.close = Socket.prototype.disconnect = function() {
                if (this.connected) {
                    debug4("performing disconnect (%s)", this.nsp);
                    this.packet({
                        type: parser.DISCONNECT
                    });
                }
                this.destroy();
                if (this.connected) {
                    this.onclose("io client disconnect");
                }
                return this;
            };
            Socket.prototype.compress = function(compress) {
                this.flags = this.flags || {};
                this.flags.compress = compress;
                return this;
            };
        }
    });
    // node_modules/backo2/index.js
    var require_backo2 = __commonJS({
        "node_modules/backo2/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = Backoff;
            function Backoff(opts) {
                opts = opts || {};
                this.ms = opts.min || 100;
                this.max = opts.max || 1e4;
                this.factor = opts.factor || 2;
                this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;
                this.attempts = 0;
            }
            Backoff.prototype.duration = function() {
                var ms = this.ms * Math.pow(this.factor, this.attempts++);
                if (this.jitter) {
                    var rand = Math.random();
                    var deviation = Math.floor(rand * this.jitter * ms);
                    ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;
                }
                return Math.min(ms, this.max) | 0;
            };
            Backoff.prototype.reset = function() {
                this.attempts = 0;
            };
            Backoff.prototype.setMin = function(min) {
                this.ms = min;
            };
            Backoff.prototype.setMax = function(max) {
                this.max = max;
            };
            Backoff.prototype.setJitter = function(jitter) {
                this.jitter = jitter;
            };
        }
    });
    // node_modules/socket.io-client/lib/manager.js
    var require_manager = __commonJS({
        "node_modules/socket.io-client/lib/manager.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var eio = require_engine();
            var Socket = require_socket3();
            var Emitter = require_component_emitter2();
            var parser = require_socket();
            var on = require_on();
            var bind = require_component_bind();
            var debug4 = require_browser16()("socket.io-client:manager");
            var indexOf = require_indexof();
            var Backoff = require_backo2();
            var has = Object.prototype.hasOwnProperty;
            module.exports = Manager;
            function Manager(uri, opts) {
                if (!(this instanceof Manager)) return new Manager(uri, opts);
                if (uri && "object" === (typeof uri === "undefined" ? "undefined" : _type_of(uri))) {
                    opts = uri;
                    uri = void 0;
                }
                opts = opts || {};
                opts.path = opts.path || "/socket.io";
                this.nsps = {};
                this.subs = [];
                this.opts = opts;
                this.reconnection(opts.reconnection !== false);
                this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);
                this.reconnectionDelay(opts.reconnectionDelay || 1e3);
                this.reconnectionDelayMax(opts.reconnectionDelayMax || 5e3);
                this.randomizationFactor(opts.randomizationFactor || 0.5);
                this.backoff = new Backoff({
                    min: this.reconnectionDelay(),
                    max: this.reconnectionDelayMax(),
                    jitter: this.randomizationFactor()
                });
                this.timeout(null == opts.timeout ? 2e4 : opts.timeout);
                this.readyState = "closed";
                this.uri = uri;
                this.connecting = [];
                this.lastPing = null;
                this.encoding = false;
                this.packetBuffer = [];
                this.encoder = new parser.Encoder();
                this.decoder = new parser.Decoder();
                this.autoConnect = opts.autoConnect !== false;
                if (this.autoConnect) this.open();
            }
            Manager.prototype.emitAll = function() {
                this.emit.apply(this, arguments);
                for(var nsp in this.nsps){
                    if (has.call(this.nsps, nsp)) {
                        this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);
                    }
                }
            };
            Manager.prototype.updateSocketIds = function() {
                for(var nsp in this.nsps){
                    if (has.call(this.nsps, nsp)) {
                        this.nsps[nsp].id = this.engine.id;
                    }
                }
            };
            Emitter(Manager.prototype);
            Manager.prototype.reconnection = function(v) {
                if (!arguments.length) return this._reconnection;
                this._reconnection = !!v;
                return this;
            };
            Manager.prototype.reconnectionAttempts = function(v) {
                if (!arguments.length) return this._reconnectionAttempts;
                this._reconnectionAttempts = v;
                return this;
            };
            Manager.prototype.reconnectionDelay = function(v) {
                if (!arguments.length) return this._reconnectionDelay;
                this._reconnectionDelay = v;
                this.backoff && this.backoff.setMin(v);
                return this;
            };
            Manager.prototype.randomizationFactor = function(v) {
                if (!arguments.length) return this._randomizationFactor;
                this._randomizationFactor = v;
                this.backoff && this.backoff.setJitter(v);
                return this;
            };
            Manager.prototype.reconnectionDelayMax = function(v) {
                if (!arguments.length) return this._reconnectionDelayMax;
                this._reconnectionDelayMax = v;
                this.backoff && this.backoff.setMax(v);
                return this;
            };
            Manager.prototype.timeout = function(v) {
                if (!arguments.length) return this._timeout;
                this._timeout = v;
                return this;
            };
            Manager.prototype.maybeReconnectOnOpen = function() {
                if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {
                    this.reconnect();
                }
            };
            Manager.prototype.open = Manager.prototype.connect = function(fn, opts) {
                debug4("readyState %s", this.readyState);
                if (~this.readyState.indexOf("open")) return this;
                debug4("opening %s", this.uri);
                this.engine = eio(this.uri, this.opts);
                var socket = this.engine;
                var self2 = this;
                this.readyState = "opening";
                this.skipReconnect = false;
                var openSub = on(socket, "open", function() {
                    self2.onopen();
                    fn && fn();
                });
                var errorSub = on(socket, "error", function(data) {
                    debug4("connect_error");
                    self2.cleanup();
                    self2.readyState = "closed";
                    self2.emitAll("connect_error", data);
                    if (fn) {
                        var err = new Error("Connection error");
                        err.data = data;
                        fn(err);
                    } else {
                        self2.maybeReconnectOnOpen();
                    }
                });
                if (false !== this._timeout) {
                    var timeout = this._timeout;
                    debug4("connect attempt will timeout after %d", timeout);
                    var timer = setTimeout(function() {
                        debug4("connect attempt timed out after %d", timeout);
                        openSub.destroy();
                        socket.close();
                        socket.emit("error", "timeout");
                        self2.emitAll("connect_timeout", timeout);
                    }, timeout);
                    this.subs.push({
                        destroy: function destroy() {
                            clearTimeout(timer);
                        }
                    });
                }
                this.subs.push(openSub);
                this.subs.push(errorSub);
                return this;
            };
            Manager.prototype.onopen = function() {
                debug4("open");
                this.cleanup();
                this.readyState = "open";
                this.emit("open");
                var socket = this.engine;
                this.subs.push(on(socket, "data", bind(this, "ondata")));
                this.subs.push(on(socket, "ping", bind(this, "onping")));
                this.subs.push(on(socket, "pong", bind(this, "onpong")));
                this.subs.push(on(socket, "error", bind(this, "onerror")));
                this.subs.push(on(socket, "close", bind(this, "onclose")));
                this.subs.push(on(this.decoder, "decoded", bind(this, "ondecoded")));
            };
            Manager.prototype.onping = function() {
                this.lastPing = /* @__PURE__ */ new Date();
                this.emitAll("ping");
            };
            Manager.prototype.onpong = function() {
                this.emitAll("pong", /* @__PURE__ */ new Date() - this.lastPing);
            };
            Manager.prototype.ondata = function(data) {
                this.decoder.add(data);
            };
            Manager.prototype.ondecoded = function(packet) {
                this.emit("packet", packet);
            };
            Manager.prototype.onerror = function(err) {
                debug4("error", err);
                this.emitAll("error", err);
            };
            Manager.prototype.socket = function(nsp, opts) {
                var socket = this.nsps[nsp];
                if (!socket) {
                    socket = new Socket(this, nsp, opts);
                    this.nsps[nsp] = socket;
                    var self2 = this;
                    socket.on("connecting", onConnecting);
                    socket.on("connect", function() {
                        socket.id = self2.engine.id;
                    });
                    if (this.autoConnect) {
                        onConnecting();
                    }
                }
                function onConnecting() {
                    if (!~indexOf(self2.connecting, socket)) {
                        self2.connecting.push(socket);
                    }
                }
                return socket;
            };
            Manager.prototype.destroy = function(socket) {
                var index = indexOf(this.connecting, socket);
                if (~index) this.connecting.splice(index, 1);
                if (this.connecting.length) return;
                this.close();
            };
            Manager.prototype.packet = function(packet) {
                debug4("writing packet %j", packet);
                var self2 = this;
                if (packet.query && packet.type === 0) packet.nsp += "?" + packet.query;
                if (!self2.encoding) {
                    self2.encoding = true;
                    this.encoder.encode(packet, function(encodedPackets) {
                        for(var i = 0; i < encodedPackets.length; i++){
                            self2.engine.write(encodedPackets[i], packet.options);
                        }
                        self2.encoding = false;
                        self2.processPacketQueue();
                    });
                } else {
                    self2.packetBuffer.push(packet);
                }
            };
            Manager.prototype.processPacketQueue = function() {
                if (this.packetBuffer.length > 0 && !this.encoding) {
                    var pack = this.packetBuffer.shift();
                    this.packet(pack);
                }
            };
            Manager.prototype.cleanup = function() {
                debug4("cleanup");
                var subsLength = this.subs.length;
                for(var i = 0; i < subsLength; i++){
                    var sub = this.subs.shift();
                    sub.destroy();
                }
                this.packetBuffer = [];
                this.encoding = false;
                this.lastPing = null;
                this.decoder.destroy();
            };
            Manager.prototype.close = Manager.prototype.disconnect = function() {
                debug4("disconnect");
                this.skipReconnect = true;
                this.reconnecting = false;
                if ("opening" === this.readyState) {
                    this.cleanup();
                }
                this.backoff.reset();
                this.readyState = "closed";
                if (this.engine) this.engine.close();
            };
            Manager.prototype.onclose = function(reason) {
                debug4("onclose");
                this.cleanup();
                this.backoff.reset();
                this.readyState = "closed";
                this.emit("close", reason);
                if (this._reconnection && !this.skipReconnect) {
                    this.reconnect();
                }
            };
            Manager.prototype.reconnect = function() {
                if (this.reconnecting || this.skipReconnect) return this;
                var self2 = this;
                if (this.backoff.attempts >= this._reconnectionAttempts) {
                    debug4("reconnect failed");
                    this.backoff.reset();
                    this.emitAll("reconnect_failed");
                    this.reconnecting = false;
                } else {
                    var delay2 = this.backoff.duration();
                    debug4("will wait %dms before reconnect attempt", delay2);
                    this.reconnecting = true;
                    var timer = setTimeout(function() {
                        if (self2.skipReconnect) return;
                        debug4("attempting reconnect");
                        self2.emitAll("reconnect_attempt", self2.backoff.attempts);
                        self2.emitAll("reconnecting", self2.backoff.attempts);
                        if (self2.skipReconnect) return;
                        self2.open(function(err) {
                            if (err) {
                                debug4("reconnect attempt error");
                                self2.reconnecting = false;
                                self2.reconnect();
                                self2.emitAll("reconnect_error", err.data);
                            } else {
                                debug4("reconnect success");
                                self2.onreconnect();
                            }
                        });
                    }, delay2);
                    this.subs.push({
                        destroy: function destroy() {
                            clearTimeout(timer);
                        }
                    });
                }
            };
            Manager.prototype.onreconnect = function() {
                var attempt = this.backoff.attempts;
                this.reconnecting = false;
                this.backoff.reset();
                this.updateSocketIds();
                this.emitAll("reconnect", attempt);
            };
        }
    });
    // node_modules/socket.io-client/lib/index.js
    var require_lib7 = __commonJS({
        "node_modules/socket.io-client/lib/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var url = require_url2();
            var parser = require_socket();
            var Manager = require_manager();
            var debug4 = require_browser16()("socket.io-client");
            module.exports = exports = lookup;
            var cache = exports.managers = {};
            function lookup(uri, opts) {
                if ((typeof uri === "undefined" ? "undefined" : _type_of(uri)) === "object") {
                    opts = uri;
                    uri = void 0;
                }
                opts = opts || {};
                var parsed = url(uri);
                var source = parsed.source;
                var id = parsed.id;
                var path2 = parsed.path;
                var sameNamespace = cache[id] && path2 in cache[id].nsps;
                var newConnection = opts.forceNew || opts["force new connection"] || false === opts.multiplex || sameNamespace;
                var io;
                if (newConnection) {
                    debug4("ignoring socket cache for %s", source);
                    io = Manager(source, opts);
                } else {
                    if (!cache[id]) {
                        debug4("new io instance for %s", source);
                        cache[id] = Manager(source, opts);
                    }
                    io = cache[id];
                }
                if (parsed.query && !opts.query) {
                    opts.query = parsed.query;
                } else if (opts && "object" === _type_of(opts.query)) {
                    opts.query = encodeQueryString(opts.query);
                }
                return io.socket(parsed.path, opts);
            }
            function encodeQueryString(obj) {
                var str = [];
                for(var p in obj){
                    if (obj.hasOwnProperty(p)) {
                        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                    }
                }
                return str.join("&");
            }
            exports.protocol = parser.protocol;
            exports.connect = lookup;
            exports.Manager = require_manager();
            exports.Socket = require_socket3();
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/SocketIO/createSocketIOSocket.js
    var require_createSocketIOSocket = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/SocketIO/createSocketIOSocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = createSocket;
            var socket_io_client_1 = __importDefault(require_lib7());
            var url = __importStar(require_url());
            function createSocket(socketUri, onConnected, onDisconnected, onError) {
                var parsedSocketUrl = url.parse(socketUri);
                var pathname = parsedSocketUrl.pathname;
                var socketUrl = parsedSocketUrl.protocol + "//" + parsedSocketUrl.host;
                var socketIoPath = (pathname + "/socket.io").replace(/\/+/g, "/");
                var socket = (0, socket_io_client_1["default"])(socketUrl, {
                    path: socketIoPath,
                    forceNew: true,
                    upgrade: false,
                    rememberUpgrade: true,
                    transports: [
                        "websocket"
                    ],
                    reconnection: false,
                    timeout: 5e3
                });
                socket.on("connect_error", function(error) {
                    return onError(error);
                });
                socket.on("error", function(error) {
                    return onError(error);
                });
                socket.on("connection", function() {
                    return onConnected();
                });
                socket.on("disconnect", function() {
                    return onDisconnected();
                });
                return {
                    on: function on(event, listener) {
                        socket.on(event, function(message2, callback) {
                            listener(message2);
                            if (callback) {
                                callback();
                            }
                        });
                    },
                    once: function once(event, listener) {
                        socket.once(event, function(message2, callback) {
                            listener(message2);
                            if (callback) {
                                callback();
                            }
                        });
                    },
                    emit: function emit(event, message2, callback) {
                        socket.emit(event, message2, callback);
                    },
                    removeListener: function removeListener(event, listener) {
                        socket.off(event, listener);
                    },
                    removeAllListeners: function removeAllListeners() {
                        socket.removeAllListeners();
                    },
                    close: function close() {
                        socket.close();
                    }
                };
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/ISocket.js
    var require_ISocket = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/ISocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __extends = exports && exports.__extends || /* @__PURE__ */ function() {
                var extendStatics = function extendStatics1(d, b) {
                    extendStatics = Object.setPrototypeOf || ({
                        __proto__: []
                    }) instanceof Array && function(d2, b2) {
                        d2.__proto__ = b2;
                    } || function(d2, b2) {
                        for(var p in b2)if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                };
                return function(d, b) {
                    if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                        this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                };
            }();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UndeliveredEmitError = exports.UnconfirmedMessageError = void 0;
            var UnconfirmedMessageError = /** @class */ function(_super) {
                __extends(UnconfirmedMessageError2, _super);
                function UnconfirmedMessageError2(responseMessage, requestMessage, failedAt) {
                    var _this = _super.call(this, "Response on message cannot be sent because of invalid WS state") || this;
                    _this.responseMessage = responseMessage;
                    _this.requestMessage = requestMessage;
                    _this.failedAt = failedAt;
                    Object.setPrototypeOf(_this, UnconfirmedMessageError2.prototype);
                    return _this;
                }
                return UnconfirmedMessageError2;
            }(Error);
            exports.UnconfirmedMessageError = UnconfirmedMessageError;
            var UndeliveredEmitError = /** @class */ function(_super) {
                __extends(UndeliveredEmitError2, _super);
                function UndeliveredEmitError2(requestMessage, failedAt) {
                    var _this = _super.call(this, "Request message cannot be sent because of invalid WS state") || this;
                    _this.requestMessage = requestMessage;
                    _this.failedAt = failedAt;
                    Object.setPrototypeOf(_this, UndeliveredEmitError2.prototype);
                    return _this;
                }
                return UndeliveredEmitError2;
            }(Error);
            exports.UndeliveredEmitError = UndeliveredEmitError;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js
    var require_AutoReconnectingWSSocket = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __generator = exports && exports.__generator || function(thisArg, body) {
                var _2 = {
                    label: 0,
                    sent: function sent() {
                        if (t[0] & 1) throw t[1];
                        return t[1];
                    },
                    trys: [],
                    ops: []
                }, f, y, t, g;
                return g = {
                    next: verb(0),
                    "throw": verb(1),
                    "return": verb(2)
                }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                }), g;
                function verb(n) {
                    return function(v) {
                        return step([
                            n,
                            v
                        ]);
                    };
                }
                function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    while(g && (g = 0, op[0] && (_2 = 0)), _2)try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        if (y = 0, t) op = [
                            op[0] & 2,
                            t.value
                        ];
                        switch(op[0]){
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _2.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _2.label++;
                                y = op[1];
                                op = [
                                    0
                                ];
                                continue;
                            case 7:
                                op = _2.ops.pop();
                                _2.trys.pop();
                                continue;
                            default:
                                if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _2 = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                    _2.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _2.label < t[1]) {
                                    _2.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _2.label < t[2]) {
                                    _2.label = t[2];
                                    _2.ops.push(op);
                                    break;
                                }
                                if (t[2]) _2.ops.pop();
                                _2.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _2);
                    } catch (e) {
                        op = [
                            6,
                            e
                        ];
                        y = 0;
                    } finally{
                        f = t = 0;
                    }
                    if (op[0] & 5) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: true
                    };
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var ISocket_1 = require_ISocket();
            var progressiveWait_1 = require_progressiveWait();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/lib:WebSocket:Client:WS:AutoReconnectingWSSocket");
            var DEFAULT_INITIAL_RECONNECT_TIMEOUT = 1e3;
            var DEFAULT_MAX_RECONNECT_TIMEOUT = 3e4;
            var AutoReconnectingWSSocket = /** @class */ function() {
                function AutoReconnectingWSSocket2(createSocket, initialReconnectTimeout, maxReconnectTimeout) {
                    if (initialReconnectTimeout === void 0) {
                        initialReconnectTimeout = DEFAULT_INITIAL_RECONNECT_TIMEOUT;
                    }
                    if (maxReconnectTimeout === void 0) {
                        maxReconnectTimeout = DEFAULT_MAX_RECONNECT_TIMEOUT;
                    }
                    this.createSocket = createSocket;
                    this.closed = false;
                    this.eventListeners = [];
                    this.emitsQueue = [];
                    this.progressiveWait = (0, progressiveWait_1.createProgressiveWait)(initialReconnectTimeout, 2, maxReconnectTimeout);
                    this.internalEventEmitter = new events_1.EventEmitter();
                    this.openNewSocket();
                }
                AutoReconnectingWSSocket2.prototype.on = function(event, listener) {
                    this.eventListeners.push({
                        type: "on",
                        event: event,
                        listener: listener
                    });
                    this.socket.on(event, listener);
                    debug4("Number of listeners after on", this.eventListeners.length);
                };
                AutoReconnectingWSSocket2.prototype.once = function(event, listener) {
                    this.eventListeners.push({
                        type: "once",
                        event: event,
                        listener: listener
                    });
                    this.registerOnceListenerOnCurrentSocket(event, listener);
                    debug4("Number of listeners after once", this.eventListeners.length);
                };
                AutoReconnectingWSSocket2.prototype.emit = function(event, message2, callback) {
                    try {
                        this.socket.emit(event, message2, callback);
                    } catch (error) {
                        if (error instanceof ISocket_1.UndeliveredEmitError) {
                            var emitData = {
                                event: event,
                                message: message2,
                                callback: callback
                            };
                            debug4("Emit message failed", emitData, error);
                            this.emitsQueue.push(emitData);
                            debug4("Number of emits in queue after fail", this.emitsQueue.length);
                        } else {
                            throw error;
                        }
                    }
                };
                AutoReconnectingWSSocket2.prototype.removeListener = function(event, listener) {
                    this.removeEventListenerFromList(event, listener);
                    this.socket.removeListener(event, listener);
                    debug4("Number of listeners after remove", this.eventListeners.length);
                };
                AutoReconnectingWSSocket2.prototype.removeAllListeners = function() {
                    this.eventListeners = [];
                    this.socket.removeAllListeners();
                };
                AutoReconnectingWSSocket2.prototype.close = function() {
                    this.closed = true;
                    this.socket.close();
                };
                AutoReconnectingWSSocket2.prototype.onConnected = function(callback) {
                    this.internalEventEmitter.on("connected", callback);
                };
                AutoReconnectingWSSocket2.prototype.onDisconnected = function(callback) {
                    this.internalEventEmitter.on("disconnected", callback);
                };
                AutoReconnectingWSSocket2.prototype.onError = function(callback) {
                    this.internalEventEmitter.on("error", callback);
                };
                AutoReconnectingWSSocket2.prototype.openNewSocket = function() {
                    var _this = this;
                    this.socket = this.createSocket(function() {
                        return _this.onSocketConnected();
                    }, function(event) {
                        return _this.onSocketDisconnected(event);
                    }, function(error) {
                        return _this.internalEventEmitter.emit("error", error);
                    });
                    for(var _i = 0, _a2 = this.eventListeners; _i < _a2.length; _i++){
                        var eventListener = _a2[_i];
                        if (eventListener.type === "on") {
                            this.socket.on(eventListener.event, eventListener.listener);
                        } else {
                            this.registerOnceListenerOnCurrentSocket(eventListener.event, eventListener.listener);
                        }
                    }
                };
                AutoReconnectingWSSocket2.prototype.onSocketConnected = function() {
                    debug4("Internal socket connected");
                    this.internalEventEmitter.emit("connected");
                    this.progressiveWait.reset();
                    var repeatCount = this.emitsQueue.length;
                    for(var i = 0; i < repeatCount; i++){
                        var emitData = this.emitsQueue.shift();
                        if (emitData) {
                            try {
                                this.emit(emitData.event, emitData.message, emitData.callback);
                            } catch (error) {
                                debug4("Could not repeat emit because of fatal failure", emitData, error);
                                console.error(error);
                            }
                        }
                    }
                    debug4("Number of emits in queue after repeat", this.emitsQueue.length);
                };
                AutoReconnectingWSSocket2.prototype.onSocketDisconnected = function(event) {
                    return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a2) {
                            switch(_a2.label){
                                case 0:
                                    debug4("Internal socket disconnected");
                                    this.internalEventEmitter.emit("disconnected", event);
                                    if (!!this.closed) return [
                                        3,
                                        2
                                    ];
                                    this.socket.removeAllListeners();
                                    return [
                                        4,
                                        this.progressiveWait.wait()
                                    ];
                                case 1:
                                    _a2.sent();
                                    this.openNewSocket();
                                    _a2.label = 2;
                                case 2:
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                };
                AutoReconnectingWSSocket2.prototype.registerOnceListenerOnCurrentSocket = function(event, listener) {
                    var _this = this;
                    this.socket.once(event, listener);
                    this.socket.once(event, function() {
                        return _this.removeEventListenerFromList(event, listener);
                    });
                };
                AutoReconnectingWSSocket2.prototype.removeEventListenerFromList = function(event, listener) {
                    this.eventListeners = this.eventListeners.filter(function(eventListener) {
                        return eventListener.event !== event || eventListener.listener !== listener;
                    });
                };
                return AutoReconnectingWSSocket2;
            }();
            exports["default"] = AutoReconnectingWSSocket;
        }
    });
    // node_modules/isomorphic-ws/browser.js
    var require_browser20 = __commonJS({
        "node_modules/isomorphic-ws/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ws = null;
            if (typeof WebSocket !== "undefined") {
                ws = WebSocket;
            } else if (typeof MozWebSocket !== "undefined") {
                ws = MozWebSocket;
            } else if (typeof globalThis !== "undefined") {
                ws = globalThis.WebSocket || globalThis.MozWebSocket;
            } else if (typeof window !== "undefined") {
                ws = window.WebSocket || window.MozWebSocket;
            } else if (typeof self !== "undefined") {
                ws = self.WebSocket || self.MozWebSocket;
            }
            module.exports = ws;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/WS/createWSSocket.js
    var require_createWSSocket = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/WebSocket/Client/WS/createWSSocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __assign = exports && exports.__assign || function() {
                __assign = Object.assign || function(t) {
                    for(var s, i = 1, n = arguments.length; i < n; i++){
                        s = arguments[i];
                        for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
                    }
                    return t;
                };
                return __assign.apply(this, arguments);
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSocket = createSocket;
            exports.createAutoReconnectingSocket = createAutoReconnectingSocket;
            var url_1 = require_url();
            var ISocket_1 = require_ISocket();
            var events_1 = require_events();
            var generator_1 = require_generator();
            var AutoReconnectingWSSocket_1 = __importDefault(require_AutoReconnectingWSSocket());
            var isomorphic_ws_1 = __importDefault(require_browser20());
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/lib:WebSocket:Client:WS:createWSSocket");
            var DEFAULT_PINGPONG_TIMEOUT = 3e4;
            var defaultOptions = {
                enablePingPong: true,
                pingPongTimeout: DEFAULT_PINGPONG_TIMEOUT
            };
            function createSocket(socketUri, onConnected, onDisconnected, onError, options) {
                if (options === void 0) {
                    options = defaultOptions;
                }
                options = __assign(__assign({}, defaultOptions), options);
                var socketParsedUrl = (0, url_1.parse)(socketUri);
                if (socketParsedUrl.protocol === "https:") {
                    socketParsedUrl.protocol = "wss:";
                }
                if (socketParsedUrl.protocol === "http:") {
                    socketParsedUrl.protocol = "ws:";
                }
                var wsSocketUri = (0, url_1.format)(socketParsedUrl);
                var messageEmitter = new events_1.EventEmitter();
                var responseEmitter = new events_1.EventEmitter();
                var ws = new isomorphic_ws_1["default"](wsSocketUri);
                var isAlive = true;
                function onMessage(messageEvent) {
                    debug4("message", messageEvent.data);
                    var message2 = JSON.parse(messageEvent.data);
                    switch(message2.type){
                        case "response":
                            responseEmitter.emit(message2.responseUid);
                            break;
                        case "request":
                            messageEmitter.emit(message2.event, message2.payload);
                            if (message2.responseUid) {
                                var responseMessage = {
                                    type: "response",
                                    responseUid: message2.responseUid
                                };
                                if (ws.readyState === isomorphic_ws_1["default"].OPEN) {
                                    ws.send(JSON.stringify(responseMessage));
                                } else {
                                    debug4("Socket is not open. Unconfirmed message", responseMessage, message2);
                                    var error = new ISocket_1.UnconfirmedMessageError(responseMessage, message2, /* @__PURE__ */ new Date());
                                    onError(error);
                                }
                            }
                            break;
                        case "pong":
                            isAlive = true;
                            break;
                        default:
                    }
                }
                ws.addEventListener("message", onMessage);
                ws.addEventListener("error", onError);
                ws.addEventListener("open", onConnected);
                ws.addEventListener("close", onDisconnected);
                if (options.enablePingPong) {
                    var pingPongInterval_1 = null;
                    ws.addEventListener("open", function() {
                        pingPongInterval_1 = setInterval(function() {
                            if (!isAlive) {
                                debug4("server not responding, closing websocket");
                                clearInterval(pingPongInterval_1);
                                ws.close(3e3, "Server is not responding");
                            } else if (ws.readyState === isomorphic_ws_1["default"].OPEN) {
                                debug4("send ping");
                                var pingMessage = {
                                    type: "ping"
                                };
                                ws.send(JSON.stringify(pingMessage));
                                isAlive = false;
                            }
                        }, options.pingPongTimeout);
                    });
                    ws.addEventListener("close", function() {
                        if (pingPongInterval_1) {
                            clearInterval(pingPongInterval_1);
                        }
                    });
                }
                var socket = {
                    on: function on(event, listener) {
                        messageEmitter.on(event, listener);
                    },
                    once: function once(event, listener) {
                        messageEmitter.once(event, listener);
                    },
                    emit: function emit(event, payload, callback) {
                        var message2 = {
                            type: "request",
                            event: event,
                            payload: payload
                        };
                        if (callback) {
                            message2.responseUid = (0, generator_1.generateUniqueHash)();
                            responseEmitter.once(message2.responseUid, function() {
                                return callback();
                            });
                        }
                        if (ws.readyState === isomorphic_ws_1["default"].OPEN) {
                            ws.send(JSON.stringify(message2));
                        } else {
                            debug4("Socket is not open. Undelivered message", message2);
                            var error = new ISocket_1.UndeliveredEmitError(message2, /* @__PURE__ */ new Date());
                            onError(error);
                            throw error;
                        }
                    },
                    removeListener: function removeListener(event, listener) {
                        messageEmitter.removeListener(event, listener);
                    },
                    removeAllListeners: function removeAllListeners() {
                        ws.removeEventListener("message", onMessage);
                        ws.removeEventListener("error", onError);
                        ws.removeEventListener("open", onConnected);
                        ws.removeEventListener("close", onDisconnected);
                        messageEmitter.removeAllListeners();
                    },
                    close: function close() {
                        if (ws.readyState !== isomorphic_ws_1["default"].CLOSED && ws.readyState !== isomorphic_ws_1["default"].CLOSING) {
                            ws.close(1e3, "Closed by client");
                        } else {
                            debug4("Closing disconnected socket is not wanted");
                        }
                    }
                };
                return socket;
            }
            function createAutoReconnectingSocket(socketUri, onConnected, onDisconnected, onError, options, initialReconnectTimeout, maxReconnectTimeout) {
                var socketFactory = function socketFactory(onSocketConnected, onSocketDisconnected, onSocketError) {
                    return createSocket(socketUri, onSocketConnected, onSocketDisconnected, onSocketError, options);
                };
                var autoReconnectingSocket = new AutoReconnectingWSSocket_1["default"](socketFactory, initialReconnectTimeout, maxReconnectTimeout);
                autoReconnectingSocket.onConnected(onConnected);
                autoReconnectingSocket.onDisconnected(onDisconnected);
                autoReconnectingSocket.onError(onError);
                return autoReconnectingSocket;
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Promise/deferred.js
    var require_deferred = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Promise/deferred.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDeferred = createDeferred;
            function createDeferred(throwIfResolvedMultipleTimes) {
                var resolved = false;
                var _a2 = [
                    void 0,
                    void 0
                ], promiseResolve = _a2[0], promiseReject = _a2[1];
                var promise3 = new Promise(function(resolve, reject) {
                    var _a3;
                    _a3 = [
                        resolve,
                        reject
                    ], promiseResolve = _a3[0], promiseReject = _a3[1];
                });
                var handleIfIncorrect = function handleIfIncorrect() {
                    if (resolved) {
                        if (throwIfResolvedMultipleTimes) {
                            throw new Error("Deferred shouldn't be resolved more than once.");
                        } else if (throwIfResolvedMultipleTimes === void 0) {
                            console.warn(new Error("Deferred shouldn't be resolved more than once, ignoring this call."));
                        }
                    }
                    resolved = true;
                };
                return {
                    promise: promise3,
                    resolve: function resolve(value) {
                        handleIfIncorrect();
                        promiseResolve(value);
                    },
                    reject: function reject(e) {
                        handleIfIncorrect();
                        promiseReject(e);
                    }
                };
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/Http/createHttpSocket.js
    var require_createHttpSocket = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/Http/createHttpSocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSocket = void 0;
            var fetch_1 = require_fetch();
            var generator_1 = require_generator();
            var deferred_1 = require_deferred();
            var ISocket_1 = require_ISocket();
            var debug_1 = __importDefault(require_browser2());
            var events_1 = require_events();
            var progressiveWait_1 = require_progressiveWait();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Socket:Http:createHttpSocket");
            var Resource;
            (function(Resource2) {
                Resource2["SESSION"] = "/http-socket/session";
                Resource2["TRANSMIT_MESSAGES"] = "/http-socket/transmit-messages";
                Resource2["RECEIVE_MESSAGES"] = "/http-socket/receive-messages";
            })(Resource || (Resource = {}));
            var DEFAULT_CHECK_INTERVAL = 6e4;
            function createSocket(baseUrl, onConnected, onDisconnected, onError) {
                var options = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {};
                var _a2;
                var flushedDeferred;
                var maxCheckInterval = (_a2 = options.checkInterval) !== null && _a2 !== void 0 ? _a2 : DEFAULT_CHECK_INTERVAL;
                var progressiveWait = (0, progressiveWait_1.createProgressiveWait)(Math.min(1e3, maxCheckInterval), 1.5, maxCheckInterval);
                var messageEmitter = new events_1.EventEmitter();
                var responseEmitter = new events_1.EventEmitter();
                var messagesToServerQueue = [];
                var terminationDeferred = (0, deferred_1.createDeferred)();
                var closed = false;
                var sessionCredentials;
                function emitUnconfirmedMessages() {
                    var message2;
                    while(message2 = messagesToServerQueue.shift()){
                        debug4("Undelivered message", message2);
                        if (message2.type === "request" && message2.responseUid) {
                            var responseMessage = {
                                type: "response",
                                responseUid: message2.responseUid
                            };
                            var error = new ISocket_1.UnconfirmedMessageError(responseMessage, message2, /* @__PURE__ */ new Date());
                            onError(error);
                        }
                    }
                }
                function getAuthHeaders() {
                    if (sessionCredentials !== void 0) {
                        return {
                            "X-Auth": sessionCredentials.id + ":" + sessionCredentials.secret
                        };
                    }
                    throw new Error("Session has not been initialized yet");
                }
                function createSession() {
                    return __awaiter(this, void 0, void 0, function() {
                        var sessionUri, response, credentials;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    sessionUri = baseUrl + Resource.SESSION;
                                    return [
                                        4,
                                        (0, fetch_1.fetch)(sessionUri, {
                                            method: "POST"
                                        })
                                    ];
                                case 1:
                                    response = _state.sent();
                                    if (!response.ok) {
                                        throw new Error("Request for POST ".concat(Resource.SESSION, " failed with status code: ").concat(response.status, " - ").concat(response.statusText));
                                    }
                                    return [
                                        4,
                                        response.json()
                                    ];
                                case 2:
                                    credentials = _state.sent();
                                    sessionCredentials = credentials;
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                }
                function removeSession() {
                    return __awaiter(this, void 0, void 0, function() {
                        var sessionUri, response;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    if (sessionCredentials === void 0) {
                                        throw new Error("Session has not been initialized yet");
                                    }
                                    sessionUri = baseUrl + Resource.SESSION + "/" + sessionCredentials.id;
                                    return [
                                        4,
                                        (0, fetch_1.fetch)(sessionUri, {
                                            method: "DELETE",
                                            headers: getAuthHeaders()
                                        })
                                    ];
                                case 1:
                                    response = _state.sent();
                                    if (!response.ok) {
                                        throw new Error("Request for DELETE ".concat(Resource.SESSION, "/").concat(sessionCredentials.id, " failed with status code: ").concat(response.status, " - ").concat(response.statusText));
                                    }
                                    sessionCredentials = void 0;
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                }
                function processMessagesToServer() {
                    return __awaiter(this, void 0, void 0, function() {
                        var message2, messagesToTransmit, messagesUri, response, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, messageToTransmit, error;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    messagesToTransmit = [];
                                    while(message2 = messagesToServerQueue.shift()){
                                        messagesToTransmit.push(message2);
                                    }
                                    _state.label = 1;
                                case 1:
                                    _state.trys.push([
                                        1,
                                        3,
                                        ,
                                        4
                                    ]);
                                    messagesUri = baseUrl + Resource.TRANSMIT_MESSAGES;
                                    return [
                                        4,
                                        (0, fetch_1.fetch)(messagesUri, {
                                            method: "POST",
                                            headers: Object.assign(Object.assign({}, getAuthHeaders()), {
                                                "Content-Type": "application/json"
                                            }),
                                            body: JSON.stringify(messagesToTransmit)
                                        })
                                    ];
                                case 2:
                                    response = _state.sent();
                                    if (!response.ok) {
                                        throw new Error("Request for POST ".concat(Resource.TRANSMIT_MESSAGES, " failed with status code: ").concat(response.status, " - ").concat(response.statusText));
                                    }
                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                    try {
                                        for(_iterator = messagesToTransmit[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                            messageToTransmit = _step.value;
                                            if (messageToTransmit.responseUid) {
                                                responseEmitter.emit(messageToTransmit.responseUid);
                                            }
                                        }
                                    } catch (err) {
                                        _didIteratorError = true;
                                        _iteratorError = err;
                                    } finally{
                                        try {
                                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                _iterator["return"]();
                                            }
                                        } finally{
                                            if (_didIteratorError) {
                                                throw _iteratorError;
                                            }
                                        }
                                    }
                                    if (messagesToServerQueue.length === 0) {
                                        flushedDeferred === null || flushedDeferred === void 0 ? void 0 : flushedDeferred.resolve();
                                        flushedDeferred = void 0;
                                    }
                                    return [
                                        3,
                                        4
                                    ];
                                case 3:
                                    error = _state.sent();
                                    while(message2 = messagesToTransmit.pop()){
                                        messagesToServerQueue.unshift(message2);
                                    }
                                    throw error;
                                case 4:
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                }
                function processMessagesFromServer() {
                    return __awaiter(this, void 0, void 0, function() {
                        var messagesUri, response, messages, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, message2;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    messagesUri = baseUrl + Resource.RECEIVE_MESSAGES;
                                    return [
                                        4,
                                        (0, fetch_1.fetch)(messagesUri, {
                                            method: "POST",
                                            headers: getAuthHeaders()
                                        })
                                    ];
                                case 1:
                                    response = _state.sent();
                                    if (!response.ok) {
                                        throw new Error("Request for POST ".concat(Resource.RECEIVE_MESSAGES, " failed with status code: ").concat(response.status, " - ").concat(response.statusText));
                                    }
                                    return [
                                        4,
                                        response.json()
                                    ];
                                case 2:
                                    messages = _state.sent();
                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                    try {
                                        for(_iterator = messages[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                            message2 = _step.value;
                                            messageEmitter.emit(message2.event, message2.payload);
                                            if (message2.responseUid) {
                                                messagesToServerQueue.push({
                                                    type: "response",
                                                    responseUid: message2.responseUid
                                                });
                                            }
                                        }
                                    } catch (err) {
                                        _didIteratorError = true;
                                        _iteratorError = err;
                                    } finally{
                                        try {
                                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                _iterator["return"]();
                                            }
                                        } finally{
                                            if (_didIteratorError) {
                                                throw _iteratorError;
                                            }
                                        }
                                    }
                                    if (messages.length > 0) {
                                        progressiveWait.reset();
                                    }
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                }
                function doRequesting() {
                    return __awaiter(this, void 0, void 0, function() {
                        var error;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    _state.trys.push([
                                        0,
                                        ,
                                        7,
                                        12
                                    ]);
                                    return [
                                        4,
                                        createSession()
                                    ];
                                case 1:
                                    _state.sent();
                                    onConnected();
                                    _state.label = 2;
                                case 2:
                                    if (!!closed) return [
                                        3,
                                        6
                                    ];
                                    return [
                                        4,
                                        processMessagesToServer()
                                    ];
                                case 3:
                                    _state.sent();
                                    return [
                                        4,
                                        processMessagesFromServer()
                                    ];
                                case 4:
                                    _state.sent();
                                    return [
                                        4,
                                        Promise.race([
                                            progressiveWait.wait(),
                                            terminationDeferred.promise
                                        ])
                                    ];
                                case 5:
                                    _state.sent();
                                    return [
                                        3,
                                        2
                                    ];
                                case 6:
                                    return [
                                        3,
                                        12
                                    ];
                                case 7:
                                    emitUnconfirmedMessages();
                                    onDisconnected();
                                    _state.label = 8;
                                case 8:
                                    _state.trys.push([
                                        8,
                                        10,
                                        ,
                                        11
                                    ]);
                                    return [
                                        4,
                                        removeSession()
                                    ];
                                case 9:
                                    _state.sent();
                                    return [
                                        3,
                                        11
                                    ];
                                case 10:
                                    error = _state.sent();
                                    console.error("Removing session failed", error);
                                    return [
                                        3,
                                        11
                                    ];
                                case 11:
                                    return [
                                        7
                                    ];
                                case 12:
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                }
                doRequesting()["catch"](function(error) {
                    return console.error(error);
                });
                var socket = {
                    on: function(event, listener) {
                        messageEmitter.on(event, listener);
                    },
                    once: function(event, listener) {
                        messageEmitter.once(event, listener);
                    },
                    emit: function(event, payload, callback) {
                        var message2 = {
                            type: "request",
                            event: event,
                            payload: payload
                        };
                        if (closed) {
                            debug4("Socket is not open. Undelivered message", message2);
                            var error = new ISocket_1.UndeliveredEmitError(message2, /* @__PURE__ */ new Date());
                            onError(error);
                            throw error;
                        }
                        if (callback) {
                            message2.responseUid = (0, generator_1.generateUniqueHash)();
                            responseEmitter.once(message2.responseUid, function() {
                                return callback();
                            });
                        }
                        messagesToServerQueue.push(message2);
                    },
                    removeListener: function(event, listener) {
                        messageEmitter.removeListener(event, listener);
                    },
                    removeAllListeners: function() {
                        messageEmitter.removeAllListeners();
                    },
                    close: function() {
                        if (closed) {
                            debug4("Http socket is closed already");
                            return;
                        }
                        closed = true;
                        terminationDeferred.resolve();
                    },
                    /**
           * HTTP socket specific method for checking if queue is empty.
           */ whenFlushed: function() {
                        if (!flushedDeferred) {
                            flushedDeferred = (0, deferred_1.createDeferred)(true);
                        }
                        return flushedDeferred.promise;
                    }
                };
                return socket;
            }
            exports.createSocket = createSocket;
        }
    });
    // node_modules/moment/moment.js
    var require_moment = __commonJS({
        "node_modules/moment/moment.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(global2, factory) {
                (typeof exports === "undefined" ? "undefined" : _type_of(exports)) === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.moment = factory();
            })(exports, function() {
                "use strict";
                var hookCallback;
                function hooks() {
                    return hookCallback.apply(null, arguments);
                }
                function setHookCallback(callback) {
                    hookCallback = callback;
                }
                function isArray(input) {
                    return input instanceof Array || Object.prototype.toString.call(input) === "[object Array]";
                }
                function isObject2(input) {
                    return input != null && Object.prototype.toString.call(input) === "[object Object]";
                }
                function hasOwnProp(a, b) {
                    return Object.prototype.hasOwnProperty.call(a, b);
                }
                function isObjectEmpty(obj) {
                    if (Object.getOwnPropertyNames) {
                        return Object.getOwnPropertyNames(obj).length === 0;
                    } else {
                        var k;
                        for(k in obj){
                            if (hasOwnProp(obj, k)) {
                                return false;
                            }
                        }
                        return true;
                    }
                }
                function isUndefined2(input) {
                    return input === void 0;
                }
                function isNumber(input) {
                    return typeof input === "number" || Object.prototype.toString.call(input) === "[object Number]";
                }
                function isDate(input) {
                    return input instanceof Date || Object.prototype.toString.call(input) === "[object Date]";
                }
                function map(arr, fn) {
                    var res = [], i, arrLen = arr.length;
                    for(i = 0; i < arrLen; ++i){
                        res.push(fn(arr[i], i));
                    }
                    return res;
                }
                function extend(a, b) {
                    for(var i in b){
                        if (hasOwnProp(b, i)) {
                            a[i] = b[i];
                        }
                    }
                    if (hasOwnProp(b, "toString")) {
                        a.toString = b.toString;
                    }
                    if (hasOwnProp(b, "valueOf")) {
                        a.valueOf = b.valueOf;
                    }
                    return a;
                }
                function createUTC(input, format2, locale2, strict) {
                    return createLocalOrUTC(input, format2, locale2, strict, true).utc();
                }
                function defaultParsingFlags() {
                    return {
                        empty: false,
                        unusedTokens: [],
                        unusedInput: [],
                        overflow: -2,
                        charsLeftOver: 0,
                        nullInput: false,
                        invalidEra: null,
                        invalidMonth: null,
                        invalidFormat: false,
                        userInvalidated: false,
                        iso: false,
                        parsedDateParts: [],
                        era: null,
                        meridiem: null,
                        rfc2822: false,
                        weekdayMismatch: false
                    };
                }
                function getParsingFlags(m) {
                    if (m._pf == null) {
                        m._pf = defaultParsingFlags();
                    }
                    return m._pf;
                }
                var some;
                if (Array.prototype.some) {
                    some = Array.prototype.some;
                } else {
                    some = function some(fun) {
                        var t = Object(this), len = t.length >>> 0, i;
                        for(i = 0; i < len; i++){
                            if (i in t && fun.call(this, t[i], i, t)) {
                                return true;
                            }
                        }
                        return false;
                    };
                }
                function isValid(m) {
                    if (m._isValid == null) {
                        var flags = getParsingFlags(m), parsedParts = some.call(flags.parsedDateParts, function(i) {
                            return i != null;
                        }), isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);
                        if (m._strict) {
                            isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === void 0;
                        }
                        if (Object.isFrozen == null || !Object.isFrozen(m)) {
                            m._isValid = isNowValid;
                        } else {
                            return isNowValid;
                        }
                    }
                    return m._isValid;
                }
                function createInvalid(flags) {
                    var m = createUTC(NaN);
                    if (flags != null) {
                        extend(getParsingFlags(m), flags);
                    } else {
                        getParsingFlags(m).userInvalidated = true;
                    }
                    return m;
                }
                var momentProperties = hooks.momentProperties = [], updateInProgress = false;
                function copyConfig(to2, from2) {
                    var i, prop, val, momentPropertiesLen = momentProperties.length;
                    if (!isUndefined2(from2._isAMomentObject)) {
                        to2._isAMomentObject = from2._isAMomentObject;
                    }
                    if (!isUndefined2(from2._i)) {
                        to2._i = from2._i;
                    }
                    if (!isUndefined2(from2._f)) {
                        to2._f = from2._f;
                    }
                    if (!isUndefined2(from2._l)) {
                        to2._l = from2._l;
                    }
                    if (!isUndefined2(from2._strict)) {
                        to2._strict = from2._strict;
                    }
                    if (!isUndefined2(from2._tzm)) {
                        to2._tzm = from2._tzm;
                    }
                    if (!isUndefined2(from2._isUTC)) {
                        to2._isUTC = from2._isUTC;
                    }
                    if (!isUndefined2(from2._offset)) {
                        to2._offset = from2._offset;
                    }
                    if (!isUndefined2(from2._pf)) {
                        to2._pf = getParsingFlags(from2);
                    }
                    if (!isUndefined2(from2._locale)) {
                        to2._locale = from2._locale;
                    }
                    if (momentPropertiesLen > 0) {
                        for(i = 0; i < momentPropertiesLen; i++){
                            prop = momentProperties[i];
                            val = from2[prop];
                            if (!isUndefined2(val)) {
                                to2[prop] = val;
                            }
                        }
                    }
                    return to2;
                }
                function Moment(config) {
                    copyConfig(this, config);
                    this._d = new Date(config._d != null ? config._d.getTime() : NaN);
                    if (!this.isValid()) {
                        this._d = /* @__PURE__ */ new Date(NaN);
                    }
                    if (updateInProgress === false) {
                        updateInProgress = true;
                        hooks.updateOffset(this);
                        updateInProgress = false;
                    }
                }
                function isMoment(obj) {
                    return obj instanceof Moment || obj != null && obj._isAMomentObject != null;
                }
                function warn(msg) {
                    if (hooks.suppressDeprecationWarnings === false && typeof console !== "undefined" && console.warn) {
                        console.warn("Deprecation warning: " + msg);
                    }
                }
                function deprecate(msg, fn) {
                    var firstTime = true;
                    return extend(function() {
                        if (hooks.deprecationHandler != null) {
                            hooks.deprecationHandler(null, msg);
                        }
                        if (firstTime) {
                            var args = [], arg, i, key, argLen = arguments.length;
                            for(i = 0; i < argLen; i++){
                                arg = "";
                                if (_type_of(arguments[i]) === "object") {
                                    arg += "\n[" + i + "] ";
                                    for(key in arguments[0]){
                                        if (hasOwnProp(arguments[0], key)) {
                                            arg += key + ": " + arguments[0][key] + ", ";
                                        }
                                    }
                                    arg = arg.slice(0, -2);
                                } else {
                                    arg = arguments[i];
                                }
                                args.push(arg);
                            }
                            warn(msg + "\nArguments: " + Array.prototype.slice.call(args).join("") + "\n" + new Error().stack);
                            firstTime = false;
                        }
                        return fn.apply(this, arguments);
                    }, fn);
                }
                var deprecations = {};
                function deprecateSimple(name, msg) {
                    if (hooks.deprecationHandler != null) {
                        hooks.deprecationHandler(name, msg);
                    }
                    if (!deprecations[name]) {
                        warn(msg);
                        deprecations[name] = true;
                    }
                }
                hooks.suppressDeprecationWarnings = false;
                hooks.deprecationHandler = null;
                function isFunction(input) {
                    return typeof Function !== "undefined" && input instanceof Function || Object.prototype.toString.call(input) === "[object Function]";
                }
                function set(config) {
                    var prop, i;
                    for(i in config){
                        if (hasOwnProp(config, i)) {
                            prop = config[i];
                            if (isFunction(prop)) {
                                this[i] = prop;
                            } else {
                                this["_" + i] = prop;
                            }
                        }
                    }
                    this._config = config;
                    this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source);
                }
                function mergeConfigs(parentConfig, childConfig) {
                    var res = extend({}, parentConfig), prop;
                    for(prop in childConfig){
                        if (hasOwnProp(childConfig, prop)) {
                            if (isObject2(parentConfig[prop]) && isObject2(childConfig[prop])) {
                                res[prop] = {};
                                extend(res[prop], parentConfig[prop]);
                                extend(res[prop], childConfig[prop]);
                            } else if (childConfig[prop] != null) {
                                res[prop] = childConfig[prop];
                            } else {
                                delete res[prop];
                            }
                        }
                    }
                    for(prop in parentConfig){
                        if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject2(parentConfig[prop])) {
                            res[prop] = extend({}, res[prop]);
                        }
                    }
                    return res;
                }
                function Locale(config) {
                    if (config != null) {
                        this.set(config);
                    }
                }
                var keys;
                if (Object.keys) {
                    keys = Object.keys;
                } else {
                    keys = function keys(obj) {
                        var i, res = [];
                        for(i in obj){
                            if (hasOwnProp(obj, i)) {
                                res.push(i);
                            }
                        }
                        return res;
                    };
                }
                var defaultCalendar = {
                    sameDay: "[Today at] LT",
                    nextDay: "[Tomorrow at] LT",
                    nextWeek: "dddd [at] LT",
                    lastDay: "[Yesterday at] LT",
                    lastWeek: "[Last] dddd [at] LT",
                    sameElse: "L"
                };
                function calendar(key, mom, now3) {
                    var output = this._calendar[key] || this._calendar["sameElse"];
                    return isFunction(output) ? output.call(mom, now3) : output;
                }
                function zeroFill(number, targetLength, forceSign) {
                    var absNumber = "" + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign3 = number >= 0;
                    return (sign3 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
                }
                var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {};
                function addFormatToken(token2, padded, ordinal2, callback) {
                    var func3 = callback;
                    if (typeof callback === "string") {
                        func3 = function func3() {
                            return this[callback]();
                        };
                    }
                    if (token2) {
                        formatTokenFunctions[token2] = func3;
                    }
                    if (padded) {
                        formatTokenFunctions[padded[0]] = function() {
                            return zeroFill(func3.apply(this, arguments), padded[1], padded[2]);
                        };
                    }
                    if (ordinal2) {
                        formatTokenFunctions[ordinal2] = function() {
                            return this.localeData().ordinal(func3.apply(this, arguments), token2);
                        };
                    }
                }
                function removeFormattingTokens(input) {
                    if (input.match(/\[[\s\S]/)) {
                        return input.replace(/^\[|\]$/g, "");
                    }
                    return input.replace(/\\/g, "");
                }
                function makeFormatFunction(format2) {
                    var array4 = format2.match(formattingTokens), i, length;
                    for(i = 0, length = array4.length; i < length; i++){
                        if (formatTokenFunctions[array4[i]]) {
                            array4[i] = formatTokenFunctions[array4[i]];
                        } else {
                            array4[i] = removeFormattingTokens(array4[i]);
                        }
                    }
                    return function(mom) {
                        var output = "", i2;
                        for(i2 = 0; i2 < length; i2++){
                            output += isFunction(array4[i2]) ? array4[i2].call(mom, format2) : array4[i2];
                        }
                        return output;
                    };
                }
                function formatMoment(m, format2) {
                    if (!m.isValid()) {
                        return m.localeData().invalidDate();
                    }
                    format2 = expandFormat(format2, m.localeData());
                    formatFunctions[format2] = formatFunctions[format2] || makeFormatFunction(format2);
                    return formatFunctions[format2](m);
                }
                function expandFormat(format2, locale2) {
                    var i = 5;
                    function replaceLongDateFormatTokens(input) {
                        return locale2.longDateFormat(input) || input;
                    }
                    localFormattingTokens.lastIndex = 0;
                    while(i >= 0 && localFormattingTokens.test(format2)){
                        format2 = format2.replace(localFormattingTokens, replaceLongDateFormatTokens);
                        localFormattingTokens.lastIndex = 0;
                        i -= 1;
                    }
                    return format2;
                }
                var defaultLongDateFormat = {
                    LTS: "h:mm:ss A",
                    LT: "h:mm A",
                    L: "MM/DD/YYYY",
                    LL: "MMMM D, YYYY",
                    LLL: "MMMM D, YYYY h:mm A",
                    LLLL: "dddd, MMMM D, YYYY h:mm A"
                };
                function longDateFormat(key) {
                    var format2 = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()];
                    if (format2 || !formatUpper) {
                        return format2;
                    }
                    this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function(tok) {
                        if (tok === "MMMM" || tok === "MM" || tok === "DD" || tok === "dddd") {
                            return tok.slice(1);
                        }
                        return tok;
                    }).join("");
                    return this._longDateFormat[key];
                }
                var defaultInvalidDate = "Invalid date";
                function invalidDate() {
                    return this._invalidDate;
                }
                var defaultOrdinal = "%d", defaultDayOfMonthOrdinalParse = /\d{1,2}/;
                function ordinal(number) {
                    return this._ordinal.replace("%d", number);
                }
                var defaultRelativeTime = {
                    future: "in %s",
                    past: "%s ago",
                    s: "a few seconds",
                    ss: "%d seconds",
                    m: "a minute",
                    mm: "%d minutes",
                    h: "an hour",
                    hh: "%d hours",
                    d: "a day",
                    dd: "%d days",
                    w: "a week",
                    ww: "%d weeks",
                    M: "a month",
                    MM: "%d months",
                    y: "a year",
                    yy: "%d years"
                };
                function relativeTime(number, withoutSuffix, string5, isFuture) {
                    var output = this._relativeTime[string5];
                    return isFunction(output) ? output(number, withoutSuffix, string5, isFuture) : output.replace(/%d/i, number);
                }
                function pastFuture(diff2, output) {
                    var format2 = this._relativeTime[diff2 > 0 ? "future" : "past"];
                    return isFunction(format2) ? format2(output) : format2.replace(/%s/i, output);
                }
                var aliases = {};
                function addUnitAlias(unit, shorthand) {
                    var lowerCase = unit.toLowerCase();
                    aliases[lowerCase] = aliases[lowerCase + "s"] = aliases[shorthand] = unit;
                }
                function normalizeUnits(units) {
                    return typeof units === "string" ? aliases[units] || aliases[units.toLowerCase()] : void 0;
                }
                function normalizeObjectUnits(inputObject) {
                    var normalizedInput = {}, normalizedProp, prop;
                    for(prop in inputObject){
                        if (hasOwnProp(inputObject, prop)) {
                            normalizedProp = normalizeUnits(prop);
                            if (normalizedProp) {
                                normalizedInput[normalizedProp] = inputObject[prop];
                            }
                        }
                    }
                    return normalizedInput;
                }
                var priorities = {};
                function addUnitPriority(unit, priority) {
                    priorities[unit] = priority;
                }
                function getPrioritizedUnits(unitsObj) {
                    var units = [], u;
                    for(u in unitsObj){
                        if (hasOwnProp(unitsObj, u)) {
                            units.push({
                                unit: u,
                                priority: priorities[u]
                            });
                        }
                    }
                    units.sort(function(a, b) {
                        return a.priority - b.priority;
                    });
                    return units;
                }
                function isLeapYear(year2) {
                    return year2 % 4 === 0 && year2 % 100 !== 0 || year2 % 400 === 0;
                }
                function absFloor(number) {
                    if (number < 0) {
                        return Math.ceil(number) || 0;
                    } else {
                        return Math.floor(number);
                    }
                }
                function toInt(argumentForCoercion) {
                    var coercedNumber = +argumentForCoercion, value = 0;
                    if (coercedNumber !== 0 && isFinite(coercedNumber)) {
                        value = absFloor(coercedNumber);
                    }
                    return value;
                }
                function makeGetSet(unit, keepTime) {
                    return function(value) {
                        if (value != null) {
                            set$1(this, unit, value);
                            hooks.updateOffset(this, keepTime);
                            return this;
                        } else {
                            return get(this, unit);
                        }
                    };
                }
                function get(mom, unit) {
                    return mom.isValid() ? mom._d["get" + (mom._isUTC ? "UTC" : "") + unit]() : NaN;
                }
                function set$1(mom, unit, value) {
                    if (mom.isValid() && !isNaN(value)) {
                        if (unit === "FullYear" && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
                            value = toInt(value);
                            mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value, mom.month(), daysInMonth(value, mom.month()));
                        } else {
                            mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value);
                        }
                    }
                }
                function stringGet(units) {
                    units = normalizeUnits(units);
                    if (isFunction(this[units])) {
                        return this[units]();
                    }
                    return this;
                }
                function stringSet(units, value) {
                    if ((typeof units === "undefined" ? "undefined" : _type_of(units)) === "object") {
                        units = normalizeObjectUnits(units);
                        var prioritized = getPrioritizedUnits(units), i, prioritizedLen = prioritized.length;
                        for(i = 0; i < prioritizedLen; i++){
                            this[prioritized[i].unit](units[prioritized[i].unit]);
                        }
                    } else {
                        units = normalizeUnits(units);
                        if (isFunction(this[units])) {
                            return this[units](value);
                        }
                    }
                    return this;
                }
                var match1 = /\d/, match2 = /\d\d/, match3 = /\d{3}/, match4 = /\d{4}/, match6 = /[+-]?\d{6}/, match1to2 = /\d\d?/, match3to4 = /\d\d\d\d?/, match5to6 = /\d\d\d\d\d\d?/, match1to3 = /\d{1,3}/, match1to4 = /\d{1,4}/, match1to6 = /[+-]?\d{1,6}/, matchUnsigned = /\d+/, matchSigned = /[+-]?\d+/, matchOffset = /Z|[+-]\d\d:?\d\d/gi, matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, regexes;
                regexes = {};
                function addRegexToken(token2, regex, strictRegex) {
                    regexes[token2] = isFunction(regex) ? regex : function(isStrict, localeData2) {
                        return isStrict && strictRegex ? strictRegex : regex;
                    };
                }
                function getParseRegexForToken(token2, config) {
                    if (!hasOwnProp(regexes, token2)) {
                        return new RegExp(unescapeFormat(token2));
                    }
                    return regexes[token2](config._strict, config._locale);
                }
                function unescapeFormat(s) {
                    return regexEscape(s.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(matched, p1, p2, p3, p4) {
                        return p1 || p2 || p3 || p4;
                    }));
                }
                function regexEscape(s) {
                    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&");
                }
                var tokens = {};
                function addParseToken(token2, callback) {
                    var i, func3 = callback, tokenLen;
                    if (typeof token2 === "string") {
                        token2 = [
                            token2
                        ];
                    }
                    if (isNumber(callback)) {
                        func3 = function func3(input, array4) {
                            array4[callback] = toInt(input);
                        };
                    }
                    tokenLen = token2.length;
                    for(i = 0; i < tokenLen; i++){
                        tokens[token2[i]] = func3;
                    }
                }
                function addWeekParseToken(token2, callback) {
                    addParseToken(token2, function(input, array4, config, token3) {
                        config._w = config._w || {};
                        callback(input, config._w, config, token3);
                    });
                }
                function addTimeToArrayFromToken(token2, input, config) {
                    if (input != null && hasOwnProp(tokens, token2)) {
                        tokens[token2](input, config._a, config, token2);
                    }
                }
                var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8;
                function mod(n, x) {
                    return (n % x + x) % x;
                }
                var indexOf;
                if (Array.prototype.indexOf) {
                    indexOf = Array.prototype.indexOf;
                } else {
                    indexOf = function indexOf(o) {
                        var i;
                        for(i = 0; i < this.length; ++i){
                            if (this[i] === o) {
                                return i;
                            }
                        }
                        return -1;
                    };
                }
                function daysInMonth(year2, month) {
                    if (isNaN(year2) || isNaN(month)) {
                        return NaN;
                    }
                    var modMonth = mod(month, 12);
                    year2 += (month - modMonth) / 12;
                    return modMonth === 1 ? isLeapYear(year2) ? 29 : 28 : 31 - modMonth % 7 % 2;
                }
                addFormatToken("M", [
                    "MM",
                    2
                ], "Mo", function() {
                    return this.month() + 1;
                });
                addFormatToken("MMM", 0, 0, function(format2) {
                    return this.localeData().monthsShort(this, format2);
                });
                addFormatToken("MMMM", 0, 0, function(format2) {
                    return this.localeData().months(this, format2);
                });
                addUnitAlias("month", "M");
                addUnitPriority("month", 8);
                addRegexToken("M", match1to2);
                addRegexToken("MM", match1to2, match2);
                addRegexToken("MMM", function(isStrict, locale2) {
                    return locale2.monthsShortRegex(isStrict);
                });
                addRegexToken("MMMM", function(isStrict, locale2) {
                    return locale2.monthsRegex(isStrict);
                });
                addParseToken([
                    "M",
                    "MM"
                ], function(input, array4) {
                    array4[MONTH] = toInt(input) - 1;
                });
                addParseToken([
                    "MMM",
                    "MMMM"
                ], function(input, array4, config, token2) {
                    var month = config._locale.monthsParse(input, token2, config._strict);
                    if (month != null) {
                        array4[MONTH] = month;
                    } else {
                        getParsingFlags(config).invalidMonth = input;
                    }
                });
                var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord;
                function localeMonths(m, format2) {
                    if (!m) {
                        return isArray(this._months) ? this._months : this._months["standalone"];
                    }
                    return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format2) ? "format" : "standalone"][m.month()];
                }
                function localeMonthsShort(m, format2) {
                    if (!m) {
                        return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort["standalone"];
                    }
                    return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format2) ? "format" : "standalone"][m.month()];
                }
                function handleStrictParse(monthName, format2, strict) {
                    var i, ii, mom, llc = monthName.toLocaleLowerCase();
                    if (!this._monthsParse) {
                        this._monthsParse = [];
                        this._longMonthsParse = [];
                        this._shortMonthsParse = [];
                        for(i = 0; i < 12; ++i){
                            mom = createUTC([
                                2e3,
                                i
                            ]);
                            this._shortMonthsParse[i] = this.monthsShort(mom, "").toLocaleLowerCase();
                            this._longMonthsParse[i] = this.months(mom, "").toLocaleLowerCase();
                        }
                    }
                    if (strict) {
                        if (format2 === "MMM") {
                            ii = indexOf.call(this._shortMonthsParse, llc);
                            return ii !== -1 ? ii : null;
                        } else {
                            ii = indexOf.call(this._longMonthsParse, llc);
                            return ii !== -1 ? ii : null;
                        }
                    } else {
                        if (format2 === "MMM") {
                            ii = indexOf.call(this._shortMonthsParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._longMonthsParse, llc);
                            return ii !== -1 ? ii : null;
                        } else {
                            ii = indexOf.call(this._longMonthsParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._shortMonthsParse, llc);
                            return ii !== -1 ? ii : null;
                        }
                    }
                }
                function localeMonthsParse(monthName, format2, strict) {
                    var i, mom, regex;
                    if (this._monthsParseExact) {
                        return handleStrictParse.call(this, monthName, format2, strict);
                    }
                    if (!this._monthsParse) {
                        this._monthsParse = [];
                        this._longMonthsParse = [];
                        this._shortMonthsParse = [];
                    }
                    for(i = 0; i < 12; i++){
                        mom = createUTC([
                            2e3,
                            i
                        ]);
                        if (strict && !this._longMonthsParse[i]) {
                            this._longMonthsParse[i] = new RegExp("^" + this.months(mom, "").replace(".", "") + "$", "i");
                            this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(mom, "").replace(".", "") + "$", "i");
                        }
                        if (!strict && !this._monthsParse[i]) {
                            regex = "^" + this.months(mom, "") + "|^" + this.monthsShort(mom, "");
                            this._monthsParse[i] = new RegExp(regex.replace(".", ""), "i");
                        }
                        if (strict && format2 === "MMMM" && this._longMonthsParse[i].test(monthName)) {
                            return i;
                        } else if (strict && format2 === "MMM" && this._shortMonthsParse[i].test(monthName)) {
                            return i;
                        } else if (!strict && this._monthsParse[i].test(monthName)) {
                            return i;
                        }
                    }
                }
                function setMonth(mom, value) {
                    var dayOfMonth;
                    if (!mom.isValid()) {
                        return mom;
                    }
                    if (typeof value === "string") {
                        if (/^\d+$/.test(value)) {
                            value = toInt(value);
                        } else {
                            value = mom.localeData().monthsParse(value);
                            if (!isNumber(value)) {
                                return mom;
                            }
                        }
                    }
                    dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
                    mom._d["set" + (mom._isUTC ? "UTC" : "") + "Month"](value, dayOfMonth);
                    return mom;
                }
                function getSetMonth(value) {
                    if (value != null) {
                        setMonth(this, value);
                        hooks.updateOffset(this, true);
                        return this;
                    } else {
                        return get(this, "Month");
                    }
                }
                function getDaysInMonth() {
                    return daysInMonth(this.year(), this.month());
                }
                function monthsShortRegex(isStrict) {
                    if (this._monthsParseExact) {
                        if (!hasOwnProp(this, "_monthsRegex")) {
                            computeMonthsParse.call(this);
                        }
                        if (isStrict) {
                            return this._monthsShortStrictRegex;
                        } else {
                            return this._monthsShortRegex;
                        }
                    } else {
                        if (!hasOwnProp(this, "_monthsShortRegex")) {
                            this._monthsShortRegex = defaultMonthsShortRegex;
                        }
                        return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;
                    }
                }
                function monthsRegex(isStrict) {
                    if (this._monthsParseExact) {
                        if (!hasOwnProp(this, "_monthsRegex")) {
                            computeMonthsParse.call(this);
                        }
                        if (isStrict) {
                            return this._monthsStrictRegex;
                        } else {
                            return this._monthsRegex;
                        }
                    } else {
                        if (!hasOwnProp(this, "_monthsRegex")) {
                            this._monthsRegex = defaultMonthsRegex;
                        }
                        return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;
                    }
                }
                function computeMonthsParse() {
                    function cmpLenRev(a, b) {
                        return b.length - a.length;
                    }
                    var shortPieces = [], longPieces = [], mixedPieces = [], i, mom;
                    for(i = 0; i < 12; i++){
                        mom = createUTC([
                            2e3,
                            i
                        ]);
                        shortPieces.push(this.monthsShort(mom, ""));
                        longPieces.push(this.months(mom, ""));
                        mixedPieces.push(this.months(mom, ""));
                        mixedPieces.push(this.monthsShort(mom, ""));
                    }
                    shortPieces.sort(cmpLenRev);
                    longPieces.sort(cmpLenRev);
                    mixedPieces.sort(cmpLenRev);
                    for(i = 0; i < 12; i++){
                        shortPieces[i] = regexEscape(shortPieces[i]);
                        longPieces[i] = regexEscape(longPieces[i]);
                    }
                    for(i = 0; i < 24; i++){
                        mixedPieces[i] = regexEscape(mixedPieces[i]);
                    }
                    this._monthsRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i");
                    this._monthsShortRegex = this._monthsRegex;
                    this._monthsStrictRegex = new RegExp("^(" + longPieces.join("|") + ")", "i");
                    this._monthsShortStrictRegex = new RegExp("^(" + shortPieces.join("|") + ")", "i");
                }
                addFormatToken("Y", 0, 0, function() {
                    var y = this.year();
                    return y <= 9999 ? zeroFill(y, 4) : "+" + y;
                });
                addFormatToken(0, [
                    "YY",
                    2
                ], 0, function() {
                    return this.year() % 100;
                });
                addFormatToken(0, [
                    "YYYY",
                    4
                ], 0, "year");
                addFormatToken(0, [
                    "YYYYY",
                    5
                ], 0, "year");
                addFormatToken(0, [
                    "YYYYYY",
                    6,
                    true
                ], 0, "year");
                addUnitAlias("year", "y");
                addUnitPriority("year", 1);
                addRegexToken("Y", matchSigned);
                addRegexToken("YY", match1to2, match2);
                addRegexToken("YYYY", match1to4, match4);
                addRegexToken("YYYYY", match1to6, match6);
                addRegexToken("YYYYYY", match1to6, match6);
                addParseToken([
                    "YYYYY",
                    "YYYYYY"
                ], YEAR);
                addParseToken("YYYY", function(input, array4) {
                    array4[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
                });
                addParseToken("YY", function(input, array4) {
                    array4[YEAR] = hooks.parseTwoDigitYear(input);
                });
                addParseToken("Y", function(input, array4) {
                    array4[YEAR] = parseInt(input, 10);
                });
                function daysInYear(year2) {
                    return isLeapYear(year2) ? 366 : 365;
                }
                hooks.parseTwoDigitYear = function(input) {
                    return toInt(input) + (toInt(input) > 68 ? 1900 : 2e3);
                };
                var getSetYear = makeGetSet("FullYear", true);
                function getIsLeapYear() {
                    return isLeapYear(this.year());
                }
                function createDate(y, m, d, h, M, s, ms) {
                    var date;
                    if (y < 100 && y >= 0) {
                        date = new Date(y + 400, m, d, h, M, s, ms);
                        if (isFinite(date.getFullYear())) {
                            date.setFullYear(y);
                        }
                    } else {
                        date = new Date(y, m, d, h, M, s, ms);
                    }
                    return date;
                }
                function createUTCDate(y) {
                    var date, args;
                    if (y < 100 && y >= 0) {
                        args = Array.prototype.slice.call(arguments);
                        args[0] = y + 400;
                        date = new Date(Date.UTC.apply(null, args));
                        if (isFinite(date.getUTCFullYear())) {
                            date.setUTCFullYear(y);
                        }
                    } else {
                        date = new Date(Date.UTC.apply(null, arguments));
                    }
                    return date;
                }
                function firstWeekOffset(year2, dow, doy) {
                    var fwd = 7 + dow - doy, fwdlw = (7 + createUTCDate(year2, 0, fwd).getUTCDay() - dow) % 7;
                    return -fwdlw + fwd - 1;
                }
                function dayOfYearFromWeeks(year2, week2, weekday, dow, doy) {
                    var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year2, dow, doy), dayOfYear = 1 + 7 * (week2 - 1) + localWeekday + weekOffset, resYear, resDayOfYear;
                    if (dayOfYear <= 0) {
                        resYear = year2 - 1;
                        resDayOfYear = daysInYear(resYear) + dayOfYear;
                    } else if (dayOfYear > daysInYear(year2)) {
                        resYear = year2 + 1;
                        resDayOfYear = dayOfYear - daysInYear(year2);
                    } else {
                        resYear = year2;
                        resDayOfYear = dayOfYear;
                    }
                    return {
                        year: resYear,
                        dayOfYear: resDayOfYear
                    };
                }
                function weekOfYear(mom, dow, doy) {
                    var weekOffset = firstWeekOffset(mom.year(), dow, doy), week2 = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear;
                    if (week2 < 1) {
                        resYear = mom.year() - 1;
                        resWeek = week2 + weeksInYear(resYear, dow, doy);
                    } else if (week2 > weeksInYear(mom.year(), dow, doy)) {
                        resWeek = week2 - weeksInYear(mom.year(), dow, doy);
                        resYear = mom.year() + 1;
                    } else {
                        resYear = mom.year();
                        resWeek = week2;
                    }
                    return {
                        week: resWeek,
                        year: resYear
                    };
                }
                function weeksInYear(year2, dow, doy) {
                    var weekOffset = firstWeekOffset(year2, dow, doy), weekOffsetNext = firstWeekOffset(year2 + 1, dow, doy);
                    return (daysInYear(year2) - weekOffset + weekOffsetNext) / 7;
                }
                addFormatToken("w", [
                    "ww",
                    2
                ], "wo", "week");
                addFormatToken("W", [
                    "WW",
                    2
                ], "Wo", "isoWeek");
                addUnitAlias("week", "w");
                addUnitAlias("isoWeek", "W");
                addUnitPriority("week", 5);
                addUnitPriority("isoWeek", 5);
                addRegexToken("w", match1to2);
                addRegexToken("ww", match1to2, match2);
                addRegexToken("W", match1to2);
                addRegexToken("WW", match1to2, match2);
                addWeekParseToken([
                    "w",
                    "ww",
                    "W",
                    "WW"
                ], function(input, week2, config, token2) {
                    week2[token2.substr(0, 1)] = toInt(input);
                });
                function localeWeek(mom) {
                    return weekOfYear(mom, this._week.dow, this._week.doy).week;
                }
                var defaultLocaleWeek = {
                    dow: 0,
                    // Sunday is the first day of the week.
                    doy: 6
                };
                function localeFirstDayOfWeek() {
                    return this._week.dow;
                }
                function localeFirstDayOfYear() {
                    return this._week.doy;
                }
                function getSetWeek(input) {
                    var week2 = this.localeData().week(this);
                    return input == null ? week2 : this.add((input - week2) * 7, "d");
                }
                function getSetISOWeek(input) {
                    var week2 = weekOfYear(this, 1, 4).week;
                    return input == null ? week2 : this.add((input - week2) * 7, "d");
                }
                addFormatToken("d", 0, "do", "day");
                addFormatToken("dd", 0, 0, function(format2) {
                    return this.localeData().weekdaysMin(this, format2);
                });
                addFormatToken("ddd", 0, 0, function(format2) {
                    return this.localeData().weekdaysShort(this, format2);
                });
                addFormatToken("dddd", 0, 0, function(format2) {
                    return this.localeData().weekdays(this, format2);
                });
                addFormatToken("e", 0, 0, "weekday");
                addFormatToken("E", 0, 0, "isoWeekday");
                addUnitAlias("day", "d");
                addUnitAlias("weekday", "e");
                addUnitAlias("isoWeekday", "E");
                addUnitPriority("day", 11);
                addUnitPriority("weekday", 11);
                addUnitPriority("isoWeekday", 11);
                addRegexToken("d", match1to2);
                addRegexToken("e", match1to2);
                addRegexToken("E", match1to2);
                addRegexToken("dd", function(isStrict, locale2) {
                    return locale2.weekdaysMinRegex(isStrict);
                });
                addRegexToken("ddd", function(isStrict, locale2) {
                    return locale2.weekdaysShortRegex(isStrict);
                });
                addRegexToken("dddd", function(isStrict, locale2) {
                    return locale2.weekdaysRegex(isStrict);
                });
                addWeekParseToken([
                    "dd",
                    "ddd",
                    "dddd"
                ], function(input, week2, config, token2) {
                    var weekday = config._locale.weekdaysParse(input, token2, config._strict);
                    if (weekday != null) {
                        week2.d = weekday;
                    } else {
                        getParsingFlags(config).invalidWeekday = input;
                    }
                });
                addWeekParseToken([
                    "d",
                    "e",
                    "E"
                ], function(input, week2, config, token2) {
                    week2[token2] = toInt(input);
                });
                function parseWeekday(input, locale2) {
                    if (typeof input !== "string") {
                        return input;
                    }
                    if (!isNaN(input)) {
                        return parseInt(input, 10);
                    }
                    input = locale2.weekdaysParse(input);
                    if (typeof input === "number") {
                        return input;
                    }
                    return null;
                }
                function parseIsoWeekday(input, locale2) {
                    if (typeof input === "string") {
                        return locale2.weekdaysParse(input) % 7 || 7;
                    }
                    return isNaN(input) ? null : input;
                }
                function shiftWeekdays(ws, n) {
                    return ws.slice(n, 7).concat(ws.slice(0, n));
                }
                var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord;
                function localeWeekdays(m, format2) {
                    var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format2) ? "format" : "standalone"];
                    return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;
                }
                function localeWeekdaysShort(m) {
                    return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;
                }
                function localeWeekdaysMin(m) {
                    return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;
                }
                function handleStrictParse$1(weekdayName, format2, strict) {
                    var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
                    if (!this._weekdaysParse) {
                        this._weekdaysParse = [];
                        this._shortWeekdaysParse = [];
                        this._minWeekdaysParse = [];
                        for(i = 0; i < 7; ++i){
                            mom = createUTC([
                                2e3,
                                1
                            ]).day(i);
                            this._minWeekdaysParse[i] = this.weekdaysMin(mom, "").toLocaleLowerCase();
                            this._shortWeekdaysParse[i] = this.weekdaysShort(mom, "").toLocaleLowerCase();
                            this._weekdaysParse[i] = this.weekdays(mom, "").toLocaleLowerCase();
                        }
                    }
                    if (strict) {
                        if (format2 === "dddd") {
                            ii = indexOf.call(this._weekdaysParse, llc);
                            return ii !== -1 ? ii : null;
                        } else if (format2 === "ddd") {
                            ii = indexOf.call(this._shortWeekdaysParse, llc);
                            return ii !== -1 ? ii : null;
                        } else {
                            ii = indexOf.call(this._minWeekdaysParse, llc);
                            return ii !== -1 ? ii : null;
                        }
                    } else {
                        if (format2 === "dddd") {
                            ii = indexOf.call(this._weekdaysParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._shortWeekdaysParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._minWeekdaysParse, llc);
                            return ii !== -1 ? ii : null;
                        } else if (format2 === "ddd") {
                            ii = indexOf.call(this._shortWeekdaysParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._weekdaysParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._minWeekdaysParse, llc);
                            return ii !== -1 ? ii : null;
                        } else {
                            ii = indexOf.call(this._minWeekdaysParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._weekdaysParse, llc);
                            if (ii !== -1) {
                                return ii;
                            }
                            ii = indexOf.call(this._shortWeekdaysParse, llc);
                            return ii !== -1 ? ii : null;
                        }
                    }
                }
                function localeWeekdaysParse(weekdayName, format2, strict) {
                    var i, mom, regex;
                    if (this._weekdaysParseExact) {
                        return handleStrictParse$1.call(this, weekdayName, format2, strict);
                    }
                    if (!this._weekdaysParse) {
                        this._weekdaysParse = [];
                        this._minWeekdaysParse = [];
                        this._shortWeekdaysParse = [];
                        this._fullWeekdaysParse = [];
                    }
                    for(i = 0; i < 7; i++){
                        mom = createUTC([
                            2e3,
                            1
                        ]).day(i);
                        if (strict && !this._fullWeekdaysParse[i]) {
                            this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(mom, "").replace(".", "\\.?") + "$", "i");
                            this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(mom, "").replace(".", "\\.?") + "$", "i");
                            this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(mom, "").replace(".", "\\.?") + "$", "i");
                        }
                        if (!this._weekdaysParse[i]) {
                            regex = "^" + this.weekdays(mom, "") + "|^" + this.weekdaysShort(mom, "") + "|^" + this.weekdaysMin(mom, "");
                            this._weekdaysParse[i] = new RegExp(regex.replace(".", ""), "i");
                        }
                        if (strict && format2 === "dddd" && this._fullWeekdaysParse[i].test(weekdayName)) {
                            return i;
                        } else if (strict && format2 === "ddd" && this._shortWeekdaysParse[i].test(weekdayName)) {
                            return i;
                        } else if (strict && format2 === "dd" && this._minWeekdaysParse[i].test(weekdayName)) {
                            return i;
                        } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
                            return i;
                        }
                    }
                }
                function getSetDayOfWeek(input) {
                    if (!this.isValid()) {
                        return input != null ? this : NaN;
                    }
                    var day2 = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
                    if (input != null) {
                        input = parseWeekday(input, this.localeData());
                        return this.add(input - day2, "d");
                    } else {
                        return day2;
                    }
                }
                function getSetLocaleDayOfWeek(input) {
                    if (!this.isValid()) {
                        return input != null ? this : NaN;
                    }
                    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
                    return input == null ? weekday : this.add(input - weekday, "d");
                }
                function getSetISODayOfWeek(input) {
                    if (!this.isValid()) {
                        return input != null ? this : NaN;
                    }
                    if (input != null) {
                        var weekday = parseIsoWeekday(input, this.localeData());
                        return this.day(this.day() % 7 ? weekday : weekday - 7);
                    } else {
                        return this.day() || 7;
                    }
                }
                function weekdaysRegex(isStrict) {
                    if (this._weekdaysParseExact) {
                        if (!hasOwnProp(this, "_weekdaysRegex")) {
                            computeWeekdaysParse.call(this);
                        }
                        if (isStrict) {
                            return this._weekdaysStrictRegex;
                        } else {
                            return this._weekdaysRegex;
                        }
                    } else {
                        if (!hasOwnProp(this, "_weekdaysRegex")) {
                            this._weekdaysRegex = defaultWeekdaysRegex;
                        }
                        return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;
                    }
                }
                function weekdaysShortRegex(isStrict) {
                    if (this._weekdaysParseExact) {
                        if (!hasOwnProp(this, "_weekdaysRegex")) {
                            computeWeekdaysParse.call(this);
                        }
                        if (isStrict) {
                            return this._weekdaysShortStrictRegex;
                        } else {
                            return this._weekdaysShortRegex;
                        }
                    } else {
                        if (!hasOwnProp(this, "_weekdaysShortRegex")) {
                            this._weekdaysShortRegex = defaultWeekdaysShortRegex;
                        }
                        return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
                    }
                }
                function weekdaysMinRegex(isStrict) {
                    if (this._weekdaysParseExact) {
                        if (!hasOwnProp(this, "_weekdaysRegex")) {
                            computeWeekdaysParse.call(this);
                        }
                        if (isStrict) {
                            return this._weekdaysMinStrictRegex;
                        } else {
                            return this._weekdaysMinRegex;
                        }
                    } else {
                        if (!hasOwnProp(this, "_weekdaysMinRegex")) {
                            this._weekdaysMinRegex = defaultWeekdaysMinRegex;
                        }
                        return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
                    }
                }
                function computeWeekdaysParse() {
                    function cmpLenRev(a, b) {
                        return b.length - a.length;
                    }
                    var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i, mom, minp, shortp, longp;
                    for(i = 0; i < 7; i++){
                        mom = createUTC([
                            2e3,
                            1
                        ]).day(i);
                        minp = regexEscape(this.weekdaysMin(mom, ""));
                        shortp = regexEscape(this.weekdaysShort(mom, ""));
                        longp = regexEscape(this.weekdays(mom, ""));
                        minPieces.push(minp);
                        shortPieces.push(shortp);
                        longPieces.push(longp);
                        mixedPieces.push(minp);
                        mixedPieces.push(shortp);
                        mixedPieces.push(longp);
                    }
                    minPieces.sort(cmpLenRev);
                    shortPieces.sort(cmpLenRev);
                    longPieces.sort(cmpLenRev);
                    mixedPieces.sort(cmpLenRev);
                    this._weekdaysRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i");
                    this._weekdaysShortRegex = this._weekdaysRegex;
                    this._weekdaysMinRegex = this._weekdaysRegex;
                    this._weekdaysStrictRegex = new RegExp("^(" + longPieces.join("|") + ")", "i");
                    this._weekdaysShortStrictRegex = new RegExp("^(" + shortPieces.join("|") + ")", "i");
                    this._weekdaysMinStrictRegex = new RegExp("^(" + minPieces.join("|") + ")", "i");
                }
                function hFormat() {
                    return this.hours() % 12 || 12;
                }
                function kFormat() {
                    return this.hours() || 24;
                }
                addFormatToken("H", [
                    "HH",
                    2
                ], 0, "hour");
                addFormatToken("h", [
                    "hh",
                    2
                ], 0, hFormat);
                addFormatToken("k", [
                    "kk",
                    2
                ], 0, kFormat);
                addFormatToken("hmm", 0, 0, function() {
                    return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2);
                });
                addFormatToken("hmmss", 0, 0, function() {
                    return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);
                });
                addFormatToken("Hmm", 0, 0, function() {
                    return "" + this.hours() + zeroFill(this.minutes(), 2);
                });
                addFormatToken("Hmmss", 0, 0, function() {
                    return "" + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);
                });
                function meridiem(token2, lowercase) {
                    addFormatToken(token2, 0, 0, function() {
                        return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
                    });
                }
                meridiem("a", true);
                meridiem("A", false);
                addUnitAlias("hour", "h");
                addUnitPriority("hour", 13);
                function matchMeridiem(isStrict, locale2) {
                    return locale2._meridiemParse;
                }
                addRegexToken("a", matchMeridiem);
                addRegexToken("A", matchMeridiem);
                addRegexToken("H", match1to2);
                addRegexToken("h", match1to2);
                addRegexToken("k", match1to2);
                addRegexToken("HH", match1to2, match2);
                addRegexToken("hh", match1to2, match2);
                addRegexToken("kk", match1to2, match2);
                addRegexToken("hmm", match3to4);
                addRegexToken("hmmss", match5to6);
                addRegexToken("Hmm", match3to4);
                addRegexToken("Hmmss", match5to6);
                addParseToken([
                    "H",
                    "HH"
                ], HOUR);
                addParseToken([
                    "k",
                    "kk"
                ], function(input, array4, config) {
                    var kInput = toInt(input);
                    array4[HOUR] = kInput === 24 ? 0 : kInput;
                });
                addParseToken([
                    "a",
                    "A"
                ], function(input, array4, config) {
                    config._isPm = config._locale.isPM(input);
                    config._meridiem = input;
                });
                addParseToken([
                    "h",
                    "hh"
                ], function(input, array4, config) {
                    array4[HOUR] = toInt(input);
                    getParsingFlags(config).bigHour = true;
                });
                addParseToken("hmm", function(input, array4, config) {
                    var pos = input.length - 2;
                    array4[HOUR] = toInt(input.substr(0, pos));
                    array4[MINUTE] = toInt(input.substr(pos));
                    getParsingFlags(config).bigHour = true;
                });
                addParseToken("hmmss", function(input, array4, config) {
                    var pos1 = input.length - 4, pos2 = input.length - 2;
                    array4[HOUR] = toInt(input.substr(0, pos1));
                    array4[MINUTE] = toInt(input.substr(pos1, 2));
                    array4[SECOND] = toInt(input.substr(pos2));
                    getParsingFlags(config).bigHour = true;
                });
                addParseToken("Hmm", function(input, array4, config) {
                    var pos = input.length - 2;
                    array4[HOUR] = toInt(input.substr(0, pos));
                    array4[MINUTE] = toInt(input.substr(pos));
                });
                addParseToken("Hmmss", function(input, array4, config) {
                    var pos1 = input.length - 4, pos2 = input.length - 2;
                    array4[HOUR] = toInt(input.substr(0, pos1));
                    array4[MINUTE] = toInt(input.substr(pos1, 2));
                    array4[SECOND] = toInt(input.substr(pos2));
                });
                function localeIsPM(input) {
                    return (input + "").toLowerCase().charAt(0) === "p";
                }
                var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, getSetHour = makeGetSet("Hours", true);
                function localeMeridiem(hours2, minutes2, isLower) {
                    if (hours2 > 11) {
                        return isLower ? "pm" : "PM";
                    } else {
                        return isLower ? "am" : "AM";
                    }
                }
                var baseConfig = {
                    calendar: defaultCalendar,
                    longDateFormat: defaultLongDateFormat,
                    invalidDate: defaultInvalidDate,
                    ordinal: defaultOrdinal,
                    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
                    relativeTime: defaultRelativeTime,
                    months: defaultLocaleMonths,
                    monthsShort: defaultLocaleMonthsShort,
                    week: defaultLocaleWeek,
                    weekdays: defaultLocaleWeekdays,
                    weekdaysMin: defaultLocaleWeekdaysMin,
                    weekdaysShort: defaultLocaleWeekdaysShort,
                    meridiemParse: defaultLocaleMeridiemParse
                };
                var locales = {}, localeFamilies = {}, globalLocale;
                function commonPrefix(arr1, arr2) {
                    var i, minl = Math.min(arr1.length, arr2.length);
                    for(i = 0; i < minl; i += 1){
                        if (arr1[i] !== arr2[i]) {
                            return i;
                        }
                    }
                    return minl;
                }
                function normalizeLocale(key) {
                    return key ? key.toLowerCase().replace("_", "-") : key;
                }
                function chooseLocale(names) {
                    var i = 0, j, next, locale2, split;
                    while(i < names.length){
                        split = normalizeLocale(names[i]).split("-");
                        j = split.length;
                        next = normalizeLocale(names[i + 1]);
                        next = next ? next.split("-") : null;
                        while(j > 0){
                            locale2 = loadLocale(split.slice(0, j).join("-"));
                            if (locale2) {
                                return locale2;
                            }
                            if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {
                                break;
                            }
                            j--;
                        }
                        i++;
                    }
                    return globalLocale;
                }
                function isLocaleNameSane(name) {
                    return name.match("^[^/\\\\]*$") != null;
                }
                function loadLocale(name) {
                    var oldLocale = null, aliasedRequire;
                    if (locales[name] === void 0 && typeof module !== "undefined" && module && module.exports && isLocaleNameSane(name)) {
                        try {
                            oldLocale = globalLocale._abbr;
                            aliasedRequire = __require;
                            aliasedRequire("./locale/" + name);
                            getSetGlobalLocale(oldLocale);
                        } catch (e) {
                            locales[name] = null;
                        }
                    }
                    return locales[name];
                }
                function getSetGlobalLocale(key, values) {
                    var data;
                    if (key) {
                        if (isUndefined2(values)) {
                            data = getLocale(key);
                        } else {
                            data = defineLocale(key, values);
                        }
                        if (data) {
                            globalLocale = data;
                        } else {
                            if (typeof console !== "undefined" && console.warn) {
                                console.warn("Locale " + key + " not found. Did you forget to load it?");
                            }
                        }
                    }
                    return globalLocale._abbr;
                }
                function defineLocale(name, config) {
                    if (config !== null) {
                        var locale2, parentConfig = baseConfig;
                        config.abbr = name;
                        if (locales[name] != null) {
                            deprecateSimple("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.");
                            parentConfig = locales[name]._config;
                        } else if (config.parentLocale != null) {
                            if (locales[config.parentLocale] != null) {
                                parentConfig = locales[config.parentLocale]._config;
                            } else {
                                locale2 = loadLocale(config.parentLocale);
                                if (locale2 != null) {
                                    parentConfig = locale2._config;
                                } else {
                                    if (!localeFamilies[config.parentLocale]) {
                                        localeFamilies[config.parentLocale] = [];
                                    }
                                    localeFamilies[config.parentLocale].push({
                                        name: name,
                                        config: config
                                    });
                                    return null;
                                }
                            }
                        }
                        locales[name] = new Locale(mergeConfigs(parentConfig, config));
                        if (localeFamilies[name]) {
                            localeFamilies[name].forEach(function(x) {
                                defineLocale(x.name, x.config);
                            });
                        }
                        getSetGlobalLocale(name);
                        return locales[name];
                    } else {
                        delete locales[name];
                        return null;
                    }
                }
                function updateLocale(name, config) {
                    if (config != null) {
                        var locale2, tmpLocale, parentConfig = baseConfig;
                        if (locales[name] != null && locales[name].parentLocale != null) {
                            locales[name].set(mergeConfigs(locales[name]._config, config));
                        } else {
                            tmpLocale = loadLocale(name);
                            if (tmpLocale != null) {
                                parentConfig = tmpLocale._config;
                            }
                            config = mergeConfigs(parentConfig, config);
                            if (tmpLocale == null) {
                                config.abbr = name;
                            }
                            locale2 = new Locale(config);
                            locale2.parentLocale = locales[name];
                            locales[name] = locale2;
                        }
                        getSetGlobalLocale(name);
                    } else {
                        if (locales[name] != null) {
                            if (locales[name].parentLocale != null) {
                                locales[name] = locales[name].parentLocale;
                                if (name === getSetGlobalLocale()) {
                                    getSetGlobalLocale(name);
                                }
                            } else if (locales[name] != null) {
                                delete locales[name];
                            }
                        }
                    }
                    return locales[name];
                }
                function getLocale(key) {
                    var locale2;
                    if (key && key._locale && key._locale._abbr) {
                        key = key._locale._abbr;
                    }
                    if (!key) {
                        return globalLocale;
                    }
                    if (!isArray(key)) {
                        locale2 = loadLocale(key);
                        if (locale2) {
                            return locale2;
                        }
                        key = [
                            key
                        ];
                    }
                    return chooseLocale(key);
                }
                function listLocales() {
                    return keys(locales);
                }
                function checkOverflow(m) {
                    var overflow, a = m._a;
                    if (a && getParsingFlags(m).overflow === -2) {
                        overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;
                        if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
                            overflow = DATE;
                        }
                        if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
                            overflow = WEEK;
                        }
                        if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
                            overflow = WEEKDAY;
                        }
                        getParsingFlags(m).overflow = overflow;
                    }
                    return m;
                }
                var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [
                    [
                        "YYYYYY-MM-DD",
                        /[+-]\d{6}-\d\d-\d\d/
                    ],
                    [
                        "YYYY-MM-DD",
                        /\d{4}-\d\d-\d\d/
                    ],
                    [
                        "GGGG-[W]WW-E",
                        /\d{4}-W\d\d-\d/
                    ],
                    [
                        "GGGG-[W]WW",
                        /\d{4}-W\d\d/,
                        false
                    ],
                    [
                        "YYYY-DDD",
                        /\d{4}-\d{3}/
                    ],
                    [
                        "YYYY-MM",
                        /\d{4}-\d\d/,
                        false
                    ],
                    [
                        "YYYYYYMMDD",
                        /[+-]\d{10}/
                    ],
                    [
                        "YYYYMMDD",
                        /\d{8}/
                    ],
                    [
                        "GGGG[W]WWE",
                        /\d{4}W\d{3}/
                    ],
                    [
                        "GGGG[W]WW",
                        /\d{4}W\d{2}/,
                        false
                    ],
                    [
                        "YYYYDDD",
                        /\d{7}/
                    ],
                    [
                        "YYYYMM",
                        /\d{6}/,
                        false
                    ],
                    [
                        "YYYY",
                        /\d{4}/,
                        false
                    ]
                ], isoTimes = [
                    [
                        "HH:mm:ss.SSSS",
                        /\d\d:\d\d:\d\d\.\d+/
                    ],
                    [
                        "HH:mm:ss,SSSS",
                        /\d\d:\d\d:\d\d,\d+/
                    ],
                    [
                        "HH:mm:ss",
                        /\d\d:\d\d:\d\d/
                    ],
                    [
                        "HH:mm",
                        /\d\d:\d\d/
                    ],
                    [
                        "HHmmss.SSSS",
                        /\d\d\d\d\d\d\.\d+/
                    ],
                    [
                        "HHmmss,SSSS",
                        /\d\d\d\d\d\d,\d+/
                    ],
                    [
                        "HHmmss",
                        /\d\d\d\d\d\d/
                    ],
                    [
                        "HHmm",
                        /\d\d\d\d/
                    ],
                    [
                        "HH",
                        /\d\d/
                    ]
                ], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = {
                    UT: 0,
                    GMT: 0,
                    EDT: -4 * 60,
                    EST: -5 * 60,
                    CDT: -5 * 60,
                    CST: -6 * 60,
                    MDT: -6 * 60,
                    MST: -7 * 60,
                    PDT: -7 * 60,
                    PST: -8 * 60
                };
                function configFromISO(config) {
                    var i, l, string5 = config._i, match = extendedIsoRegex.exec(string5) || basicIsoRegex.exec(string5), allowTime, dateFormat, timeFormat, tzFormat, isoDatesLen = isoDates.length, isoTimesLen = isoTimes.length;
                    if (match) {
                        getParsingFlags(config).iso = true;
                        for(i = 0, l = isoDatesLen; i < l; i++){
                            if (isoDates[i][1].exec(match[1])) {
                                dateFormat = isoDates[i][0];
                                allowTime = isoDates[i][2] !== false;
                                break;
                            }
                        }
                        if (dateFormat == null) {
                            config._isValid = false;
                            return;
                        }
                        if (match[3]) {
                            for(i = 0, l = isoTimesLen; i < l; i++){
                                if (isoTimes[i][1].exec(match[3])) {
                                    timeFormat = (match[2] || " ") + isoTimes[i][0];
                                    break;
                                }
                            }
                            if (timeFormat == null) {
                                config._isValid = false;
                                return;
                            }
                        }
                        if (!allowTime && timeFormat != null) {
                            config._isValid = false;
                            return;
                        }
                        if (match[4]) {
                            if (tzRegex.exec(match[4])) {
                                tzFormat = "Z";
                            } else {
                                config._isValid = false;
                                return;
                            }
                        }
                        config._f = dateFormat + (timeFormat || "") + (tzFormat || "");
                        configFromStringAndFormat(config);
                    } else {
                        config._isValid = false;
                    }
                }
                function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
                    var result17 = [
                        untruncateYear(yearStr),
                        defaultLocaleMonthsShort.indexOf(monthStr),
                        parseInt(dayStr, 10),
                        parseInt(hourStr, 10),
                        parseInt(minuteStr, 10)
                    ];
                    if (secondStr) {
                        result17.push(parseInt(secondStr, 10));
                    }
                    return result17;
                }
                function untruncateYear(yearStr) {
                    var year2 = parseInt(yearStr, 10);
                    if (year2 <= 49) {
                        return 2e3 + year2;
                    } else if (year2 <= 999) {
                        return 1900 + year2;
                    }
                    return year2;
                }
                function preprocessRFC2822(s) {
                    return s.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "");
                }
                function checkWeekday(weekdayStr, parsedInput, config) {
                    if (weekdayStr) {
                        var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
                        if (weekdayProvided !== weekdayActual) {
                            getParsingFlags(config).weekdayMismatch = true;
                            config._isValid = false;
                            return false;
                        }
                    }
                    return true;
                }
                function calculateOffset(obsOffset, militaryOffset, numOffset) {
                    if (obsOffset) {
                        return obsOffsets[obsOffset];
                    } else if (militaryOffset) {
                        return 0;
                    } else {
                        var hm = parseInt(numOffset, 10), m = hm % 100, h = (hm - m) / 100;
                        return h * 60 + m;
                    }
                }
                function configFromRFC2822(config) {
                    var match = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray;
                    if (match) {
                        parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
                        if (!checkWeekday(match[1], parsedArray, config)) {
                            return;
                        }
                        config._a = parsedArray;
                        config._tzm = calculateOffset(match[8], match[9], match[10]);
                        config._d = createUTCDate.apply(null, config._a);
                        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
                        getParsingFlags(config).rfc2822 = true;
                    } else {
                        config._isValid = false;
                    }
                }
                function configFromString(config) {
                    var matched = aspNetJsonRegex.exec(config._i);
                    if (matched !== null) {
                        config._d = /* @__PURE__ */ new Date(+matched[1]);
                        return;
                    }
                    configFromISO(config);
                    if (config._isValid === false) {
                        delete config._isValid;
                    } else {
                        return;
                    }
                    configFromRFC2822(config);
                    if (config._isValid === false) {
                        delete config._isValid;
                    } else {
                        return;
                    }
                    if (config._strict) {
                        config._isValid = false;
                    } else {
                        hooks.createFromInputFallback(config);
                    }
                }
                hooks.createFromInputFallback = deprecate("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(config) {
                    config._d = /* @__PURE__ */ new Date(config._i + (config._useUTC ? " UTC" : ""));
                });
                function defaults(a, b, c) {
                    if (a != null) {
                        return a;
                    }
                    if (b != null) {
                        return b;
                    }
                    return c;
                }
                function currentDateArray(config) {
                    var nowValue = new Date(hooks.now());
                    if (config._useUTC) {
                        return [
                            nowValue.getUTCFullYear(),
                            nowValue.getUTCMonth(),
                            nowValue.getUTCDate()
                        ];
                    }
                    return [
                        nowValue.getFullYear(),
                        nowValue.getMonth(),
                        nowValue.getDate()
                    ];
                }
                function configFromArray(config) {
                    var i, date, input = [], currentDate, expectedWeekday, yearToUse;
                    if (config._d) {
                        return;
                    }
                    currentDate = currentDateArray(config);
                    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
                        dayOfYearFromWeekInfo(config);
                    }
                    if (config._dayOfYear != null) {
                        yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
                        if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
                            getParsingFlags(config)._overflowDayOfYear = true;
                        }
                        date = createUTCDate(yearToUse, 0, config._dayOfYear);
                        config._a[MONTH] = date.getUTCMonth();
                        config._a[DATE] = date.getUTCDate();
                    }
                    for(i = 0; i < 3 && config._a[i] == null; ++i){
                        config._a[i] = input[i] = currentDate[i];
                    }
                    for(; i < 7; i++){
                        config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];
                    }
                    if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {
                        config._nextDay = true;
                        config._a[HOUR] = 0;
                    }
                    config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
                    expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
                    if (config._tzm != null) {
                        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
                    }
                    if (config._nextDay) {
                        config._a[HOUR] = 24;
                    }
                    if (config._w && typeof config._w.d !== "undefined" && config._w.d !== expectedWeekday) {
                        getParsingFlags(config).weekdayMismatch = true;
                    }
                }
                function dayOfYearFromWeekInfo(config) {
                    var w, weekYear, week2, weekday, dow, doy, temp, weekdayOverflow, curWeek;
                    w = config._w;
                    if (w.GG != null || w.W != null || w.E != null) {
                        dow = 1;
                        doy = 4;
                        weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
                        week2 = defaults(w.W, 1);
                        weekday = defaults(w.E, 1);
                        if (weekday < 1 || weekday > 7) {
                            weekdayOverflow = true;
                        }
                    } else {
                        dow = config._locale._week.dow;
                        doy = config._locale._week.doy;
                        curWeek = weekOfYear(createLocal(), dow, doy);
                        weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
                        week2 = defaults(w.w, curWeek.week);
                        if (w.d != null) {
                            weekday = w.d;
                            if (weekday < 0 || weekday > 6) {
                                weekdayOverflow = true;
                            }
                        } else if (w.e != null) {
                            weekday = w.e + dow;
                            if (w.e < 0 || w.e > 6) {
                                weekdayOverflow = true;
                            }
                        } else {
                            weekday = dow;
                        }
                    }
                    if (week2 < 1 || week2 > weeksInYear(weekYear, dow, doy)) {
                        getParsingFlags(config)._overflowWeeks = true;
                    } else if (weekdayOverflow != null) {
                        getParsingFlags(config)._overflowWeekday = true;
                    } else {
                        temp = dayOfYearFromWeeks(weekYear, week2, weekday, dow, doy);
                        config._a[YEAR] = temp.year;
                        config._dayOfYear = temp.dayOfYear;
                    }
                }
                hooks.ISO_8601 = function() {};
                hooks.RFC_2822 = function() {};
                function configFromStringAndFormat(config) {
                    if (config._f === hooks.ISO_8601) {
                        configFromISO(config);
                        return;
                    }
                    if (config._f === hooks.RFC_2822) {
                        configFromRFC2822(config);
                        return;
                    }
                    config._a = [];
                    getParsingFlags(config).empty = true;
                    var string5 = "" + config._i, i, parsedInput, tokens2, token2, skipped, stringLength = string5.length, totalParsedInputLength = 0, era, tokenLen;
                    tokens2 = expandFormat(config._f, config._locale).match(formattingTokens) || [];
                    tokenLen = tokens2.length;
                    for(i = 0; i < tokenLen; i++){
                        token2 = tokens2[i];
                        parsedInput = (string5.match(getParseRegexForToken(token2, config)) || [])[0];
                        if (parsedInput) {
                            skipped = string5.substr(0, string5.indexOf(parsedInput));
                            if (skipped.length > 0) {
                                getParsingFlags(config).unusedInput.push(skipped);
                            }
                            string5 = string5.slice(string5.indexOf(parsedInput) + parsedInput.length);
                            totalParsedInputLength += parsedInput.length;
                        }
                        if (formatTokenFunctions[token2]) {
                            if (parsedInput) {
                                getParsingFlags(config).empty = false;
                            } else {
                                getParsingFlags(config).unusedTokens.push(token2);
                            }
                            addTimeToArrayFromToken(token2, parsedInput, config);
                        } else if (config._strict && !parsedInput) {
                            getParsingFlags(config).unusedTokens.push(token2);
                        }
                    }
                    getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
                    if (string5.length > 0) {
                        getParsingFlags(config).unusedInput.push(string5);
                    }
                    if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {
                        getParsingFlags(config).bigHour = void 0;
                    }
                    getParsingFlags(config).parsedDateParts = config._a.slice(0);
                    getParsingFlags(config).meridiem = config._meridiem;
                    config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
                    era = getParsingFlags(config).era;
                    if (era !== null) {
                        config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
                    }
                    configFromArray(config);
                    checkOverflow(config);
                }
                function meridiemFixWrap(locale2, hour2, meridiem2) {
                    var isPm;
                    if (meridiem2 == null) {
                        return hour2;
                    }
                    if (locale2.meridiemHour != null) {
                        return locale2.meridiemHour(hour2, meridiem2);
                    } else if (locale2.isPM != null) {
                        isPm = locale2.isPM(meridiem2);
                        if (isPm && hour2 < 12) {
                            hour2 += 12;
                        }
                        if (!isPm && hour2 === 12) {
                            hour2 = 0;
                        }
                        return hour2;
                    } else {
                        return hour2;
                    }
                }
                function configFromStringAndArray(config) {
                    var tempConfig, bestMoment, scoreToBeat, i, currentScore, validFormatFound, bestFormatIsValid = false, configfLen = config._f.length;
                    if (configfLen === 0) {
                        getParsingFlags(config).invalidFormat = true;
                        config._d = /* @__PURE__ */ new Date(NaN);
                        return;
                    }
                    for(i = 0; i < configfLen; i++){
                        currentScore = 0;
                        validFormatFound = false;
                        tempConfig = copyConfig({}, config);
                        if (config._useUTC != null) {
                            tempConfig._useUTC = config._useUTC;
                        }
                        tempConfig._f = config._f[i];
                        configFromStringAndFormat(tempConfig);
                        if (isValid(tempConfig)) {
                            validFormatFound = true;
                        }
                        currentScore += getParsingFlags(tempConfig).charsLeftOver;
                        currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
                        getParsingFlags(tempConfig).score = currentScore;
                        if (!bestFormatIsValid) {
                            if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {
                                scoreToBeat = currentScore;
                                bestMoment = tempConfig;
                                if (validFormatFound) {
                                    bestFormatIsValid = true;
                                }
                            }
                        } else {
                            if (currentScore < scoreToBeat) {
                                scoreToBeat = currentScore;
                                bestMoment = tempConfig;
                            }
                        }
                    }
                    extend(config, bestMoment || tempConfig);
                }
                function configFromObject(config) {
                    if (config._d) {
                        return;
                    }
                    var i = normalizeObjectUnits(config._i), dayOrDate = i.day === void 0 ? i.date : i.day;
                    config._a = map([
                        i.year,
                        i.month,
                        dayOrDate,
                        i.hour,
                        i.minute,
                        i.second,
                        i.millisecond
                    ], function(obj) {
                        return obj && parseInt(obj, 10);
                    });
                    configFromArray(config);
                }
                function createFromConfig(config) {
                    var res = new Moment(checkOverflow(prepareConfig(config)));
                    if (res._nextDay) {
                        res.add(1, "d");
                        res._nextDay = void 0;
                    }
                    return res;
                }
                function prepareConfig(config) {
                    var input = config._i, format2 = config._f;
                    config._locale = config._locale || getLocale(config._l);
                    if (input === null || format2 === void 0 && input === "") {
                        return createInvalid({
                            nullInput: true
                        });
                    }
                    if (typeof input === "string") {
                        config._i = input = config._locale.preparse(input);
                    }
                    if (isMoment(input)) {
                        return new Moment(checkOverflow(input));
                    } else if (isDate(input)) {
                        config._d = input;
                    } else if (isArray(format2)) {
                        configFromStringAndArray(config);
                    } else if (format2) {
                        configFromStringAndFormat(config);
                    } else {
                        configFromInput(config);
                    }
                    if (!isValid(config)) {
                        config._d = null;
                    }
                    return config;
                }
                function configFromInput(config) {
                    var input = config._i;
                    if (isUndefined2(input)) {
                        config._d = new Date(hooks.now());
                    } else if (isDate(input)) {
                        config._d = new Date(input.valueOf());
                    } else if (typeof input === "string") {
                        configFromString(config);
                    } else if (isArray(input)) {
                        config._a = map(input.slice(0), function(obj) {
                            return parseInt(obj, 10);
                        });
                        configFromArray(config);
                    } else if (isObject2(input)) {
                        configFromObject(config);
                    } else if (isNumber(input)) {
                        config._d = new Date(input);
                    } else {
                        hooks.createFromInputFallback(config);
                    }
                }
                function createLocalOrUTC(input, format2, locale2, strict, isUTC) {
                    var c = {};
                    if (format2 === true || format2 === false) {
                        strict = format2;
                        format2 = void 0;
                    }
                    if (locale2 === true || locale2 === false) {
                        strict = locale2;
                        locale2 = void 0;
                    }
                    if (isObject2(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {
                        input = void 0;
                    }
                    c._isAMomentObject = true;
                    c._useUTC = c._isUTC = isUTC;
                    c._l = locale2;
                    c._i = input;
                    c._f = format2;
                    c._strict = strict;
                    return createFromConfig(c);
                }
                function createLocal(input, format2, locale2, strict) {
                    return createLocalOrUTC(input, format2, locale2, strict, false);
                }
                var prototypeMin = deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
                    var other = createLocal.apply(null, arguments);
                    if (this.isValid() && other.isValid()) {
                        return other < this ? this : other;
                    } else {
                        return createInvalid();
                    }
                }), prototypeMax = deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
                    var other = createLocal.apply(null, arguments);
                    if (this.isValid() && other.isValid()) {
                        return other > this ? this : other;
                    } else {
                        return createInvalid();
                    }
                });
                function pickBy(fn, moments) {
                    var res, i;
                    if (moments.length === 1 && isArray(moments[0])) {
                        moments = moments[0];
                    }
                    if (!moments.length) {
                        return createLocal();
                    }
                    res = moments[0];
                    for(i = 1; i < moments.length; ++i){
                        if (!moments[i].isValid() || moments[i][fn](res)) {
                            res = moments[i];
                        }
                    }
                    return res;
                }
                function min() {
                    var args = [].slice.call(arguments, 0);
                    return pickBy("isBefore", args);
                }
                function max() {
                    var args = [].slice.call(arguments, 0);
                    return pickBy("isAfter", args);
                }
                var now2 = function now2() {
                    return Date.now ? Date.now() : +/* @__PURE__ */ new Date();
                };
                var ordering = [
                    "year",
                    "quarter",
                    "month",
                    "week",
                    "day",
                    "hour",
                    "minute",
                    "second",
                    "millisecond"
                ];
                function isDurationValid(m) {
                    var key, unitHasDecimal = false, i, orderLen = ordering.length;
                    for(key in m){
                        if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
                            return false;
                        }
                    }
                    for(i = 0; i < orderLen; ++i){
                        if (m[ordering[i]]) {
                            if (unitHasDecimal) {
                                return false;
                            }
                            if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
                                unitHasDecimal = true;
                            }
                        }
                    }
                    return true;
                }
                function isValid$1() {
                    return this._isValid;
                }
                function createInvalid$1() {
                    return createDuration(NaN);
                }
                function Duration(duration) {
                    var normalizedInput = normalizeObjectUnits(duration), years2 = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months2 = normalizedInput.month || 0, weeks2 = normalizedInput.week || normalizedInput.isoWeek || 0, days2 = normalizedInput.day || 0, hours2 = normalizedInput.hour || 0, minutes2 = normalizedInput.minute || 0, seconds2 = normalizedInput.second || 0, milliseconds2 = normalizedInput.millisecond || 0;
                    this._isValid = isDurationValid(normalizedInput);
                    this._milliseconds = +milliseconds2 + seconds2 * 1e3 + // 1000
                    minutes2 * 6e4 + // 1000 * 60
                    hours2 * 1e3 * 60 * 60;
                    this._days = +days2 + weeks2 * 7;
                    this._months = +months2 + quarters * 3 + years2 * 12;
                    this._data = {};
                    this._locale = getLocale();
                    this._bubble();
                }
                function isDuration(obj) {
                    return obj instanceof Duration;
                }
                function absRound(number) {
                    if (number < 0) {
                        return Math.round(-1 * number) * -1;
                    } else {
                        return Math.round(number);
                    }
                }
                function compareArrays(array1, array22, dontConvert) {
                    var len = Math.min(array1.length, array22.length), lengthDiff = Math.abs(array1.length - array22.length), diffs = 0, i;
                    for(i = 0; i < len; i++){
                        if (dontConvert && array1[i] !== array22[i] || !dontConvert && toInt(array1[i]) !== toInt(array22[i])) {
                            diffs++;
                        }
                    }
                    return diffs + lengthDiff;
                }
                function offset(token2, separator) {
                    addFormatToken(token2, 0, 0, function() {
                        var offset2 = this.utcOffset(), sign3 = "+";
                        if (offset2 < 0) {
                            offset2 = -offset2;
                            sign3 = "-";
                        }
                        return sign3 + zeroFill(~~(offset2 / 60), 2) + separator + zeroFill(~~offset2 % 60, 2);
                    });
                }
                offset("Z", ":");
                offset("ZZ", "");
                addRegexToken("Z", matchShortOffset);
                addRegexToken("ZZ", matchShortOffset);
                addParseToken([
                    "Z",
                    "ZZ"
                ], function(input, array4, config) {
                    config._useUTC = true;
                    config._tzm = offsetFromString(matchShortOffset, input);
                });
                var chunkOffset = /([\+\-]|\d\d)/gi;
                function offsetFromString(matcher2, string5) {
                    var matches = (string5 || "").match(matcher2), chunk, parts, minutes2;
                    if (matches === null) {
                        return null;
                    }
                    chunk = matches[matches.length - 1] || [];
                    parts = (chunk + "").match(chunkOffset) || [
                        "-",
                        0,
                        0
                    ];
                    minutes2 = +(parts[1] * 60) + toInt(parts[2]);
                    return minutes2 === 0 ? 0 : parts[0] === "+" ? minutes2 : -minutes2;
                }
                function cloneWithOffset(input, model) {
                    var res, diff2;
                    if (model._isUTC) {
                        res = model.clone();
                        diff2 = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
                        res._d.setTime(res._d.valueOf() + diff2);
                        hooks.updateOffset(res, false);
                        return res;
                    } else {
                        return createLocal(input).local();
                    }
                }
                function getDateOffset(m) {
                    return -Math.round(m._d.getTimezoneOffset());
                }
                hooks.updateOffset = function() {};
                function getSetOffset(input, keepLocalTime, keepMinutes) {
                    var offset2 = this._offset || 0, localAdjust;
                    if (!this.isValid()) {
                        return input != null ? this : NaN;
                    }
                    if (input != null) {
                        if (typeof input === "string") {
                            input = offsetFromString(matchShortOffset, input);
                            if (input === null) {
                                return this;
                            }
                        } else if (Math.abs(input) < 16 && !keepMinutes) {
                            input = input * 60;
                        }
                        if (!this._isUTC && keepLocalTime) {
                            localAdjust = getDateOffset(this);
                        }
                        this._offset = input;
                        this._isUTC = true;
                        if (localAdjust != null) {
                            this.add(localAdjust, "m");
                        }
                        if (offset2 !== input) {
                            if (!keepLocalTime || this._changeInProgress) {
                                addSubtract(this, createDuration(input - offset2, "m"), 1, false);
                            } else if (!this._changeInProgress) {
                                this._changeInProgress = true;
                                hooks.updateOffset(this, true);
                                this._changeInProgress = null;
                            }
                        }
                        return this;
                    } else {
                        return this._isUTC ? offset2 : getDateOffset(this);
                    }
                }
                function getSetZone(input, keepLocalTime) {
                    if (input != null) {
                        if (typeof input !== "string") {
                            input = -input;
                        }
                        this.utcOffset(input, keepLocalTime);
                        return this;
                    } else {
                        return -this.utcOffset();
                    }
                }
                function setOffsetToUTC(keepLocalTime) {
                    return this.utcOffset(0, keepLocalTime);
                }
                function setOffsetToLocal(keepLocalTime) {
                    if (this._isUTC) {
                        this.utcOffset(0, keepLocalTime);
                        this._isUTC = false;
                        if (keepLocalTime) {
                            this.subtract(getDateOffset(this), "m");
                        }
                    }
                    return this;
                }
                function setOffsetToParsedOffset() {
                    if (this._tzm != null) {
                        this.utcOffset(this._tzm, false, true);
                    } else if (typeof this._i === "string") {
                        var tZone = offsetFromString(matchOffset, this._i);
                        if (tZone != null) {
                            this.utcOffset(tZone);
                        } else {
                            this.utcOffset(0, true);
                        }
                    }
                    return this;
                }
                function hasAlignedHourOffset(input) {
                    if (!this.isValid()) {
                        return false;
                    }
                    input = input ? createLocal(input).utcOffset() : 0;
                    return (this.utcOffset() - input) % 60 === 0;
                }
                function isDaylightSavingTime() {
                    return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();
                }
                function isDaylightSavingTimeShifted() {
                    if (!isUndefined2(this._isDSTShifted)) {
                        return this._isDSTShifted;
                    }
                    var c = {}, other;
                    copyConfig(c, this);
                    c = prepareConfig(c);
                    if (c._a) {
                        other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
                        this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;
                    } else {
                        this._isDSTShifted = false;
                    }
                    return this._isDSTShifted;
                }
                function isLocal() {
                    return this.isValid() ? !this._isUTC : false;
                }
                function isUtcOffset() {
                    return this.isValid() ? this._isUTC : false;
                }
                function isUtc() {
                    return this.isValid() ? this._isUTC && this._offset === 0 : false;
                }
                var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
                function createDuration(input, key) {
                    var duration = input, match = null, sign3, ret, diffRes;
                    if (isDuration(input)) {
                        duration = {
                            ms: input._milliseconds,
                            d: input._days,
                            M: input._months
                        };
                    } else if (isNumber(input) || !isNaN(+input)) {
                        duration = {};
                        if (key) {
                            duration[key] = +input;
                        } else {
                            duration.milliseconds = +input;
                        }
                    } else if (match = aspNetRegex.exec(input)) {
                        sign3 = match[1] === "-" ? -1 : 1;
                        duration = {
                            y: 0,
                            d: toInt(match[DATE]) * sign3,
                            h: toInt(match[HOUR]) * sign3,
                            m: toInt(match[MINUTE]) * sign3,
                            s: toInt(match[SECOND]) * sign3,
                            ms: toInt(absRound(match[MILLISECOND] * 1e3)) * sign3
                        };
                    } else if (match = isoRegex.exec(input)) {
                        sign3 = match[1] === "-" ? -1 : 1;
                        duration = {
                            y: parseIso(match[2], sign3),
                            M: parseIso(match[3], sign3),
                            w: parseIso(match[4], sign3),
                            d: parseIso(match[5], sign3),
                            h: parseIso(match[6], sign3),
                            m: parseIso(match[7], sign3),
                            s: parseIso(match[8], sign3)
                        };
                    } else if (duration == null) {
                        duration = {};
                    } else if ((typeof duration === "undefined" ? "undefined" : _type_of(duration)) === "object" && ("from" in duration || "to" in duration)) {
                        diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
                        duration = {};
                        duration.ms = diffRes.milliseconds;
                        duration.M = diffRes.months;
                    }
                    ret = new Duration(duration);
                    if (isDuration(input) && hasOwnProp(input, "_locale")) {
                        ret._locale = input._locale;
                    }
                    if (isDuration(input) && hasOwnProp(input, "_isValid")) {
                        ret._isValid = input._isValid;
                    }
                    return ret;
                }
                createDuration.fn = Duration.prototype;
                createDuration.invalid = createInvalid$1;
                function parseIso(inp, sign3) {
                    var res = inp && parseFloat(inp.replace(",", "."));
                    return (isNaN(res) ? 0 : res) * sign3;
                }
                function positiveMomentsDifference(base, other) {
                    var res = {};
                    res.months = other.month() - base.month() + (other.year() - base.year()) * 12;
                    if (base.clone().add(res.months, "M").isAfter(other)) {
                        --res.months;
                    }
                    res.milliseconds = +other - +base.clone().add(res.months, "M");
                    return res;
                }
                function momentsDifference(base, other) {
                    var res;
                    if (!(base.isValid() && other.isValid())) {
                        return {
                            milliseconds: 0,
                            months: 0
                        };
                    }
                    other = cloneWithOffset(other, base);
                    if (base.isBefore(other)) {
                        res = positiveMomentsDifference(base, other);
                    } else {
                        res = positiveMomentsDifference(other, base);
                        res.milliseconds = -res.milliseconds;
                        res.months = -res.months;
                    }
                    return res;
                }
                function createAdder(direction, name) {
                    return function(val, period) {
                        var dur, tmp;
                        if (period !== null && !isNaN(+period)) {
                            deprecateSimple(name, "moment()." + name + "(period, number) is deprecated. Please use moment()." + name + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.");
                            tmp = val;
                            val = period;
                            period = tmp;
                        }
                        dur = createDuration(val, period);
                        addSubtract(this, dur, direction);
                        return this;
                    };
                }
                function addSubtract(mom, duration, isAdding, updateOffset) {
                    var milliseconds2 = duration._milliseconds, days2 = absRound(duration._days), months2 = absRound(duration._months);
                    if (!mom.isValid()) {
                        return;
                    }
                    updateOffset = updateOffset == null ? true : updateOffset;
                    if (months2) {
                        setMonth(mom, get(mom, "Month") + months2 * isAdding);
                    }
                    if (days2) {
                        set$1(mom, "Date", get(mom, "Date") + days2 * isAdding);
                    }
                    if (milliseconds2) {
                        mom._d.setTime(mom._d.valueOf() + milliseconds2 * isAdding);
                    }
                    if (updateOffset) {
                        hooks.updateOffset(mom, days2 || months2);
                    }
                }
                var add = createAdder(1, "add"), subtract = createAdder(-1, "subtract");
                function isString(input) {
                    return typeof input === "string" || input instanceof String;
                }
                function isMomentInput(input) {
                    return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0;
                }
                function isMomentInputObject(input) {
                    var objectTest = isObject2(input) && !isObjectEmpty(input), propertyTest = false, properties = [
                        "years",
                        "year",
                        "y",
                        "months",
                        "month",
                        "M",
                        "days",
                        "day",
                        "d",
                        "dates",
                        "date",
                        "D",
                        "hours",
                        "hour",
                        "h",
                        "minutes",
                        "minute",
                        "m",
                        "seconds",
                        "second",
                        "s",
                        "milliseconds",
                        "millisecond",
                        "ms"
                    ], i, property, propertyLen = properties.length;
                    for(i = 0; i < propertyLen; i += 1){
                        property = properties[i];
                        propertyTest = propertyTest || hasOwnProp(input, property);
                    }
                    return objectTest && propertyTest;
                }
                function isNumberOrStringArray(input) {
                    var arrayTest = isArray(input), dataTypeTest = false;
                    if (arrayTest) {
                        dataTypeTest = input.filter(function(item) {
                            return !isNumber(item) && isString(input);
                        }).length === 0;
                    }
                    return arrayTest && dataTypeTest;
                }
                function isCalendarSpec(input) {
                    var objectTest = isObject2(input) && !isObjectEmpty(input), propertyTest = false, properties = [
                        "sameDay",
                        "nextDay",
                        "lastDay",
                        "nextWeek",
                        "lastWeek",
                        "sameElse"
                    ], i, property;
                    for(i = 0; i < properties.length; i += 1){
                        property = properties[i];
                        propertyTest = propertyTest || hasOwnProp(input, property);
                    }
                    return objectTest && propertyTest;
                }
                function getCalendarFormat(myMoment, now3) {
                    var diff2 = myMoment.diff(now3, "days", true);
                    return diff2 < -6 ? "sameElse" : diff2 < -1 ? "lastWeek" : diff2 < 0 ? "lastDay" : diff2 < 1 ? "sameDay" : diff2 < 2 ? "nextDay" : diff2 < 7 ? "nextWeek" : "sameElse";
                }
                function calendar$1(time, formats) {
                    if (arguments.length === 1) {
                        if (!arguments[0]) {
                            time = void 0;
                            formats = void 0;
                        } else if (isMomentInput(arguments[0])) {
                            time = arguments[0];
                            formats = void 0;
                        } else if (isCalendarSpec(arguments[0])) {
                            formats = arguments[0];
                            time = void 0;
                        }
                    }
                    var now3 = time || createLocal(), sod = cloneWithOffset(now3, this).startOf("day"), format2 = hooks.calendarFormat(this, sod) || "sameElse", output = formats && (isFunction(formats[format2]) ? formats[format2].call(this, now3) : formats[format2]);
                    return this.format(output || this.localeData().calendar(format2, this, createLocal(now3)));
                }
                function clone2() {
                    return new Moment(this);
                }
                function isAfter(input, units) {
                    var localInput = isMoment(input) ? input : createLocal(input);
                    if (!(this.isValid() && localInput.isValid())) {
                        return false;
                    }
                    units = normalizeUnits(units) || "millisecond";
                    if (units === "millisecond") {
                        return this.valueOf() > localInput.valueOf();
                    } else {
                        return localInput.valueOf() < this.clone().startOf(units).valueOf();
                    }
                }
                function isBefore(input, units) {
                    var localInput = isMoment(input) ? input : createLocal(input);
                    if (!(this.isValid() && localInput.isValid())) {
                        return false;
                    }
                    units = normalizeUnits(units) || "millisecond";
                    if (units === "millisecond") {
                        return this.valueOf() < localInput.valueOf();
                    } else {
                        return this.clone().endOf(units).valueOf() < localInput.valueOf();
                    }
                }
                function isBetween(from2, to2, units, inclusivity) {
                    var localFrom = isMoment(from2) ? from2 : createLocal(from2), localTo = isMoment(to2) ? to2 : createLocal(to2);
                    if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
                        return false;
                    }
                    inclusivity = inclusivity || "()";
                    return (inclusivity[0] === "(" ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ")" ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));
                }
                function isSame(input, units) {
                    var localInput = isMoment(input) ? input : createLocal(input), inputMs;
                    if (!(this.isValid() && localInput.isValid())) {
                        return false;
                    }
                    units = normalizeUnits(units) || "millisecond";
                    if (units === "millisecond") {
                        return this.valueOf() === localInput.valueOf();
                    } else {
                        inputMs = localInput.valueOf();
                        return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
                    }
                }
                function isSameOrAfter(input, units) {
                    return this.isSame(input, units) || this.isAfter(input, units);
                }
                function isSameOrBefore(input, units) {
                    return this.isSame(input, units) || this.isBefore(input, units);
                }
                function diff(input, units, asFloat) {
                    var that, zoneDelta, output;
                    if (!this.isValid()) {
                        return NaN;
                    }
                    that = cloneWithOffset(input, this);
                    if (!that.isValid()) {
                        return NaN;
                    }
                    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
                    units = normalizeUnits(units);
                    switch(units){
                        case "year":
                            output = monthDiff(this, that) / 12;
                            break;
                        case "month":
                            output = monthDiff(this, that);
                            break;
                        case "quarter":
                            output = monthDiff(this, that) / 3;
                            break;
                        case "second":
                            output = (this - that) / 1e3;
                            break;
                        case "minute":
                            output = (this - that) / 6e4;
                            break;
                        case "hour":
                            output = (this - that) / 36e5;
                            break;
                        case "day":
                            output = (this - that - zoneDelta) / 864e5;
                            break;
                        case "week":
                            output = (this - that - zoneDelta) / 6048e5;
                            break;
                        default:
                            output = this - that;
                    }
                    return asFloat ? output : absFloor(output);
                }
                function monthDiff(a, b) {
                    if (a.date() < b.date()) {
                        return -monthDiff(b, a);
                    }
                    var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), anchor = a.clone().add(wholeMonthDiff, "months"), anchor2, adjust;
                    if (b - anchor < 0) {
                        anchor2 = a.clone().add(wholeMonthDiff - 1, "months");
                        adjust = (b - anchor) / (anchor - anchor2);
                    } else {
                        anchor2 = a.clone().add(wholeMonthDiff + 1, "months");
                        adjust = (b - anchor) / (anchor2 - anchor);
                    }
                    return -(wholeMonthDiff + adjust) || 0;
                }
                hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ";
                hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
                function toString3() {
                    return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ");
                }
                function toISOString(keepOffset) {
                    if (!this.isValid()) {
                        return null;
                    }
                    var utc = keepOffset !== true, m = utc ? this.clone().utc() : this;
                    if (m.year() < 0 || m.year() > 9999) {
                        return formatMoment(m, utc ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ");
                    }
                    if (isFunction(Date.prototype.toISOString)) {
                        if (utc) {
                            return this.toDate().toISOString();
                        } else {
                            return new Date(this.valueOf() + this.utcOffset() * 60 * 1e3).toISOString().replace("Z", formatMoment(m, "Z"));
                        }
                    }
                    return formatMoment(m, utc ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ");
                }
                function inspect() {
                    if (!this.isValid()) {
                        return "moment.invalid(/* " + this._i + " */)";
                    }
                    var func3 = "moment", zone = "", prefix, year2, datetime, suffix;
                    if (!this.isLocal()) {
                        func3 = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone";
                        zone = "Z";
                    }
                    prefix = "[" + func3 + '("]';
                    year2 = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY";
                    datetime = "-MM-DD[T]HH:mm:ss.SSS";
                    suffix = zone + '[")]';
                    return this.format(prefix + year2 + datetime + suffix);
                }
                function format(inputString) {
                    if (!inputString) {
                        inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
                    }
                    var output = formatMoment(this, inputString);
                    return this.localeData().postformat(output);
                }
                function from(time, withoutSuffix) {
                    if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {
                        return createDuration({
                            to: this,
                            from: time
                        }).locale(this.locale()).humanize(!withoutSuffix);
                    } else {
                        return this.localeData().invalidDate();
                    }
                }
                function fromNow(withoutSuffix) {
                    return this.from(createLocal(), withoutSuffix);
                }
                function to(time, withoutSuffix) {
                    if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {
                        return createDuration({
                            from: this,
                            to: time
                        }).locale(this.locale()).humanize(!withoutSuffix);
                    } else {
                        return this.localeData().invalidDate();
                    }
                }
                function toNow(withoutSuffix) {
                    return this.to(createLocal(), withoutSuffix);
                }
                function locale(key) {
                    var newLocaleData;
                    if (key === void 0) {
                        return this._locale._abbr;
                    } else {
                        newLocaleData = getLocale(key);
                        if (newLocaleData != null) {
                            this._locale = newLocaleData;
                        }
                        return this;
                    }
                }
                var lang = deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(key) {
                    if (key === void 0) {
                        return this.localeData();
                    } else {
                        return this.locale(key);
                    }
                });
                function localeData() {
                    return this._locale;
                }
                var MS_PER_SECOND = 1e3, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
                function mod$1(dividend, divisor) {
                    return (dividend % divisor + divisor) % divisor;
                }
                function localStartOfDate(y, m, d) {
                    if (y < 100 && y >= 0) {
                        return new Date(y + 400, m, d) - MS_PER_400_YEARS;
                    } else {
                        return new Date(y, m, d).valueOf();
                    }
                }
                function utcStartOfDate(y, m, d) {
                    if (y < 100 && y >= 0) {
                        return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
                    } else {
                        return Date.UTC(y, m, d);
                    }
                }
                function startOf(units) {
                    var time, startOfDate;
                    units = normalizeUnits(units);
                    if (units === void 0 || units === "millisecond" || !this.isValid()) {
                        return this;
                    }
                    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
                    switch(units){
                        case "year":
                            time = startOfDate(this.year(), 0, 1);
                            break;
                        case "quarter":
                            time = startOfDate(this.year(), this.month() - this.month() % 3, 1);
                            break;
                        case "month":
                            time = startOfDate(this.year(), this.month(), 1);
                            break;
                        case "week":
                            time = startOfDate(this.year(), this.month(), this.date() - this.weekday());
                            break;
                        case "isoWeek":
                            time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));
                            break;
                        case "day":
                        case "date":
                            time = startOfDate(this.year(), this.month(), this.date());
                            break;
                        case "hour":
                            time = this._d.valueOf();
                            time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);
                            break;
                        case "minute":
                            time = this._d.valueOf();
                            time -= mod$1(time, MS_PER_MINUTE);
                            break;
                        case "second":
                            time = this._d.valueOf();
                            time -= mod$1(time, MS_PER_SECOND);
                            break;
                    }
                    this._d.setTime(time);
                    hooks.updateOffset(this, true);
                    return this;
                }
                function endOf(units) {
                    var time, startOfDate;
                    units = normalizeUnits(units);
                    if (units === void 0 || units === "millisecond" || !this.isValid()) {
                        return this;
                    }
                    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
                    switch(units){
                        case "year":
                            time = startOfDate(this.year() + 1, 0, 1) - 1;
                            break;
                        case "quarter":
                            time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;
                            break;
                        case "month":
                            time = startOfDate(this.year(), this.month() + 1, 1) - 1;
                            break;
                        case "week":
                            time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;
                            break;
                        case "isoWeek":
                            time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;
                            break;
                        case "day":
                        case "date":
                            time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
                            break;
                        case "hour":
                            time = this._d.valueOf();
                            time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;
                            break;
                        case "minute":
                            time = this._d.valueOf();
                            time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
                            break;
                        case "second":
                            time = this._d.valueOf();
                            time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
                            break;
                    }
                    this._d.setTime(time);
                    hooks.updateOffset(this, true);
                    return this;
                }
                function valueOf() {
                    return this._d.valueOf() - (this._offset || 0) * 6e4;
                }
                function unix() {
                    return Math.floor(this.valueOf() / 1e3);
                }
                function toDate() {
                    return new Date(this.valueOf());
                }
                function toArray() {
                    var m = this;
                    return [
                        m.year(),
                        m.month(),
                        m.date(),
                        m.hour(),
                        m.minute(),
                        m.second(),
                        m.millisecond()
                    ];
                }
                function toObject() {
                    var m = this;
                    return {
                        years: m.year(),
                        months: m.month(),
                        date: m.date(),
                        hours: m.hours(),
                        minutes: m.minutes(),
                        seconds: m.seconds(),
                        milliseconds: m.milliseconds()
                    };
                }
                function toJSON() {
                    return this.isValid() ? this.toISOString() : null;
                }
                function isValid$2() {
                    return isValid(this);
                }
                function parsingFlags() {
                    return extend({}, getParsingFlags(this));
                }
                function invalidAt() {
                    return getParsingFlags(this).overflow;
                }
                function creationData() {
                    return {
                        input: this._i,
                        format: this._f,
                        locale: this._locale,
                        isUTC: this._isUTC,
                        strict: this._strict
                    };
                }
                addFormatToken("N", 0, 0, "eraAbbr");
                addFormatToken("NN", 0, 0, "eraAbbr");
                addFormatToken("NNN", 0, 0, "eraAbbr");
                addFormatToken("NNNN", 0, 0, "eraName");
                addFormatToken("NNNNN", 0, 0, "eraNarrow");
                addFormatToken("y", [
                    "y",
                    1
                ], "yo", "eraYear");
                addFormatToken("y", [
                    "yy",
                    2
                ], 0, "eraYear");
                addFormatToken("y", [
                    "yyy",
                    3
                ], 0, "eraYear");
                addFormatToken("y", [
                    "yyyy",
                    4
                ], 0, "eraYear");
                addRegexToken("N", matchEraAbbr);
                addRegexToken("NN", matchEraAbbr);
                addRegexToken("NNN", matchEraAbbr);
                addRegexToken("NNNN", matchEraName);
                addRegexToken("NNNNN", matchEraNarrow);
                addParseToken([
                    "N",
                    "NN",
                    "NNN",
                    "NNNN",
                    "NNNNN"
                ], function(input, array4, config, token2) {
                    var era = config._locale.erasParse(input, token2, config._strict);
                    if (era) {
                        getParsingFlags(config).era = era;
                    } else {
                        getParsingFlags(config).invalidEra = input;
                    }
                });
                addRegexToken("y", matchUnsigned);
                addRegexToken("yy", matchUnsigned);
                addRegexToken("yyy", matchUnsigned);
                addRegexToken("yyyy", matchUnsigned);
                addRegexToken("yo", matchEraYearOrdinal);
                addParseToken([
                    "y",
                    "yy",
                    "yyy",
                    "yyyy"
                ], YEAR);
                addParseToken([
                    "yo"
                ], function(input, array4, config, token2) {
                    var match;
                    if (config._locale._eraYearOrdinalRegex) {
                        match = input.match(config._locale._eraYearOrdinalRegex);
                    }
                    if (config._locale.eraYearOrdinalParse) {
                        array4[YEAR] = config._locale.eraYearOrdinalParse(input, match);
                    } else {
                        array4[YEAR] = parseInt(input, 10);
                    }
                });
                function localeEras(m, format2) {
                    var i, l, date, eras = this._eras || getLocale("en")._eras;
                    for(i = 0, l = eras.length; i < l; ++i){
                        switch(_type_of(eras[i].since)){
                            case "string":
                                date = hooks(eras[i].since).startOf("day");
                                eras[i].since = date.valueOf();
                                break;
                        }
                        switch(_type_of(eras[i].until)){
                            case "undefined":
                                eras[i].until = Infinity;
                                break;
                            case "string":
                                date = hooks(eras[i].until).startOf("day").valueOf();
                                eras[i].until = date.valueOf();
                                break;
                        }
                    }
                    return eras;
                }
                function localeErasParse(eraName, format2, strict) {
                    var i, l, eras = this.eras(), name, abbr, narrow;
                    eraName = eraName.toUpperCase();
                    for(i = 0, l = eras.length; i < l; ++i){
                        name = eras[i].name.toUpperCase();
                        abbr = eras[i].abbr.toUpperCase();
                        narrow = eras[i].narrow.toUpperCase();
                        if (strict) {
                            switch(format2){
                                case "N":
                                case "NN":
                                case "NNN":
                                    if (abbr === eraName) {
                                        return eras[i];
                                    }
                                    break;
                                case "NNNN":
                                    if (name === eraName) {
                                        return eras[i];
                                    }
                                    break;
                                case "NNNNN":
                                    if (narrow === eraName) {
                                        return eras[i];
                                    }
                                    break;
                            }
                        } else if ([
                            name,
                            abbr,
                            narrow
                        ].indexOf(eraName) >= 0) {
                            return eras[i];
                        }
                    }
                }
                function localeErasConvertYear(era, year2) {
                    var dir = era.since <= era.until ? 1 : -1;
                    if (year2 === void 0) {
                        return hooks(era.since).year();
                    } else {
                        return hooks(era.since).year() + (year2 - era.offset) * dir;
                    }
                }
                function getEraName() {
                    var i, l, val, eras = this.localeData().eras();
                    for(i = 0, l = eras.length; i < l; ++i){
                        val = this.clone().startOf("day").valueOf();
                        if (eras[i].since <= val && val <= eras[i].until) {
                            return eras[i].name;
                        }
                        if (eras[i].until <= val && val <= eras[i].since) {
                            return eras[i].name;
                        }
                    }
                    return "";
                }
                function getEraNarrow() {
                    var i, l, val, eras = this.localeData().eras();
                    for(i = 0, l = eras.length; i < l; ++i){
                        val = this.clone().startOf("day").valueOf();
                        if (eras[i].since <= val && val <= eras[i].until) {
                            return eras[i].narrow;
                        }
                        if (eras[i].until <= val && val <= eras[i].since) {
                            return eras[i].narrow;
                        }
                    }
                    return "";
                }
                function getEraAbbr() {
                    var i, l, val, eras = this.localeData().eras();
                    for(i = 0, l = eras.length; i < l; ++i){
                        val = this.clone().startOf("day").valueOf();
                        if (eras[i].since <= val && val <= eras[i].until) {
                            return eras[i].abbr;
                        }
                        if (eras[i].until <= val && val <= eras[i].since) {
                            return eras[i].abbr;
                        }
                    }
                    return "";
                }
                function getEraYear() {
                    var i, l, dir, val, eras = this.localeData().eras();
                    for(i = 0, l = eras.length; i < l; ++i){
                        dir = eras[i].since <= eras[i].until ? 1 : -1;
                        val = this.clone().startOf("day").valueOf();
                        if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {
                            return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;
                        }
                    }
                    return this.year();
                }
                function erasNameRegex(isStrict) {
                    if (!hasOwnProp(this, "_erasNameRegex")) {
                        computeErasParse.call(this);
                    }
                    return isStrict ? this._erasNameRegex : this._erasRegex;
                }
                function erasAbbrRegex(isStrict) {
                    if (!hasOwnProp(this, "_erasAbbrRegex")) {
                        computeErasParse.call(this);
                    }
                    return isStrict ? this._erasAbbrRegex : this._erasRegex;
                }
                function erasNarrowRegex(isStrict) {
                    if (!hasOwnProp(this, "_erasNarrowRegex")) {
                        computeErasParse.call(this);
                    }
                    return isStrict ? this._erasNarrowRegex : this._erasRegex;
                }
                function matchEraAbbr(isStrict, locale2) {
                    return locale2.erasAbbrRegex(isStrict);
                }
                function matchEraName(isStrict, locale2) {
                    return locale2.erasNameRegex(isStrict);
                }
                function matchEraNarrow(isStrict, locale2) {
                    return locale2.erasNarrowRegex(isStrict);
                }
                function matchEraYearOrdinal(isStrict, locale2) {
                    return locale2._eraYearOrdinalRegex || matchUnsigned;
                }
                function computeErasParse() {
                    var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i, l, eras = this.eras();
                    for(i = 0, l = eras.length; i < l; ++i){
                        namePieces.push(regexEscape(eras[i].name));
                        abbrPieces.push(regexEscape(eras[i].abbr));
                        narrowPieces.push(regexEscape(eras[i].narrow));
                        mixedPieces.push(regexEscape(eras[i].name));
                        mixedPieces.push(regexEscape(eras[i].abbr));
                        mixedPieces.push(regexEscape(eras[i].narrow));
                    }
                    this._erasRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i");
                    this._erasNameRegex = new RegExp("^(" + namePieces.join("|") + ")", "i");
                    this._erasAbbrRegex = new RegExp("^(" + abbrPieces.join("|") + ")", "i");
                    this._erasNarrowRegex = new RegExp("^(" + narrowPieces.join("|") + ")", "i");
                }
                addFormatToken(0, [
                    "gg",
                    2
                ], 0, function() {
                    return this.weekYear() % 100;
                });
                addFormatToken(0, [
                    "GG",
                    2
                ], 0, function() {
                    return this.isoWeekYear() % 100;
                });
                function addWeekYearFormatToken(token2, getter) {
                    addFormatToken(0, [
                        token2,
                        token2.length
                    ], 0, getter);
                }
                addWeekYearFormatToken("gggg", "weekYear");
                addWeekYearFormatToken("ggggg", "weekYear");
                addWeekYearFormatToken("GGGG", "isoWeekYear");
                addWeekYearFormatToken("GGGGG", "isoWeekYear");
                addUnitAlias("weekYear", "gg");
                addUnitAlias("isoWeekYear", "GG");
                addUnitPriority("weekYear", 1);
                addUnitPriority("isoWeekYear", 1);
                addRegexToken("G", matchSigned);
                addRegexToken("g", matchSigned);
                addRegexToken("GG", match1to2, match2);
                addRegexToken("gg", match1to2, match2);
                addRegexToken("GGGG", match1to4, match4);
                addRegexToken("gggg", match1to4, match4);
                addRegexToken("GGGGG", match1to6, match6);
                addRegexToken("ggggg", match1to6, match6);
                addWeekParseToken([
                    "gggg",
                    "ggggg",
                    "GGGG",
                    "GGGGG"
                ], function(input, week2, config, token2) {
                    week2[token2.substr(0, 2)] = toInt(input);
                });
                addWeekParseToken([
                    "gg",
                    "GG"
                ], function(input, week2, config, token2) {
                    week2[token2] = hooks.parseTwoDigitYear(input);
                });
                function getSetWeekYear(input) {
                    return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);
                }
                function getSetISOWeekYear(input) {
                    return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);
                }
                function getISOWeeksInYear() {
                    return weeksInYear(this.year(), 1, 4);
                }
                function getISOWeeksInISOWeekYear() {
                    return weeksInYear(this.isoWeekYear(), 1, 4);
                }
                function getWeeksInYear() {
                    var weekInfo = this.localeData()._week;
                    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
                }
                function getWeeksInWeekYear() {
                    var weekInfo = this.localeData()._week;
                    return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
                }
                function getSetWeekYearHelper(input, week2, weekday, dow, doy) {
                    var weeksTarget;
                    if (input == null) {
                        return weekOfYear(this, dow, doy).year;
                    } else {
                        weeksTarget = weeksInYear(input, dow, doy);
                        if (week2 > weeksTarget) {
                            week2 = weeksTarget;
                        }
                        return setWeekAll.call(this, input, week2, weekday, dow, doy);
                    }
                }
                function setWeekAll(weekYear, week2, weekday, dow, doy) {
                    var dayOfYearData = dayOfYearFromWeeks(weekYear, week2, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
                    this.year(date.getUTCFullYear());
                    this.month(date.getUTCMonth());
                    this.date(date.getUTCDate());
                    return this;
                }
                addFormatToken("Q", 0, "Qo", "quarter");
                addUnitAlias("quarter", "Q");
                addUnitPriority("quarter", 7);
                addRegexToken("Q", match1);
                addParseToken("Q", function(input, array4) {
                    array4[MONTH] = (toInt(input) - 1) * 3;
                });
                function getSetQuarter(input) {
                    return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
                }
                addFormatToken("D", [
                    "DD",
                    2
                ], "Do", "date");
                addUnitAlias("date", "D");
                addUnitPriority("date", 9);
                addRegexToken("D", match1to2);
                addRegexToken("DD", match1to2, match2);
                addRegexToken("Do", function(isStrict, locale2) {
                    return isStrict ? locale2._dayOfMonthOrdinalParse || locale2._ordinalParse : locale2._dayOfMonthOrdinalParseLenient;
                });
                addParseToken([
                    "D",
                    "DD"
                ], DATE);
                addParseToken("Do", function(input, array4) {
                    array4[DATE] = toInt(input.match(match1to2)[0]);
                });
                var getSetDayOfMonth = makeGetSet("Date", true);
                addFormatToken("DDD", [
                    "DDDD",
                    3
                ], "DDDo", "dayOfYear");
                addUnitAlias("dayOfYear", "DDD");
                addUnitPriority("dayOfYear", 4);
                addRegexToken("DDD", match1to3);
                addRegexToken("DDDD", match3);
                addParseToken([
                    "DDD",
                    "DDDD"
                ], function(input, array4, config) {
                    config._dayOfYear = toInt(input);
                });
                function getSetDayOfYear(input) {
                    var dayOfYear = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
                    return input == null ? dayOfYear : this.add(input - dayOfYear, "d");
                }
                addFormatToken("m", [
                    "mm",
                    2
                ], 0, "minute");
                addUnitAlias("minute", "m");
                addUnitPriority("minute", 14);
                addRegexToken("m", match1to2);
                addRegexToken("mm", match1to2, match2);
                addParseToken([
                    "m",
                    "mm"
                ], MINUTE);
                var getSetMinute = makeGetSet("Minutes", false);
                addFormatToken("s", [
                    "ss",
                    2
                ], 0, "second");
                addUnitAlias("second", "s");
                addUnitPriority("second", 15);
                addRegexToken("s", match1to2);
                addRegexToken("ss", match1to2, match2);
                addParseToken([
                    "s",
                    "ss"
                ], SECOND);
                var getSetSecond = makeGetSet("Seconds", false);
                addFormatToken("S", 0, 0, function() {
                    return ~~(this.millisecond() / 100);
                });
                addFormatToken(0, [
                    "SS",
                    2
                ], 0, function() {
                    return ~~(this.millisecond() / 10);
                });
                addFormatToken(0, [
                    "SSS",
                    3
                ], 0, "millisecond");
                addFormatToken(0, [
                    "SSSS",
                    4
                ], 0, function() {
                    return this.millisecond() * 10;
                });
                addFormatToken(0, [
                    "SSSSS",
                    5
                ], 0, function() {
                    return this.millisecond() * 100;
                });
                addFormatToken(0, [
                    "SSSSSS",
                    6
                ], 0, function() {
                    return this.millisecond() * 1e3;
                });
                addFormatToken(0, [
                    "SSSSSSS",
                    7
                ], 0, function() {
                    return this.millisecond() * 1e4;
                });
                addFormatToken(0, [
                    "SSSSSSSS",
                    8
                ], 0, function() {
                    return this.millisecond() * 1e5;
                });
                addFormatToken(0, [
                    "SSSSSSSSS",
                    9
                ], 0, function() {
                    return this.millisecond() * 1e6;
                });
                addUnitAlias("millisecond", "ms");
                addUnitPriority("millisecond", 16);
                addRegexToken("S", match1to3, match1);
                addRegexToken("SS", match1to3, match2);
                addRegexToken("SSS", match1to3, match3);
                var token, getSetMillisecond;
                for(token = "SSSS"; token.length <= 9; token += "S"){
                    addRegexToken(token, matchUnsigned);
                }
                function parseMs(input, array4) {
                    array4[MILLISECOND] = toInt(("0." + input) * 1e3);
                }
                for(token = "S"; token.length <= 9; token += "S"){
                    addParseToken(token, parseMs);
                }
                getSetMillisecond = makeGetSet("Milliseconds", false);
                addFormatToken("z", 0, 0, "zoneAbbr");
                addFormatToken("zz", 0, 0, "zoneName");
                function getZoneAbbr() {
                    return this._isUTC ? "UTC" : "";
                }
                function getZoneName() {
                    return this._isUTC ? "Coordinated Universal Time" : "";
                }
                var proto = Moment.prototype;
                proto.add = add;
                proto.calendar = calendar$1;
                proto.clone = clone2;
                proto.diff = diff;
                proto.endOf = endOf;
                proto.format = format;
                proto.from = from;
                proto.fromNow = fromNow;
                proto.to = to;
                proto.toNow = toNow;
                proto.get = stringGet;
                proto.invalidAt = invalidAt;
                proto.isAfter = isAfter;
                proto.isBefore = isBefore;
                proto.isBetween = isBetween;
                proto.isSame = isSame;
                proto.isSameOrAfter = isSameOrAfter;
                proto.isSameOrBefore = isSameOrBefore;
                proto.isValid = isValid$2;
                proto.lang = lang;
                proto.locale = locale;
                proto.localeData = localeData;
                proto.max = prototypeMax;
                proto.min = prototypeMin;
                proto.parsingFlags = parsingFlags;
                proto.set = stringSet;
                proto.startOf = startOf;
                proto.subtract = subtract;
                proto.toArray = toArray;
                proto.toObject = toObject;
                proto.toDate = toDate;
                proto.toISOString = toISOString;
                proto.inspect = inspect;
                if (typeof Symbol !== "undefined" && Symbol["for"] != null) {
                    proto[Symbol["for"]("nodejs.util.inspect.custom")] = function() {
                        return "Moment<" + this.format() + ">";
                    };
                }
                proto.toJSON = toJSON;
                proto.toString = toString3;
                proto.unix = unix;
                proto.valueOf = valueOf;
                proto.creationData = creationData;
                proto.eraName = getEraName;
                proto.eraNarrow = getEraNarrow;
                proto.eraAbbr = getEraAbbr;
                proto.eraYear = getEraYear;
                proto.year = getSetYear;
                proto.isLeapYear = getIsLeapYear;
                proto.weekYear = getSetWeekYear;
                proto.isoWeekYear = getSetISOWeekYear;
                proto.quarter = proto.quarters = getSetQuarter;
                proto.month = getSetMonth;
                proto.daysInMonth = getDaysInMonth;
                proto.week = proto.weeks = getSetWeek;
                proto.isoWeek = proto.isoWeeks = getSetISOWeek;
                proto.weeksInYear = getWeeksInYear;
                proto.weeksInWeekYear = getWeeksInWeekYear;
                proto.isoWeeksInYear = getISOWeeksInYear;
                proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
                proto.date = getSetDayOfMonth;
                proto.day = proto.days = getSetDayOfWeek;
                proto.weekday = getSetLocaleDayOfWeek;
                proto.isoWeekday = getSetISODayOfWeek;
                proto.dayOfYear = getSetDayOfYear;
                proto.hour = proto.hours = getSetHour;
                proto.minute = proto.minutes = getSetMinute;
                proto.second = proto.seconds = getSetSecond;
                proto.millisecond = proto.milliseconds = getSetMillisecond;
                proto.utcOffset = getSetOffset;
                proto.utc = setOffsetToUTC;
                proto.local = setOffsetToLocal;
                proto.parseZone = setOffsetToParsedOffset;
                proto.hasAlignedHourOffset = hasAlignedHourOffset;
                proto.isDST = isDaylightSavingTime;
                proto.isLocal = isLocal;
                proto.isUtcOffset = isUtcOffset;
                proto.isUtc = isUtc;
                proto.isUTC = isUtc;
                proto.zoneAbbr = getZoneAbbr;
                proto.zoneName = getZoneName;
                proto.dates = deprecate("dates accessor is deprecated. Use date instead.", getSetDayOfMonth);
                proto.months = deprecate("months accessor is deprecated. Use month instead", getSetMonth);
                proto.years = deprecate("years accessor is deprecated. Use year instead", getSetYear);
                proto.zone = deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", getSetZone);
                proto.isDSTShifted = deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", isDaylightSavingTimeShifted);
                function createUnix(input) {
                    return createLocal(input * 1e3);
                }
                function createInZone() {
                    return createLocal.apply(null, arguments).parseZone();
                }
                function preParsePostFormat(string5) {
                    return string5;
                }
                var proto$1 = Locale.prototype;
                proto$1.calendar = calendar;
                proto$1.longDateFormat = longDateFormat;
                proto$1.invalidDate = invalidDate;
                proto$1.ordinal = ordinal;
                proto$1.preparse = preParsePostFormat;
                proto$1.postformat = preParsePostFormat;
                proto$1.relativeTime = relativeTime;
                proto$1.pastFuture = pastFuture;
                proto$1.set = set;
                proto$1.eras = localeEras;
                proto$1.erasParse = localeErasParse;
                proto$1.erasConvertYear = localeErasConvertYear;
                proto$1.erasAbbrRegex = erasAbbrRegex;
                proto$1.erasNameRegex = erasNameRegex;
                proto$1.erasNarrowRegex = erasNarrowRegex;
                proto$1.months = localeMonths;
                proto$1.monthsShort = localeMonthsShort;
                proto$1.monthsParse = localeMonthsParse;
                proto$1.monthsRegex = monthsRegex;
                proto$1.monthsShortRegex = monthsShortRegex;
                proto$1.week = localeWeek;
                proto$1.firstDayOfYear = localeFirstDayOfYear;
                proto$1.firstDayOfWeek = localeFirstDayOfWeek;
                proto$1.weekdays = localeWeekdays;
                proto$1.weekdaysMin = localeWeekdaysMin;
                proto$1.weekdaysShort = localeWeekdaysShort;
                proto$1.weekdaysParse = localeWeekdaysParse;
                proto$1.weekdaysRegex = weekdaysRegex;
                proto$1.weekdaysShortRegex = weekdaysShortRegex;
                proto$1.weekdaysMinRegex = weekdaysMinRegex;
                proto$1.isPM = localeIsPM;
                proto$1.meridiem = localeMeridiem;
                function get$1(format2, index, field, setter) {
                    var locale2 = getLocale(), utc = createUTC().set(setter, index);
                    return locale2[field](utc, format2);
                }
                function listMonthsImpl(format2, index, field) {
                    if (isNumber(format2)) {
                        index = format2;
                        format2 = void 0;
                    }
                    format2 = format2 || "";
                    if (index != null) {
                        return get$1(format2, index, field, "month");
                    }
                    var i, out = [];
                    for(i = 0; i < 12; i++){
                        out[i] = get$1(format2, i, field, "month");
                    }
                    return out;
                }
                function listWeekdaysImpl(localeSorted, format2, index, field) {
                    if (typeof localeSorted === "boolean") {
                        if (isNumber(format2)) {
                            index = format2;
                            format2 = void 0;
                        }
                        format2 = format2 || "";
                    } else {
                        format2 = localeSorted;
                        index = format2;
                        localeSorted = false;
                        if (isNumber(format2)) {
                            index = format2;
                            format2 = void 0;
                        }
                        format2 = format2 || "";
                    }
                    var locale2 = getLocale(), shift = localeSorted ? locale2._week.dow : 0, i, out = [];
                    if (index != null) {
                        return get$1(format2, (index + shift) % 7, field, "day");
                    }
                    for(i = 0; i < 7; i++){
                        out[i] = get$1(format2, (i + shift) % 7, field, "day");
                    }
                    return out;
                }
                function listMonths(format2, index) {
                    return listMonthsImpl(format2, index, "months");
                }
                function listMonthsShort(format2, index) {
                    return listMonthsImpl(format2, index, "monthsShort");
                }
                function listWeekdays(localeSorted, format2, index) {
                    return listWeekdaysImpl(localeSorted, format2, index, "weekdays");
                }
                function listWeekdaysShort(localeSorted, format2, index) {
                    return listWeekdaysImpl(localeSorted, format2, index, "weekdaysShort");
                }
                function listWeekdaysMin(localeSorted, format2, index) {
                    return listWeekdaysImpl(localeSorted, format2, index, "weekdaysMin");
                }
                getSetGlobalLocale("en", {
                    eras: [
                        {
                            since: "0001-01-01",
                            until: Infinity,
                            offset: 1,
                            name: "Anno Domini",
                            narrow: "AD",
                            abbr: "AD"
                        },
                        {
                            since: "0000-12-31",
                            until: -Infinity,
                            offset: 1,
                            name: "Before Christ",
                            narrow: "BC",
                            abbr: "BC"
                        }
                    ],
                    dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
                    ordinal: function ordinal(number) {
                        var b = number % 10, output = toInt(number % 100 / 10) === 1 ? "th" : b === 1 ? "st" : b === 2 ? "nd" : b === 3 ? "rd" : "th";
                        return number + output;
                    }
                });
                hooks.lang = deprecate("moment.lang is deprecated. Use moment.locale instead.", getSetGlobalLocale);
                hooks.langData = deprecate("moment.langData is deprecated. Use moment.localeData instead.", getLocale);
                var mathAbs = Math.abs;
                function abs() {
                    var data = this._data;
                    this._milliseconds = mathAbs(this._milliseconds);
                    this._days = mathAbs(this._days);
                    this._months = mathAbs(this._months);
                    data.milliseconds = mathAbs(data.milliseconds);
                    data.seconds = mathAbs(data.seconds);
                    data.minutes = mathAbs(data.minutes);
                    data.hours = mathAbs(data.hours);
                    data.months = mathAbs(data.months);
                    data.years = mathAbs(data.years);
                    return this;
                }
                function addSubtract$1(duration, input, value, direction) {
                    var other = createDuration(input, value);
                    duration._milliseconds += direction * other._milliseconds;
                    duration._days += direction * other._days;
                    duration._months += direction * other._months;
                    return duration._bubble();
                }
                function add$1(input, value) {
                    return addSubtract$1(this, input, value, 1);
                }
                function subtract$1(input, value) {
                    return addSubtract$1(this, input, value, -1);
                }
                function absCeil(number) {
                    if (number < 0) {
                        return Math.floor(number);
                    } else {
                        return Math.ceil(number);
                    }
                }
                function bubble() {
                    var milliseconds2 = this._milliseconds, days2 = this._days, months2 = this._months, data = this._data, seconds2, minutes2, hours2, years2, monthsFromDays;
                    if (!(milliseconds2 >= 0 && days2 >= 0 && months2 >= 0 || milliseconds2 <= 0 && days2 <= 0 && months2 <= 0)) {
                        milliseconds2 += absCeil(monthsToDays(months2) + days2) * 864e5;
                        days2 = 0;
                        months2 = 0;
                    }
                    data.milliseconds = milliseconds2 % 1e3;
                    seconds2 = absFloor(milliseconds2 / 1e3);
                    data.seconds = seconds2 % 60;
                    minutes2 = absFloor(seconds2 / 60);
                    data.minutes = minutes2 % 60;
                    hours2 = absFloor(minutes2 / 60);
                    data.hours = hours2 % 24;
                    days2 += absFloor(hours2 / 24);
                    monthsFromDays = absFloor(daysToMonths(days2));
                    months2 += monthsFromDays;
                    days2 -= absCeil(monthsToDays(monthsFromDays));
                    years2 = absFloor(months2 / 12);
                    months2 %= 12;
                    data.days = days2;
                    data.months = months2;
                    data.years = years2;
                    return this;
                }
                function daysToMonths(days2) {
                    return days2 * 4800 / 146097;
                }
                function monthsToDays(months2) {
                    return months2 * 146097 / 4800;
                }
                function as(units) {
                    if (!this.isValid()) {
                        return NaN;
                    }
                    var days2, months2, milliseconds2 = this._milliseconds;
                    units = normalizeUnits(units);
                    if (units === "month" || units === "quarter" || units === "year") {
                        days2 = this._days + milliseconds2 / 864e5;
                        months2 = this._months + daysToMonths(days2);
                        switch(units){
                            case "month":
                                return months2;
                            case "quarter":
                                return months2 / 3;
                            case "year":
                                return months2 / 12;
                        }
                    } else {
                        days2 = this._days + Math.round(monthsToDays(this._months));
                        switch(units){
                            case "week":
                                return days2 / 7 + milliseconds2 / 6048e5;
                            case "day":
                                return days2 + milliseconds2 / 864e5;
                            case "hour":
                                return days2 * 24 + milliseconds2 / 36e5;
                            case "minute":
                                return days2 * 1440 + milliseconds2 / 6e4;
                            case "second":
                                return days2 * 86400 + milliseconds2 / 1e3;
                            case "millisecond":
                                return Math.floor(days2 * 864e5) + milliseconds2;
                            default:
                                throw new Error("Unknown unit " + units);
                        }
                    }
                }
                function valueOf$1() {
                    if (!this.isValid()) {
                        return NaN;
                    }
                    return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;
                }
                function makeAs(alias) {
                    return function() {
                        return this.as(alias);
                    };
                }
                var asMilliseconds = makeAs("ms"), asSeconds = makeAs("s"), asMinutes = makeAs("m"), asHours = makeAs("h"), asDays = makeAs("d"), asWeeks = makeAs("w"), asMonths = makeAs("M"), asQuarters = makeAs("Q"), asYears = makeAs("y");
                function clone$1() {
                    return createDuration(this);
                }
                function get$2(units) {
                    units = normalizeUnits(units);
                    return this.isValid() ? this[units + "s"]() : NaN;
                }
                function makeGetter(name) {
                    return function() {
                        return this.isValid() ? this._data[name] : NaN;
                    };
                }
                var milliseconds = makeGetter("milliseconds"), seconds = makeGetter("seconds"), minutes = makeGetter("minutes"), hours = makeGetter("hours"), days = makeGetter("days"), months = makeGetter("months"), years = makeGetter("years");
                function weeks() {
                    return absFloor(this.days() / 7);
                }
                var round = Math.round, thresholds = {
                    ss: 44,
                    // a few seconds to seconds
                    s: 45,
                    // seconds to minute
                    m: 45,
                    // minutes to hour
                    h: 22,
                    // hours to day
                    d: 26,
                    // days to month/week
                    w: null,
                    // weeks to month
                    M: 11
                };
                function substituteTimeAgo(string5, number, withoutSuffix, isFuture, locale2) {
                    return locale2.relativeTime(number || 1, !!withoutSuffix, string5, isFuture);
                }
                function relativeTime$1(posNegDuration, withoutSuffix, thresholds2, locale2) {
                    var duration = createDuration(posNegDuration).abs(), seconds2 = round(duration.as("s")), minutes2 = round(duration.as("m")), hours2 = round(duration.as("h")), days2 = round(duration.as("d")), months2 = round(duration.as("M")), weeks2 = round(duration.as("w")), years2 = round(duration.as("y")), a = seconds2 <= thresholds2.ss && [
                        "s",
                        seconds2
                    ] || seconds2 < thresholds2.s && [
                        "ss",
                        seconds2
                    ] || minutes2 <= 1 && [
                        "m"
                    ] || minutes2 < thresholds2.m && [
                        "mm",
                        minutes2
                    ] || hours2 <= 1 && [
                        "h"
                    ] || hours2 < thresholds2.h && [
                        "hh",
                        hours2
                    ] || days2 <= 1 && [
                        "d"
                    ] || days2 < thresholds2.d && [
                        "dd",
                        days2
                    ];
                    if (thresholds2.w != null) {
                        a = a || weeks2 <= 1 && [
                            "w"
                        ] || weeks2 < thresholds2.w && [
                            "ww",
                            weeks2
                        ];
                    }
                    a = a || months2 <= 1 && [
                        "M"
                    ] || months2 < thresholds2.M && [
                        "MM",
                        months2
                    ] || years2 <= 1 && [
                        "y"
                    ] || [
                        "yy",
                        years2
                    ];
                    a[2] = withoutSuffix;
                    a[3] = +posNegDuration > 0;
                    a[4] = locale2;
                    return substituteTimeAgo.apply(null, a);
                }
                function getSetRelativeTimeRounding(roundingFunction) {
                    if (roundingFunction === void 0) {
                        return round;
                    }
                    if (typeof roundingFunction === "function") {
                        round = roundingFunction;
                        return true;
                    }
                    return false;
                }
                function getSetRelativeTimeThreshold(threshold, limit) {
                    if (thresholds[threshold] === void 0) {
                        return false;
                    }
                    if (limit === void 0) {
                        return thresholds[threshold];
                    }
                    thresholds[threshold] = limit;
                    if (threshold === "s") {
                        thresholds.ss = limit - 1;
                    }
                    return true;
                }
                function humanize(argWithSuffix, argThresholds) {
                    if (!this.isValid()) {
                        return this.localeData().invalidDate();
                    }
                    var withSuffix = false, th = thresholds, locale2, output;
                    if ((typeof argWithSuffix === "undefined" ? "undefined" : _type_of(argWithSuffix)) === "object") {
                        argThresholds = argWithSuffix;
                        argWithSuffix = false;
                    }
                    if (typeof argWithSuffix === "boolean") {
                        withSuffix = argWithSuffix;
                    }
                    if ((typeof argThresholds === "undefined" ? "undefined" : _type_of(argThresholds)) === "object") {
                        th = Object.assign({}, thresholds, argThresholds);
                        if (argThresholds.s != null && argThresholds.ss == null) {
                            th.ss = argThresholds.s - 1;
                        }
                    }
                    locale2 = this.localeData();
                    output = relativeTime$1(this, !withSuffix, th, locale2);
                    if (withSuffix) {
                        output = locale2.pastFuture(+this, output);
                    }
                    return locale2.postformat(output);
                }
                var abs$1 = Math.abs;
                function sign2(x) {
                    return (x > 0) - (x < 0) || +x;
                }
                function toISOString$1() {
                    if (!this.isValid()) {
                        return this.localeData().invalidDate();
                    }
                    var seconds2 = abs$1(this._milliseconds) / 1e3, days2 = abs$1(this._days), months2 = abs$1(this._months), minutes2, hours2, years2, s, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign;
                    if (!total) {
                        return "P0D";
                    }
                    minutes2 = absFloor(seconds2 / 60);
                    hours2 = absFloor(minutes2 / 60);
                    seconds2 %= 60;
                    minutes2 %= 60;
                    years2 = absFloor(months2 / 12);
                    months2 %= 12;
                    s = seconds2 ? seconds2.toFixed(3).replace(/\.?0+$/, "") : "";
                    totalSign = total < 0 ? "-" : "";
                    ymSign = sign2(this._months) !== sign2(total) ? "-" : "";
                    daysSign = sign2(this._days) !== sign2(total) ? "-" : "";
                    hmsSign = sign2(this._milliseconds) !== sign2(total) ? "-" : "";
                    return totalSign + "P" + (years2 ? ymSign + years2 + "Y" : "") + (months2 ? ymSign + months2 + "M" : "") + (days2 ? daysSign + days2 + "D" : "") + (hours2 || minutes2 || seconds2 ? "T" : "") + (hours2 ? hmsSign + hours2 + "H" : "") + (minutes2 ? hmsSign + minutes2 + "M" : "") + (seconds2 ? hmsSign + s + "S" : "");
                }
                var proto$2 = Duration.prototype;
                proto$2.isValid = isValid$1;
                proto$2.abs = abs;
                proto$2.add = add$1;
                proto$2.subtract = subtract$1;
                proto$2.as = as;
                proto$2.asMilliseconds = asMilliseconds;
                proto$2.asSeconds = asSeconds;
                proto$2.asMinutes = asMinutes;
                proto$2.asHours = asHours;
                proto$2.asDays = asDays;
                proto$2.asWeeks = asWeeks;
                proto$2.asMonths = asMonths;
                proto$2.asQuarters = asQuarters;
                proto$2.asYears = asYears;
                proto$2.valueOf = valueOf$1;
                proto$2._bubble = bubble;
                proto$2.clone = clone$1;
                proto$2.get = get$2;
                proto$2.milliseconds = milliseconds;
                proto$2.seconds = seconds;
                proto$2.minutes = minutes;
                proto$2.hours = hours;
                proto$2.days = days;
                proto$2.weeks = weeks;
                proto$2.months = months;
                proto$2.years = years;
                proto$2.humanize = humanize;
                proto$2.toISOString = toISOString$1;
                proto$2.toString = toISOString$1;
                proto$2.toJSON = toISOString$1;
                proto$2.locale = locale;
                proto$2.localeData = localeData;
                proto$2.toIsoString = deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", toISOString$1);
                proto$2.lang = lang;
                addFormatToken("X", 0, 0, "unix");
                addFormatToken("x", 0, 0, "valueOf");
                addRegexToken("x", matchSigned);
                addRegexToken("X", matchTimestamp);
                addParseToken("X", function(input, array4, config) {
                    config._d = new Date(parseFloat(input) * 1e3);
                });
                addParseToken("x", function(input, array4, config) {
                    config._d = new Date(toInt(input));
                });
                hooks.version = "2.29.4";
                setHookCallback(createLocal);
                hooks.fn = proto;
                hooks.min = min;
                hooks.max = max;
                hooks.now = now2;
                hooks.utc = createUTC;
                hooks.unix = createUnix;
                hooks.months = listMonths;
                hooks.isDate = isDate;
                hooks.locale = getSetGlobalLocale;
                hooks.invalid = createInvalid;
                hooks.duration = createDuration;
                hooks.isMoment = isMoment;
                hooks.weekdays = listWeekdays;
                hooks.parseZone = createInZone;
                hooks.localeData = getLocale;
                hooks.isDuration = isDuration;
                hooks.monthsShort = listMonthsShort;
                hooks.weekdaysMin = listWeekdaysMin;
                hooks.defineLocale = defineLocale;
                hooks.updateLocale = updateLocale;
                hooks.locales = listLocales;
                hooks.weekdaysShort = listWeekdaysShort;
                hooks.normalizeUnits = normalizeUnits;
                hooks.relativeTimeRounding = getSetRelativeTimeRounding;
                hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
                hooks.calendarFormat = getCalendarFormat;
                hooks.prototype = proto;
                hooks.HTML5_FMT = {
                    DATETIME_LOCAL: "YYYY-MM-DDTHH:mm",
                    // <input type="datetime-local" />
                    DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss",
                    // <input type="datetime-local" step="1" />
                    DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS",
                    // <input type="datetime-local" step="0.001" />
                    DATE: "YYYY-MM-DD",
                    // <input type="date" />
                    TIME: "HH:mm",
                    // <input type="time" />
                    TIME_SECONDS: "HH:mm:ss",
                    // <input type="time" step="1" />
                    TIME_MS: "HH:mm:ss.SSS",
                    // <input type="time" step="0.001" />
                    WEEK: "GGGG-[W]WW",
                    // <input type="week" />
                    MONTH: "YYYY-MM"
                };
                return hooks;
            });
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/moment-timezone/moment-timezone.js
    var require_moment_timezone = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/moment-timezone/moment-timezone.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root, factory) {
                "use strict";
                if ((typeof module === "undefined" ? "undefined" : _type_of(module)) === "object" && module.exports) {
                    module.exports = factory(require_moment());
                } else if (typeof define === "function" && define.amd) {
                    define([
                        "moment"
                    ], factory);
                } else {
                    factory(root.moment);
                }
            })(exports, function(moment4) {
                "use strict";
                if (moment4.version === void 0 && moment4["default"]) {
                    moment4 = moment4["default"];
                }
                var VERSION = "0.5.45", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess;
                if (!moment4 || typeof moment4.version !== "string") {
                    logError2("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
                }
                var momentVersion = moment4.version.split("."), major = +momentVersion[0], minor = +momentVersion[1];
                if (major < 2 || major === 2 && minor < 6) {
                    logError2("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + moment4.version + ". See momentjs.com");
                }
                function charCodeToInt(charCode) {
                    if (charCode > 96) {
                        return charCode - 87;
                    } else if (charCode > 64) {
                        return charCode - 29;
                    }
                    return charCode - 48;
                }
                function unpackBase60(string5) {
                    var i = 0, parts = string5.split("."), whole = parts[0], fractional = parts[1] || "", multiplier = 1, num, out = 0, sign2 = 1;
                    if (string5.charCodeAt(0) === 45) {
                        i = 1;
                        sign2 = -1;
                    }
                    for(i; i < whole.length; i++){
                        num = charCodeToInt(whole.charCodeAt(i));
                        out = 60 * out + num;
                    }
                    for(i = 0; i < fractional.length; i++){
                        multiplier = multiplier / 60;
                        num = charCodeToInt(fractional.charCodeAt(i));
                        out += num * multiplier;
                    }
                    return out * sign2;
                }
                function arrayToInt(array4) {
                    for(var i = 0; i < array4.length; i++){
                        array4[i] = unpackBase60(array4[i]);
                    }
                }
                function intToUntil(array4, length) {
                    for(var i = 0; i < length; i++){
                        array4[i] = Math.round((array4[i - 1] || 0) + array4[i] * 6e4);
                    }
                    array4[length - 1] = Infinity;
                }
                function mapIndices(source, indices) {
                    var out = [], i;
                    for(i = 0; i < indices.length; i++){
                        out[i] = source[indices[i]];
                    }
                    return out;
                }
                function unpack(string5) {
                    var data = string5.split("|"), offsets = data[2].split(" "), indices = data[3].split(""), untils = data[4].split(" ");
                    arrayToInt(offsets);
                    arrayToInt(indices);
                    arrayToInt(untils);
                    intToUntil(untils, indices.length);
                    return {
                        name: data[0],
                        abbrs: mapIndices(data[1].split(" "), indices),
                        offsets: mapIndices(offsets, indices),
                        untils: untils,
                        population: data[5] | 0
                    };
                }
                function Zone(packedString) {
                    if (packedString) {
                        this._set(unpack(packedString));
                    }
                }
                function closest(num, arr) {
                    var len = arr.length;
                    if (num < arr[0]) {
                        return 0;
                    } else if (len > 1 && arr[len - 1] === Infinity && num >= arr[len - 2]) {
                        return len - 1;
                    } else if (num >= arr[len - 1]) {
                        return -1;
                    }
                    var mid;
                    var lo = 0;
                    var hi = len - 1;
                    while(hi - lo > 1){
                        mid = Math.floor((lo + hi) / 2);
                        if (arr[mid] <= num) {
                            lo = mid;
                        } else {
                            hi = mid;
                        }
                    }
                    return hi;
                }
                Zone.prototype = {
                    _set: function _set(unpacked) {
                        this.name = unpacked.name;
                        this.abbrs = unpacked.abbrs;
                        this.untils = unpacked.untils;
                        this.offsets = unpacked.offsets;
                        this.population = unpacked.population;
                    },
                    _index: function _index(timestamp) {
                        var target = +timestamp, untils = this.untils, i;
                        i = closest(target, untils);
                        if (i >= 0) {
                            return i;
                        }
                    },
                    countries: function countries1() {
                        var zone_name = this.name;
                        return Object.keys(countries).filter(function(country_code) {
                            return countries[country_code].zones.indexOf(zone_name) !== -1;
                        });
                    },
                    parse: function parse(timestamp) {
                        var target = +timestamp, offsets = this.offsets, untils = this.untils, max = untils.length - 1, offset, offsetNext, offsetPrev, i;
                        for(i = 0; i < max; i++){
                            offset = offsets[i];
                            offsetNext = offsets[i + 1];
                            offsetPrev = offsets[i ? i - 1 : i];
                            if (offset < offsetNext && tz.moveAmbiguousForward) {
                                offset = offsetNext;
                            } else if (offset > offsetPrev && tz.moveInvalidForward) {
                                offset = offsetPrev;
                            }
                            if (target < untils[i] - offset * 6e4) {
                                return offsets[i];
                            }
                        }
                        return offsets[max];
                    },
                    abbr: function abbr(mom) {
                        return this.abbrs[this._index(mom)];
                    },
                    offset: function offset(mom) {
                        logError2("zone.offset has been deprecated in favor of zone.utcOffset");
                        return this.offsets[this._index(mom)];
                    },
                    utcOffset: function utcOffset(mom) {
                        return this.offsets[this._index(mom)];
                    }
                };
                function Country(country_name, zone_names) {
                    this.name = country_name;
                    this.zones = zone_names;
                }
                function OffsetAt(at) {
                    var timeString = at.toTimeString();
                    var abbr = timeString.match(/\([a-z ]+\)/i);
                    if (abbr && abbr[0]) {
                        abbr = abbr[0].match(/[A-Z]/g);
                        abbr = abbr ? abbr.join("") : void 0;
                    } else {
                        abbr = timeString.match(/[A-Z]{3,5}/g);
                        abbr = abbr ? abbr[0] : void 0;
                    }
                    if (abbr === "GMT") {
                        abbr = void 0;
                    }
                    this.at = +at;
                    this.abbr = abbr;
                    this.offset = at.getTimezoneOffset();
                }
                function ZoneScore(zone) {
                    this.zone = zone;
                    this.offsetScore = 0;
                    this.abbrScore = 0;
                }
                ZoneScore.prototype.scoreOffsetAt = function(offsetAt) {
                    this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);
                    if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, "") !== offsetAt.abbr) {
                        this.abbrScore++;
                    }
                };
                function findChange(low, high) {
                    var mid, diff;
                    while(diff = ((high.at - low.at) / 12e4 | 0) * 6e4){
                        mid = new OffsetAt(new Date(low.at + diff));
                        if (mid.offset === low.offset) {
                            low = mid;
                        } else {
                            high = mid;
                        }
                    }
                    return low;
                }
                function userOffsets() {
                    var startYear = /* @__PURE__ */ new Date().getFullYear() - 2, last = new OffsetAt(new Date(startYear, 0, 1)), lastOffset = last.offset, offsets = [
                        last
                    ], change, next, nextOffset, i;
                    for(i = 1; i < 48; i++){
                        nextOffset = new Date(startYear, i, 1).getTimezoneOffset();
                        if (nextOffset !== lastOffset) {
                            next = new OffsetAt(new Date(startYear, i, 1));
                            change = findChange(last, next);
                            offsets.push(change);
                            offsets.push(new OffsetAt(new Date(change.at + 6e4)));
                            last = next;
                            lastOffset = nextOffset;
                        }
                    }
                    for(i = 0; i < 4; i++){
                        offsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));
                        offsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));
                    }
                    return offsets;
                }
                function sortZoneScores(a, b) {
                    if (a.offsetScore !== b.offsetScore) {
                        return a.offsetScore - b.offsetScore;
                    }
                    if (a.abbrScore !== b.abbrScore) {
                        return a.abbrScore - b.abbrScore;
                    }
                    if (a.zone.population !== b.zone.population) {
                        return b.zone.population - a.zone.population;
                    }
                    return b.zone.name.localeCompare(a.zone.name);
                }
                function addToGuesses(name, offsets) {
                    var i, offset;
                    arrayToInt(offsets);
                    for(i = 0; i < offsets.length; i++){
                        offset = offsets[i];
                        guesses[offset] = guesses[offset] || {};
                        guesses[offset][name] = true;
                    }
                }
                function guessesForUserOffsets(offsets) {
                    var offsetsLength = offsets.length, filteredGuesses = {}, out = [], checkedOffsets = {}, i, j, offset, guessesOffset;
                    for(i = 0; i < offsetsLength; i++){
                        offset = offsets[i].offset;
                        if (checkedOffsets.hasOwnProperty(offset)) {
                            continue;
                        }
                        guessesOffset = guesses[offset] || {};
                        for(j in guessesOffset){
                            if (guessesOffset.hasOwnProperty(j)) {
                                filteredGuesses[j] = true;
                            }
                        }
                        checkedOffsets[offset] = true;
                    }
                    for(i in filteredGuesses){
                        if (filteredGuesses.hasOwnProperty(i)) {
                            out.push(names[i]);
                        }
                    }
                    return out;
                }
                function rebuildGuess() {
                    try {
                        var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;
                        if (intlName && intlName.length > 3) {
                            var name = names[normalizeName(intlName)];
                            if (name) {
                                return name;
                            }
                            logError2("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded.");
                        }
                    } catch (e) {}
                    var offsets = userOffsets(), offsetsLength = offsets.length, guesses2 = guessesForUserOffsets(offsets), zoneScores = [], zoneScore, i, j;
                    for(i = 0; i < guesses2.length; i++){
                        zoneScore = new ZoneScore(getZone(guesses2[i]), offsetsLength);
                        for(j = 0; j < offsetsLength; j++){
                            zoneScore.scoreOffsetAt(offsets[j]);
                        }
                        zoneScores.push(zoneScore);
                    }
                    zoneScores.sort(sortZoneScores);
                    return zoneScores.length > 0 ? zoneScores[0].zone.name : void 0;
                }
                function guess(ignoreCache) {
                    if (!cachedGuess || ignoreCache) {
                        cachedGuess = rebuildGuess();
                    }
                    return cachedGuess;
                }
                function normalizeName(name) {
                    return (name || "").toLowerCase().replace(/\//g, "_");
                }
                function addZone(packed) {
                    var i, name, split, normalized;
                    if (typeof packed === "string") {
                        packed = [
                            packed
                        ];
                    }
                    for(i = 0; i < packed.length; i++){
                        split = packed[i].split("|");
                        name = split[0];
                        normalized = normalizeName(name);
                        zones[normalized] = packed[i];
                        names[normalized] = name;
                        addToGuesses(normalized, split[2].split(" "));
                    }
                }
                function getZone(name, caller) {
                    name = normalizeName(name);
                    var zone = zones[name];
                    var link;
                    if (zone instanceof Zone) {
                        return zone;
                    }
                    if (typeof zone === "string") {
                        zone = new Zone(zone);
                        zones[name] = zone;
                        return zone;
                    }
                    if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {
                        zone = zones[name] = new Zone();
                        zone._set(link);
                        zone.name = names[name];
                        return zone;
                    }
                    return null;
                }
                function getNames() {
                    var i, out = [];
                    for(i in names){
                        if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {
                            out.push(names[i]);
                        }
                    }
                    return out.sort();
                }
                function getCountryNames() {
                    return Object.keys(countries);
                }
                function addLink(aliases) {
                    var i, alias, normal0, normal1;
                    if (typeof aliases === "string") {
                        aliases = [
                            aliases
                        ];
                    }
                    for(i = 0; i < aliases.length; i++){
                        alias = aliases[i].split("|");
                        normal0 = normalizeName(alias[0]);
                        normal1 = normalizeName(alias[1]);
                        links[normal0] = normal1;
                        names[normal0] = alias[0];
                        links[normal1] = normal0;
                        names[normal1] = alias[1];
                    }
                }
                function addCountries(data) {
                    var i, country_code, country_zones, split;
                    if (!data || !data.length) return;
                    for(i = 0; i < data.length; i++){
                        split = data[i].split("|");
                        country_code = split[0].toUpperCase();
                        country_zones = split[1].split(" ");
                        countries[country_code] = new Country(country_code, country_zones);
                    }
                }
                function getCountry(name) {
                    name = name.toUpperCase();
                    return countries[name] || null;
                }
                function zonesForCountry(country, with_offset) {
                    country = getCountry(country);
                    if (!country) return null;
                    var zones2 = country.zones.sort();
                    if (with_offset) {
                        return zones2.map(function(zone_name) {
                            var zone = getZone(zone_name);
                            return {
                                name: zone_name,
                                offset: zone.utcOffset(/* @__PURE__ */ new Date())
                            };
                        });
                    }
                    return zones2;
                }
                function loadData(data) {
                    addZone(data.zones);
                    addLink(data.links);
                    addCountries(data.countries);
                    tz.dataVersion = data.version;
                }
                function zoneExists(name) {
                    if (!zoneExists.didShowError) {
                        zoneExists.didShowError = true;
                        logError2("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')");
                    }
                    return !!getZone(name);
                }
                function needsOffset(m) {
                    var isUnixTimestamp = m._f === "X" || m._f === "x";
                    return !!(m._a && m._tzm === void 0 && !isUnixTimestamp);
                }
                function logError2(message2) {
                    if (typeof console !== "undefined" && typeof console.error === "function") {
                        console.error(message2);
                    }
                }
                function tz(input) {
                    var args = Array.prototype.slice.call(arguments, 0, -1), name = arguments[arguments.length - 1], out = moment4.utc.apply(null, args), zone;
                    if (!moment4.isMoment(input) && needsOffset(out) && (zone = getZone(name))) {
                        out.add(zone.parse(out), "minutes");
                    }
                    out.tz(name);
                    return out;
                }
                tz.version = VERSION;
                tz.dataVersion = "";
                tz._zones = zones;
                tz._links = links;
                tz._names = names;
                tz._countries = countries;
                tz.add = addZone;
                tz.link = addLink;
                tz.load = loadData;
                tz.zone = getZone;
                tz.zoneExists = zoneExists;
                tz.guess = guess;
                tz.names = getNames;
                tz.Zone = Zone;
                tz.unpack = unpack;
                tz.unpackBase60 = unpackBase60;
                tz.needsOffset = needsOffset;
                tz.moveInvalidForward = true;
                tz.moveAmbiguousForward = false;
                tz.countries = getCountryNames;
                tz.zonesForCountry = zonesForCountry;
                var fn = moment4.fn;
                moment4.tz = tz;
                moment4.defaultZone = null;
                moment4.updateOffset = function(mom, keepTime) {
                    var zone = moment4.defaultZone, offset;
                    if (mom._z === void 0) {
                        if (zone && needsOffset(mom) && !mom._isUTC && mom.isValid()) {
                            mom._d = moment4.utc(mom._a)._d;
                            mom.utc().add(zone.parse(mom), "minutes");
                        }
                        mom._z = zone;
                    }
                    if (mom._z) {
                        offset = mom._z.utcOffset(mom);
                        if (Math.abs(offset) < 16) {
                            offset = offset / 60;
                        }
                        if (mom.utcOffset !== void 0) {
                            var z = mom._z;
                            mom.utcOffset(-offset, keepTime);
                            mom._z = z;
                        } else {
                            mom.zone(offset, keepTime);
                        }
                    }
                };
                fn.tz = function(name, keepTime) {
                    if (name) {
                        if (typeof name !== "string") {
                            throw new Error("Time zone name must be a string, got " + name + " [" + (typeof name === "undefined" ? "undefined" : _type_of(name)) + "]");
                        }
                        this._z = getZone(name);
                        if (this._z) {
                            moment4.updateOffset(this, keepTime);
                        } else {
                            logError2("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/.");
                        }
                        return this;
                    }
                    if (this._z) {
                        return this._z.name;
                    }
                };
                function abbrWrap(old) {
                    return function() {
                        if (this._z) {
                            return this._z.abbr(this);
                        }
                        return old.call(this);
                    };
                }
                function resetZoneWrap(old) {
                    return function() {
                        this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                function resetZoneWrap2(old) {
                    return function() {
                        if (arguments.length > 0) this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                fn.zoneName = abbrWrap(fn.zoneName);
                fn.zoneAbbr = abbrWrap(fn.zoneAbbr);
                fn.utc = resetZoneWrap(fn.utc);
                fn.local = resetZoneWrap(fn.local);
                fn.utcOffset = resetZoneWrap2(fn.utcOffset);
                moment4.tz.setDefault = function(name) {
                    if (major < 2 || major === 2 && minor < 9) {
                        logError2("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + moment4.version + ".");
                    }
                    moment4.defaultZone = name ? getZone(name) : null;
                    return moment4;
                };
                var momentProperties = moment4.momentProperties;
                if (Object.prototype.toString.call(momentProperties) === "[object Array]") {
                    momentProperties.push("_z");
                    momentProperties.push("_a");
                } else if (momentProperties) {
                    momentProperties._z = null;
                }
                return moment4;
            });
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/moment-timezone/data/packed/latest.json
    var require_latest = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/moment-timezone/data/packed/latest.json": function(exports, module) {
            module.exports = {
                version: "2024a",
                zones: [
                    "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
                    "Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5",
                    "Africa/Algiers|LMT PMT WET WEST CET CEST|-c.c -9.l 0 -10 -10 -20|01232323232323232454542423234542324|-3bQ0c.c MDA2.P cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5",
                    "Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6",
                    "Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4",
                    "Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5",
                    "Africa/Cairo|LMT EET EEST|-25.9 -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2MBC5.9 1AQM5.9 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0 kSp0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0|15e6",
                    "Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0|32e5",
                    "Africa/Ceuta|LMT WET WEST CET CEST|l.g 0 -10 -10 -20|0121212121212121212121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2M0M0 GdX0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|85e3",
                    "Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0|20e4",
                    "Africa/Johannesburg|LMT SAST SAST SAST|-1Q -1u -20 -30|0123232|-39EpQ qTcm 1Ajdu 1cL0 1cN0 1cL0|84e5",
                    "Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|",
                    "Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5",
                    "Africa/Monrovia|LMT MMT MMT GMT|H.8 H.8 I.u 0|0123|-3ygng.Q 1usM0 28G01.m|11e5",
                    "Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5",
                    "Africa/Sao_Tome|LMT LMT GMT WAT|-q.U A.J 0 -10|01232|-3tooq.U 18aoq.U 4i6N0 2q00|",
                    "Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5",
                    "Africa/Tunis|LMT PMT CET CEST|-E.I -9.l -10 -20|01232323232323232323232323232323232|-3zO0E.I 1cBAv.n 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5",
                    "Africa/Windhoek|LMT +0130 SAST SAST CAT WAT|-18.o -1u -20 -30 -20 -10|012324545454545454545454545454545454545454545454545454|-39Ep8.o qTbC.o 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4",
                    "America/Adak|LMT LMT NST NWT NPT BST BDT AHST HST HDT|-cd.m bK.C b0 a0 a0 b0 a0 a0 a0 90|01234256565656565656565656565656565678989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVzf.p 1EX1d.m 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326",
                    "America/Anchorage|LMT LMT AST AWT APT AHST AHDT YST AKST AKDT|-e0.o 9X.A a0 90 90 a0 90 90 90 80|01234256565656565656565656565656565678989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVxs.n 1EX20.o 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4",
                    "America/Puerto_Rico|LMT AST AWT APT|4o.p 40 30 30|01231|-2Qi7z.z 1IUbz.z 7XT0 iu0|24e5",
                    "America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4",
                    "America/Argentina/Buenos_Aires|LMT CMT -04 -03 -02|3R.M 4g.M 40 30 20|012323232323232323232323232323232323232323234343434343434343|-331U6.c 125cn pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Catamarca|LMT CMT -04 -03 -02|4n.8 4g.M 40 30 20|012323232323232323232323232323232323232323234343434243432343|-331TA.Q 125bR.E pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Cordoba|LMT CMT -04 -03 -02|4g.M 4g.M 40 30 20|012323232323232323232323232323232323232323234343434243434343|-331TH.c 125c0 pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Jujuy|LMT CMT -04 -03 -02|4l.c 4g.M 40 30 20|0123232323232323232323232323232323232323232343434232434343|-331TC.M 125bT.A pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/La_Rioja|LMT CMT -04 -03 -02|4r.o 4g.M 40 30 20|0123232323232323232323232323232323232323232343434342343432343|-331Tw.A 125bN.o pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Mendoza|LMT CMT -04 -03 -02|4z.g 4g.M 40 30 20|012323232323232323232323232323232323232323234343423232432343|-331To.I 125bF.w pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|",
                    "America/Argentina/Rio_Gallegos|LMT CMT -04 -03 -02|4A.Q 4g.M 40 30 20|012323232323232323232323232323232323232323234343434343432343|-331Tn.8 125bD.U pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Salta|LMT CMT -04 -03 -02|4l.E 4g.M 40 30 20|0123232323232323232323232323232323232323232343434342434343|-331TC.k 125bT.8 pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/San_Juan|LMT CMT -04 -03 -02|4y.4 4g.M 40 30 20|0123232323232323232323232323232323232323232343434342343432343|-331Tp.U 125bG.I pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|",
                    "America/Argentina/San_Luis|LMT CMT -04 -03 -02|4p.o 4g.M 40 30 20|0123232323232323232323232323232323232323232343434232323432323|-331Ty.A 125bP.o pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|",
                    "America/Argentina/Tucuman|LMT CMT -04 -03 -02|4k.Q 4g.M 40 30 20|01232323232323232323232323232323232323232323434343424343234343|-331TD.8 125bT.U pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|",
                    "America/Argentina/Ushuaia|LMT CMT -04 -03 -02|4x.c 4g.M 40 30 20|012323232323232323232323232323232323232323234343434343432343|-331Tq.M 125bH.A pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|",
                    "America/Asuncion|LMT AMT -04 -03|3O.E 3O.E 40 30|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-3eLw9.k 1FGo0 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0|28e5",
                    "America/Panama|LMT CMT EST|5i.8 5j.A 50|012|-3eLuF.Q Iy01.s|15e5",
                    "America/Bahia_Banderas|LMT MST CST MDT PST CDT|71 70 60 60 80 50|0121312141313131313131313131313131313152525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|84e3",
                    "America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5",
                    "America/Barbados|LMT AST ADT -0330|3W.t 40 30 3u|0121213121212121|-2m4k1.v 1eAN1.v RB0 1Bz0 Op0 1rb0 11d0 1jJc0 IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4",
                    "America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5",
                    "America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3",
                    "America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2",
                    "America/Bogota|LMT BMT -05 -04|4U.g 4U.g 50 40|01232|-3sTv3.I 1eIo0 38yo3.I 1PX0|90e5",
                    "America/Boise|LMT PST PDT MST MWT MPT MDT|7I.N 80 70 70 60 60 60|01212134536363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-3tFE0 1nEe0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4",
                    "America/Cambridge_Bay|-00 MST MWT MPT MDT CST CDT EST|0 70 60 60 60 60 50 50|012314141414141414141414141414141414141414141414141414141414567541414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-21Jc0 RO90 8x20 ix0 14HB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2",
                    "America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4",
                    "America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4",
                    "America/Caracas|LMT CMT -0430 -04|4r.I 4r.E 4u 40|012323|-3eLvw.g ROnX.U 28KM2.k 1IwOu kqo0|29e5",
                    "America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3",
                    "America/Chicago|LMT CST CDT EST CWT CPT|5O.A 60 50 50 50 50|012121212121212121212121212121212121213121212121214512121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFG0 1nEe0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5",
                    "America/Chihuahua|LMT MST CST MDT CDT|74.k 70 60 60 50|0121312424231313131313131313131313131313131313131313131313132|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|81e4",
                    "America/Ciudad_Juarez|LMT MST CST MDT CDT|75.U 70 60 60 50|01213124242313131313131313131313131313131313131313131313131321313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Costa_Rica|LMT SJMT CST CDT|5A.d 5A.d 60 50|01232323232|-3eLun.L 1fyo0 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5",
                    "America/Phoenix|LMT MST MDT MWT|7s.i 70 60 60|012121313121|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5",
                    "America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4",
                    "America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8",
                    "America/Dawson_Creek|LMT PST PDT PWT PPT MST|80.U 80 70 70 70 70|01213412121212121212121212121212121212121212121212121212125|-3tofX.4 1nspX.4 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3",
                    "America/Dawson|LMT YST YDT YWT YPT YDDT PST PDT MST|9h.E 90 80 80 80 70 80 70 70|0121213415167676767676767676767676767676767676767676767676767676767676767676767676767676767678|-2MSeG.k GWpG.k 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2",
                    "America/Denver|LMT MST MDT MWT MPT|6X.U 70 60 60 60|012121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFF0 1nEe0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5",
                    "America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5",
                    "America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5",
                    "America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3",
                    "America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5",
                    "America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 4Q00 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5",
                    "America/Fort_Nelson|LMT PST PDT PWT PPT MST|8a.L 80 70 70 70 70|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121215|-3tofN.d 1nspN.d 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2",
                    "America/Fort_Wayne|LMT CST CDT CWT CPT EST EDT|5I.C 60 50 50 50 50 40|0121212134121212121212121212151565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5",
                    "America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3",
                    "America/Godthab|LMT -03 -02 -01|3q.U 30 20 10|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 2so0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|17e3",
                    "America/Goose_Bay|LMT NST NDT NST NDT NWT NPT AST ADT ADDT|41.E 3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|0121343434343434356343434343434343434343434343434343434343437878787878787878787878787878787878787878787879787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787|-3tojW.k 1nspt.c 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2",
                    "America/Grand_Turk|LMT KMT EST EDT AST|4I.w 57.a 50 40 40|01232323232323232323232323232323232323232323232323232323232323232323232323243232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3eLvf.s RK0m.C 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2",
                    "America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5",
                    "America/Guayaquil|LMT QMT -05 -04|5j.k 5e 50 40|01232|-3eLuE.E 1DNzS.E 2uILK rz0|27e5",
                    "America/Guyana|LMT -04 -0345 -03|3Q.D 40 3J 30|01231|-2mf87.l 8Hc7.l 2r7bJ Ey0f|80e4",
                    "America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4",
                    "America/Havana|LMT HMT CST CDT|5t.s 5t.A 50 40|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3eLuu.w 1qx00.8 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5",
                    "America/Hermosillo|LMT MST CST MDT PST|7n.Q 70 60 60 80|0121312141313131|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4",
                    "America/Indiana/Knox|LMT CST CDT CWT CPT EST|5K.u 60 50 50 50 50|01212134121212121212121212121212121212151212121212121212121212121212121212121212121212121252121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Marengo|LMT CST CDT CWT CPT EST EDT|5J.n 60 50 50 50 50 40|01212134121212121212121215656565656525656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Petersburg|LMT CST CDT CWT CPT EST EDT|5N.7 60 50 50 50 50 40|012121341212121212121212121215121212121212121212121252125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Tell_City|LMT CST CDT CWT CPT EST EDT|5L.3 60 50 50 50 50 40|012121341212121212121212121512165652121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vevay|LMT CST CDT CWT CPT EST EDT|5E.g 60 50 50 50 50 40|0121213415656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vincennes|LMT CST CDT CWT CPT EST EDT|5O.7 60 50 50 50 50 40|012121341212121212121212121212121565652125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Winamac|LMT CST CDT CWT CPT EST EDT|5K.p 60 50 50 50 50 40|012121341212121212121212121212121212121565652165656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Inuvik|-00 PST PDT MDT MST|0 80 70 60 70|01212121212121213434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-FnA0 L3K0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2",
                    "America/Iqaluit|-00 EWT EPT EST EDT CST CDT|0 40 40 50 40 60 50|0123434343434343434343434343434343434343434343434343434343456343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-16K00 7nX0 iv0 14HB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2",
                    "America/Jamaica|LMT KMT EST EDT|57.a 57.a 50 40|01232323232323232323232|-3eLuQ.O RK00 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4",
                    "America/Juneau|LMT LMT PST PWT PPT PDT YDT YST AKST AKDT|-f2.j 8V.F 80 70 70 70 80 90 90 80|0123425252525252525252525252625252578989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVwq.s 1EX12.j 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3",
                    "America/Kentucky/Louisville|LMT CST CDT CWT CPT EST EDT|5H.2 60 50 50 50 50 40|01212121213412121212121212121212121212565656565656525656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Kentucky/Monticello|LMT CST CDT CWT CPT EST EDT|5D.o 60 50 50 50 50 40|01212134121212121212121212121212121212121212121212121212121212121212121212565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/La_Paz|LMT CMT BST -04|4w.A 4w.A 3w.A 40|0123|-3eLvr.o 1FIo0 13b0|19e5",
                    "America/Lima|LMT LMT -05 -04|58.c 58.A 50 40|01232323232323232|-3eLuP.M JcM0.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6",
                    "America/Los_Angeles|LMT PST PDT PWT PPT|7Q.W 80 70 70 70|0121213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFE0 1nEe0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6",
                    "America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4",
                    "America/Managua|LMT MMT CST EST CDT|5J.8 5J.c 60 50 50|01232424232324242|-3eLue.Q 1Mhc0.4 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5",
                    "America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5",
                    "America/Martinique|LMT FFMT AST ADT|44.k 44.k 40 30|01232|-3eLvT.E PTA0 2LPbT.E 19X0|39e4",
                    "America/Matamoros|LMT CST CDT|6u 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4",
                    "America/Mazatlan|LMT MST CST MDT PST|75.E 70 60 60 80|0121312141313131313131313131313131313131313131313131313131313131|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|44e4",
                    "America/Menominee|LMT CST CDT CWT CPT EST|5O.r 60 50 50 50 50|012121341212152121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3pdG9.x 1jce9.x 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2",
                    "America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|11e5",
                    "America/Metlakatla|LMT LMT PST PWT PPT PDT AKST AKDT|-fd.G 8K.i 80 70 70 70 90 80|0123425252525252525252525252525252526767672676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-48Pzs.L 1jVwf.5 1EX1d.G 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2",
                    "America/Mexico_City|LMT MST CST MDT CDT CWT|6A.A 70 60 60 50 50|012131242425242424242424242424242424242424242424242424242424242424242|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|20e6",
                    "America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mxUf.k 2LHcf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2",
                    "America/Moncton|LMT EST AST ADT AWT APT|4j.8 50 40 30 30 30|0123232323232323232323245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3txvE.Q J4ME.Q CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3",
                    "America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|41e5",
                    "America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5",
                    "America/Toronto|LMT EST EDT EWT EPT|5h.w 50 40 40 40|012121212121212121212121212121212121212121212123412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-32B6G.s UFdG.s 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1qL0 11B0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5",
                    "America/New_York|LMT EST EDT EWT EPT|4U.2 50 40 40 40|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFH0 1nEe0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6",
                    "America/Nome|LMT LMT NST NWT NPT BST BDT YST AKST AKDT|-cW.m b1.C b0 a0 a0 b0 a0 90 90 80|01234256565656565656565656565656565678989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVyu.p 1EX1W.m 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2",
                    "America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2",
                    "America/North_Dakota/Beulah|LMT MST MDT MWT MPT CST CDT|6L.7 70 60 60 60 60 50|0121213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/Center|LMT MST MDT MWT MPT CST CDT|6J.c 70 60 60 60 60 50|0121213412121212121212121212121212121212121212121212121212125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/New_Salem|LMT MST MDT MWT MPT CST CDT|6J.D 70 60 60 60 60 50|0121213412121212121212121212121212121212121212121212121212121212121212121212121212565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Ojinaga|LMT MST CST MDT CDT|6V.E 70 60 60 50|0121312424231313131313131313131313131313131313131313131313132424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3",
                    "America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4",
                    "America/Port-au-Prince|LMT PPMT EST EDT|4N.k 4N 50 40|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3eLva.E 15RLX.E 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4",
                    "America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4",
                    "America/Punta_Arenas|LMT SMT -05 -04 -03|4H.E 4G.J 50 40 30|01213132323232323232343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-3eLvg.k MJbX.5 fJAh.f 5knG.J 1Vzh.f jRAG.J 1pbh.f 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|",
                    "America/Winnipeg|LMT CST CDT CWT CPT|6s.A 60 50 50 50|0121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3kLtv.o 1a3bv.o WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4",
                    "America/Rankin_Inlet|-00 CST CDT EST|0 60 50 50|01212121212121212121212121212121212121212121212121212121212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-vDc0 Bjk0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2",
                    "America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5",
                    "America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4",
                    "America/Resolute|-00 CST CDT EST|0 60 50 50|01212121212121212121212121212121212121212121212121212121212321212121212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-SnA0 103I0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229",
                    "America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4",
                    "America/Santiago|LMT SMT -05 -04 -03|4G.J 4G.J 50 40 30|0121313232323232323432343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-3eLvh.f MJc0 fJAh.f 5knG.J 1Vzh.f jRAG.J 1pbh.f 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 hX0 1q10 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0|62e5",
                    "America/Santo_Domingo|LMT SDMT EST EDT -0430 AST|4D.A 4E 50 40 4u 40|012324242424242525|-3eLvk.o 1Jic0.o 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5",
                    "America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6",
                    "America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|012132323232323232323232323232323232323232323232323232323232323232323232323232323232323232121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 2pA0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|452",
                    "America/Sitka|LMT LMT PST PWT PPT PDT YST AKST AKDT|-eW.L 91.d 80 70 70 70 90 90 80|0123425252525252525252525252525252567878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787|-48Pzs.L 1jVwu 1EX0W.L 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2",
                    "America/St_Johns|LMT NST NDT NST NDT NWT NPT NDDT|3u.Q 3u.Q 2u.Q 3u 2u 2u 2u 1u|012121212121212121212121212121212121213434343434343435634343434343434343434343434343434343434343434343434343434343434343434343434343434343437343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3tokt.8 1l020 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4",
                    "America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3",
                    "America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5",
                    "America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656",
                    "America/Vancouver|LMT PST PDT PWT PPT|8c.s 80 70 70 70|01213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tofL.w 1nspL.w 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Whitehorse|LMT YST YDT YWT YPT YDDT PST PDT MST|90.c 90 80 80 80 70 80 70 70|0121213415167676767676767676767676767676767676767676767676767676767676767676767676767676767678|-2MSeX.M GWpX.M 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 LA0 ytd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3",
                    "America/Yakutat|LMT LMT YST YWT YPT YDT AKST AKDT|-eF.5 9i.T 90 80 80 80 90 80|0123425252525252525252525252525252526767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-48Pzs.L 1jVwL.G 1EX1F.5 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642",
                    "Antarctica/Casey|-00 +08 +11|0 -80 -b0|012121212121212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01 14kX 1lf1 14kX 1lf1 13bX|10",
                    "Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70",
                    "Pacific/Port_Moresby|LMT PMMT +10|-9M.E -9M.w -a0|012|-3D8VM.E AvA0.8|25e4",
                    "Antarctica/Macquarie|-00 AEST AEDT|0 -a0 -b0|0121012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2OPc0 Fb40 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|1",
                    "Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60",
                    "Pacific/Auckland|LMT NZMT NZST NZST NZDT|-bD.4 -bu -cu -c0 -d0|012131313131313131313131313134343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-46jLD.4 2nEO9.4 Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00|14e5",
                    "Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40",
                    "Antarctica/Rothera|-00 -03|0 30|01|gOo0|130",
                    "Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5",
                    "Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|40",
                    "Antarctica/Vostok|-00 +07 +05|0 -70 -50|01012|-tjA0 1rWh0 1Nj0 1aTv0|25",
                    "Europe/Berlin|LMT CET CEST CEMT|-R.s -10 -20 -30|012121212121212321212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-36RcR.s UbWR.s 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|41e5",
                    "Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|0123232323232323232323212323232323232323232323232321|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 L4m0|15e5",
                    "Asia/Amman|LMT EET EEST +03|-2n.I -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212123|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00|25e5",
                    "Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3",
                    "Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4",
                    "Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4",
                    "Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4",
                    "Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|",
                    "Asia/Baghdad|LMT BMT +03 +04|-2V.E -2V.A -30 -40|0123232323232323232323232323232323232323232323232323232|-3eLCV.E 18ao0.4 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5",
                    "Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4",
                    "Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5",
                    "Asia/Bangkok|LMT BMT +07|-6G.4 -6G.4 -70|012|-3D8SG.4 1C000|15e6",
                    "Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|",
                    "Asia/Beirut|LMT EET EEST|-2m -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3D8Om 1BWom 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0|22e5",
                    "Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4",
                    "Asia/Brunei|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|42e4",
                    "Asia/Kolkata|LMT HMT MMT IST +0630|-5R.s -5R.k -5l.a -5u -6u|01234343|-4Fg5R.s BKo0.8 1rDcw.a 1r2LP.a 1un0 HB0 7zX0|15e6",
                    "Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4",
                    "Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3",
                    "Asia/Shanghai|LMT CST CDT|-85.H -80 -90|012121212121212121212121212121|-2M0U5.H Iuo5.H 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6",
                    "Asia/Colombo|LMT MMT +0530 +06 +0630|-5j.o -5j.w -5u -60 -6u|012342432|-3D8Rj.o 13inX.Q 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5",
                    "Asia/Dhaka|LMT HMT +0630 +0530 +06 +07|-61.E -5R.k -6u -5u -60 -70|01232454|-3eLG1.E 26008.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6",
                    "Asia/Damascus|LMT EET EEST +03|-2p.c -20 -30 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212123|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|26e5",
                    "Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4",
                    "Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5",
                    "Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4",
                    "Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "Asia/Gaza|LMT EET EEST IST IDT|-2h.Q -20 -30 -20 -30|0121212121212121212121212121212121234343434343434343434343434343431212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2MBCh.Q 1Azeh.Q MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1lb0 14p0 1in0 17d0 1cL0 1cN0 19X0 1fB0 14n0 jB0 2L0 11B0 WL0 gN0 8n0 11B0 TX0 gN0 bb0 11B0 On0 jB0 dX0 11B0 Lz0 gN0 mn0 WN0 IL0 gN0 pb0 WN0 Db0 jB0 rX0 11B0 xz0 gN0 xz0 11B0 rX0 jB0 An0 11B0 pb0 gN0 IL0 WN0 mn0 gN0 Lz0 WN0 gL0 jB0 On0 11B0 bb0 gN0 TX0 11B0 5z0 jB0 WL0 11B0 2L0 jB0 11z0 1ip0 19X0 1cN0 1cL0 17d0 1in0 14p0 1lb0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1nX0 14p0 1in0 17d0 1fz0 1a10 19X0 1fB0 17b0 gN0 2L0 WN0 14n0 gN0 5z0 WN0 WL0 jB0 8n0 11B0 Rb0 gN0 dX0 11B0 Lz0 jB0 gL0 11B0 IL0 jB0 mn0 WN0 FX0 gN0 rX0 WN0 An0 jB0 uL0 11B0 uL0 gN0 An0 11B0 rX0 gN0 Db0 11B0 mn0 jB0 FX0 11B0 jz0 gN0 On0 WN0 dX0 jB0 Rb0 WN0 bb0 jB0 TX0 11B0 5z0 gN0 11z0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0|18e5",
                    "Asia/Hebron|LMT EET EEST IST IDT|-2k.n -20 -30 -20 -30|012121212121212121212121212121212123434343434343434343434343434343121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2MBCk.n 1Azek.n MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1lb0 14p0 1in0 17d0 1cL0 1cN0 19X0 1fB0 14n0 jB0 2L0 11B0 WL0 gN0 8n0 11B0 TX0 gN0 bb0 11B0 On0 jB0 dX0 11B0 Lz0 gN0 mn0 WN0 IL0 gN0 pb0 WN0 Db0 jB0 rX0 11B0 xz0 gN0 xz0 11B0 rX0 jB0 An0 11B0 pb0 gN0 IL0 WN0 mn0 gN0 Lz0 WN0 gL0 jB0 On0 11B0 bb0 gN0 TX0 11B0 5z0 jB0 WL0 11B0 2L0 jB0 11z0 1ip0 19X0 1cN0 1cL0 17d0 1in0 14p0 1lb0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1nX0 14p0 1in0 17d0 1fz0 1a10 19X0 1fB0 17b0 gN0 2L0 WN0 14n0 gN0 5z0 WN0 WL0 jB0 8n0 11B0 Rb0 gN0 dX0 11B0 Lz0 jB0 gL0 11B0 IL0 jB0 mn0 WN0 FX0 gN0 rX0 WN0 An0 jB0 uL0 11B0 uL0 gN0 An0 11B0 rX0 gN0 Db0 11B0 mn0 jB0 FX0 11B0 jz0 gN0 On0 WN0 dX0 jB0 Rb0 WN0 bb0 jB0 TX0 11B0 5z0 gN0 11z0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0|25e4",
                    "Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.u -76.u -70 -80 -90|0123423232|-2yC76.u bK00 1h7b6.u 5lz0 18o0 3Oq0 k5c0 aVX0 BAM0|90e5",
                    "Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5",
                    "Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3",
                    "Asia/Irkutsk|LMT IMT +07 +08 +09|-6V.5 -6V.5 -70 -80 -90|012343434343434343434343234343434343434343434343434343434343434343|-3D8SV.5 1Bxc0 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Europe/Istanbul|LMT IMT EET EEST +03 +04|-1T.Q -1U.U -20 -30 -30 -40|01232323232323232323232323232323232323232323232345423232323232323232323232323232323232323232323232323232323232323234|-3D8NT.Q 1ePXW.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6",
                    "Asia/Jakarta|LMT BMT +0720 +0730 +09 +08 WIB|-77.c -77.c -7k -7u -90 -80 -70|012343536|-49jH7.c 2hiLL.c luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6",
                    "Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4",
                    "Asia/Jerusalem|LMT JMT IST IDT IDDT|-2k.S -2k.E -20 -30 -40|012323232323232432323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3D8Ok.S 1wvA0.e SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0|81e4",
                    "Asia/Kabul|LMT +04 +0430|-4A.M -40 -4u|012|-3eLEA.M 2dTcA.M|46e5",
                    "Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4",
                    "Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6",
                    "Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5",
                    "Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5",
                    "Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2",
                    "Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5",
                    "Asia/Kuala_Lumpur|LMT SMT +07 +0720 +0730 +09 +08|-6T.p -6T.p -70 -7k -7u -90 -80|01234546|-2M0ST.p aIM0 17anT.p l5XE 17bO 8Fyu 1so10|71e5",
                    "Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4",
                    "Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3",
                    "Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5",
                    "Asia/Manila|LMT LMT PST PDT JST|fU -84 -80 -90 -90|01232423232|-54m84 2clc0 1vfc4 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6",
                    "Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|32e4",
                    "Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4",
                    "Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5",
                    "Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5",
                    "Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4",
                    "Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4",
                    "Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5",
                    "Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 Mv90|",
                    "Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4",
                    "Asia/Rangoon|LMT RMT +0630 +09|-6o.L -6o.L -6u -90|01232|-3D8So.L 1BnA0 SmnS.L 7j9u|48e5",
                    "Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4",
                    "Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4",
                    "Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6",
                    "Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2",
                    "Asia/Taipei|LMT CST JST CDT|-86 -80 -90 -90|012131313131313131313131313131313131313131|-30bk6 1FDc6 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5",
                    "Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5",
                    "Asia/Tbilisi|LMT TBMT +03 +04 +05|-2X.b -2X.b -30 -40 -50|01234343434343434343434323232343434343434343434323|-3D8OX.b 1LUM0 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5",
                    "Asia/Tehran|LMT TMT +0330 +0430 +04 +05|-3p.I -3p.I -3u -4u -40 -50|012345423232323232323232323232323232323232323232323232323232323232323232|-2btDp.I Llc0 1FHaT.I 1pc0 120u Rc0 XA0 Wou JX0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0|14e6",
                    "Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3",
                    "Asia/Tokyo|LMT JST JDT|-9i.X -90 -a0|0121212121|-3jE90 2qSo0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6",
                    "Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5",
                    "Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5",
                    "Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2",
                    "Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4",
                    "Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5",
                    "Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5",
                    "Atlantic/Azores|LMT HMT -02 -01 +00 WET|1G.E 1S.w 20 10 0 0|01232323232323232323232323232323232323232323234323432343234323232323232323232323232323232323232323232343434343434343434343434343434345434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3tomh.k 18aoh.k aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|25e4",
                    "Atlantic/Bermuda|LMT BMT BST AST ADT|4j.i 4j.i 3j.i 40 30|0121213434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3eLvE.G 16mo0 1bb0 1i10 11X0 ru30 thbE.G 1PX0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3",
                    "Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|54e4",
                    "Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4",
                    "Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|49e3",
                    "Atlantic/Madeira|LMT FMT -01 +00 +01 WET WEST|17.A 17.A 10 0 -10 0 -10|01232323232323232323232323232323232323232323234323432343234323232323232323232323232323232323232323232565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tomQ.o 18anQ.o aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e4",
                    "Atlantic/South_Georgia|LMT -02|2q.8 20|01|-3eLxx.Q|30",
                    "Atlantic/Stanley|LMT SMT -04 -03 -02|3P.o 3P.o 40 30 20|0123232323232323434323232323232323232323232323232323232323232323232323|-3eLw8.A S200 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2",
                    "Australia/Sydney|LMT AEST AEDT|-a4.Q -a0 -b0|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-32oW4.Q RlC4.Q xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|40e5",
                    "Australia/Adelaide|LMT ACST ACST ACDT|-9e.k -90 -9u -au|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-32oVe.k ak0e.k H1Bu xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|11e5",
                    "Australia/Brisbane|LMT AEST AEDT|-ac.8 -a0 -b0|012121212121212121|-32Bmc.8 Ry2c.8 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5",
                    "Australia/Broken_Hill|LMT AEST ACST ACST ACDT|-9p.M -a0 -90 -9u -au|0123434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-32oVp.M 3Lzp.M 6wp0 H1Bu xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|18e3",
                    "Australia/Hobart|LMT AEST AEDT|-9N.g -a0 -b0|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-3109N.g Pk1N.g 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|21e4",
                    "Australia/Darwin|LMT ACST ACST ACDT|-8H.k -90 -9u -au|01232323232|-32oUH.k ajXH.k H1Bu xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4",
                    "Australia/Eucla|LMT +0845 +0945|-8z.s -8J -9J|01212121212121212121|-30nIz.s PkpO.s xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368",
                    "Australia/Lord_Howe|LMT AEST +1030 +1130 +11|-aA.k -a0 -au -bu -b0|01232323232424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424|-32oWA.k 3tzAA.k 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu|347",
                    "Australia/Lindeman|LMT AEST AEDT|-9T.U -a0 -b0|0121212121212121212121|-32BlT.U Ry1T.U xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10",
                    "Australia/Melbourne|LMT AEST AEDT|-9D.Q -a0 -b0|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-32oVD.Q RlBD.Q xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|39e5",
                    "Australia/Perth|LMT AWST AWDT|-7H.o -80 -90|01212121212121212121|-30nHH.o PkpH.o xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5",
                    "CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "Pacific/Easter|LMT EMT -07 -06 -05|7h.s 7h.s 70 60 50|0123232323232323232323232323234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-3eLsG.w 1HRc0 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0|30e2",
                    "CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "Europe/Dublin|LMT DMT IST GMT BST IST|p.l p.l -y.D 0 -10 -10|012343434343435353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353|-3BHby.D 1ra20 Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "EST|EST|50|0||",
                    "EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Etc/GMT-0|GMT|0|0||",
                    "Etc/GMT-1|+01|-10|0||",
                    "Etc/GMT-10|+10|-a0|0||",
                    "Etc/GMT-11|+11|-b0|0||",
                    "Etc/GMT-12|+12|-c0|0||",
                    "Etc/GMT-13|+13|-d0|0||",
                    "Etc/GMT-14|+14|-e0|0||",
                    "Etc/GMT-2|+02|-20|0||",
                    "Etc/GMT-3|+03|-30|0||",
                    "Etc/GMT-4|+04|-40|0||",
                    "Etc/GMT-5|+05|-50|0||",
                    "Etc/GMT-6|+06|-60|0||",
                    "Etc/GMT-7|+07|-70|0||",
                    "Etc/GMT-8|+08|-80|0||",
                    "Etc/GMT-9|+09|-90|0||",
                    "Etc/GMT+1|-01|10|0||",
                    "Etc/GMT+10|-10|a0|0||",
                    "Etc/GMT+11|-11|b0|0||",
                    "Etc/GMT+12|-12|c0|0||",
                    "Etc/GMT+2|-02|20|0||",
                    "Etc/GMT+3|-03|30|0||",
                    "Etc/GMT+4|-04|40|0||",
                    "Etc/GMT+5|-05|50|0||",
                    "Etc/GMT+6|-06|60|0||",
                    "Etc/GMT+7|-07|70|0||",
                    "Etc/GMT+8|-08|80|0||",
                    "Etc/GMT+9|-09|90|0||",
                    "Etc/UTC|UTC|0|0||",
                    "Europe/Brussels|LMT BMT WET CET CEST WEST|-h.u -h.u 0 -10 -20 -10|012343434325252525252525252525252525252525252525252525434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3D8Mh.u u1Ah.u SO00 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|21e5",
                    "Europe/Andorra|LMT WET CET CEST|-6.4 0 -10 -20|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2M0M6.4 1Pnc6.4 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|79e3",
                    "Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5",
                    "Europe/Athens|LMT AMT EET EEST CEST CET|-1y.Q -1y.Q -20 -30 -20 -10|0123234545232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-30SNy.Q OMM1 CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|35e5",
                    "Europe/London|LMT GMT BST BDST|1.f 0 -10 -20|01212121212121212121212121212121212121212121212121232323232321212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-4VgnW.J 2KHdW.J Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|10e6",
                    "Europe/Belgrade|LMT CET CEST|-1m -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3topm 2juLm 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Prague|LMT PMT CET CEST GMT|-V.I -V.I -10 -20 0|0123232323232323232423232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-4QbAV.I 1FDc0 XPaV.I 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|13e5",
                    "Europe/Bucharest|LMT BMT EET EEST|-1I.o -1I.o -20 -30|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3awpI.o 1AU00 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|19e5",
                    "Europe/Budapest|LMT CET CEST|-1g.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3cK1g.k 124Lg.k 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|17e5",
                    "Europe/Zurich|LMT BMT CET CEST|-y.8 -t.K -10 -20|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-4HyMy.8 1Dw04.m 1SfAt.K 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|38e4",
                    "Europe/Chisinau|LMT CMT BMT EET EEST CEST CET MSK MSD|-1T.k -1T -1I.o -20 -30 -20 -10 -30 -40|0123434343434343434345656578787878787878787878434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3D8NT.k 1wNA0.k wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|67e4",
                    "Europe/Gibraltar|LMT GMT BST BDST CET CEST|l.o 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123232323232121232121212121212121212145454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-3BHbC.A 1ra1C.A Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|30e3",
                    "Europe/Helsinki|LMT HMT EET EEST|-1D.N -1D.N -20 -30|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3H0ND.N 1Iu00 OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Kaliningrad|LMT CET CEST EET EEST MSK MSD +03|-1m -10 -20 -20 -30 -30 -40 -30|012121212121212343565656565656565654343434343434343434343434343434343434343434373|-36Rdm UbXm 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4",
                    "Europe/Kiev|LMT KMT EET MSK CEST CET MSD EEST|-22.4 -22.4 -20 -30 -20 -10 -40 -30|01234545363636363636363636367272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-3D8O2.4 1LUM0 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o10 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|34e5",
                    "Europe/Kirov|LMT +03 +04 +05 MSD MSK MSK|-3i.M -30 -40 -50 -40 -30 -40|0123232323232323232454524545454545454545454545454545454545454565|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 2pz0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4",
                    "Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5",
                    "Europe/Madrid|LMT WET WEST WEMT CET CEST|e.I 0 -10 -20 -10 -20|0121212121212121212321454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2M0M0 G5z0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|62e5",
                    "Europe/Malta|LMT CET CEST|-W.4 -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-35rcW.4 SXzW.4 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Minsk|LMT MMT EET MSK CEST CET MSD EEST +03|-1O.g -1O -20 -30 -20 -10 -40 -30 -30|012345454363636363636363636372727272727272727272727272727272727272728|-3D8NO.g 1LUM0.g eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5",
                    "Europe/Paris|LMT PMT WET WEST CEST CET WEMT|-9.l -9.l 0 -10 -20 -10 -20|01232323232323232323232323232323232323232323232323234545463654545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-3bQ09.l MDA0 cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|11e6",
                    "Europe/Moscow|LMT MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|01232434565756865656565656565656565698656565656565656565656565656565656565656a6|-3D8Ou.h 1sQM0 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6",
                    "Europe/Riga|LMT RMT LST EET MSK CEST CET MSD EEST|-1A.y -1A.y -2A.y -20 -30 -20 -10 -40 -30|0121213456565647474747474747474838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383|-3D8NA.y 1xde0 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|64e4",
                    "Europe/Rome|LMT RMT CET CEST|-N.U -N.U -10 -20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-4aU0N.U 15snN.U T000 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|39e5",
                    "Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5",
                    "Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|",
                    "Europe/Simferopol|LMT SMT EET MSK CEST CET MSD EEST MSK|-2g.o -2g -20 -30 -20 -10 -40 -30 -40|0123454543636363636363636363272727636363727272727272727272727272727272727283|-3D8Og.o 1LUM0.o eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eN0 1cM0 1cM0 1cM0 1cM0 dV0 WO0 1cM0 1cM0 1fy0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4",
                    "Europe/Sofia|LMT IMT EET CET CEST EEST|-1x.g -1U.U -20 -10 -20 -30|0123434325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-3D8Nx.g AiLA.k 1UFeU.U WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Tallinn|LMT TMT CET CEST EET MSK MSD EEST|-1D -1D -10 -20 -20 -30 -40 -30|0123214532323565656565656565657474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474|-3D8ND 1wI00 teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|41e4",
                    "Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5",
                    "Europe/Vienna|LMT CET CEST|-15.l -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-36Rd5.l UbX5.l 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|18e5",
                    "Europe/Vilnius|LMT WMT KMT CET EET MSK CEST MSD EEST|-1F.g -1o -1z.A -10 -20 -30 -20 -40 -30|0123435636365757575757575757584848484848484848463648484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484|-3D8NF.g 1u5Ah.g 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|54e4",
                    "Europe/Volgograd|LMT +03 +04 +05 MSD MSK MSK|-2V.E -30 -40 -50 -40 -30 -40|012323232323232324545452454545454545454545454545454545454545456525|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1fA0 1cM0 2pz0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5",
                    "Europe/Warsaw|LMT WMT CET CEST EET EEST|-1o -1o -10 -20 -20 -30|0123232345423232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3D8No 1qDA0 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|17e5",
                    "HST|HST|a0|0||",
                    "Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2",
                    "Indian/Maldives|LMT MMT +05|-4S -4S -50|012|-3D8QS 3eLA0|35e4",
                    "Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4",
                    "Pacific/Kwajalein|LMT +11 +10 +09 -12 +12|-b9.k -b0 -a0 -90 c0 -c0|0123145|-2M0X9.k 1rDA9.k akp0 6Up0 12ry0 Wan0|14e3",
                    "MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "MST|MST|70|0||",
                    "MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Pacific/Chatham|LMT +1215 +1245 +1345|-cd.M -cf -cJ -dJ|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-46jMd.M 37RbW.M 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00|600",
                    "Pacific/Apia|LMT LMT -1130 -11 -10 +14 +13|-cx.4 bq.U bu b0 a0 -e0 -d0|012343456565656565656565656|-38Fox.4 J1A0 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3",
                    "Pacific/Bougainville|LMT PMMT +10 +09 +11|-am.g -9M.w -a0 -90 -b0|012324|-3D8Wm.g AvAx.I 1TCLM.w 7CN0 2MQp0|18e4",
                    "Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3",
                    "Pacific/Enderbury|-00 -12 -11 +13|0 c0 b0 -d0|0123|-1iIo0 1GsA0 B7X0|1",
                    "Pacific/Fakaofo|LMT -11 +13|bo.U b0 -d0|012|-2M0Az.4 4ufXz.4|483",
                    "Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|012121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0|88e4",
                    "Pacific/Tarawa|LMT +12|-bw.4 -c0|01|-2M0Xw.4|29e3",
                    "Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3",
                    "Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125",
                    "Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4",
                    "Pacific/Guam|LMT LMT GST +09 GDT ChST|el -9D -a0 -90 -b0 -a0|0123242424242424242425|-54m9D 2glc0 1DFbD 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4",
                    "Pacific/Honolulu|LMT HST HDT HWT HPT HST|av.q au 9u 9u 9u a0|01213415|-3061s.y 1uMdW.y 8x0 lef0 8wWu iAu 46p0|37e4",
                    "Pacific/Kiritimati|LMT -1040 -10 +14|at.k aE a0 -e0|0123|-2M0Bu.E 3bIMa.E B7Xk|51e2",
                    "Pacific/Kosrae|LMT LMT +11 +09 +10 +12|d8.4 -aP.U -b0 -90 -a0 -c0|0123243252|-54maP.U 2glc0 xsnP.U axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2",
                    "Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2",
                    "Pacific/Pago_Pago|LMT LMT SST|-cB.c bm.M b0|012|-38FoB.c J1A0|37e2",
                    "Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3",
                    "Pacific/Niue|LMT -1120 -11|bj.E bk b0|012|-FScE.k suo0.k|12e2",
                    "Pacific/Norfolk|LMT +1112 +1130 +1230 +11 +12|-bb.Q -bc -bu -cu -b0 -c0|0123245454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2M0Xb.Q 21ILX.Q W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|25e4",
                    "Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3",
                    "Pacific/Palau|LMT LMT +09|f2.4 -8V.U -90|012|-54m8V.U 2glc0|21e3",
                    "Pacific/Pitcairn|LMT -0830 -08|8E.k 8u 80|012|-2M0Dj.E 3UVXN.E|56",
                    "Pacific/Rarotonga|LMT LMT -1030 -0930 -10|-dk.U aD.4 au 9u a0|01234343434343434343434343434|-2Otpk.U 28zc0 13tbO.U IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3",
                    "Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4",
                    "Pacific/Tongatapu|LMT +1220 +13 +14|-cj.c -ck -d0 -e0|01232323232|-XbMj.c BgLX.c 1yndk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3",
                    "PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|"
                ],
                links: [
                    "Africa/Abidjan|Africa/Accra",
                    "Africa/Abidjan|Africa/Bamako",
                    "Africa/Abidjan|Africa/Banjul",
                    "Africa/Abidjan|Africa/Conakry",
                    "Africa/Abidjan|Africa/Dakar",
                    "Africa/Abidjan|Africa/Freetown",
                    "Africa/Abidjan|Africa/Lome",
                    "Africa/Abidjan|Africa/Nouakchott",
                    "Africa/Abidjan|Africa/Ouagadougou",
                    "Africa/Abidjan|Africa/Timbuktu",
                    "Africa/Abidjan|Atlantic/Reykjavik",
                    "Africa/Abidjan|Atlantic/St_Helena",
                    "Africa/Abidjan|Iceland",
                    "Africa/Cairo|Egypt",
                    "Africa/Johannesburg|Africa/Maseru",
                    "Africa/Johannesburg|Africa/Mbabane",
                    "Africa/Lagos|Africa/Bangui",
                    "Africa/Lagos|Africa/Brazzaville",
                    "Africa/Lagos|Africa/Douala",
                    "Africa/Lagos|Africa/Kinshasa",
                    "Africa/Lagos|Africa/Libreville",
                    "Africa/Lagos|Africa/Luanda",
                    "Africa/Lagos|Africa/Malabo",
                    "Africa/Lagos|Africa/Niamey",
                    "Africa/Lagos|Africa/Porto-Novo",
                    "Africa/Maputo|Africa/Blantyre",
                    "Africa/Maputo|Africa/Bujumbura",
                    "Africa/Maputo|Africa/Gaborone",
                    "Africa/Maputo|Africa/Harare",
                    "Africa/Maputo|Africa/Kigali",
                    "Africa/Maputo|Africa/Lubumbashi",
                    "Africa/Maputo|Africa/Lusaka",
                    "Africa/Nairobi|Africa/Addis_Ababa",
                    "Africa/Nairobi|Africa/Asmara",
                    "Africa/Nairobi|Africa/Asmera",
                    "Africa/Nairobi|Africa/Dar_es_Salaam",
                    "Africa/Nairobi|Africa/Djibouti",
                    "Africa/Nairobi|Africa/Kampala",
                    "Africa/Nairobi|Africa/Mogadishu",
                    "Africa/Nairobi|Indian/Antananarivo",
                    "Africa/Nairobi|Indian/Comoro",
                    "Africa/Nairobi|Indian/Mayotte",
                    "Africa/Tripoli|Libya",
                    "America/Adak|America/Atka",
                    "America/Adak|US/Aleutian",
                    "America/Anchorage|US/Alaska",
                    "America/Argentina/Buenos_Aires|America/Buenos_Aires",
                    "America/Argentina/Catamarca|America/Argentina/ComodRivadavia",
                    "America/Argentina/Catamarca|America/Catamarca",
                    "America/Argentina/Cordoba|America/Cordoba",
                    "America/Argentina/Cordoba|America/Rosario",
                    "America/Argentina/Jujuy|America/Jujuy",
                    "America/Argentina/Mendoza|America/Mendoza",
                    "America/Chicago|US/Central",
                    "America/Denver|America/Shiprock",
                    "America/Denver|Navajo",
                    "America/Denver|US/Mountain",
                    "America/Detroit|US/Michigan",
                    "America/Edmonton|America/Yellowknife",
                    "America/Edmonton|Canada/Mountain",
                    "America/Fort_Wayne|America/Indiana/Indianapolis",
                    "America/Fort_Wayne|America/Indianapolis",
                    "America/Fort_Wayne|US/East-Indiana",
                    "America/Godthab|America/Nuuk",
                    "America/Halifax|Canada/Atlantic",
                    "America/Havana|Cuba",
                    "America/Indiana/Knox|America/Knox_IN",
                    "America/Indiana/Knox|US/Indiana-Starke",
                    "America/Iqaluit|America/Pangnirtung",
                    "America/Jamaica|Jamaica",
                    "America/Kentucky/Louisville|America/Louisville",
                    "America/Los_Angeles|US/Pacific",
                    "America/Manaus|Brazil/West",
                    "America/Mazatlan|Mexico/BajaSur",
                    "America/Mexico_City|Mexico/General",
                    "America/New_York|US/Eastern",
                    "America/Noronha|Brazil/DeNoronha",
                    "America/Panama|America/Atikokan",
                    "America/Panama|America/Cayman",
                    "America/Panama|America/Coral_Harbour",
                    "America/Phoenix|America/Creston",
                    "America/Phoenix|US/Arizona",
                    "America/Puerto_Rico|America/Anguilla",
                    "America/Puerto_Rico|America/Antigua",
                    "America/Puerto_Rico|America/Aruba",
                    "America/Puerto_Rico|America/Blanc-Sablon",
                    "America/Puerto_Rico|America/Curacao",
                    "America/Puerto_Rico|America/Dominica",
                    "America/Puerto_Rico|America/Grenada",
                    "America/Puerto_Rico|America/Guadeloupe",
                    "America/Puerto_Rico|America/Kralendijk",
                    "America/Puerto_Rico|America/Lower_Princes",
                    "America/Puerto_Rico|America/Marigot",
                    "America/Puerto_Rico|America/Montserrat",
                    "America/Puerto_Rico|America/Port_of_Spain",
                    "America/Puerto_Rico|America/St_Barthelemy",
                    "America/Puerto_Rico|America/St_Kitts",
                    "America/Puerto_Rico|America/St_Lucia",
                    "America/Puerto_Rico|America/St_Thomas",
                    "America/Puerto_Rico|America/St_Vincent",
                    "America/Puerto_Rico|America/Tortola",
                    "America/Puerto_Rico|America/Virgin",
                    "America/Regina|Canada/Saskatchewan",
                    "America/Rio_Branco|America/Porto_Acre",
                    "America/Rio_Branco|Brazil/Acre",
                    "America/Santiago|Chile/Continental",
                    "America/Sao_Paulo|Brazil/East",
                    "America/St_Johns|Canada/Newfoundland",
                    "America/Tijuana|America/Ensenada",
                    "America/Tijuana|America/Santa_Isabel",
                    "America/Tijuana|Mexico/BajaNorte",
                    "America/Toronto|America/Montreal",
                    "America/Toronto|America/Nassau",
                    "America/Toronto|America/Nipigon",
                    "America/Toronto|America/Thunder_Bay",
                    "America/Toronto|Canada/Eastern",
                    "America/Vancouver|Canada/Pacific",
                    "America/Whitehorse|Canada/Yukon",
                    "America/Winnipeg|America/Rainy_River",
                    "America/Winnipeg|Canada/Central",
                    "Asia/Ashgabat|Asia/Ashkhabad",
                    "Asia/Bangkok|Asia/Phnom_Penh",
                    "Asia/Bangkok|Asia/Vientiane",
                    "Asia/Bangkok|Indian/Christmas",
                    "Asia/Brunei|Asia/Kuching",
                    "Asia/Dhaka|Asia/Dacca",
                    "Asia/Dubai|Asia/Muscat",
                    "Asia/Dubai|Indian/Mahe",
                    "Asia/Dubai|Indian/Reunion",
                    "Asia/Ho_Chi_Minh|Asia/Saigon",
                    "Asia/Hong_Kong|Hongkong",
                    "Asia/Jerusalem|Asia/Tel_Aviv",
                    "Asia/Jerusalem|Israel",
                    "Asia/Kathmandu|Asia/Katmandu",
                    "Asia/Kolkata|Asia/Calcutta",
                    "Asia/Kuala_Lumpur|Asia/Singapore",
                    "Asia/Kuala_Lumpur|Singapore",
                    "Asia/Macau|Asia/Macao",
                    "Asia/Makassar|Asia/Ujung_Pandang",
                    "Asia/Nicosia|Europe/Nicosia",
                    "Asia/Qatar|Asia/Bahrain",
                    "Asia/Rangoon|Asia/Yangon",
                    "Asia/Rangoon|Indian/Cocos",
                    "Asia/Riyadh|Antarctica/Syowa",
                    "Asia/Riyadh|Asia/Aden",
                    "Asia/Riyadh|Asia/Kuwait",
                    "Asia/Seoul|ROK",
                    "Asia/Shanghai|Asia/Chongqing",
                    "Asia/Shanghai|Asia/Chungking",
                    "Asia/Shanghai|Asia/Harbin",
                    "Asia/Shanghai|PRC",
                    "Asia/Taipei|ROC",
                    "Asia/Tehran|Iran",
                    "Asia/Thimphu|Asia/Thimbu",
                    "Asia/Tokyo|Japan",
                    "Asia/Ulaanbaatar|Asia/Ulan_Bator",
                    "Asia/Urumqi|Asia/Kashgar",
                    "Atlantic/Faroe|Atlantic/Faeroe",
                    "Australia/Adelaide|Australia/South",
                    "Australia/Brisbane|Australia/Queensland",
                    "Australia/Broken_Hill|Australia/Yancowinna",
                    "Australia/Darwin|Australia/North",
                    "Australia/Hobart|Australia/Currie",
                    "Australia/Hobart|Australia/Tasmania",
                    "Australia/Lord_Howe|Australia/LHI",
                    "Australia/Melbourne|Australia/Victoria",
                    "Australia/Perth|Australia/West",
                    "Australia/Sydney|Australia/ACT",
                    "Australia/Sydney|Australia/Canberra",
                    "Australia/Sydney|Australia/NSW",
                    "Etc/GMT-0|Etc/GMT",
                    "Etc/GMT-0|Etc/GMT+0",
                    "Etc/GMT-0|Etc/GMT0",
                    "Etc/GMT-0|Etc/Greenwich",
                    "Etc/GMT-0|GMT",
                    "Etc/GMT-0|GMT+0",
                    "Etc/GMT-0|GMT-0",
                    "Etc/GMT-0|GMT0",
                    "Etc/GMT-0|Greenwich",
                    "Etc/UTC|Etc/UCT",
                    "Etc/UTC|Etc/Universal",
                    "Etc/UTC|Etc/Zulu",
                    "Etc/UTC|UCT",
                    "Etc/UTC|UTC",
                    "Etc/UTC|Universal",
                    "Etc/UTC|Zulu",
                    "Europe/Belgrade|Europe/Ljubljana",
                    "Europe/Belgrade|Europe/Podgorica",
                    "Europe/Belgrade|Europe/Sarajevo",
                    "Europe/Belgrade|Europe/Skopje",
                    "Europe/Belgrade|Europe/Zagreb",
                    "Europe/Berlin|Arctic/Longyearbyen",
                    "Europe/Berlin|Atlantic/Jan_Mayen",
                    "Europe/Berlin|Europe/Copenhagen",
                    "Europe/Berlin|Europe/Oslo",
                    "Europe/Berlin|Europe/Stockholm",
                    "Europe/Brussels|Europe/Amsterdam",
                    "Europe/Brussels|Europe/Luxembourg",
                    "Europe/Chisinau|Europe/Tiraspol",
                    "Europe/Dublin|Eire",
                    "Europe/Helsinki|Europe/Mariehamn",
                    "Europe/Istanbul|Asia/Istanbul",
                    "Europe/Istanbul|Turkey",
                    "Europe/Kiev|Europe/Kyiv",
                    "Europe/Kiev|Europe/Uzhgorod",
                    "Europe/Kiev|Europe/Zaporozhye",
                    "Europe/Lisbon|Portugal",
                    "Europe/London|Europe/Belfast",
                    "Europe/London|Europe/Guernsey",
                    "Europe/London|Europe/Isle_of_Man",
                    "Europe/London|Europe/Jersey",
                    "Europe/London|GB",
                    "Europe/London|GB-Eire",
                    "Europe/Moscow|W-SU",
                    "Europe/Paris|Europe/Monaco",
                    "Europe/Prague|Europe/Bratislava",
                    "Europe/Rome|Europe/San_Marino",
                    "Europe/Rome|Europe/Vatican",
                    "Europe/Warsaw|Poland",
                    "Europe/Zurich|Europe/Busingen",
                    "Europe/Zurich|Europe/Vaduz",
                    "Indian/Maldives|Indian/Kerguelen",
                    "Pacific/Auckland|Antarctica/McMurdo",
                    "Pacific/Auckland|Antarctica/South_Pole",
                    "Pacific/Auckland|NZ",
                    "Pacific/Chatham|NZ-CHAT",
                    "Pacific/Easter|Chile/EasterIsland",
                    "Pacific/Enderbury|Pacific/Kanton",
                    "Pacific/Guadalcanal|Pacific/Pohnpei",
                    "Pacific/Guadalcanal|Pacific/Ponape",
                    "Pacific/Guam|Pacific/Saipan",
                    "Pacific/Honolulu|Pacific/Johnston",
                    "Pacific/Honolulu|US/Hawaii",
                    "Pacific/Kwajalein|Kwajalein",
                    "Pacific/Pago_Pago|Pacific/Midway",
                    "Pacific/Pago_Pago|Pacific/Samoa",
                    "Pacific/Pago_Pago|US/Samoa",
                    "Pacific/Port_Moresby|Antarctica/DumontDUrville",
                    "Pacific/Port_Moresby|Pacific/Chuuk",
                    "Pacific/Port_Moresby|Pacific/Truk",
                    "Pacific/Port_Moresby|Pacific/Yap",
                    "Pacific/Tarawa|Pacific/Funafuti",
                    "Pacific/Tarawa|Pacific/Majuro",
                    "Pacific/Tarawa|Pacific/Wake",
                    "Pacific/Tarawa|Pacific/Wallis"
                ],
                countries: [
                    "AD|Europe/Andorra",
                    "AE|Asia/Dubai",
                    "AF|Asia/Kabul",
                    "AG|America/Puerto_Rico America/Antigua",
                    "AI|America/Puerto_Rico America/Anguilla",
                    "AL|Europe/Tirane",
                    "AM|Asia/Yerevan",
                    "AO|Africa/Lagos Africa/Luanda",
                    "AQ|Antarctica/Casey Antarctica/Davis Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Troll Antarctica/Vostok Pacific/Auckland Pacific/Port_Moresby Asia/Riyadh Antarctica/McMurdo Antarctica/DumontDUrville Antarctica/Syowa",
                    "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia",
                    "AS|Pacific/Pago_Pago",
                    "AT|Europe/Vienna",
                    "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla",
                    "AW|America/Puerto_Rico America/Aruba",
                    "AX|Europe/Helsinki Europe/Mariehamn",
                    "AZ|Asia/Baku",
                    "BA|Europe/Belgrade Europe/Sarajevo",
                    "BB|America/Barbados",
                    "BD|Asia/Dhaka",
                    "BE|Europe/Brussels",
                    "BF|Africa/Abidjan Africa/Ouagadougou",
                    "BG|Europe/Sofia",
                    "BH|Asia/Qatar Asia/Bahrain",
                    "BI|Africa/Maputo Africa/Bujumbura",
                    "BJ|Africa/Lagos Africa/Porto-Novo",
                    "BL|America/Puerto_Rico America/St_Barthelemy",
                    "BM|Atlantic/Bermuda",
                    "BN|Asia/Kuching Asia/Brunei",
                    "BO|America/La_Paz",
                    "BQ|America/Puerto_Rico America/Kralendijk",
                    "BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco",
                    "BS|America/Toronto America/Nassau",
                    "BT|Asia/Thimphu",
                    "BW|Africa/Maputo Africa/Gaborone",
                    "BY|Europe/Minsk",
                    "BZ|America/Belize",
                    "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Toronto America/Iqaluit America/Winnipeg America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Inuvik America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver America/Panama America/Puerto_Rico America/Phoenix America/Blanc-Sablon America/Atikokan America/Creston",
                    "CC|Asia/Yangon Indian/Cocos",
                    "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi",
                    "CF|Africa/Lagos Africa/Bangui",
                    "CG|Africa/Lagos Africa/Brazzaville",
                    "CH|Europe/Zurich",
                    "CI|Africa/Abidjan",
                    "CK|Pacific/Rarotonga",
                    "CL|America/Santiago America/Punta_Arenas Pacific/Easter",
                    "CM|Africa/Lagos Africa/Douala",
                    "CN|Asia/Shanghai Asia/Urumqi",
                    "CO|America/Bogota",
                    "CR|America/Costa_Rica",
                    "CU|America/Havana",
                    "CV|Atlantic/Cape_Verde",
                    "CW|America/Puerto_Rico America/Curacao",
                    "CX|Asia/Bangkok Indian/Christmas",
                    "CY|Asia/Nicosia Asia/Famagusta",
                    "CZ|Europe/Prague",
                    "DE|Europe/Zurich Europe/Berlin Europe/Busingen",
                    "DJ|Africa/Nairobi Africa/Djibouti",
                    "DK|Europe/Berlin Europe/Copenhagen",
                    "DM|America/Puerto_Rico America/Dominica",
                    "DO|America/Santo_Domingo",
                    "DZ|Africa/Algiers",
                    "EC|America/Guayaquil Pacific/Galapagos",
                    "EE|Europe/Tallinn",
                    "EG|Africa/Cairo",
                    "EH|Africa/El_Aaiun",
                    "ER|Africa/Nairobi Africa/Asmara",
                    "ES|Europe/Madrid Africa/Ceuta Atlantic/Canary",
                    "ET|Africa/Nairobi Africa/Addis_Ababa",
                    "FI|Europe/Helsinki",
                    "FJ|Pacific/Fiji",
                    "FK|Atlantic/Stanley",
                    "FM|Pacific/Kosrae Pacific/Port_Moresby Pacific/Guadalcanal Pacific/Chuuk Pacific/Pohnpei",
                    "FO|Atlantic/Faroe",
                    "FR|Europe/Paris",
                    "GA|Africa/Lagos Africa/Libreville",
                    "GB|Europe/London",
                    "GD|America/Puerto_Rico America/Grenada",
                    "GE|Asia/Tbilisi",
                    "GF|America/Cayenne",
                    "GG|Europe/London Europe/Guernsey",
                    "GH|Africa/Abidjan Africa/Accra",
                    "GI|Europe/Gibraltar",
                    "GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule",
                    "GM|Africa/Abidjan Africa/Banjul",
                    "GN|Africa/Abidjan Africa/Conakry",
                    "GP|America/Puerto_Rico America/Guadeloupe",
                    "GQ|Africa/Lagos Africa/Malabo",
                    "GR|Europe/Athens",
                    "GS|Atlantic/South_Georgia",
                    "GT|America/Guatemala",
                    "GU|Pacific/Guam",
                    "GW|Africa/Bissau",
                    "GY|America/Guyana",
                    "HK|Asia/Hong_Kong",
                    "HN|America/Tegucigalpa",
                    "HR|Europe/Belgrade Europe/Zagreb",
                    "HT|America/Port-au-Prince",
                    "HU|Europe/Budapest",
                    "ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura",
                    "IE|Europe/Dublin",
                    "IL|Asia/Jerusalem",
                    "IM|Europe/London Europe/Isle_of_Man",
                    "IN|Asia/Kolkata",
                    "IO|Indian/Chagos",
                    "IQ|Asia/Baghdad",
                    "IR|Asia/Tehran",
                    "IS|Africa/Abidjan Atlantic/Reykjavik",
                    "IT|Europe/Rome",
                    "JE|Europe/London Europe/Jersey",
                    "JM|America/Jamaica",
                    "JO|Asia/Amman",
                    "JP|Asia/Tokyo",
                    "KE|Africa/Nairobi",
                    "KG|Asia/Bishkek",
                    "KH|Asia/Bangkok Asia/Phnom_Penh",
                    "KI|Pacific/Tarawa Pacific/Kanton Pacific/Kiritimati",
                    "KM|Africa/Nairobi Indian/Comoro",
                    "KN|America/Puerto_Rico America/St_Kitts",
                    "KP|Asia/Pyongyang",
                    "KR|Asia/Seoul",
                    "KW|Asia/Riyadh Asia/Kuwait",
                    "KY|America/Panama America/Cayman",
                    "KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral",
                    "LA|Asia/Bangkok Asia/Vientiane",
                    "LB|Asia/Beirut",
                    "LC|America/Puerto_Rico America/St_Lucia",
                    "LI|Europe/Zurich Europe/Vaduz",
                    "LK|Asia/Colombo",
                    "LR|Africa/Monrovia",
                    "LS|Africa/Johannesburg Africa/Maseru",
                    "LT|Europe/Vilnius",
                    "LU|Europe/Brussels Europe/Luxembourg",
                    "LV|Europe/Riga",
                    "LY|Africa/Tripoli",
                    "MA|Africa/Casablanca",
                    "MC|Europe/Paris Europe/Monaco",
                    "MD|Europe/Chisinau",
                    "ME|Europe/Belgrade Europe/Podgorica",
                    "MF|America/Puerto_Rico America/Marigot",
                    "MG|Africa/Nairobi Indian/Antananarivo",
                    "MH|Pacific/Tarawa Pacific/Kwajalein Pacific/Majuro",
                    "MK|Europe/Belgrade Europe/Skopje",
                    "ML|Africa/Abidjan Africa/Bamako",
                    "MM|Asia/Yangon",
                    "MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan",
                    "MO|Asia/Macau",
                    "MP|Pacific/Guam Pacific/Saipan",
                    "MQ|America/Martinique",
                    "MR|Africa/Abidjan Africa/Nouakchott",
                    "MS|America/Puerto_Rico America/Montserrat",
                    "MT|Europe/Malta",
                    "MU|Indian/Mauritius",
                    "MV|Indian/Maldives",
                    "MW|Africa/Maputo Africa/Blantyre",
                    "MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Chihuahua America/Ciudad_Juarez America/Ojinaga America/Mazatlan America/Bahia_Banderas America/Hermosillo America/Tijuana",
                    "MY|Asia/Kuching Asia/Singapore Asia/Kuala_Lumpur",
                    "MZ|Africa/Maputo",
                    "NA|Africa/Windhoek",
                    "NC|Pacific/Noumea",
                    "NE|Africa/Lagos Africa/Niamey",
                    "NF|Pacific/Norfolk",
                    "NG|Africa/Lagos",
                    "NI|America/Managua",
                    "NL|Europe/Brussels Europe/Amsterdam",
                    "NO|Europe/Berlin Europe/Oslo",
                    "NP|Asia/Kathmandu",
                    "NR|Pacific/Nauru",
                    "NU|Pacific/Niue",
                    "NZ|Pacific/Auckland Pacific/Chatham",
                    "OM|Asia/Dubai Asia/Muscat",
                    "PA|America/Panama",
                    "PE|America/Lima",
                    "PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier",
                    "PG|Pacific/Port_Moresby Pacific/Bougainville",
                    "PH|Asia/Manila",
                    "PK|Asia/Karachi",
                    "PL|Europe/Warsaw",
                    "PM|America/Miquelon",
                    "PN|Pacific/Pitcairn",
                    "PR|America/Puerto_Rico",
                    "PS|Asia/Gaza Asia/Hebron",
                    "PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores",
                    "PW|Pacific/Palau",
                    "PY|America/Asuncion",
                    "QA|Asia/Qatar",
                    "RE|Asia/Dubai Indian/Reunion",
                    "RO|Europe/Bucharest",
                    "RS|Europe/Belgrade",
                    "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr",
                    "RW|Africa/Maputo Africa/Kigali",
                    "SA|Asia/Riyadh",
                    "SB|Pacific/Guadalcanal",
                    "SC|Asia/Dubai Indian/Mahe",
                    "SD|Africa/Khartoum",
                    "SE|Europe/Berlin Europe/Stockholm",
                    "SG|Asia/Singapore",
                    "SH|Africa/Abidjan Atlantic/St_Helena",
                    "SI|Europe/Belgrade Europe/Ljubljana",
                    "SJ|Europe/Berlin Arctic/Longyearbyen",
                    "SK|Europe/Prague Europe/Bratislava",
                    "SL|Africa/Abidjan Africa/Freetown",
                    "SM|Europe/Rome Europe/San_Marino",
                    "SN|Africa/Abidjan Africa/Dakar",
                    "SO|Africa/Nairobi Africa/Mogadishu",
                    "SR|America/Paramaribo",
                    "SS|Africa/Juba",
                    "ST|Africa/Sao_Tome",
                    "SV|America/El_Salvador",
                    "SX|America/Puerto_Rico America/Lower_Princes",
                    "SY|Asia/Damascus",
                    "SZ|Africa/Johannesburg Africa/Mbabane",
                    "TC|America/Grand_Turk",
                    "TD|Africa/Ndjamena",
                    "TF|Asia/Dubai Indian/Maldives Indian/Kerguelen",
                    "TG|Africa/Abidjan Africa/Lome",
                    "TH|Asia/Bangkok",
                    "TJ|Asia/Dushanbe",
                    "TK|Pacific/Fakaofo",
                    "TL|Asia/Dili",
                    "TM|Asia/Ashgabat",
                    "TN|Africa/Tunis",
                    "TO|Pacific/Tongatapu",
                    "TR|Europe/Istanbul",
                    "TT|America/Puerto_Rico America/Port_of_Spain",
                    "TV|Pacific/Tarawa Pacific/Funafuti",
                    "TW|Asia/Taipei",
                    "TZ|Africa/Nairobi Africa/Dar_es_Salaam",
                    "UA|Europe/Simferopol Europe/Kyiv",
                    "UG|Africa/Nairobi Africa/Kampala",
                    "UM|Pacific/Pago_Pago Pacific/Tarawa Pacific/Midway Pacific/Wake",
                    "US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu",
                    "UY|America/Montevideo",
                    "UZ|Asia/Samarkand Asia/Tashkent",
                    "VA|Europe/Rome Europe/Vatican",
                    "VC|America/Puerto_Rico America/St_Vincent",
                    "VE|America/Caracas",
                    "VG|America/Puerto_Rico America/Tortola",
                    "VI|America/Puerto_Rico America/St_Thomas",
                    "VN|Asia/Bangkok Asia/Ho_Chi_Minh",
                    "VU|Pacific/Efate",
                    "WF|Pacific/Tarawa Pacific/Wallis",
                    "WS|Pacific/Apia",
                    "YE|Asia/Riyadh Asia/Aden",
                    "YT|Africa/Nairobi Indian/Mayotte",
                    "ZA|Africa/Johannesburg",
                    "ZM|Africa/Maputo Africa/Lusaka",
                    "ZW|Africa/Maputo Africa/Harare"
                ]
            };
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/moment-timezone/index.js
    var require_moment_timezone2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/moment-timezone/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var moment4 = module.exports = require_moment_timezone();
            moment4.tz.load(require_latest());
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/DateTime/dateTimeFactory.js
    var require_dateTimeFactory = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/DateTime/dateTimeFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.now = now2;
            exports.getCurrentTimezone = getCurrentTimezone;
            exports.getCurrentTimezoneOffset = getCurrentTimezoneOffset;
            var moment_timezone_1 = __importDefault(require_moment_timezone2());
            function now2(timezoneOffsetHours) {
                if (!timezoneOffsetHours) {
                    timezoneOffsetHours = getCurrentTimezone();
                }
                return (0, moment_timezone_1["default"])().subtract(getCurrentTimezone(), "hour").add(timezoneOffsetHours, "hour");
            }
            function getCurrentTimezone() {
                return -(/* @__PURE__ */ new Date().getTimezoneOffset() / 60);
            }
            function getCurrentTimezoneOffset() {
                return /* @__PURE__ */ new Date().getTimezoneOffset();
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Device/DateTime/serverTimeCheckerSaga.js
    var require_serverTimeCheckerSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/DateTime/serverTimeCheckerSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkServerTimeWhenRequested = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var fetch_1 = require_fetch();
            var deviceConfigurationHelper_1 = require_deviceConfigurationHelper();
            var constants_1 = require_constants();
            var CHECK_SERVER_TIME_PERIOD = 1e4;
            var MAX_TIMESTAMP_DIFF = 1e3 * 3600 * 168;
            var TIME_PATH = "/time";
            function checkServerTimeWhenRequested(getNativeDriver, defaultConfig, checkTimeBeforeConnection, getDeviceTimestamp) {
                var configBaseUrl, timeUri, response, headerTimestamp, _ref, serverTimestamp, _tmp, deviceTimestamp;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!checkTimeBeforeConnection) {
                                return [
                                    2
                                ];
                            }
                            _state.label = 1;
                        case 1:
                            if (!true) return [
                                3,
                                9
                            ];
                            return [
                                4,
                                (0, effects_1.call)(deviceConfigurationHelper_1.getConfigurationBaseUrl, getNativeDriver(), defaultConfig)
                            ];
                        case 2:
                            configBaseUrl = _state.sent();
                            timeUri = "".concat(configBaseUrl).concat(TIME_PATH);
                            return [
                                4,
                                (0, effects_1.call)(fetch_1.fetch, timeUri, void 0, constants_1.NORMALLY)
                            ];
                        case 3:
                            response = _state.sent();
                            headerTimestamp = response.headers.get("date");
                            if (!headerTimestamp) return [
                                3,
                                4
                            ];
                            _tmp = {
                                timestamp: new Date(headerTimestamp).getTime()
                            };
                            return [
                                3,
                                6
                            ];
                        case 4:
                            return [
                                4,
                                (0, effects_1.call)([
                                    response,
                                    response.json
                                ])
                            ];
                        case 5:
                            _tmp = _state.sent();
                            _state.label = 6;
                        case 6:
                            _ref = _tmp, serverTimestamp = _ref.timestamp;
                            return [
                                4,
                                (0, effects_1.call)(getDeviceTimestamp)
                            ];
                        case 7:
                            deviceTimestamp = _state.sent();
                            if (Math.abs(deviceTimestamp - serverTimestamp) < MAX_TIMESTAMP_DIFF) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.delay)(CHECK_SERVER_TIME_PERIOD)
                            ];
                        case 8:
                            _state.sent();
                            return [
                                3,
                                1
                            ];
                        case 9:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.checkServerTimeWhenRequested = checkServerTimeWhenRequested;
        }
    });
    // node_modules/@signageos/front-display/es6/Util/promise.js
    var require_promise = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/promise.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.rejectOnceEvent = exports.resolveOnceEvent = void 0;
            function resolveOnceEvent(eventEmitter, event) {
                return new Promise(function(resolve) {
                    eventEmitter.once(event, resolve);
                });
            }
            exports.resolveOnceEvent = resolveOnceEvent;
            function rejectOnceEvent(eventEmitter, event) {
                return new Promise(function(_resolve, reject) {
                    eventEmitter.once(event, reject);
                });
            }
            exports.rejectOnceEvent = rejectOnceEvent;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Video/EmitVideoEvent.js
    var require_EmitVideoEvent = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Video/EmitVideoEvent.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.EmitVideoEvent = void 0;
            exports.EmitVideoEvent = "Applet.ActiveEmitVideoEvent";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Video/appletVideoActions.js
    var require_appletVideoActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Video/appletVideoActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ActiveAppletVideoResume = exports.ActiveAppletVideoPause = exports.ActiveAppletVideoStop = exports.ActiveAppletVideoPrepare = exports.ActiveAppletVideoPlay = void 0;
            exports.ActiveAppletVideoPlay = "Applet.ActiveAppletVideoPlay";
            exports.ActiveAppletVideoPrepare = "Applet.ActiveAppletVideoPrepare";
            exports.ActiveAppletVideoStop = "Applet.ActiveAppletVideoStop";
            exports.ActiveAppletVideoPause = "Applet.ActiveAppletVideoPause";
            exports.ActiveAppletVideoResume = "Applet.ActiveAppletVideoResume";
        }
    });
    // node_modules/@signageos/front-display/es6/Stream/streamActions.js
    var require_streamActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Stream/streamActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.StreamTracksChanged = exports.StreamDisconnected = exports.StreamConnected = exports.StreamError = void 0;
            exports.StreamError = "Stream.Error";
            exports.StreamConnected = "Stream.Connected";
            exports.StreamDisconnected = "Stream.Disconnected";
            exports.StreamTracksChanged = "Stream.TracksChanged";
        }
    });
    // node_modules/@signageos/actions/dist/Input/motionActions.js
    var require_motionActions = __commonJS({
        "node_modules/@signageos/actions/dist/Input/motionActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.HandleMotionSequence = exports.HandleMotion = void 0;
            exports.HandleMotion = "Input.HandleMotion";
            exports.HandleMotionSequence = "Input.HandleMotionSequence";
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/socketActionFilter.js
    var require_socketActionFilter = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/socketActionFilter.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.shouldBeAddedToFastOfflineBuffer = exports.shouldBeSentToServer = void 0;
            var activeAppletActions_1 = require_activeAppletActions();
            var EmitVideoEvent_1 = require_EmitVideoEvent();
            var socketActions_1 = require_socketActions2();
            var appletActions_1 = require_appletActions();
            var deviceConfigurationActions_1 = require_deviceConfigurationActions();
            var appletVideoActions_1 = require_appletVideoActions();
            var dependenciesActions_1 = require_dependenciesActions();
            var offlineActions_1 = require_offlineActions();
            var systemLogActions_1 = require_systemLogActions();
            var keyActions_1 = require_keyActions();
            var streamActions_1 = require_streamActions();
            var motionActions_1 = require_motionActions();
            var deviceActions_1 = require_deviceActions3();
            var EXCLUDED_DELIVERY_TO_SERVER_ACTIONS = [
                activeAppletActions_1.AppletPing,
                socketActions_1.BindAction,
                socketActions_1.UnbindAction,
                socketActions_1.CheckSocketHealth,
                appletVideoActions_1.ActiveAppletVideoPlay,
                appletVideoActions_1.ActiveAppletVideoPrepare,
                appletVideoActions_1.ActiveAppletVideoStop,
                appletVideoActions_1.ActiveAppletVideoPause,
                appletVideoActions_1.ActiveAppletVideoResume,
                EmitVideoEvent_1.EmitVideoEvent,
                appletActions_1.UpdateActiveAppletBinary,
                appletActions_1.UpdateActiveAppletBinaryFile,
                deviceConfigurationActions_1.CheckDeviceConfiguration,
                dependenciesActions_1.UpdateDIDependency,
                dependenciesActions_1.UpdateDIContainer,
                dependenciesActions_1.RequestDIContainer,
                offlineActions_1.SaveOfflineAction,
                offlineActions_1.DeviceAlive,
                keyActions_1.HandleKeySequence,
                keyActions_1.HandleKeyUp,
                motionActions_1.HandleMotion,
                motionActions_1.HandleMotionSequence,
                streamActions_1.StreamConnected,
                streamActions_1.StreamDisconnected,
                deviceActions_1.UpdateDisplayFirmwareVersion
            ];
            function shouldBeSentToServer(action) {
                return !EXCLUDED_DELIVERY_TO_SERVER_ACTIONS.includes(action.type);
            }
            exports.shouldBeSentToServer = shouldBeSentToServer;
            var EXCLUDED_FROM_FAST_OFFLINE_BUFFER = [
                activeAppletActions_1.ActiveAppletDispatchCommand,
                systemLogActions_1.SystemLog
            ];
            function shouldBeAddedToFastOfflineBuffer(action) {
                return !EXCLUDED_FROM_FAST_OFFLINE_BUFFER.includes(action.type);
            }
            exports.shouldBeAddedToFastOfflineBuffer = shouldBeAddedToFastOfflineBuffer;
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/socketSagas.js
    var require_socketSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/socketSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.socketPlatformCreate = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var wait_1 = __importDefault(require_wait());
            var channels_1 = require_channels();
            var createSocketIOSocket_1 = __importDefault(require_createSocketIOSocket());
            var createWSSocket_1 = require_createWSSocket();
            var createHttpSocket_1 = require_createHttpSocket();
            var socketActions_1 = require_socketActions();
            var applicationActions_1 = require_applicationActions();
            var property_1 = require_property();
            var dateTimeFactory_1 = require_dateTimeFactory();
            var events_1 = require_events();
            var socketActions_2 = require_socketActions2();
            var serverTimeCheckerSaga_1 = require_serverTimeCheckerSaga();
            var debug_1 = __importDefault(require_browser2());
            var progressiveWait_1 = require_progressiveWait();
            var promise_1 = require_promise();
            var socketActionFilter_1 = require_socketActionFilter();
            var offlineActions_1 = require_offlineActions();
            var networkActions_1 = require_networkActions2();
            var constants_1 = require_constants();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Socket:socketSagas");
            var MESSAGE_SERVER_AUTHENTICATE = "server-authenticate";
            var MESSAGE_SERVER_AUTHENTICATE_DONE = "server-authenticate-done";
            var MESSAGE_CLIENT_AUTHENTICATE = "client-authenticate";
            var MESSAGE_ACTION = "action";
            var FAST_OFFLINE_BUFFER_LIMIT = 100;
            var HTTP_SOCKET_CHECK_INTERVAL_MS = constants_1.SOMETIMES;
            var ACTION_DELIVERY_TIMEOUT_MS = constants_1.REGULARLY;
            function socketPlatformCreate(getNativeDriver, socketName, getDeviceTimestamp, defaultConfig, powerKernel) {
                var _this, actionChannel2, offlineActionChannel, fastOfflineBuffer, connectionEmitter, progressiveWait, socketDriver, platformUri, checkTimeBeforeConnection, connected, exited, socket, boundActions;
                function handleOfflineAction(action) {
                    action.__dispatchedAt = action.__dispatchedAt ? action.__dispatchedAt : (0, dateTimeFactory_1.now)().toDate();
                    action.__offline = true;
                    if (fastOfflineBuffer.length < FAST_OFFLINE_BUFFER_LIMIT && (0, socketActionFilter_1.shouldBeAddedToFastOfflineBuffer)(action)) {
                        fastOfflineBuffer.push(action);
                    } else {
                        offlineActionChannel.put(action);
                    }
                }
                function streamAction(action, actionDeliveryTimeoutMs) {
                    if (connected) {
                        var timeoutHandler = setTimeout(function() {
                            return streamAction(action, actionDeliveryTimeoutMs);
                        }, actionDeliveryTimeoutMs);
                        action.__emitter.once("delivered", function() {
                            return clearTimeout(timeoutHandler);
                        });
                        actionChannel2.put(action);
                    } else if (action.type !== offlineActions_1.SaveOfflineAction) {
                        handleOfflineAction(action);
                    }
                }
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _this = this;
                            actionChannel2 = (0, channels_1.createChannel)();
                            offlineActionChannel = (0, channels_1.createChannel)();
                            fastOfflineBuffer = [];
                            connectionEmitter = new events_1.EventEmitter();
                            progressiveWait = (0, progressiveWait_1.createProgressiveWait)(constants_1.REGULARLY, 1.5, 5 * constants_1.SOMETIMES);
                            connected = false;
                            exited = false;
                            powerKernel === null || powerKernel === void 0 ? void 0 : powerKernel.doBeforeShutDown(function() {
                                return __awaiter(_this, void 0, void 0, function() {
                                    var _a2;
                                    return _ts_generator(this, function(_state) {
                                        return [
                                            2,
                                            (_a2 = socket === null || socket === void 0 ? void 0 : socket.whenFlushed) === null || _a2 === void 0 ? void 0 : _a2.call(socket)
                                        ];
                                    });
                                });
                            });
                            return [
                                4,
                                (0, channels_1.takeEvery)(offlineActionChannel, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!(action.type !== offlineActions_1.SaveOfflineAction)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: offlineActions_1.SaveOfflineAction,
                                                        action: action
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            boundActions = {};
                            return [
                                4,
                                (0, effects_1.takeEvery)(socketActions_2.BindAction, function(bindAction) {
                                    var actionName;
                                    return _ts_generator(this, function(_state) {
                                        actionName = bindAction.actionName;
                                        if (typeof boundActions[actionName] === "undefined") {
                                            boundActions[actionName] = 1;
                                        } else {
                                            boundActions[actionName]++;
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(socketActions_2.UnbindAction, function(unbindAction) {
                                    var actionName;
                                    return _ts_generator(this, function(_state) {
                                        actionName = unbindAction.actionName;
                                        if (boundActions[actionName] === 1) {
                                            delete boundActions[actionName];
                                        } else if (typeof boundActions[actionName] !== "undefined") {
                                            boundActions[actionName]--;
                                        } else {
                                            debug4("unbinding action that wasn't bound: " + actionName);
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)("*", function(action) {
                                    var timeout;
                                    return _ts_generator(this, function(_state) {
                                        timeout = getActionDeliveryTimeout(socketDriver);
                                        streamAction(action, timeout);
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(socketActions_1.SocketConnected, function() {
                                    var timeout, action;
                                    return _ts_generator(this, function(_state) {
                                        timeout = getActionDeliveryTimeout(socketDriver);
                                        while(action = fastOfflineBuffer.shift()){
                                            streamAction(action, timeout);
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(applicationActions_1.StopApplication, function() {
                                    return _ts_generator(this, function(_state) {
                                        exited = true;
                                        connectionEmitter.emit("terminate", {
                                            reason: "Exited"
                                        });
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(socketActions_1.PlatformConnect, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        connectionEmitter.emit("terminate", {
                                            reason: action.trigger || "Requested reconnect"
                                        });
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 7:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(socketActions_1.PlatformConnect, function(connectAction) {
                                    return _ts_generator(this, function(_state) {
                                        socketDriver = connectAction.driver;
                                        platformUri = connectAction.platformUri;
                                        checkTimeBeforeConnection = connectAction.checkTimeBeforeConnection;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 8:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(networkActions_1.Disconnected, function() {
                                    return _ts_generator(this, function(_state) {
                                        connectionEmitter.emit("terminate", {
                                            reason: "Network disconnected"
                                        });
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 9:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)(function() {
                                    var _loop;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _loop = function() {
                                                    var duid, socketCloseReason, createSocket, connectedPromise, disconnectedPromise, terminatePromise, errorPromise, socketChannel, error, bindEffect, emitEffect, error1;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                _state.trys.push([
                                                                    0,
                                                                    23,
                                                                    24,
                                                                    25
                                                                ]);
                                                                return [
                                                                    4,
                                                                    (0, effects_1.race)([
                                                                        (0, effects_1.call)(serverTimeCheckerSaga_1.checkServerTimeWhenRequested, getNativeDriver, defaultConfig, checkTimeBeforeConnection, getDeviceTimestamp),
                                                                        (0, effects_1.call)(function() {
                                                                            return (0, promise_1.rejectOnceEvent)(connectionEmitter, "terminate");
                                                                        })
                                                                    ])
                                                                ];
                                                            case 1:
                                                                _state.sent();
                                                                return [
                                                                    4,
                                                                    getNativeDriver().getDeviceUid()
                                                                ];
                                                            case 2:
                                                                duid = _state.sent();
                                                                socketCloseReason = {
                                                                    reason: "Unknown"
                                                                };
                                                                connectionEmitter.once("terminate", function(param) {
                                                                    var reason = param.reason;
                                                                    socketCloseReason = {
                                                                        reason: "Application:" + reason,
                                                                        data: {}
                                                                    };
                                                                });
                                                                createSocket = getSocketFactory(socketDriver);
                                                                socket = createSocket(platformUri + "/v2/", function() {
                                                                    return connectionEmitter.emit("connected");
                                                                }, function(event) {
                                                                    socketCloseReason = {
                                                                        reason: (event === null || event === void 0 ? void 0 : event.reason) || "Closed by client",
                                                                        data: event
                                                                    };
                                                                    connectionEmitter.emit("disconnected", event);
                                                                }, function(error) {
                                                                    socketCloseReason = {
                                                                        reason: "Error",
                                                                        data: error
                                                                    };
                                                                    connectionEmitter.emit("error", error);
                                                                });
                                                                connectedPromise = (0, promise_1.resolveOnceEvent)(connectionEmitter, "connected");
                                                                disconnectedPromise = (0, promise_1.rejectOnceEvent)(connectionEmitter, "disconnected");
                                                                terminatePromise = (0, promise_1.rejectOnceEvent)(connectionEmitter, "terminate");
                                                                errorPromise = (0, promise_1.rejectOnceEvent)(connectionEmitter, "error");
                                                                socketChannel = createSocketChannel(socket, MESSAGE_ACTION);
                                                                debug4("connecting to the socket");
                                                                _state.label = 3;
                                                            case 3:
                                                                _state.trys.push([
                                                                    3,
                                                                    5,
                                                                    ,
                                                                    7
                                                                ]);
                                                                return [
                                                                    4,
                                                                    Promise.race([
                                                                        connectedPromise,
                                                                        disconnectedPromise,
                                                                        // if unable to connect (reject)
                                                                        errorPromise
                                                                    ])
                                                                ];
                                                            case 4:
                                                                _state.sent();
                                                                return [
                                                                    3,
                                                                    7
                                                                ];
                                                            case 5:
                                                                error = _state.sent();
                                                                return [
                                                                    4,
                                                                    (0, effects_1.put)({
                                                                        type: socketActions_2.SocketConnectionFailed,
                                                                        errorMessage: error === null || error === void 0 ? void 0 : error.message
                                                                    })
                                                                ];
                                                            case 6:
                                                                _state.sent();
                                                                throw error;
                                                            case 7:
                                                                debug4("socket connected");
                                                                return [
                                                                    4,
                                                                    (0, effects_1.put)({
                                                                        type: socketActions_2.SocketConnected,
                                                                        name: socketName
                                                                    })
                                                                ];
                                                            case 8:
                                                                _state.sent();
                                                                _state.label = 9;
                                                            case 9:
                                                                _state.trys.push([
                                                                    9,
                                                                    ,
                                                                    20,
                                                                    22
                                                                ]);
                                                                return [
                                                                    4,
                                                                    Promise.race([
                                                                        disconnectedPromise,
                                                                        // for sure when disconnected
                                                                        errorPromise,
                                                                        // for sure when erred (reject)
                                                                        terminatePromise,
                                                                        authenticateSocket(socket, duid, socketName, Object.keys(boundActions))
                                                                    ])
                                                                ];
                                                            case 10:
                                                                _state.sent();
                                                                debug4("socket authenticated");
                                                                return [
                                                                    4,
                                                                    (0, effects_1.fork)(socketBindActions, socketChannel)
                                                                ];
                                                            case 11:
                                                                bindEffect = _state.sent();
                                                                return [
                                                                    4,
                                                                    (0, effects_1.fork)(socketEmitActions, actionChannel2, socket, MESSAGE_ACTION)
                                                                ];
                                                            case 12:
                                                                emitEffect = _state.sent();
                                                                connected = true;
                                                                return [
                                                                    4,
                                                                    (0, effects_1.put)({
                                                                        type: socketActions_1.SocketConnected
                                                                    })
                                                                ];
                                                            case 13:
                                                                _state.sent();
                                                                progressiveWait.reset();
                                                                _state.label = 14;
                                                            case 14:
                                                                _state.trys.push([
                                                                    14,
                                                                    ,
                                                                    16,
                                                                    19
                                                                ]);
                                                                return [
                                                                    4,
                                                                    Promise.race([
                                                                        terminatePromise,
                                                                        disconnectedPromise,
                                                                        // for sure when disconnected
                                                                        errorPromise
                                                                    ])
                                                                ];
                                                            case 15:
                                                                _state.sent();
                                                                return [
                                                                    3,
                                                                    19
                                                                ];
                                                            case 16:
                                                                connected = false;
                                                                return [
                                                                    4,
                                                                    (0, effects_1.cancel)(bindEffect)
                                                                ];
                                                            case 17:
                                                                _state.sent();
                                                                return [
                                                                    4,
                                                                    (0, effects_1.cancel)(emitEffect)
                                                                ];
                                                            case 18:
                                                                _state.sent();
                                                                return [
                                                                    7
                                                                ];
                                                            case 19:
                                                                return [
                                                                    3,
                                                                    22
                                                                ];
                                                            case 20:
                                                                debug4("socket disconnected");
                                                                return [
                                                                    4,
                                                                    (0, effects_1.put)({
                                                                        type: socketActions_1.SocketDisconnected,
                                                                        reason: socketCloseReason.reason,
                                                                        context: socketCloseReason.data
                                                                    })
                                                                ];
                                                            case 21:
                                                                _state.sent();
                                                                socket.removeAllListeners();
                                                                socket.close();
                                                                return [
                                                                    7
                                                                ];
                                                            case 22:
                                                                return [
                                                                    3,
                                                                    25
                                                                ];
                                                            case 23:
                                                                error1 = _state.sent();
                                                                debug4("socketPlatformCreate failed", error1);
                                                                return [
                                                                    3,
                                                                    25
                                                                ];
                                                            case 24:
                                                                connectionEmitter.removeAllListeners("error");
                                                                connectionEmitter.removeAllListeners("connected");
                                                                connectionEmitter.removeAllListeners("disconnected");
                                                                connectionEmitter.removeAllListeners("terminate");
                                                                return [
                                                                    7
                                                                ];
                                                            case 25:
                                                                return [
                                                                    4,
                                                                    progressiveWait.wait()
                                                                ];
                                                            case 26:
                                                                _state.sent();
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                };
                                                if (!!platformUri) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.take)(socketActions_1.PlatformConnect)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.CONSTANTLY)
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    5,
                                                    _ts_values(_loop())
                                                ];
                                            case 5:
                                                _state.sent();
                                                _state.label = 6;
                                            case 6:
                                                if (!exited) return [
                                                    3,
                                                    4
                                                ];
                                                _state.label = 7;
                                            case 7:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 10:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.socketPlatformCreate = socketPlatformCreate;
            function authenticateSocket(socket, duid, name, actions) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    new Promise(function(resolve) {
                                        socket.once(MESSAGE_SERVER_AUTHENTICATE, function() {
                                            return resolve();
                                        });
                                    })
                                ];
                            case 1:
                                _state.sent();
                                socket.emit(MESSAGE_CLIENT_AUTHENTICATE, {
                                    duid: duid,
                                    name: name,
                                    actions: actions
                                });
                                return [
                                    4,
                                    new Promise(function(resolve) {
                                        socket.once(MESSAGE_SERVER_AUTHENTICATE_DONE, function() {
                                            return resolve();
                                        });
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function getSocketFactory(socketDriver) {
                switch(socketDriver){
                    case "ws":
                        return createWSSocket_1.createSocket;
                    case "http":
                        var _this = this;
                        return function() {
                            for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                args[_key] = arguments[_key];
                            }
                            var httpSocket = (0, createHttpSocket_1.createSocket).apply(_this, _to_consumable_array(args).concat([
                                {
                                    checkInterval: HTTP_SOCKET_CHECK_INTERVAL_MS
                                }
                            ]));
                            return httpSocket;
                        };
                    case "socket.io":
                        return createSocketIOSocket_1["default"];
                    default:
                        throw new Error("Unknown socket driver ".concat(socketDriver));
                }
            }
            function getActionDeliveryTimeout(socketDriver) {
                switch(socketDriver){
                    case "http":
                        return HTTP_SOCKET_CHECK_INTERVAL_MS + ACTION_DELIVERY_TIMEOUT_MS;
                    default:
                        return ACTION_DELIVERY_TIMEOUT_MS;
                }
            }
            function socketEmitActions(actionChannel2, socket, messageName) {
                var action;
                function takeAction(action) {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    (0, effects_1.call)(emitAction, socket, messageName, action)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    3,
                                    3
                                ];
                            case 2:
                                error = _state.sent();
                                debug4("emitAction failed", error);
                                return [
                                    3,
                                    3
                                ];
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                }
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(actionChannel2.take)
                            ];
                        case 1:
                            action = _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)(takeAction, action)
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            if (true) return [
                                3,
                                0
                            ];
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            function socketBindActions(socketChannel) {
                var action;
                function takeAction(action) {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, effects_1.put)(action)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                }
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(socketChannel.take)
                            ];
                        case 1:
                            action = _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)(takeAction, action)
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            if (true) return [
                                3,
                                0
                            ];
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            function createSocketChannel(socket, messageName) {
                var socketChannel = (0, channels_1.createChannel)();
                socket.on(messageName, function(action) {
                    (0, property_1.defineInvisibleProperty)(action, "__source", socket);
                    socketChannel.put(action);
                });
                return socketChannel;
            }
            function emitAction(socket, messageName, action) {
                if (!isFromServer(action, socket) && (0, socketActionFilter_1.shouldBeSentToServer)(action)) {
                    return new Promise(function(resolve, reject) {
                        try {
                            var actionMessage = JSON.parse(JSON.stringify(action));
                            socket.emit(messageName, actionMessage, function() {
                                action.__emitter.emit("delivered");
                                resolve();
                            });
                        } catch (error) {
                            reject(error);
                        }
                    });
                } else {
                    action.__emitter.emit("delivered");
                    return Promise.resolve();
                }
            }
            function isFromServer(action, socket) {
                return action.__source === socket;
            }
        }
    });
    // node_modules/@signageos/front-display/es6/SystemLogs/systemLogActionFactory.js
    var require_systemLogActionFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/SystemLogs/systemLogActionFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSystemLogAction = void 0;
            var systemLogActions_1 = require_systemLogActions();
            function createSystemLogAction(payload) {
                return {
                    type: systemLogActions_1.SystemLog,
                    payload: payload
                };
            }
            exports.createSystemLogAction = createSystemLogAction;
        }
    });
    // node_modules/@signageos/front-display/es6/SystemLogs/commonSystemLogsSagas.js
    var require_commonSystemLogsSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/SystemLogs/commonSystemLogsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.commonSystemLogsSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var socketActions_1 = require_socketActions();
            var socketActions_2 = require_socketActions2();
            var systemLogActionFactory_1 = require_systemLogActionFactory();
            var offlineActions_1 = require_offlineActions();
            var systemLogs_1 = require_systemLogs();
            var dependencyInjection_1 = require_dependencyInjection();
            function commonSystemLogsSaga(socketName) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, dependencyInjection_1.withDependencies)([
                                    "featureFlags"
                                ], function(param) {
                                    var featureFlags, _a2;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                featureFlags = param.featureFlags;
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.systemLogs) !== null && _a2 !== void 0 ? _a2 : true)) return [
                                                    3,
                                                    5
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(socketActions_2.SocketConnected, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.SocketConnected,
                                                                            socketName: socketName
                                                                        }))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(socketActions_1.SocketDisconnected, function(action) {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.SocketDisconnected,
                                                                            socketName: socketName,
                                                                            reason: action.reason,
                                                                            context: action.context
                                                                        }))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(socketActions_2.SocketConnectionFailed, function(action) {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.SocketConnectionFailed,
                                                                            errorMessage: action.errorMessage,
                                                                            socketName: socketName
                                                                        }))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(offlineActions_1.DeviceAlive, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.DeviceAlive
                                                                        }))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                _state.label = 5;
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })()
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.commonSystemLogsSaga = commonSystemLogsSaga;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Test/deviceTestActions.js
    var require_deviceTestActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Test/deviceTestActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SaveHTML5TestResult = exports.TestSkipped = exports.TestFailed = exports.TestSucceeded = exports.StartTestSuite = exports.TestCase = void 0;
            var TestCase;
            (function(TestCase2) {
                TestCase2["INFO"] = "info";
                TestCase2["DISPLAY"] = "display";
                TestCase2["AUDIO"] = "audio";
                TestCase2["VIDEO"] = "video";
                TestCase2["BATTERY"] = "battery";
                TestCase2["DATE_TIME"] = "date_time";
                TestCase2["FILE_SYSTEM"] = "file_system";
                TestCase2["REMOTE_CONTROL"] = "remote_control";
                TestCase2["HTML5"] = "html5";
                TestCase2["CACHE"] = "cache";
                TestCase2["DEBUG"] = "debug";
                TestCase2["WEINRE"] = "weinre";
            })(TestCase || (exports.TestCase = TestCase = {}));
            exports.StartTestSuite = "Device.Test.StartTestSuite";
            exports.TestSucceeded = "Device.Test.TestSucceeded";
            exports.TestFailed = "Device.Test.TestFailed";
            exports.TestSkipped = "Device.Test.TestSkipped";
            exports.SaveHTML5TestResult = "Device.Test.SaveHTML5TestResult";
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/timeout.js
    var require_timeout2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/timeout.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __extends = exports && exports.__extends || /* @__PURE__ */ function() {
                var extendStatics = function extendStatics1(d, b) {
                    extendStatics = Object.setPrototypeOf || ({
                        __proto__: []
                    }) instanceof Array && function(d2, b2) {
                        d2.__proto__ = b2;
                    } || function(d2, b2) {
                        for(var p in b2)if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                };
                return function(d, b) {
                    if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                        this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                };
            }();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TimeoutError = void 0;
            exports.rejectAfterTimeout = rejectAfterTimeout;
            exports.withTimeout = withTimeout;
            var TimeoutError = /** @class */ function(_super) {
                __extends(TimeoutError2, _super);
                function TimeoutError2(message2) {
                    var _this = _super.call(this, message2 !== null && message2 !== void 0 ? message2 : "Timeout") || this;
                    Object.setPrototypeOf(_this, TimeoutError2.prototype);
                    return _this;
                }
                return TimeoutError2;
            }(Error);
            exports.TimeoutError = TimeoutError;
            function rejectAfterTimeout(timeout, errorMessage) {
                return new Promise(function(_resolve, reject) {
                    setTimeout(function() {
                        return reject(new TimeoutError(errorMessage));
                    }, timeout);
                });
            }
            function withTimeout(promise3, timeoutMs, errorMessage) {
                return Promise.race([
                    promise3,
                    rejectAfterTimeout(timeoutMs, errorMessage)
                ]);
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Test/TestFramework.js
    var require_TestFramework = __commonJS({
        "node_modules/@signageos/front-display/es6/Test/TestFramework.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createEmptyTestResult = exports.runTests = exports.afterEach = exports.beforeEach = exports.after = exports.before = exports.skip = exports.it = exports.describe = exports.Describe = void 0;
            var timeout_1 = require_timeout2();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Test:TestFramework");
            var DEFAULT_TIMEOUT = 12e4;
            var TestItemType;
            (function(TestItemType2) {
                TestItemType2["TITLE"] = "Title";
                TestItemType2["DESCRIBE"] = "Describe";
                TestItemType2["TEST"] = "Test";
                TestItemType2["BEFORE"] = "Before";
                TestItemType2["BEFORE_EACH"] = "BeforeEach";
                TestItemType2["AFTER"] = "After";
                TestItemType2["AFTER_EACH"] = "AfterEach";
            })(TestItemType || (TestItemType = {}));
            var SkipError = /*#__PURE__*/ function(Error1) {
                _inherits(_SkipError, Error1);
                var _super = _create_super(_SkipError);
                function _SkipError(reason) {
                    _class_call_check(this, _SkipError);
                    var _this;
                    _this = _super.call(this, reason);
                    Object.setPrototypeOf(_assert_this_initialized(_this), _SkipError.prototype);
                    return _this;
                }
                return _SkipError;
            }(_wrap_native_super(Error));
            var Describe = function Describe(title, run, timeout) {
                _class_call_check(this, Describe);
                this.title = title;
                this.run = run;
                this.timeout = timeout;
                this.type = TestItemType.DESCRIBE;
            };
            exports.Describe = Describe;
            function describe(title, describeCallback, timeout) {
                return new Describe(title, describeCallback, timeout);
            }
            exports.describe = describe;
            var It = function It(title, run, timeout) {
                _class_call_check(this, It);
                this.title = title;
                this.run = run;
                this.timeout = timeout;
                this.type = TestItemType.TEST;
            };
            function it(title, describeCallback, timeout) {
                return new It(title, describeCallback, timeout);
            }
            exports.it = it;
            function skip(reason) {
                throw new SkipError(reason);
            }
            exports.skip = skip;
            var Before = function Before(title, run, timeout) {
                _class_call_check(this, Before);
                this.title = title;
                this.run = run;
                this.timeout = timeout;
                this.type = TestItemType.BEFORE;
            };
            function before(title, describeCallback, timeout) {
                return new Before(title, describeCallback, timeout);
            }
            exports.before = before;
            var After = function After(title, run, timeout) {
                _class_call_check(this, After);
                this.title = title;
                this.run = run;
                this.timeout = timeout;
                this.type = TestItemType.AFTER;
            };
            function after(title, describeCallback, timeout) {
                return new After(title, describeCallback, timeout);
            }
            exports.after = after;
            var BeforeEach = function BeforeEach(title, run, timeout) {
                _class_call_check(this, BeforeEach);
                this.title = title;
                this.run = run;
                this.timeout = timeout;
                this.type = TestItemType.BEFORE_EACH;
            };
            function beforeEach(title, describeCallback, timeout) {
                return new BeforeEach(title, describeCallback, timeout);
            }
            exports.beforeEach = beforeEach;
            var AfterEach = function AfterEach(title, run, timeout) {
                _class_call_check(this, AfterEach);
                this.title = title;
                this.run = run;
                this.timeout = timeout;
                this.type = TestItemType.AFTER_EACH;
            };
            function afterEach(title, describeCallback, timeout) {
                return new AfterEach(title, describeCallback, timeout);
            }
            exports.afterEach = afterEach;
            function loadTestSuite(testPayload) {
                var creatingTestSuite = {
                    tests: [],
                    describes: [],
                    before: [],
                    after: [],
                    beforeEach: [],
                    afterEach: []
                };
                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                try {
                    for(var _iterator = testPayload[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                        var item = _step.value;
                        switch(item.type){
                            case TestItemType.TEST:
                                creatingTestSuite.tests.push(item);
                                break;
                            case TestItemType.DESCRIBE:
                                creatingTestSuite.describes.push(item);
                                break;
                            case TestItemType.BEFORE:
                                creatingTestSuite.before.push(item);
                                break;
                            case TestItemType.AFTER:
                                creatingTestSuite.after.push(item);
                                break;
                            case TestItemType.BEFORE_EACH:
                                creatingTestSuite.beforeEach.push(item);
                                break;
                            case TestItemType.AFTER_EACH:
                                creatingTestSuite.afterEach.push(item);
                                break;
                            default:
                                throw new Error("Unknown TestItemType: ".concat(item.type));
                        }
                    }
                } catch (err) {
                    _didIteratorError = true;
                    _iteratorError = err;
                } finally{
                    try {
                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                            _iterator["return"]();
                        }
                    } finally{
                        if (_didIteratorError) {
                            throw _iteratorError;
                        }
                    }
                }
                return creatingTestSuite;
            }
            function runTests(suite) {
                return __awaiter(this, void 0, void 0, function() {
                    var testSuite, result17, _ref, before2, failed, skipped, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, describe2, describeResult, err, tests, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, test, beforeEachFailed, beforeEachSkipped, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, beforeEach2, afterEachFailed, afterEachSkipped, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, afterEach2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                testSuite = loadTestSuite(suite.run());
                                result17 = createEmptyTestResult(suite.title);
                                return [
                                    4,
                                    runBefore(testSuite.before)
                                ];
                            case 1:
                                _ref = _state.sent(), before2 = _ref.before, failed = _ref.failed, skipped = _ref.skipped;
                                result17.before = before2;
                                if (failed || skipped) {
                                    result17.total++;
                                    if (failed) {
                                        result17.failed++;
                                    }
                                    if (skipped) {
                                        result17.skipped++;
                                    }
                                    return [
                                        2,
                                        result17
                                    ];
                                }
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    7,
                                    8,
                                    9
                                ]);
                                _iterator = testSuite.describes[Symbol.iterator]();
                                _state.label = 3;
                            case 3:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    6
                                ];
                                describe2 = _step.value;
                                return [
                                    4,
                                    runTests(describe2)
                                ];
                            case 4:
                                describeResult = _state.sent();
                                result17.describe.push(describeResult);
                                result17.total += describeResult.total;
                                result17.successful += describeResult.successful;
                                result17.skipped += describeResult.skipped;
                                result17.failed += describeResult.failed;
                                result17.duration += describeResult.duration;
                                _state.label = 5;
                            case 5:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    3
                                ];
                            case 6:
                                return [
                                    3,
                                    9
                                ];
                            case 7:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    9
                                ];
                            case 8:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 9:
                                return [
                                    4,
                                    runActualTests(testSuite)
                                ];
                            case 10:
                                tests = _state.sent();
                                result17.test = tests;
                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                try {
                                    for(_iterator1 = tests[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                        test = _step1.value;
                                        result17.total++;
                                        result17.duration += test.test.duration;
                                        beforeEachFailed = false;
                                        beforeEachSkipped = false;
                                        _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
                                        try {
                                            for(_iterator2 = test.beforeEach[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
                                                beforeEach2 = _step2.value;
                                                if (beforeEach2.failed) {
                                                    beforeEachFailed = true;
                                                }
                                                if (beforeEach2.skipped) {
                                                    beforeEachSkipped = true;
                                                }
                                            }
                                        } catch (err) {
                                            _didIteratorError2 = true;
                                            _iteratorError2 = err;
                                        } finally{
                                            try {
                                                if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
                                                    _iterator2["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError2) {
                                                    throw _iteratorError2;
                                                }
                                            }
                                        }
                                        if (beforeEachFailed) {
                                            result17.failed++;
                                            continue;
                                        }
                                        if (beforeEachSkipped) {
                                            result17.skipped++;
                                            continue;
                                        }
                                        if (test.test.failed) {
                                            result17.failed++;
                                            continue;
                                        }
                                        if (test.test.skipped) {
                                            result17.skipped++;
                                            continue;
                                        }
                                        afterEachFailed = false;
                                        afterEachSkipped = false;
                                        _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = undefined;
                                        try {
                                            for(_iterator3 = test.afterEach[Symbol.iterator](); !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true){
                                                afterEach2 = _step3.value;
                                                if (afterEach2.failed) {
                                                    afterEachFailed = true;
                                                }
                                                if (afterEach2.skipped) {
                                                    afterEachSkipped = true;
                                                }
                                            }
                                        } catch (err) {
                                            _didIteratorError3 = true;
                                            _iteratorError3 = err;
                                        } finally{
                                            try {
                                                if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
                                                    _iterator3["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError3) {
                                                    throw _iteratorError3;
                                                }
                                            }
                                        }
                                        if (afterEachFailed) {
                                            result17.failed++;
                                            continue;
                                        }
                                        if (afterEachSkipped) {
                                            result17.skipped++;
                                            continue;
                                        }
                                        result17.successful++;
                                    }
                                } catch (err) {
                                    _didIteratorError1 = true;
                                    _iteratorError1 = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                            _iterator1["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError1) {
                                            throw _iteratorError1;
                                        }
                                    }
                                }
                                return [
                                    4,
                                    runItems(testSuite.after)
                                ];
                            case 11:
                                result17.after = _state.sent();
                                return [
                                    2,
                                    result17
                                ];
                        }
                    });
                });
            }
            exports.runTests = runTests;
            function createEmptyTestResult(title) {
                return {
                    title: title,
                    total: 0,
                    successful: 0,
                    failed: 0,
                    skipped: 0,
                    test: [],
                    describe: [],
                    before: [],
                    after: [],
                    duration: 0
                };
            }
            exports.createEmptyTestResult = createEmptyTestResult;
            function runActualTests(testSuite) {
                return __awaiter(this, void 0, void 0, function() {
                    var testResults, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, test, testResult, shouldPreventRun, beforeEachResults, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, beforeEach2, timeStart, error, afterEachResult, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                testResults = [];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    11,
                                    12,
                                    13
                                ]);
                                _iterator = testSuite.tests[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    10
                                ];
                                test = _step.value;
                                testResult = {
                                    title: test.title,
                                    skipped: false,
                                    failed: false,
                                    duration: 0
                                };
                                shouldPreventRun = false;
                                return [
                                    4,
                                    runItems(testSuite.beforeEach)
                                ];
                            case 3:
                                beforeEachResults = _state.sent();
                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                try {
                                    for(_iterator1 = beforeEachResults[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                        beforeEach2 = _step1.value;
                                        if (beforeEach2.failed) {
                                            testResult.failed = true;
                                            testResult.reason = "Before each error. Reason: ".concat(beforeEach2.reason);
                                            shouldPreventRun = true;
                                        }
                                        if (beforeEach2.skipped) {
                                            testResult.skipped = true;
                                            testResult.reason = "Before each skipped. Reason: ".concat(beforeEach2.reason);
                                            shouldPreventRun = true;
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError1 = true;
                                    _iteratorError1 = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                            _iterator1["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError1) {
                                            throw _iteratorError1;
                                        }
                                    }
                                }
                                if (shouldPreventRun) {
                                    testResults.push({
                                        beforeEach: beforeEachResults,
                                        test: testResult,
                                        afterEach: []
                                    });
                                    return [
                                        3,
                                        9
                                    ];
                                }
                                timeStart = /* @__PURE__ */ new Date().getTime();
                                _state.label = 4;
                            case 4:
                                _state.trys.push([
                                    4,
                                    6,
                                    ,
                                    7
                                ]);
                                return [
                                    4,
                                    (0, timeout_1.withTimeout)(test.run(), test.timeout || DEFAULT_TIMEOUT)
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    3,
                                    7
                                ];
                            case 6:
                                error = _state.sent();
                                testResult.reason = error.message;
                                if (error instanceof SkipError) {
                                    testResult.skipped = true;
                                } else {
                                    testResult.failed = true;
                                }
                                return [
                                    3,
                                    7
                                ];
                            case 7:
                                testResult.duration = /* @__PURE__ */ new Date().getTime() - timeStart;
                                return [
                                    4,
                                    runItems(testSuite.afterEach)
                                ];
                            case 8:
                                afterEachResult = _state.sent();
                                testResults.push({
                                    beforeEach: beforeEachResults,
                                    test: testResult,
                                    afterEach: afterEachResult
                                });
                                _state.label = 9;
                            case 9:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 10:
                                return [
                                    3,
                                    13
                                ];
                            case 11:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    13
                                ];
                            case 12:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 13:
                                return [
                                    2,
                                    testResults
                                ];
                        }
                    });
                });
            }
            function runBefore(items) {
                return __awaiter(this, void 0, void 0, function() {
                    var itemResults, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, result17, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                itemResults = [];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    7,
                                    8
                                ]);
                                _iterator = items[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    5
                                ];
                                item = _step.value;
                                return [
                                    4,
                                    executeItem(item)
                                ];
                            case 3:
                                result17 = _state.sent();
                                itemResults.push(result17);
                                if (result17.skipped) {
                                    return [
                                        2,
                                        {
                                            before: itemResults,
                                            failed: false,
                                            skipped: true
                                        }
                                    ];
                                }
                                if (result17.failed) {
                                    return [
                                        2,
                                        {
                                            before: itemResults,
                                            failed: true,
                                            skipped: true
                                        }
                                    ];
                                }
                                _state.label = 4;
                            case 4:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 5:
                                return [
                                    3,
                                    8
                                ];
                            case 6:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 8:
                                return [
                                    2,
                                    {
                                        before: itemResults,
                                        failed: false,
                                        skipped: false
                                    }
                                ];
                        }
                    });
                });
            }
            function runItems(items) {
                return __awaiter(this, void 0, void 0, function() {
                    var itemResults, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, _, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                itemResults = [];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    7,
                                    8
                                ]);
                                _iterator = items[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    5
                                ];
                                item = _step.value;
                                _ = itemResults.push;
                                return [
                                    4,
                                    executeItem(item)
                                ];
                            case 3:
                                _.apply(itemResults, [
                                    _state.sent()
                                ]);
                                _state.label = 4;
                            case 4:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 5:
                                return [
                                    3,
                                    8
                                ];
                            case 6:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 8:
                                return [
                                    2,
                                    itemResults
                                ];
                        }
                    });
                });
            }
            function executeItem(instance) {
                return __awaiter(this, void 0, void 0, function() {
                    var result17, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                result17 = {
                                    title: instance.title,
                                    skipped: false,
                                    failed: false,
                                    duration: 0
                                };
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                debug4("run test: " + instance.title);
                                return [
                                    4,
                                    (0, timeout_1.withTimeout)(instance.run(), instance.timeout || DEFAULT_TIMEOUT)
                                ];
                            case 2:
                                _state.sent();
                                debug4("test successful: " + instance.title);
                                return [
                                    2,
                                    result17
                                ];
                            case 3:
                                error = _state.sent();
                                result17.reason = error.message;
                                if (error instanceof SkipError) {
                                    debug4("test skipped: " + instance.title);
                                    result17.skipped = true;
                                    return [
                                        2,
                                        result17
                                    ];
                                }
                                debug4("test failed: ".concat(instance.title, ", reason: ").concat(error.message));
                                result17.failed = true;
                                return [
                                    2,
                                    result17
                                ];
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Test/testSagas.js
    var require_testSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Test/testSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.runTestsSaga = exports.runTestsCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceTestActions_1 = require_deviceTestActions();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var TestFramework_1 = require_TestFramework();
            function runTestsCallback(testSuitePromises, action) {
                var uid, uniqueRequestedTests, processedTests, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, testSuitePromise, testSuite, result17, err, error, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, unsupportedTest;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            uid = action.uid;
                            uniqueRequestedTests = action.tests.filter(function(elem, pos) {
                                return action.tests.indexOf(elem) === pos;
                            });
                            if (uniqueRequestedTests.length === 0) {
                                return [
                                    2
                                ];
                            }
                            processedTests = [];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePowerActionActions_1.TriggerAppletOff
                                })
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                17,
                                18,
                                20
                            ]);
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                14,
                                15,
                                16
                            ]);
                            _iterator = testSuitePromises[Symbol.iterator]();
                            _state.label = 4;
                        case 4:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                13
                            ];
                            testSuitePromise = _step.value;
                            return [
                                4,
                                testSuitePromise
                            ];
                        case 5:
                            testSuite = _state.sent();
                            if (!testSuite || !testSuite.title) {
                                throw new Error("Invalid test - no describe defined");
                            }
                            if (action.tests.indexOf(testSuite.title) < 0) {
                                return [
                                    3,
                                    12
                                ];
                            }
                            processedTests.push(testSuite.title);
                            return [
                                4,
                                (0, TestFramework_1.runTests)(testSuite)
                            ];
                        case 6:
                            result17 = _state.sent();
                            if (!(result17.failed > 0)) return [
                                3,
                                8
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTestActions_1.TestFailed,
                                    uid: uid,
                                    identifier: result17.title,
                                    result: result17
                                })
                            ];
                        case 7:
                            _state.sent();
                            return [
                                3,
                                12
                            ];
                        case 8:
                            if (!(result17.skipped === result17.total)) return [
                                3,
                                10
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTestActions_1.TestSkipped,
                                    uid: uid,
                                    identifier: result17.title,
                                    result: result17
                                })
                            ];
                        case 9:
                            _state.sent();
                            return [
                                3,
                                12
                            ];
                        case 10:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTestActions_1.TestSucceeded,
                                    uid: uid,
                                    identifier: result17.title,
                                    result: result17
                                })
                            ];
                        case 11:
                            _state.sent();
                            _state.label = 12;
                        case 12:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                4
                            ];
                        case 13:
                            return [
                                3,
                                16
                            ];
                        case 14:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                16
                            ];
                        case 15:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 16:
                            return [
                                3,
                                20
                            ];
                        case 17:
                            error = _state.sent();
                            console.error("runTestsCallback: ", error);
                            return [
                                3,
                                20
                            ];
                        case 18:
                            _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                            try {
                                for(_iterator1 = uniqueRequestedTests[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                    unsupportedTest = _step1.value;
                                    if (processedTests.indexOf(unsupportedTest) < 0) {
                                        console.warn("unknown test requested:", unsupportedTest);
                                    }
                                }
                            } catch (err) {
                                _didIteratorError1 = true;
                                _iteratorError1 = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                        _iterator1["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError1) {
                                        throw _iteratorError1;
                                    }
                                }
                            }
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePowerActionActions_1.TriggerAppletOn
                                })
                            ];
                        case 19:
                            _state.sent();
                            return [
                                7
                            ];
                        case 20:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.runTestsCallback = runTestsCallback;
            function runTestsSaga(tests) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceTestActions_1.StartTestSuite, runTestsCallback, tests)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.runTestsSaga = runTestsSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Timer/IProprietaryTimerResolver.js
    var require_IProprietaryTimerResolver = __commonJS({
        "node_modules/@signageos/front-display/es6/Timer/IProprietaryTimerResolver.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DisplayEvent = exports.TimerEvent = void 0;
            var TimerEvent;
            (function(TimerEvent2) {
                TimerEvent2["TIMER_ON"] = "timer_on";
                TimerEvent2["TIMER_OFF"] = "timer_off";
                TimerEvent2["APPLET_MUTE_ON"] = "applet_mute_on";
                TimerEvent2["APPLET_MUTE_OFF"] = "applet_mute_off";
            })(TimerEvent || (exports.TimerEvent = TimerEvent = {}));
            var DisplayEvent;
            (function(DisplayEvent2) {
                DisplayEvent2["POWER_ON"] = "power_on";
                DisplayEvent2["POWER_OFF"] = "power_off";
            })(DisplayEvent || (exports.DisplayEvent = DisplayEvent = {}));
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Utils/object.js
    var require_object2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Utils/object.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __assign = exports && exports.__assign || function() {
                __assign = Object.assign || function(t) {
                    for(var s, i = 1, n = arguments.length; i < n; i++){
                        s = arguments[i];
                        for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
                    }
                    return t;
                };
                return __assign.apply(this, arguments);
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getObjectKeys = exports.getObjectWithOmittedValuesBy = void 0;
            exports.convertObjectUndefinedPropertiesToNull = convertObjectUndefinedPropertiesToNull;
            exports.mapObject = mapObject;
            exports.omitWithTypes = omitWithTypes;
            var lodash_1 = require_lodash();
            var isObject2 = function isObject2(value) {
                return !(0, lodash_1.isString)(value) && !(0, lodash_1.isEmpty)(value);
            };
            var isTypeOf = function isTypeOf(value, comparedValue) {
                if ((0, lodash_1.isUndefined)(value) && (0, lodash_1.isUndefined)(comparedValue)) {
                    return true;
                }
                if ((0, lodash_1.isNull)(value) && (0, lodash_1.isNull)(comparedValue)) {
                    return true;
                }
                if ((0, lodash_1.isNumber)(value) && (0, lodash_1.isNumber)(comparedValue) && value === comparedValue) {
                    return true;
                }
                if ((0, lodash_1.isString)(value) && (0, lodash_1.isString)(comparedValue) && value === comparedValue) {
                    return true;
                }
                if ((0, lodash_1.isDate)(value) && (0, lodash_1.isDate)(comparedValue) && value === comparedValue) {
                    return true;
                }
                return false;
            };
            var getOmittedArray = function getOmittedArray(array4, omittedValue) {
                var iteratedValues = [];
                for(var _i = 0, array_1 = array4; _i < array_1.length; _i++){
                    var item = array_1[_i];
                    if (isTypeOf(item, omittedValue)) {
                        continue;
                    } else if (isObject2(item)) {
                        iteratedValues.push(__assign({}, (0, exports.getObjectWithOmittedValuesBy)(item, omittedValue)));
                        continue;
                    } else {
                        iteratedValues.push(item);
                        continue;
                    }
                }
                return iteratedValues;
            };
            var getObjectWithOmittedValuesBy = function getObjectWithOmittedValuesBy(input, omittedValue) {
                var _a2, _b2, _c;
                var result17 = {};
                for(var key in input){
                    var value = input[key];
                    if (isTypeOf(value, omittedValue)) {
                        continue;
                    } else if ((0, lodash_1.isArray)(value)) {
                        result17 = __assign(__assign({}, result17), (_a2 = {}, _a2[key] = getOmittedArray(value, omittedValue), _a2));
                        continue;
                    } else if (isObject2(value)) {
                        result17 = __assign(__assign({}, result17), (_b2 = {}, _b2[key] = __assign({}, (0, exports.getObjectWithOmittedValuesBy)(value, omittedValue)), _b2));
                        continue;
                    }
                    result17 = __assign(__assign({}, result17), (_c = {}, _c[key] = value, _c));
                }
                return result17;
            };
            exports.getObjectWithOmittedValuesBy = getObjectWithOmittedValuesBy;
            exports.getObjectKeys = Object.keys;
            function convertObjectUndefinedPropertiesToNull(obj) {
                var result17 = {};
                for(var key in obj){
                    var value = obj[key];
                    if (value === void 0) {
                        result17[key] = null;
                    } else {
                        result17[key] = value;
                    }
                }
                return result17;
            }
            function mapObject(settings, transform) {
                var timerSettings = {};
                for(var _i = 0, _a2 = (0, exports.getObjectKeys)(settings); _i < _a2.length; _i++){
                    var timerType = _a2[_i];
                    timerSettings[timerType] = transform(settings[timerType]);
                }
                return timerSettings;
            }
            function omitWithTypes(object, keysToOmit) {
                return (0, lodash_1.omit)(object, keysToOmit);
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/PowerTimerWeekday.js
    var require_PowerTimerWeekday = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/PowerTimerWeekday.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var TimerWeekday2;
            (function(TimerWeekday3) {
                TimerWeekday3[TimerWeekday3["sun"] = 0] = "sun";
                TimerWeekday3[TimerWeekday3["mon"] = 1] = "mon";
                TimerWeekday3[TimerWeekday3["tue"] = 2] = "tue";
                TimerWeekday3[TimerWeekday3["wed"] = 3] = "wed";
                TimerWeekday3[TimerWeekday3["thu"] = 4] = "thu";
                TimerWeekday3[TimerWeekday3["fri"] = 5] = "fri";
                TimerWeekday3[TimerWeekday3["sat"] = 6] = "sat";
            })(TimerWeekday2 || (TimerWeekday2 = {}));
            exports["default"] = TimerWeekday2;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/PowerTimerWeekdayEnum.js
    var require_PowerTimerWeekdayEnum2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/PowerTimerWeekdayEnum.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.shortWeekdays = exports.ShortWeekdayEnum = exports.longWeekdays = exports.LongWeekdayEnum = void 0;
            var LongWeekdayEnum;
            (function(LongWeekdayEnum2) {
                LongWeekdayEnum2["SUNDAY"] = "SUNDAY";
                LongWeekdayEnum2["MONDAY"] = "MONDAY";
                LongWeekdayEnum2["TUESDAY"] = "TUESDAY";
                LongWeekdayEnum2["WEDNESDAY"] = "WEDNESDAY";
                LongWeekdayEnum2["THURSDAY"] = "THURSDAY";
                LongWeekdayEnum2["FRIDAY"] = "FRIDAY";
                LongWeekdayEnum2["SATURDAY"] = "SATURDAY";
            })(LongWeekdayEnum || (exports.LongWeekdayEnum = LongWeekdayEnum = {}));
            exports.longWeekdays = Object.keys(LongWeekdayEnum).map(function(key) {
                return LongWeekdayEnum[key];
            });
            var ShortWeekdayEnum;
            (function(ShortWeekdayEnum2) {
                ShortWeekdayEnum2["SUNDAY"] = "sun";
                ShortWeekdayEnum2["MONDAY"] = "mon";
                ShortWeekdayEnum2["TUESDAY"] = "tue";
                ShortWeekdayEnum2["WEDNESDAY"] = "wed";
                ShortWeekdayEnum2["THURSDAY"] = "thu";
                ShortWeekdayEnum2["FRIDAY"] = "fri";
                ShortWeekdayEnum2["SATURDAY"] = "sat";
            })(ShortWeekdayEnum || (exports.ShortWeekdayEnum = ShortWeekdayEnum = {}));
            exports.shortWeekdays = Object.keys(ShortWeekdayEnum).map(function(key) {
                return ShortWeekdayEnum[key];
            });
            exports["default"] = LongWeekdayEnum;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/convertWeekday.js
    var require_convertWeekday = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/convertWeekday.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.convertWeekday = void 0;
            var PowerTimerWeekday_1 = __importDefault(require_PowerTimerWeekday());
            var PowerTimerWeekdayEnum_1 = __importStar(require_PowerTimerWeekdayEnum2());
            exports.convertWeekday = {
                fromShort: function fromShort(weekdays) {
                    return {
                        toLegacy: function toLegacy() {
                            return {
                                sun: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SUNDAY),
                                mon: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.MONDAY),
                                tue: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.TUESDAY),
                                wed: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.WEDNESDAY),
                                thu: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.THURSDAY),
                                fri: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.FRIDAY),
                                sat: weekdays.includes(PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SATURDAY)
                            };
                        },
                        toLong: function toLong() {
                            return weekdays.map(convertShortWeekdayToLongWeekday);
                        },
                        toTimerWeekday: function toTimerWeekday() {
                            return weekdays.map(convertShortWeekdayToTimerWeekday);
                        }
                    };
                },
                fromLong: function fromLong(weekdays) {
                    return {
                        toShort: function toShort() {
                            return weekdays.map(convertLongWeekdayToShortWeekday);
                        },
                        toLegacy: function toLegacy() {
                            return {
                                sun: weekdays.includes(PowerTimerWeekdayEnum_1["default"].SUNDAY),
                                mon: weekdays.includes(PowerTimerWeekdayEnum_1["default"].MONDAY),
                                tue: weekdays.includes(PowerTimerWeekdayEnum_1["default"].TUESDAY),
                                wed: weekdays.includes(PowerTimerWeekdayEnum_1["default"].WEDNESDAY),
                                thu: weekdays.includes(PowerTimerWeekdayEnum_1["default"].THURSDAY),
                                fri: weekdays.includes(PowerTimerWeekdayEnum_1["default"].FRIDAY),
                                sat: weekdays.includes(PowerTimerWeekdayEnum_1["default"].SATURDAY)
                            };
                        },
                        toTimerWeekday: function toTimerWeekday() {
                            return weekdays.map(convertLongWeekdayToTimerWeekday);
                        }
                    };
                },
                fromLegacy: function fromLegacy(weekdays) {
                    return {
                        toShort: function toShort() {
                            return legacyTimerKeys.filter(function(key) {
                                return weekdays[key];
                            });
                        },
                        toLong: function toLong() {
                            return legacyTimerKeys.filter(function(key) {
                                return weekdays[key];
                            }).map(convertShortWeekdayToLongWeekday);
                        },
                        toTimerWeekday: function toTimerWeekday() {
                            return legacyTimerKeys.filter(function(key) {
                                return weekdays[key];
                            }).map(function(short) {
                                return PowerTimerWeekday_1["default"][short];
                            });
                        }
                    };
                },
                fromTimerWeekday: function fromTimerWeekday(weekdays) {
                    return {
                        toShort: function toShort() {
                            return weekdays.map(convertTimerWeekdayToShortWeekday);
                        },
                        toLegacy: function toLegacy() {
                            return {
                                sun: weekdays.includes(PowerTimerWeekday_1["default"].sun),
                                mon: weekdays.includes(PowerTimerWeekday_1["default"].mon),
                                tue: weekdays.includes(PowerTimerWeekday_1["default"].tue),
                                wed: weekdays.includes(PowerTimerWeekday_1["default"].wed),
                                thu: weekdays.includes(PowerTimerWeekday_1["default"].thu),
                                fri: weekdays.includes(PowerTimerWeekday_1["default"].fri),
                                sat: weekdays.includes(PowerTimerWeekday_1["default"].sat)
                            };
                        },
                        toLong: function toLong() {
                            return weekdays.map(function(w) {
                                return convertShortWeekdayToLongWeekday(convertTimerWeekdayToShortWeekday(w));
                            });
                        }
                    };
                }
            };
            function convertShortWeekdayToLongWeekday(shortWeekday) {
                switch(shortWeekday){
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SUNDAY:
                        return PowerTimerWeekdayEnum_1["default"].SUNDAY;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.MONDAY:
                        return PowerTimerWeekdayEnum_1["default"].MONDAY;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.TUESDAY:
                        return PowerTimerWeekdayEnum_1["default"].TUESDAY;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.WEDNESDAY:
                        return PowerTimerWeekdayEnum_1["default"].WEDNESDAY;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.THURSDAY:
                        return PowerTimerWeekdayEnum_1["default"].THURSDAY;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.FRIDAY:
                        return PowerTimerWeekdayEnum_1["default"].FRIDAY;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SATURDAY:
                        return PowerTimerWeekdayEnum_1["default"].SATURDAY;
                    default:
                        throw new Error("Unknown short weekday: ".concat(shortWeekday));
                }
            }
            function convertShortWeekdayToTimerWeekday(shortWeekday) {
                switch(shortWeekday){
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SUNDAY:
                        return PowerTimerWeekday_1["default"].sun;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.MONDAY:
                        return PowerTimerWeekday_1["default"].mon;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.TUESDAY:
                        return PowerTimerWeekday_1["default"].tue;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.WEDNESDAY:
                        return PowerTimerWeekday_1["default"].wed;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.THURSDAY:
                        return PowerTimerWeekday_1["default"].thu;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.FRIDAY:
                        return PowerTimerWeekday_1["default"].fri;
                    case PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SATURDAY:
                        return PowerTimerWeekday_1["default"].sat;
                    default:
                        throw new Error("Unknown short weekday: ".concat(shortWeekday));
                }
            }
            function convertLongWeekdayToTimerWeekday(shortWeekday) {
                switch(shortWeekday){
                    case PowerTimerWeekdayEnum_1["default"].SUNDAY:
                        return PowerTimerWeekday_1["default"].sun;
                    case PowerTimerWeekdayEnum_1["default"].MONDAY:
                        return PowerTimerWeekday_1["default"].mon;
                    case PowerTimerWeekdayEnum_1["default"].TUESDAY:
                        return PowerTimerWeekday_1["default"].tue;
                    case PowerTimerWeekdayEnum_1["default"].WEDNESDAY:
                        return PowerTimerWeekday_1["default"].wed;
                    case PowerTimerWeekdayEnum_1["default"].THURSDAY:
                        return PowerTimerWeekday_1["default"].thu;
                    case PowerTimerWeekdayEnum_1["default"].FRIDAY:
                        return PowerTimerWeekday_1["default"].fri;
                    case PowerTimerWeekdayEnum_1["default"].SATURDAY:
                        return PowerTimerWeekday_1["default"].sat;
                    default:
                        throw new Error("Unknown short weekday: ".concat(shortWeekday));
                }
            }
            function convertLongWeekdayToShortWeekday(longWeekday) {
                switch(longWeekday){
                    case PowerTimerWeekdayEnum_1["default"].SUNDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SUNDAY;
                    case PowerTimerWeekdayEnum_1["default"].MONDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.MONDAY;
                    case PowerTimerWeekdayEnum_1["default"].TUESDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.TUESDAY;
                    case PowerTimerWeekdayEnum_1["default"].WEDNESDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.WEDNESDAY;
                    case PowerTimerWeekdayEnum_1["default"].THURSDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.THURSDAY;
                    case PowerTimerWeekdayEnum_1["default"].FRIDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.FRIDAY;
                    case PowerTimerWeekdayEnum_1["default"].SATURDAY:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SATURDAY;
                    default:
                        throw new Error("Unknown long weekday: ".concat(longWeekday));
                }
            }
            function convertTimerWeekdayToShortWeekday(timerWeekday) {
                switch(timerWeekday){
                    case PowerTimerWeekday_1["default"].sun:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SUNDAY;
                    case PowerTimerWeekday_1["default"].mon:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.MONDAY;
                    case PowerTimerWeekday_1["default"].tue:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.TUESDAY;
                    case PowerTimerWeekday_1["default"].wed:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.WEDNESDAY;
                    case PowerTimerWeekday_1["default"].thu:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.THURSDAY;
                    case PowerTimerWeekday_1["default"].fri:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.FRIDAY;
                    case PowerTimerWeekday_1["default"].sat:
                        return PowerTimerWeekdayEnum_1.ShortWeekdayEnum.SATURDAY;
                    default:
                        throw new Error("Unknown timer weekday: ".concat(timerWeekday));
                }
            }
            var legacyTimerKeys = [
                "sun",
                "mon",
                "tue",
                "wed",
                "thu",
                "fri",
                "sat"
            ];
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/converters.js
    var require_converters = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/converters.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __assign = exports && exports.__assign || function() {
                __assign = Object.assign || function(t) {
                    for(var s, i = 1, n = arguments.length; i < n; i++){
                        s = arguments[i];
                        for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
                    }
                    return t;
                };
                return __assign.apply(this, arguments);
            };
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.convertLongWeekdayTimerSettingsToLegacyTimerSettings = convertLongWeekdayTimerSettingsToLegacyTimerSettings;
            exports.convertShortWeekdayTimerSettingsToLegacyTimerSettings = convertShortWeekdayTimerSettingsToLegacyTimerSettings;
            exports.convertLegacyTimerToShortWeekdayTimer = convertLegacyTimerToShortWeekdayTimer;
            exports.convertTimersToLongWeekdayTimerSettings = convertTimersToLongWeekdayTimerSettings;
            exports.convertTimersToShortWeekdayTimerSettings = convertTimersToShortWeekdayTimerSettings;
            var object_1 = require_object2();
            var convertWeekday_1 = require_convertWeekday();
            function convertLongWeekdayTimerSettingsToLegacyTimerSettings(settings) {
                return (0, object_1.mapObject)(settings, function(_a2) {
                    var weekdays = _a2.weekdays, t = __rest(_a2, [
                        "weekdays"
                    ]);
                    return __assign(__assign({}, t), convertWeekday_1.convertWeekday.fromLong(weekdays).toLegacy());
                });
            }
            function convertShortWeekdayTimerSettingsToLegacyTimerSettings(settings) {
                return (0, object_1.mapObject)(settings, function(_a2) {
                    var weekdays = _a2.weekdays, t = __rest(_a2, [
                        "weekdays"
                    ]);
                    return __assign(__assign({}, t), convertWeekday_1.convertWeekday.fromShort(weekdays).toLegacy());
                });
            }
            function convertLegacyTimerToShortWeekdayTimer(settings) {
                return (0, object_1.mapObject)(settings, function(_a2) {
                    var sun = _a2.sun, mon = _a2.mon, tue = _a2.tue, wed = _a2.wed, thu = _a2.thu, fri = _a2.fri, sat = _a2.sat, t = __rest(_a2, [
                        "sun",
                        "mon",
                        "tue",
                        "wed",
                        "thu",
                        "fri",
                        "sat"
                    ]);
                    return __assign(__assign({}, t), {
                        weekdays: convertWeekday_1.convertWeekday.fromLegacy({
                            sun: sun,
                            mon: mon,
                            tue: tue,
                            wed: wed,
                            thu: thu,
                            fri: fri,
                            sat: sat
                        }).toShort()
                    });
                });
            }
            function convertTimersToLongWeekdayTimerSettings(shortWeekdayTimer) {
                var timers = {};
                for(var _i = 0, shortWeekdayTimer_1 = shortWeekdayTimer; _i < shortWeekdayTimer_1.length; _i++){
                    var _a2 = shortWeekdayTimer_1[_i];
                    var weekdays = _a2.weekdays, t = __rest(_a2, [
                        "weekdays"
                    ]);
                    timers[t.type] = __assign(__assign({}, t), {
                        weekdays: convertWeekday_1.convertWeekday.fromShort(weekdays).toLong()
                    });
                }
                return timers;
            }
            function convertTimersToShortWeekdayTimerSettings(shortWeekdayTimer) {
                var timers = {};
                for(var _i = 0, shortWeekdayTimer_2 = shortWeekdayTimer; _i < shortWeekdayTimer_2.length; _i++){
                    var timerSetting = shortWeekdayTimer_2[_i];
                    timers[timerSetting.type] = {
                        type: timerSetting.type,
                        timeOn: timerSetting.timeOn,
                        timeOff: timerSetting.timeOff,
                        weekdays: timerSetting.weekdays
                    };
                }
                return timers;
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/DateTime/timeConverter.js
    var require_timeConverter = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/DateTime/timeConverter.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.timeToSeconds = timeToSeconds;
            function timeToSeconds(time) {
                var timeParts = time.split(":");
                if (timeParts.length !== 3) {
                    throw new Error("Invalid time format. Must be HH:mm:ss");
                }
                return timeParts.reduce(function(num, timePart, index) {
                    return num + parseInt(timePart) * Math.pow(60, 2 - index);
                }, 0);
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/TimerEventWeekdayNumber.js
    var require_TimerEventWeekdayNumber = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/TimerEventWeekdayNumber.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TimerEventWeekdayNumber = void 0;
            var TimerEventWeekdayNumber;
            (function(TimerEventWeekdayNumber2) {
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["sun"] = 0] = "sun";
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["mon"] = 1] = "mon";
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["tue"] = 2] = "tue";
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["wed"] = 3] = "wed";
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["thu"] = 4] = "thu";
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["fri"] = 5] = "fri";
                TimerEventWeekdayNumber2[TimerEventWeekdayNumber2["sat"] = 6] = "sat";
            })(TimerEventWeekdayNumber || (exports.TimerEventWeekdayNumber = TimerEventWeekdayNumber = {}));
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/powerTimerComputer.js
    var require_powerTimerComputer = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Timer/Power/powerTimerComputer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __spreadArray = exports && exports.__spreadArray || function(to, from, pack) {
                if (pack || arguments.length === 2) for(var i = 0, l = from.length, ar; i < l; i++){
                    if (ar || !(i in from)) {
                        if (!ar) ar = Array.prototype.slice.call(from, 0, i);
                        ar[i] = from[i];
                    }
                }
                return to.concat(ar || Array.prototype.slice.call(from));
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.shouldBeOnByTimers = shouldBeOnByTimers;
            exports.shouldBeOnByTimerSettings = shouldBeOnByTimerSettings;
            exports.orderTimerEventsByChronology = orderTimerEventsByChronology;
            exports.getTimerEventsFromShortWeekday = getTimerEventsFromShortWeekday;
            exports.getTimerEvents = getTimerEvents;
            exports.getNextTimerEventForSameDay = getNextTimerEventForSameDay;
            exports.getNextTimerEventForFollowingDays = getNextTimerEventForFollowingDays;
            exports.getNextTimerEvent = getNextTimerEvent;
            exports.getLastTimerEvent = getLastTimerEvent;
            var moment_timezone_1 = __importDefault(require_moment_timezone2());
            var converters_1 = require_converters();
            var timeConverter_1 = require_timeConverter();
            var object_1 = require_object2();
            var TimerEventWeekdayNumber_1 = require_TimerEventWeekdayNumber();
            function shouldBeOnByTimers(timerSettings, now2) {
                return shouldBeOnByTimerSettings((0, converters_1.convertLegacyTimerToShortWeekdayTimer)(timerSettings), now2);
            }
            function shouldBeOnByTimerSettings(timerSettings, now2) {
                var lastTimerEvent = getLastTimerEvent(timerSettings, now2);
                return lastTimerEvent === null ? null : lastTimerEvent.type === "ON";
            }
            function orderTimerEventsByChronology(timerEvents) {
                return timerEvents.sort(function(a, b) {
                    return (a.weekDayNumber - b.weekDayNumber) * (24 * 60 * 60) + // whole day in seconds
                    (0, timeConverter_1.timeToSeconds)(a.time) - (0, timeConverter_1.timeToSeconds)(b.time);
                });
            }
            function getTimerEventsFromShortWeekday(allSettings) {
                var timerEvents = [];
                for(var _i = 0, _a2 = (0, object_1.getObjectKeys)(allSettings); _i < _a2.length; _i++){
                    var type = _a2[_i];
                    var settings = allSettings[type];
                    for(var _b2 = 0, _c = settings.weekdays; _b2 < _c.length; _b2++){
                        var weekday = _c[_b2];
                        if (settings.timeOn) {
                            timerEvents.push({
                                weekDayNumber: TimerEventWeekdayNumber_1.TimerEventWeekdayNumber[weekday],
                                type: "ON",
                                time: settings.timeOn,
                                timerType: settings.type
                            });
                        }
                        if (settings.timeOff) {
                            timerEvents.push({
                                weekDayNumber: TimerEventWeekdayNumber_1.TimerEventWeekdayNumber[weekday],
                                type: "OFF",
                                time: settings.timeOff,
                                timerType: settings.type
                            });
                        }
                    }
                }
                return timerEvents;
            }
            function getTimerEvents(allSettings) {
                return getTimerEventsFromShortWeekday((0, converters_1.convertLegacyTimerToShortWeekdayTimer)(allSettings));
            }
            function getNextTimerEventForSameDay(sortedTimerEvents, now2) {
                return sortedTimerEvents.find(function(timerEvent) {
                    var isThisDay = timerEvent.weekDayNumber === now2.getDay();
                    var isOnTime = (0, timeConverter_1.timeToSeconds)(timerEvent.time) >= (0, timeConverter_1.timeToSeconds)((0, moment_timezone_1["default"])(now2).format("HH:mm:ss"));
                    return isThisDay && isOnTime;
                });
            }
            function getNextTimerEventForFollowingDays(sortedTimerEvents, now2) {
                return sortedTimerEvents.find(function(timerEvent) {
                    return timerEvent.weekDayNumber > now2.getDay();
                });
            }
            function getNextTimerEvent(allSettings, now2, timerType) {
                var timerEvents = getTimerEventsFromShortWeekday(allSettings);
                if (timerEvents.length === 0) {
                    return null;
                }
                var sortedTimerEvents = orderTimerEventsByChronology(timerEvents);
                var filteredSortedTimerEvents = sortedTimerEvents.filter(function(timerEvent) {
                    return timerEvent.type === timerType;
                });
                if (!filteredSortedTimerEvents.length) {
                    return null;
                }
                var sameDayNextTimerEvent = getNextTimerEventForSameDay(filteredSortedTimerEvents, now2);
                if (sameDayNextTimerEvent) {
                    return sameDayNextTimerEvent;
                }
                var followingDaysNextTimerEvent = getNextTimerEventForFollowingDays(filteredSortedTimerEvents, now2);
                if (followingDaysNextTimerEvent) {
                    return followingDaysNextTimerEvent;
                }
                return filteredSortedTimerEvents[0];
            }
            function getLastTimerEvent(allSettings, now2, timerType) {
                var timerEvents = getTimerEventsFromShortWeekday(allSettings);
                if (timerEvents.length === 0) {
                    return null;
                }
                var sortedTimerEvents = orderTimerEventsByChronology(timerEvents);
                var lastTimerEvent = __spreadArray([], sortedTimerEvents, true).reverse().find(function(timerEvent) {
                    if (timerType && timerEvent.type !== timerType) {
                        return false;
                    }
                    var inNextDay = timerEvent.weekDayNumber < now2.getDay();
                    var isThisDay = timerEvent.weekDayNumber === now2.getDay();
                    var isOnTime = (0, timeConverter_1.timeToSeconds)(timerEvent.time) <= (0, timeConverter_1.timeToSeconds)((0, moment_timezone_1["default"])(now2).format("HH:mm:ss"));
                    return inNextDay || isThisDay && isOnTime;
                });
                return lastTimerEvent ? lastTimerEvent : __spreadArray([], sortedTimerEvents, true).reverse()[0];
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Timer/DisplayPowerTimerResolver.js
    var require_DisplayPowerTimerResolver = __commonJS({
        "node_modules/@signageos/front-display/es6/Timer/DisplayPowerTimerResolver.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var debug_1 = __importDefault(require_browser2());
            var wait_1 = __importDefault(require_wait());
            var IProprietaryTimerResolver_1 = require_IProprietaryTimerResolver();
            var powerTimerComputer_1 = require_powerTimerComputer();
            var dateTimeFactory_1 = require_dateTimeFactory();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Timer:DisplayPowerTimerResolver");
            var getCurrentDate = function() {
                return (0, dateTimeFactory_1.now)().toDate();
            };
            var DisplayPowerTimerResolver = /*#__PURE__*/ function() {
                function DisplayPowerTimerResolver(getIsDisplayPowerOn, ProprietaryTimerResolver) {
                    var checkPeriod = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 30 * 1e3, timersStorage = arguments.length > 3 ? arguments[3] : void 0, now2 = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : getCurrentDate;
                    _class_call_check(this, DisplayPowerTimerResolver);
                    this.getIsDisplayPowerOn = getIsDisplayPowerOn;
                    this.ProprietaryTimerResolver = ProprietaryTimerResolver;
                    this.checkPeriod = checkPeriod;
                    this.timersStorage = timersStorage;
                    this.now = now2;
                    this.eventEmitter = new events_1.EventEmitter();
                    this.hasStartedListening = false;
                    this.eventEmitter.setMaxListeners(2);
                }
                _create_class(DisplayPowerTimerResolver, [
                    {
                        key: "on",
                        value: function on(event, listener) {
                            this.eventEmitter.on(event, listener);
                            if (!this.hasStartedListening) {
                                this.hasStartedListening = true;
                                this.displayEventEmitter();
                            }
                            return this;
                        }
                    },
                    {
                        key: "emit",
                        value: function emit(event) {
                            this.eventEmitter.emit(event);
                        }
                    },
                    {
                        key: "displayEventEmitter",
                        value: function displayEventEmitter() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, lastTimerEvent, _, isTimerOn, displayOn;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            this.ProprietaryTimerResolver.on(IProprietaryTimerResolver_1.TimerEvent.TIMER_ON, function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    var displayOn;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                return [
                                                                    4,
                                                                    this.getIsDisplayPowerOn()
                                                                ];
                                                            case 1:
                                                                displayOn = _state.sent();
                                                                debug4("emit display On");
                                                                if (!displayOn) {
                                                                    this.emit(IProprietaryTimerResolver_1.DisplayEvent.POWER_ON);
                                                                }
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                });
                                            });
                                            this.ProprietaryTimerResolver.on(IProprietaryTimerResolver_1.TimerEvent.TIMER_OFF, function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    var displayOn;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                debug4("emit display Off");
                                                                return [
                                                                    4,
                                                                    this.getIsDisplayPowerOn()
                                                                ];
                                                            case 1:
                                                                displayOn = _state.sent();
                                                                if (displayOn) {
                                                                    this.emit(IProprietaryTimerResolver_1.DisplayEvent.POWER_OFF);
                                                                }
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                });
                                            });
                                            this.ProprietaryTimerResolver.on(IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_ON, function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    var displayOn;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                debug4("emit display Off (applet muted)");
                                                                return [
                                                                    4,
                                                                    this.getIsDisplayPowerOn()
                                                                ];
                                                            case 1:
                                                                displayOn = _state.sent();
                                                                if (displayOn) {
                                                                    this.emit(IProprietaryTimerResolver_1.DisplayEvent.POWER_OFF);
                                                                }
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                });
                                            });
                                            this.ProprietaryTimerResolver.on(IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_OFF, function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    var displayOn;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                debug4("emit display On (applet unmuted)");
                                                                return [
                                                                    4,
                                                                    this.getIsDisplayPowerOn()
                                                                ];
                                                            case 1:
                                                                displayOn = _state.sent();
                                                                if (!displayOn) {
                                                                    this.emit(IProprietaryTimerResolver_1.DisplayEvent.POWER_ON);
                                                                }
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                });
                                            });
                                            _state.label = 1;
                                        case 1:
                                            if (!true) return [
                                                3,
                                                5
                                            ];
                                            _ = (0, powerTimerComputer_1.getLastTimerEvent);
                                            return [
                                                4,
                                                this.timersStorage.getShortTimers()
                                            ];
                                        case 2:
                                            lastTimerEvent = _.apply(void 0, [
                                                _state.sent(),
                                                this.now()
                                            ]);
                                            if (lastTimerEvent === null) {
                                                return [
                                                    2
                                                ];
                                            }
                                            isTimerOn = lastTimerEvent.type === "ON";
                                            return [
                                                4,
                                                this.getIsDisplayPowerOn()
                                            ];
                                        case 3:
                                            displayOn = _state.sent();
                                            if (isTimerOn !== displayOn) {
                                                if (isTimerOn) {
                                                    this.emit(IProprietaryTimerResolver_1.DisplayEvent.POWER_ON);
                                                } else {
                                                    this.emit(IProprietaryTimerResolver_1.DisplayEvent.POWER_OFF);
                                                }
                                            }
                                            return [
                                                4,
                                                (0, wait_1["default"])(this.checkPeriod)
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                3,
                                                1
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return DisplayPowerTimerResolver;
            }();
            exports["default"] = DisplayPowerTimerResolver;
        }
    });
    // node_modules/@signageos/front-display/es6/Timer/ProprietaryTimerResolver.js
    var require_ProprietaryTimerResolver = __commonJS({
        "node_modules/@signageos/front-display/es6/Timer/ProprietaryTimerResolver.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkTimer = exports.timerEventToDate = void 0;
            var dateTimeFactory_1 = require_dateTimeFactory();
            var powerTimerComputer_1 = require_powerTimerComputer();
            var wait_1 = __importDefault(require_wait());
            var debug_1 = __importDefault(require_browser2());
            var events_1 = require_events();
            var IProprietaryTimerResolver_1 = require_IProprietaryTimerResolver();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Timer:ProprietaryTimerManager");
            var getCurrentDate = function() {
                return (0, dateTimeFactory_1.now)().toDate();
            };
            var ProprietaryTimerResolver = /*#__PURE__*/ function() {
                function ProprietaryTimerResolver(timersStorage) {
                    var checkPeriod = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 30 * 1e3, now2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : getCurrentDate, appletLastEnabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
                    _class_call_check(this, ProprietaryTimerResolver);
                    this.timersStorage = timersStorage;
                    this.checkPeriod = checkPeriod;
                    this.now = now2;
                    this.appletLastEnabled = appletLastEnabled;
                    this.eventEmitter = new events_1.EventEmitter();
                    this.hasStartedListening = false;
                    this.nextTimerOnTime = null;
                    this.appletMuted = false;
                    this.eventEmitter.setMaxListeners(4);
                }
                _create_class(ProprietaryTimerResolver, [
                    {
                        key: "getNextTimerOnTime",
                        value: function getNextTimerOnTime() {
                            return this.nextTimerOnTime;
                        }
                    },
                    {
                        key: "on",
                        value: function on(event, listener) {
                            this.eventEmitter.on(event, listener);
                            if (!this.hasStartedListening) {
                                this.hasStartedListening = true;
                                this.timersChecking();
                            }
                            return this;
                        }
                    },
                    {
                        key: "emit",
                        value: function emit(event) {
                            this.eventEmitter.emit(event);
                        }
                    },
                    {
                        key: "timersChecking",
                        value: function timersChecking() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, _loop, _this1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _loop = function() {
                                                var now2, timers, error;
                                                return _ts_generator(this, function(_state) {
                                                    switch(_state.label){
                                                        case 0:
                                                            debug4("check timers now");
                                                            _state.label = 1;
                                                        case 1:
                                                            _state.trys.push([
                                                                1,
                                                                4,
                                                                ,
                                                                5
                                                            ]);
                                                            now2 = _this.now();
                                                            return [
                                                                4,
                                                                _this.timersStorage.getShortTimers()
                                                            ];
                                                        case 2:
                                                            timers = _state.sent();
                                                            return [
                                                                4,
                                                                checkTimer(now2, function() {
                                                                    return __awaiter(_this1, void 0, void 0, function() {
                                                                        return _ts_generator(this, function(_state) {
                                                                            return [
                                                                                2,
                                                                                timers
                                                                            ];
                                                                        });
                                                                    });
                                                                }, function(event) {
                                                                    if (event === IProprietaryTimerResolver_1.TimerEvent.TIMER_OFF || event === IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_ON) {
                                                                        var nextOnEvent = (0, powerTimerComputer_1.getNextTimerEvent)(timers, now2, "ON");
                                                                        _this1.nextTimerOnTime = nextOnEvent ? timerEventToDate(nextOnEvent, now2) : null;
                                                                    } else {
                                                                        _this1.nextTimerOnTime = null;
                                                                    }
                                                                    _this1.emit(event);
                                                                }, function(state) {
                                                                    return _this1.setLastAppletState(state);
                                                                }, _this.appletLastEnabled, {
                                                                    current: _this.appletMuted,
                                                                    set: function(state) {
                                                                        return _this1.setAppletMuted(state);
                                                                    }
                                                                })
                                                            ];
                                                        case 3:
                                                            _state.sent();
                                                            return [
                                                                3,
                                                                5
                                                            ];
                                                        case 4:
                                                            error = _state.sent();
                                                            console.error("timerChecking failed", error);
                                                            return [
                                                                3,
                                                                5
                                                            ];
                                                        case 5:
                                                            return [
                                                                4,
                                                                (0, wait_1["default"])(_this.checkPeriod)
                                                            ];
                                                        case 6:
                                                            _state.sent();
                                                            return [
                                                                2
                                                            ];
                                                    }
                                                });
                                            };
                                            _this1 = this;
                                            _state.label = 1;
                                        case 1:
                                            if (!true) return [
                                                3,
                                                3
                                            ];
                                            _this = this;
                                            return [
                                                5,
                                                _ts_values(_loop())
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                1
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setLastAppletState",
                        value: function setLastAppletState(lastState) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    this.appletLastEnabled = lastState;
                                    return [
                                        2,
                                        this.appletLastEnabled
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setAppletMuted",
                        value: function setAppletMuted(muted) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    this.appletMuted = muted;
                                    return [
                                        2,
                                        this.appletMuted
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return ProprietaryTimerResolver;
            }();
            exports["default"] = ProprietaryTimerResolver;
            function timerEventToDate(event, now2) {
                var _event_time_split_map = _sliced_to_array(event.time.split(":").map(Number), 2), hours = _event_time_split_map[0], minutes = _event_time_split_map[1];
                var daysUntil = (event.weekDayNumber - now2.getDay() + 7) % 7;
                var result17 = new Date(now2);
                result17.setDate(result17.getDate() + daysUntil);
                result17.setHours(hours, minutes, 0, 0);
                if (result17 <= now2) {
                    result17.setDate(result17.getDate() + 7);
                }
                return result17;
            }
            exports.timerEventToDate = timerEventToDate;
            function checkTimer(now2, getTimers, emit, setLastAppletState, appletLastEnabled, muteState) {
                var _a2;
                return __awaiter(this, void 0, void 0, function() {
                    var timers, lastTimerEvent, isTimerOn, displayOn, keepAppletRunning, shouldBeMuted;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getTimers()
                                ];
                            case 1:
                                timers = _state.sent();
                                lastTimerEvent = (0, powerTimerComputer_1.getLastTimerEvent)(timers, now2);
                                if (lastTimerEvent == null) {
                                    return [
                                        2
                                    ];
                                }
                                isTimerOn = lastTimerEvent.type === "ON";
                                displayOn = appletLastEnabled;
                                keepAppletRunning = (_a2 = timers[lastTimerEvent.timerType].keepAppletRunning) !== null && _a2 !== void 0 ? _a2 : false;
                                if (!(isTimerOn !== displayOn)) return [
                                    3,
                                    5
                                ];
                                if (!isTimerOn) return [
                                    3,
                                    3
                                ];
                                debug4("emit timer on");
                                return [
                                    4,
                                    setLastAppletState(true)
                                ];
                            case 2:
                                _state.sent();
                                emit(IProprietaryTimerResolver_1.TimerEvent.TIMER_ON);
                                _state.label = 3;
                            case 3:
                                if (!(!isTimerOn && !keepAppletRunning)) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    setLastAppletState(false)
                                ];
                            case 4:
                                _state.sent();
                                debug4("emit timer off");
                                emit(IProprietaryTimerResolver_1.TimerEvent.TIMER_OFF);
                                _state.label = 5;
                            case 5:
                                if (!muteState) return [
                                    3,
                                    7
                                ];
                                shouldBeMuted = !isTimerOn && keepAppletRunning && displayOn;
                                if (!(shouldBeMuted !== muteState.current)) return [
                                    3,
                                    7
                                ];
                                return [
                                    4,
                                    muteState.set(shouldBeMuted)
                                ];
                            case 6:
                                _state.sent();
                                if (shouldBeMuted) {
                                    debug4("emit applet mute on");
                                    emit(IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_ON);
                                } else {
                                    debug4("emit applet mute off");
                                    emit(IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_OFF);
                                }
                                _state.label = 7;
                            case 7:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.checkTimer = checkTimer;
        }
    });
    // node_modules/@signageos/front-display/es6/Timer/timerResolverFactory.js
    var require_timerResolverFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/Timer/timerResolverFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotSupportedProprietaryTimerResolver = exports.createProprietaryTimerManagerForFront = exports.createProprietaryTimerManagerForManagement = void 0;
            var DisplayPowerTimerResolver_1 = __importDefault(require_DisplayPowerTimerResolver());
            var ProprietaryTimerResolver_1 = __importDefault(require_ProprietaryTimerResolver());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var createProprietaryTimerManagerForManagement = function(responsibilities, proprietaryTimerStorage, displayIsPowerOn) {
                if (responsibilities.has(Responsibility_1["default"].TIMERS)) {
                    var storage = proprietaryTimerStorage;
                    var proprietaryTimerResolver = new ProprietaryTimerResolver_1["default"](storage);
                    return new DisplayPowerTimerResolver_1["default"](displayIsPowerOn, proprietaryTimerResolver, 30 * 1e3, storage, function() {
                        return /* @__PURE__ */ new Date();
                    });
                } else {
                    return exports.NotSupportedProprietaryTimerResolver;
                }
            };
            exports.createProprietaryTimerManagerForManagement = createProprietaryTimerManagerForManagement;
            var createProprietaryTimerManagerForFront = function(responsibilities, proprietaryTimerStorage) {
                if (responsibilities.has(Responsibility_1["default"].TIMERS)) {
                    return new ProprietaryTimerResolver_1["default"](proprietaryTimerStorage);
                } else {
                    return exports.NotSupportedProprietaryTimerResolver;
                }
            };
            exports.createProprietaryTimerManagerForFront = createProprietaryTimerManagerForFront;
            exports.NotSupportedProprietaryTimerResolver = {
                on: function(_event, _listener) {
                    throw new Error("not supported");
                }
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/sendAppletMessage.js
    var require_sendAppletMessage = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/sendAppletMessage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.sendMessageToActiveAppletIfExists = void 0;
            var wait_1 = __importDefault(require_wait());
            var debug_1 = __importDefault(require_browser2());
            var constants_1 = require_constants();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Applet:sendAppletMessage");
            function sendAppletMessage(window2, appletIframeId, message2) {
                return __awaiter(this, void 0, void 0, function() {
                    var appletIframe;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (appletIframeId === null) {
                                    throw new Error("Iframe id is null in sendAppletMessage");
                                }
                                appletIframe = window2.document.getElementById(appletIframeId);
                                if (!appletIframe) {
                                    throw new Error("Not found active applet iframe by id " + appletIframeId);
                                }
                                return [
                                    4,
                                    (0, wait_1["default"])(constants_1.IMMEDIATELY)
                                ];
                            case 1:
                                _state.sent();
                                if (!appletIframe.contentWindow) {
                                    throw new Error("Iframe with id " + appletIframeId + " was removed. postMessage(" + JSON.stringify(message2) + ") was not processed");
                                }
                                debug4("sending message to applet " + appletIframeId, message2);
                                appletIframe.contentWindow.window.postMessage(message2, "*");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports["default"] = sendAppletMessage;
            function sendMessageToActiveAppletIfExists(window2, getState, message2) {
                return __awaiter(this, void 0, void 0, function() {
                    var appletIframeId, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    4,
                                    ,
                                    5
                                ]);
                                appletIframeId = getState().applet.activeAppletIframeId;
                                if (!appletIframeId) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    sendAppletMessage(window2, appletIframeId, message2)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    3,
                                    3
                                ];
                            case 2:
                                debug4("no active applet for message", message2);
                                _state.label = 3;
                            case 3:
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                error = _state.sent();
                                debug4("sendMessageToActiveAppletIfExists failed", error);
                                return [
                                    3,
                                    5
                                ];
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.sendMessageToActiveAppletIfExists = sendMessageToActiveAppletIfExists;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/IBrowser.js
    var require_IBrowser = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/IBrowser.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.CloseReason = exports.EventType = void 0;
            var EventType;
            (function(EventType2) {
                EventType2["CLOSE"] = "close";
            })(EventType || (exports.EventType = EventType = {}));
            var CloseReason;
            (function(CloseReason2) {
                CloseReason2["API"] = "API";
                CloseReason2["USER"] = "USER";
                CloseReason2["TIMEOUT"] = "TIMEOUT";
            })(CloseReason || (exports.CloseReason = CloseReason = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Browser/appletBrowserSagas.js
    var require_appletBrowserSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Browser/appletBrowserSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.browserEventEmitting = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var IBrowser_1 = require_IBrowser();
            var applicationActions_1 = require_applicationActions();
            function browserEventEmitting(window2, messageTypePrefix, getNativeDriver, getState) {
                var browser, supports, closeListener;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            browser = getNativeDriver().browser;
                            return [
                                4,
                                browser.isSupported()
                            ];
                        case 1:
                            supports = _state.sent();
                            if (!supports) {
                                return [
                                    2
                                ];
                            }
                            closeListener = function(event) {
                                (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                    type: messageTypePrefix + ".browser.closed",
                                    reason: event.reason
                                });
                            };
                            browser.addListener(IBrowser_1.EventType.CLOSE, closeListener);
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                ,
                                4,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.take)(applicationActions_1.StopApplication)
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 4:
                            browser.removeListener(IBrowser_1.EventType.CLOSE, closeListener);
                            return [
                                7
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.browserEventEmitting = browserEventEmitting;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Command/appletCommandDispatchSagas.js
    var require_appletCommandDispatchSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Command/appletCommandDispatchSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.dispatchAppletCommandToApplet = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var activeAppletActions_1 = require_activeAppletActions();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Applet:Command:appletCommandDispatchSagas");
            function dispatchAppletCommandToApplet(messageTypePrefix, window2, getState, bundledApplet) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(activeAppletActions_1.DispatchCommandToApplet, function(action) {
                                    var activeAppletUid, command, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                activeAppletUid = getState().applet.activeAppletUid;
                                                if (activeAppletUid !== action.appletUid && activeAppletUid !== (bundledApplet === null || bundledApplet === void 0 ? void 0 : bundledApplet.uid)) {
                                                    throw new Error("Dispatching timing command to applet is not permited because of appletUid ".concat(activeAppletUid, " !== ").concat(action.appletUid));
                                                }
                                                command = action.command;
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".command.dispatch_to_applet",
                                                        command: command
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                debug4("dispatchAppletCommandToApplet failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.dispatchAppletCommandToApplet = dispatchAppletCommandToApplet;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/DateTime/appletDateTimeSagas.js
    var require_appletDateTimeSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/DateTime/appletDateTimeSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.currentTimestampEmiting = void 0;
            var dateTimeFactory_1 = require_dateTimeFactory();
            var wait_1 = __importDefault(require_wait());
            var applicationActions_1 = require_applicationActions2();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var constants_1 = require_constants();
            function currentTimestampEmiting(window2, messageTypePrefix, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var currentTimestamp;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!true) return [
                                                    3,
                                                    3
                                                ];
                                                currentTimestamp = (0, dateTimeFactory_1.now)().valueOf();
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".date_time.current_timestamp",
                                                        currentTimestamp: currentTimestamp
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.OFTEN)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    0
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.currentTimestampEmiting = currentTimestampEmiting;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/FileSystem/appletFileSystemSagas.js
    var require_appletFileSystemSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/FileSystem/appletFileSystemSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.storageStatusChangeEmitting = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var applicationActions_1 = require_applicationActions2();
            var channels_1 = require_channels();
            function storageStatusChangeEmitting(window2, messageTypePrefix, getNativeDriver, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var nativeDriver, storageChangesChannel, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                nativeDriver = getNativeDriver();
                                                storageChangesChannel = (0, channels_1.createChannel)(function(put2) {
                                                    return nativeDriver.fileSystem.onStorageUnitsChanged(function() {
                                                        return put2(void 0);
                                                    });
                                                });
                                                return [
                                                    4,
                                                    (0, channels_1.takeEvery)(storageChangesChannel, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                                            type: messageTypePrefix + ".file_system.storage_units_changed"
                                                                        })
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("storageStatusChangeEmitting failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.storageStatusChangeEmitting = storageStatusChangeEmitting;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Input/appletKeySagas.js
    var require_appletKeySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Input/appletKeySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleKeyUpAction = exports.inputKeysEmitting = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var keyActions_1 = require_keyActions();
            var KeyCode_1 = require_KeyCode();
            function inputKeysEmitting(window2, messageTypePrefix, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeyUp, handleKeyUpAction, window2, messageTypePrefix, getState)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.inputKeysEmitting = inputKeysEmitting;
            function handleKeyUpAction(window2, messageTypePrefix, getState, action) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                    type: messageTypePrefix + ".input.keyup",
                                    keyCode: KeyCode_1.KeyCode[action.keyCode],
                                    keyName: action.keyCode
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleKeyUpAction = handleKeyUpAction;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Hardware/IWifi.js
    var require_IWifi = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Hardware/IWifi.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.WifiEvent = void 0;
            var WifiEvent2;
            (function(WifiEvent3) {
                WifiEvent3["CLIENT_ENABLED"] = "client_enabled";
                WifiEvent3["CLIENT_CONNECTED"] = "client_connected";
                WifiEvent3["CLIENT_CONNECT_REJECTED"] = "client_connect_rejected";
                WifiEvent3["CLIENT_DISCONNECTED"] = "client_disconnected";
                WifiEvent3["AP_ENABLED"] = "ap_enabled";
                WifiEvent3["DISABLED"] = "disabled";
            })(WifiEvent2 || (exports.WifiEvent = WifiEvent2 = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Management/Wifi/appletWifiSagas.js
    var require_appletWifiSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Management/Wifi/appletWifiSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.wifiEventEmitting = void 0;
            var applicationActions_1 = require_applicationActions2();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var IWifi_1 = require_IWifi();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var channels_1 = require_channels();
            var sendAppletMessage_1 = require_sendAppletMessage();
            function wifiEventEmitting(window2, messageTypePrefix, getNativeDriver, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var nativeDriver, supportsWifi, wifiEventsChannel;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                nativeDriver = getNativeDriver();
                                                return [
                                                    4,
                                                    nativeDriver.managementSupports(ManagementCapability_1["default"].WIFI)
                                                ];
                                            case 1:
                                                supportsWifi = _state.sent();
                                                if (!supportsWifi) return [
                                                    3,
                                                    3
                                                ];
                                                wifiEventsChannel = createWifiChannel(getNativeDriver);
                                                return [
                                                    4,
                                                    (0, channels_1.takeEvery)(wifiEventsChannel, function(event) {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                                            type: messageTypePrefix + ".management.wifi.event_" + event
                                                                        })
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.wifiEventEmitting = wifiEventEmitting;
            function createWifiChannel(getNativeDriver) {
                var nativeDriver = getNativeDriver();
                var events = [
                    IWifi_1.WifiEvent.CLIENT_ENABLED,
                    IWifi_1.WifiEvent.CLIENT_CONNECTED,
                    IWifi_1.WifiEvent.CLIENT_CONNECT_REJECTED,
                    IWifi_1.WifiEvent.CLIENT_DISCONNECTED,
                    IWifi_1.WifiEvent.AP_ENABLED,
                    IWifi_1.WifiEvent.DISABLED
                ];
                return (0, channels_1.createChannel)(function(putEvent) {
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        var _loop = function() {
                            var event = _step.value;
                            nativeDriver.wifi.on(event, function() {
                                return putEvent(event);
                            });
                        };
                        for(var _iterator = events[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Sensors/appletProximitySensorSagas.js
    var require_appletProximitySensorSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Sensors/appletProximitySensorSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.proximitySensorStatusChangeEmitting = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var applicationActions_1 = require_applicationActions2();
            var channels_1 = require_channels();
            function proximitySensorStatusChangeEmitting(window2, messageTypePrefix, getNativeDriver, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var nativeDriver, proximitySensorChangesChannel, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                nativeDriver = getNativeDriver();
                                                proximitySensorChangesChannel = (0, channels_1.createChannel)(function(put2) {
                                                    nativeDriver.sensors.proximity.addStateChangeListener(put2);
                                                });
                                                return [
                                                    4,
                                                    (0, channels_1.takeEvery)(proximitySensorChangesChannel, function(detected) {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                                            type: messageTypePrefix + ".sensors.proximity.change",
                                                                            detected: detected
                                                                        })
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("proximitySensorStatusChangeEmitting failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.proximitySensorStatusChangeEmitting = proximitySensorStatusChangeEmitting;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Stream/appletStreamSagas.js
    var require_appletStreamSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Stream/appletStreamSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.streamEventEmitting = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var streamActions_1 = require_streamActions();
            function streamEventEmitting(window2, messageTypePrefix, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(streamActions_1.StreamError, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, Object.assign(Object.assign({}, createMessage(messageTypePrefix, "stream.error", action)), {
                                                        protocol: action.protocol,
                                                        errorMessage: action.errorMessage
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(streamActions_1.StreamConnected, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, Object.assign(Object.assign({}, createMessage(messageTypePrefix, "stream.connected", action)), {
                                                        protocol: action.protocol
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(streamActions_1.StreamDisconnected, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, Object.assign(Object.assign({}, createMessage(messageTypePrefix, "stream.disconnected", action)), {
                                                        protocol: action.protocol
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(streamActions_1.StreamTracksChanged, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, Object.assign(Object.assign({}, createMessage(messageTypePrefix, "stream.tracks_changed", action)), {
                                                        tracks: action.tracks
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.streamEventEmitting = streamEventEmitting;
            function createMessage(messageTypePrefix, type, action) {
                return {
                    type: messageTypePrefix + "." + type,
                    uri: action.uri,
                    x: action.x,
                    y: action.y,
                    width: action.width,
                    height: action.height
                };
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Synchronization/ISynchronizer.js
    var require_ISynchronizer = __commonJS({
        "node_modules/@signageos/front-display/es6/Synchronization/ISynchronizer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SynchronizerEvent = void 0;
            var SynchronizerEvent3;
            (function(SynchronizerEvent4) {
                SynchronizerEvent4["GroupStatus"] = "group_status";
                SynchronizerEvent4["GroupLeft"] = "group_left";
                SynchronizerEvent4["BroadcastedValue"] = "broadcasted_value";
                SynchronizerEvent4["Closed"] = "closed";
            })(SynchronizerEvent3 || (exports.SynchronizerEvent = SynchronizerEvent3 = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Sync/appletSyncSagas.js
    var require_appletSyncSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Sync/appletSyncSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.syncEventEmitting = exports.ClosedAction = exports.BroadcastedValueAction = exports.GroupStatusAction = void 0;
            var debug_1 = __importDefault(require_browser2());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var channels_1 = require_channels();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var ISynchronizer_1 = require_ISynchronizer();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Applet:Sync:appletSyncSagas");
            exports.GroupStatusAction = "Sync.GroupStatus";
            exports.BroadcastedValueAction = "Sync.BroadcastedValue";
            exports.ClosedAction = "Sync.Closed";
            function syncEventEmitting(window2, messageTypePrefix, getState, synchronizer) {
                var syncValueChannel;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            syncValueChannel = (0, channels_1.createChannel)(function(putEvent) {
                                synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.GroupStatus, function(event) {
                                    debug4("got group status event", event);
                                    var action = Object.assign({
                                        type: exports.GroupStatusAction
                                    }, event);
                                    putEvent(action);
                                });
                                synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.BroadcastedValue, function(event) {
                                    debug4("got broadcasted value event", event);
                                    var action = Object.assign({
                                        type: exports.BroadcastedValueAction
                                    }, event);
                                    putEvent(action);
                                });
                                synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.Closed, function(error) {
                                    var _a2;
                                    debug4("got closed event", error);
                                    var action = {
                                        type: exports.ClosedAction,
                                        error: (_a2 = error === null || error === void 0 ? void 0 : error.message) !== null && _a2 !== void 0 ? _a2 : void 0
                                    };
                                    putEvent(action);
                                });
                            });
                            return [
                                4,
                                (0, effects_1.spawn)(channels_1.takeEvery, syncValueChannel, function(action) {
                                    var _, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    8,
                                                    ,
                                                    9
                                                ]);
                                                _ = action.type;
                                                switch(_){
                                                    case exports.GroupStatusAction:
                                                        return [
                                                            3,
                                                            1
                                                        ];
                                                    case exports.BroadcastedValueAction:
                                                        return [
                                                            3,
                                                            3
                                                        ];
                                                    case exports.ClosedAction:
                                                        return [
                                                            3,
                                                            5
                                                        ];
                                                }
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 1:
                                                debug4("sending group status event to applet", action);
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".sync.device_status",
                                                        connectedPeers: action.connectedPeers,
                                                        groupName: action.groupName,
                                                        isMaster: action.isMaster
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 3:
                                                debug4("sending broadcasted value event to applet", action);
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".sync.set_value",
                                                        groupName: action.groupName,
                                                        key: action.key,
                                                        value: action.value
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 5:
                                                debug4("sending closed event to applet", action);
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".sync.closed",
                                                        error: action.error
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 8:
                                                error = _state.sent();
                                                console.error("sync set value event sending failed", error);
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 9:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.syncEventEmitting = syncEventEmitting;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/activeAppletActions.js
    var require_activeAppletActions2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/activeAppletActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ActiveAppletRestore = void 0;
            exports.ActiveAppletRestore = "Front.Applet.ActiveAppletRestore";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Video/appletVideoSagas.js
    var require_appletVideoSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Video/appletVideoSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.videoEventEmitting = exports.restoreOnAppletChange = exports.activeAppletRestore = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var EmitVideoEvent_1 = require_EmitVideoEvent();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var activeAppletActions_1 = require_activeAppletActions2();
            var appletTimingActions_1 = require_appletTimingActions();
            function activeAppletRestore(getNativeDriver, getSynchronizer) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(activeAppletActions_1.ActiveAppletRestore, function() {
                                    var error, synchronizer, isConnected, error1;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().restoreDisplayArea()
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("activeAppletRestore restoreDisplayArea failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                _state.trys.push([
                                                    3,
                                                    7,
                                                    ,
                                                    8
                                                ]);
                                                synchronizer = getSynchronizer();
                                                return [
                                                    4,
                                                    synchronizer.isConnected()
                                                ];
                                            case 4:
                                                isConnected = _state.sent();
                                                if (!isConnected) return [
                                                    3,
                                                    6
                                                ];
                                                return [
                                                    4,
                                                    synchronizer.close()
                                                ];
                                            case 5:
                                                _state.sent();
                                                _state.label = 6;
                                            case 6:
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 7:
                                                error1 = _state.sent();
                                                console.error("activeAppletRestore synchronizer close failed", error1);
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 8:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.activeAppletRestore = activeAppletRestore;
            function restoreOnAppletChange() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.StartAppletIframe, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: activeAppletActions_1.ActiveAppletRestore
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("restoreOnAppletChange failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.restoreOnAppletChange = restoreOnAppletChange;
            function videoEventEmitting(window2, messageTypePrefix, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(EmitVideoEvent_1.EmitVideoEvent, function(action) {
                                    var event;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                event = action.event;
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".video." + event.type,
                                                        uri: event.srcArguments.uri,
                                                        x: event.srcArguments.x,
                                                        y: event.srcArguments.y,
                                                        width: event.srcArguments.width,
                                                        height: event.srcArguments.height
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.videoEventEmitting = videoEventEmitting;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/appletFileNameHelpers.js
    var require_appletFileNameHelpers = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/appletFileNameHelpers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var FRONT_APPLET_JS_UID = "front-applet";
            var LAST_APPLET_BINARY_UID = "applet";
            var createAppletFileNameHelpers = function(shortAppletFilesUrl) {
                var getLocalDirectoryPath = function(appletUid, appletVersion, appletVersionPostfix) {
                    var _a2;
                    return [
                        LAST_APPLET_BINARY_UID,
                        shortAppletFilesUrl ? appletUid.slice(0, 8) : appletUid,
                        appletVersion !== null && appletVersion !== void 0 ? appletVersion : "latest"
                    ].concat((_a2 = shortAppletFilesUrl ? appletVersionPostfix === null || appletVersionPostfix === void 0 ? void 0 : appletVersionPostfix.slice(0, 11) : appletVersionPostfix) !== null && _a2 !== void 0 ? _a2 : []).join("/");
                };
                var getRemoteDirectoryPath = function(appletUid, appletVersion, appletVersionPostfix) {
                    return "/applet/" + appletUid + "/" + appletVersion + (appletVersionPostfix ? "-" + appletVersionPostfix : "");
                };
                return {
                    getLocalDirectoryPath: getLocalDirectoryPath,
                    getRemoteDirectoryPath: getRemoteDirectoryPath,
                    getFrontAppletJsFileName: function(frontAppletVersion) {
                        return FRONT_APPLET_JS_UID + "/" + frontAppletVersion + ".js";
                    },
                    getAppletBinaryFileName: function(appletUid, appletVersion, appletVersionPostfix) {
                        return getLocalDirectoryPath(appletUid, appletVersion, appletVersionPostfix) + "/index.html";
                    },
                    getAppletPackageFilePath: function(appletUid, appletVersion, appletVersionPostfix) {
                        return getLocalDirectoryPath(appletUid, appletVersion, appletVersionPostfix) + "/.package.zip";
                    },
                    getAppletPackageDirectoryPath: function(appletUid, appletVersion, appletVersionPostfix) {
                        return getLocalDirectoryPath(appletUid, appletVersion, appletVersionPostfix) + "/package";
                    },
                    getAppletPackageConfigFilePath: function(appletUid, appletVersion, appletVersionPostfix) {
                        return getLocalDirectoryPath(appletUid, appletVersion, appletVersionPostfix) + "/package/package.json";
                    },
                    getAppletBinaryFileUri: function(staticBaseUrl, appletUid, appletVersion, appletVersionPostfix) {
                        return staticBaseUrl + getRemoteDirectoryPath(appletUid, appletVersion, appletVersionPostfix) + "/index.html";
                    },
                    getAppletPackageFileUri: function(staticBaseUrl, appletUid, appletVersion, appletVersionPostfix) {
                        return staticBaseUrl + getRemoteDirectoryPath(appletUid, appletVersion, appletVersionPostfix) + "/.package.zip";
                    }
                };
            };
            exports["default"] = createAppletFileNameHelpers;
        }
    });
    // node_modules/@signageos/front-display/es6/Lock/synchronousDecorator.js
    var require_synchronousDecorator = __commonJS({
        "node_modules/@signageos/front-display/es6/Lock/synchronousDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.synchronous = void 0;
            var async_lock_1 = __importDefault(require_async_lock());
            function synchronous(options) {
                var asyncLock = new async_lock_1["default"](options);
                return function(_target, propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        var _this = this;
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return asyncLock.acquire(propertyKey, function() {
                            return __awaiter(_this, void 0, void 0, function() {
                                var returnValuePromise, returnValue;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            returnValuePromise = originalMethod.apply(this, args);
                                            if (!(returnValuePromise instanceof Promise)) {
                                                throw new Error("Synchronous methods must return Promise instance. But ".concat(JSON.stringify(returnValuePromise), " given."));
                                            }
                                            return [
                                                4,
                                                returnValuePromise
                                            ];
                                        case 1:
                                            returnValue = _state.sent();
                                            return [
                                                2,
                                                returnValue
                                            ];
                                    }
                                });
                            });
                        });
                    };
                };
            }
            exports.synchronous = synchronous;
        }
    });
    // node_modules/@signageos/front-display/es6/Util/retriableDecorator.js
    var require_retriableDecorator = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/retriableDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.retriable = void 0;
            var progressiveWait_1 = require_progressiveWait();
            function retriable(options) {
                return function(_target, _propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return __awaiter(this, void 0, void 0, function() {
                            var progressiveWait, i, error;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        progressiveWait = (0, progressiveWait_1.createProgressiveWait)(options.initialTimeoutMs, options.progressiveMultiplier, options.maxTimeoutMs);
                                        i = 0;
                                        _state.label = 1;
                                    case 1:
                                        if (!(i < options.count || options.count === -1)) return [
                                            3,
                                            7
                                        ];
                                        _state.label = 2;
                                    case 2:
                                        _state.trys.push([
                                            2,
                                            4,
                                            ,
                                            6
                                        ]);
                                        return [
                                            4,
                                            originalMethod.apply(this, args)
                                        ];
                                    case 3:
                                        return [
                                            2,
                                            _state.sent()
                                        ];
                                    case 4:
                                        error = _state.sent();
                                        console.error("Retrying ".concat(originalMethod.name, "(").concat(args, ") failed for ").concat(i + 1, " time"), error);
                                        return [
                                            4,
                                            progressiveWait.wait()
                                        ];
                                    case 5:
                                        _state.sent();
                                        return [
                                            3,
                                            6
                                        ];
                                    case 6:
                                        i++;
                                        return [
                                            3,
                                            1
                                        ];
                                    case 7:
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    };
                };
            }
            exports.retriable = retriable;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/AppletBinaryDownloader.js
    var require_AppletBinaryDownloader = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/AppletBinaryDownloader.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getDefaultAppletBinaries = exports.AppletBinaryDownloader = void 0;
            var path_1 = __importDefault(require_path_browserify());
            var url = __importStar(require_url());
            var appletFileNameHelpers_1 = __importDefault(require_appletFileNameHelpers());
            var synchronousDecorator_1 = require_synchronousDecorator();
            var retriableDecorator_1 = require_retriableDecorator();
            var AppletBinaryDownloader = /*#__PURE__*/ function() {
                function AppletBinaryDownloader(shortAppletFilesUrl, offlineCache, getStaticBaseUrl) {
                    _class_call_check(this, AppletBinaryDownloader);
                    this.offlineCache = offlineCache;
                    this.getStaticBaseUrl = getStaticBaseUrl;
                    this.appletFileNameHelpers = (0, appletFileNameHelpers_1["default"])(shortAppletFilesUrl);
                }
                _create_class(AppletBinaryDownloader, [
                    {
                        key: "getOrDownloadAppletBinaries",
                        value: function getOrDownloadAppletBinaries(appletUid, appletVersion, isPackage, frontAppletVersion, appletVersionPostfix, defaultTimingData) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!((defaultTimingData === null || defaultTimingData === void 0 ? void 0 : defaultTimingData.appletUid) === appletUid && (defaultTimingData === null || defaultTimingData === void 0 ? void 0 : defaultTimingData.appletVersion) === appletVersion)) return [
                                                3,
                                                1
                                            ];
                                            return [
                                                2,
                                                getDefaultAppletBinaries(defaultTimingData.appletBinaryFile, defaultTimingData.appletFrontAppletJsFile, window.location.href)
                                            ];
                                        case 1:
                                            if (!isPackage) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.downloadAppletPackageToLocalStorage(appletUid, appletVersion, appletVersionPostfix)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                this.downloadAppletBinariesToLocalStorage(appletUid, appletVersion, frontAppletVersion, appletVersionPostfix)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getOrDownloadFrontAppletJsFile",
                        value: function getOrDownloadFrontAppletJsFile(frontAppletVersion) {
                            return __awaiter(this, void 0, void 0, function() {
                                var frontAppletJsFileName, existsFrontAppletJsFile, staticBaseUrl, frontAppletJsUri;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            frontAppletJsFileName = this.appletFileNameHelpers.getFrontAppletJsFileName(frontAppletVersion);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(frontAppletJsFileName)
                                            ];
                                        case 1:
                                            existsFrontAppletJsFile = _state.sent();
                                            if (!!existsFrontAppletJsFile) return [
                                                3,
                                                3
                                            ];
                                            staticBaseUrl = this.getStaticBaseUrl();
                                            frontAppletJsUri = staticBaseUrl + "/lib/front-applet/" + frontAppletVersion + "/bundle.js";
                                            return [
                                                4,
                                                this.offlineCache.retriableDownloadFile(5, frontAppletJsFileName, frontAppletJsUri, void 0, true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                4,
                                                this.offlineCache.getFile(frontAppletJsFileName)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadAppletBinariesToLocalStorage",
                        value: function downloadAppletBinariesToLocalStorage(appletUid, appletVersion, frontAppletVersion, appletVersionPostfix) {
                            return __awaiter(this, void 0, void 0, function() {
                                var appletBinaryFileName, existsAppletBinaryFile, staticBaseUrl, appletUri, error, _tmp, _tmp1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            appletBinaryFileName = this.appletFileNameHelpers.getAppletBinaryFileName(appletUid, appletVersion, appletVersionPostfix);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(appletBinaryFileName)
                                            ];
                                        case 1:
                                            existsAppletBinaryFile = _state.sent();
                                            if (!!existsAppletBinaryFile) return [
                                                3,
                                                5
                                            ];
                                            staticBaseUrl = this.getStaticBaseUrl();
                                            appletUri = this.appletFileNameHelpers.getAppletBinaryFileUri(staticBaseUrl, appletUid, appletVersion, appletVersionPostfix);
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                4,
                                                ,
                                                5
                                            ]);
                                            return [
                                                4,
                                                this.offlineCache.retriableDownloadFile(5, appletBinaryFileName, appletUri, void 0, true)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            error = _state.sent();
                                            console.error("Error during load last applet binary", error);
                                            return [
                                                3,
                                                5
                                            ];
                                        case 5:
                                            _tmp = {};
                                            if (!frontAppletVersion) return [
                                                3,
                                                7
                                            ];
                                            return [
                                                4,
                                                this.getOrDownloadFrontAppletJsFile(frontAppletVersion)
                                            ];
                                        case 6:
                                            _tmp1 = _state.sent();
                                            return [
                                                3,
                                                8
                                            ];
                                        case 7:
                                            _tmp1 = null;
                                            _state.label = 8;
                                        case 8:
                                            _tmp.frontAppletJsFile = _tmp1;
                                            return [
                                                4,
                                                this.offlineCache.getFile(appletBinaryFileName)
                                            ];
                                        case 9:
                                            return [
                                                2,
                                                (_tmp.appletBinaryFile = _state.sent(), _tmp)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadAppletPackageToLocalStorage",
                        value: function downloadAppletPackageToLocalStorage(appletUid, appletVersion, appletVersionPostfix) {
                            return __awaiter(this, void 0, void 0, function() {
                                var mainFilePath, _tmp;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.ensurePackageIsDownloaded(appletUid, appletVersion, appletVersionPostfix)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.ensurePackageIsExtracted(appletUid, appletVersion, appletVersionPostfix)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.getPackageMainFilePath(appletUid, appletVersion, appletVersionPostfix)
                                            ];
                                        case 3:
                                            mainFilePath = _state.sent();
                                            _tmp = {
                                                frontAppletJsFile: null
                                            };
                                            return [
                                                4,
                                                this.offlineCache.getFile(mainFilePath)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                (_tmp.// multi-file package applets has front-applet bundled always
                                                appletBinaryFile = _state.sent(), _tmp)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensurePackageIsDownloaded",
                        value: function ensurePackageIsDownloaded(appletUid, appletVersion, appletVersionPostfix) {
                            return __awaiter(this, void 0, void 0, function() {
                                var packageFilePath, existsPackageFile, staticBaseUrl, packageUri;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            packageFilePath = this.appletFileNameHelpers.getAppletPackageFilePath(appletUid, appletVersion, appletVersionPostfix);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(packageFilePath)
                                            ];
                                        case 1:
                                            existsPackageFile = _state.sent();
                                            if (!!existsPackageFile) return [
                                                3,
                                                3
                                            ];
                                            staticBaseUrl = this.getStaticBaseUrl();
                                            packageUri = this.appletFileNameHelpers.getAppletPackageFileUri(staticBaseUrl, appletUid, appletVersion, appletVersionPostfix);
                                            return [
                                                4,
                                                this.offlineCache.retriableDownloadFile(5, packageFilePath, packageUri, void 0, true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensurePackageIsExtracted",
                        value: function ensurePackageIsExtracted(appletUid, appletVersion, appletVersionPostfix) {
                            return __awaiter(this, void 0, void 0, function() {
                                var configFilePath, packageFilePath, packageDirectoryPath, existsConfigFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            configFilePath = this.appletFileNameHelpers.getAppletPackageConfigFilePath(appletUid, appletVersion, appletVersionPostfix);
                                            packageFilePath = this.appletFileNameHelpers.getAppletPackageFilePath(appletUid, appletVersion, appletVersionPostfix);
                                            packageDirectoryPath = this.appletFileNameHelpers.getAppletPackageDirectoryPath(appletUid, appletVersion, appletVersionPostfix);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(configFilePath)
                                            ];
                                        case 1:
                                            existsConfigFile = _state.sent();
                                            if (!!existsConfigFile) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.offlineCache.extractFile(packageFilePath, packageDirectoryPath, "zip", true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getPackageMainFilePath",
                        value: function getPackageMainFilePath(appletUid, appletVersion, appletVersionPostfix) {
                            return __awaiter(this, void 0, void 0, function() {
                                var configFilePath, configContent, config, packageDirectoryPath, mainFilePath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            configFilePath = this.appletFileNameHelpers.getAppletPackageConfigFilePath(appletUid, appletVersion, appletVersionPostfix);
                                            return [
                                                4,
                                                this.offlineCache.readFile(configFilePath)
                                            ];
                                        case 1:
                                            configContent = _state.sent();
                                            config = JSON.parse(configContent);
                                            if (typeof config.main !== "string") {
                                                throw new Error("Main file of applet package is not specified: ".concat(appletUid, ", ").concat(appletVersion, ", ").concat(appletVersionPostfix, ", ").concat(configContent));
                                            }
                                            packageDirectoryPath = this.appletFileNameHelpers.getAppletPackageDirectoryPath(appletUid, appletVersion, appletVersionPostfix);
                                            mainFilePath = packageDirectoryPath + "/" + config.main;
                                            return [
                                                2,
                                                mainFilePath
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return AppletBinaryDownloader;
            }();
            exports.AppletBinaryDownloader = AppletBinaryDownloader;
            __decorate([
                (0, synchronousDecorator_1.synchronous)(),
                (0, retriableDecorator_1.retriable)({
                    count: 10,
                    initialTimeoutMs: 1e3,
                    maxTimeoutMs: 5 * 6e4
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    String,
                    Boolean,
                    String,
                    String,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], AppletBinaryDownloader.prototype, "getOrDownloadAppletBinaries", null);
            function resolveFrontAppletJsFile(frontAppletJsUriOrPath, defaultBaseUri) {
                if (typeof frontAppletJsUriOrPath === "undefined") {
                    return null;
                }
                if (isUrlLike(frontAppletJsUriOrPath)) {
                    return {
                        localUri: frontAppletJsUriOrPath
                    };
                }
                frontAppletJsUriOrPath = getPathname(getAbsoluteUri(frontAppletJsUriOrPath, defaultBaseUri));
                return {
                    localUri: getAbsoluteUri(frontAppletJsUriOrPath, defaultBaseUri)
                };
            }
            function getDefaultAppletBinaries(appletBinaryUriOrPath, frontAppletJsUriOrPath, defaultBaseUri) {
                var appletBinaryUri = ensureAbsoluteUri(appletBinaryUriOrPath, defaultBaseUri);
                return {
                    appletBinaryFile: {
                        localUri: appletBinaryUri
                    },
                    frontAppletJsFile: resolveFrontAppletJsFile(frontAppletJsUriOrPath, defaultBaseUri)
                };
            }
            exports.getDefaultAppletBinaries = getDefaultAppletBinaries;
            function ensureAbsoluteUri(uriOrPath, defaultBaseUri) {
                if (isUrlLike(uriOrPath)) {
                    return uriOrPath;
                }
                return getAbsoluteUri(uriOrPath, defaultBaseUri);
            }
            function getPathname(uri) {
                return url.parse(uri).pathname;
            }
            function getAbsoluteUri(filePath, baseUri) {
                var parsedBaseUri = url.parse(baseUri);
                if (!parsedBaseUri.pathname) {
                    throw new Error("Invalid applet binary file path");
                }
                var pathname = getAbsolutePathname(filePath, parsedBaseUri.pathname);
                return url.format(Object.assign(Object.assign({}, parsedBaseUri), {
                    pathname: pathname,
                    search: void 0
                }));
            }
            function getAbsolutePathname(filePath, basePathname) {
                if (path_1["default"].isAbsolute(filePath)) {
                    return filePath;
                }
                var segmentedBasePathname = basePathname.split("/");
                segmentedBasePathname[segmentedBasePathname.length - 1] = filePath;
                var pathname = segmentedBasePathname.join("/");
                return pathname;
            }
            function isUrlLike(uriOrPath) {
                return url.parse(uriOrPath).protocol !== null;
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/appletBinarySagas.js
    var require_appletBinarySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/appletBinarySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.updateActiveAppletBinaryFile = exports.activeAppletBinary = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var authenticationActions_1 = require_authenticationActions();
            var deviceVerificationActions_1 = require_deviceVerificationActions();
            var appletActions_1 = require_appletActions();
            var appletTimingActions_1 = require_appletTimingActions();
            var AppletBinaryDownloader_1 = require_AppletBinaryDownloader();
            var dependencyInjection_1 = require_dependencyInjection();
            function activeAppletBinary(getState, getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)([
                                    authenticationActions_1.AuthenticationSucceed,
                                    deviceVerificationActions_1.VerificationSucceeded
                                ], function(action) {
                                    var deviceUid, _, state, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    8,
                                                    ,
                                                    9
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().getDeviceUid()
                                                ];
                                            case 1:
                                                deviceUid = _state.sent();
                                                _ = action.type;
                                                switch(_){
                                                    case authenticationActions_1.AuthenticationSucceed:
                                                        return [
                                                            3,
                                                            2
                                                        ];
                                                    case deviceVerificationActions_1.VerificationSucceeded:
                                                        return [
                                                            3,
                                                            5
                                                        ];
                                                }
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 2:
                                                state = getState();
                                                if (!state.deviceVerification.verified) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletActions_1.SubscribeActiveApplet,
                                                        deviceUid: deviceUid
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 5:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletActions_1.SubscribeActiveApplet,
                                                        deviceUid: deviceUid
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 8:
                                                error = _state.sent();
                                                console.error("activeAppletBinary failed", error);
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 9:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.activeAppletBinary = activeAppletBinary;
            function updateActiveAppletBinaryFile(shortAppletFilesUrl, offlineCache, defaultTimingData) {
                var staticBaseUrl;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            staticBaseUrl = null;
                            return [
                                4,
                                (0, effects_1.fork)(function() {
                                    var _ref, staticBaseUrlFromState;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, dependencyInjection_1.awaitDependencies)([
                                                        "staticBaseUrl"
                                                    ])
                                                ];
                                            case 1:
                                                _ref = _state.sent(), staticBaseUrlFromState = _ref.staticBaseUrl;
                                                staticBaseUrl = staticBaseUrlFromState;
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                                    "connectedBaseUrl"
                                ], function(param) {
                                    var connectedBaseUrl, getStaticBaseUrl, appletBinaryDownloader;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                connectedBaseUrl = param.connectedBaseUrl;
                                                getStaticBaseUrl = function() {
                                                    var finalStaticBaseUrl = connectedBaseUrl !== null && connectedBaseUrl !== void 0 ? connectedBaseUrl : staticBaseUrl;
                                                    if (finalStaticBaseUrl === null) {
                                                        throw new Error("The applet is not downloaded and is trying to download before the staticBaseUrl is set.");
                                                    }
                                                    return finalStaticBaseUrl;
                                                };
                                                appletBinaryDownloader = new AppletBinaryDownloader_1.AppletBinaryDownloader(shortAppletFilesUrl, offlineCache, getStaticBaseUrl);
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(appletActions_1.UpdateActiveAppletBinary, function(updateActiveAppletBinary) {
                                                        var _a2, _ref, frontAppletJsFile, appletBinaryFile, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        3,
                                                                        ,
                                                                        4
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        appletBinaryDownloader.getOrDownloadAppletBinaries(updateActiveAppletBinary.activeAppletUid, updateActiveAppletBinary.activeAppletVersion, (_a2 = updateActiveAppletBinary.activeAppletIsPackage) !== null && _a2 !== void 0 ? _a2 : false, updateActiveAppletBinary.activeAppletFrontAppletVersion || updateActiveAppletBinary.activeAppletHugApiVersion, // deprecated will be deleted
                                                                        updateActiveAppletBinary.activeAppletVersionPostfix, defaultTimingData)
                                                                    ];
                                                                case 1:
                                                                    _ref = _state.sent(), frontAppletJsFile = _ref.frontAppletJsFile, appletBinaryFile = _ref.appletBinaryFile;
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: appletActions_1.UpdateActiveAppletBinaryFile,
                                                                            appletBinaryFile: appletBinaryFile,
                                                                            appletFrontAppletJsFile: frontAppletJsFile
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 3:
                                                                    error = _state.sent();
                                                                    console.error("updateActiveAppletBinaryFile failed", error);
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(appletTimingActions_1.PrepareNextAppletTiming, function(action) {
                                                        var _ref, frontAppletJsFile, appletBinaryFile, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        3,
                                                                        ,
                                                                        4
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        appletBinaryDownloader.getOrDownloadAppletBinaries(action.appletUid, action.appletVersion, action.isPackage, action.appletFrontAppletVersion, action.appletVersionPostfix, defaultTimingData)
                                                                    ];
                                                                case 1:
                                                                    _ref = _state.sent(), frontAppletJsFile = _ref.frontAppletJsFile, appletBinaryFile = _ref.appletBinaryFile;
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: appletTimingActions_1.UpdateNextAppletBinaryFile,
                                                                            appletUid: action.appletUid,
                                                                            appletBinaryFile: appletBinaryFile,
                                                                            appletFrontAppletJsFile: frontAppletJsFile
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 3:
                                                                    error = _state.sent();
                                                                    console.error("prepareNextAppletTiming failed", error);
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                }))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateActiveAppletBinaryFile = updateActiveAppletBinaryFile;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/errorHelper.js
    var require_errorHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/errorHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createErrorTransferObject = void 0;
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            function createErrorTransferObject(error) {
                var errorTransferObject = {};
                errorTransferObject.type = error.name;
                errorTransferObject.message = error.message;
                errorTransferObject.stackTrace = error.stack;
                errorTransferObject.suggestion = error.suggestion;
                errorTransferObject.pathToDocs = error.pathToDocs;
                errorTransferObject.origin = error.origin;
                errorTransferObject.originStack = error.originStack;
                errorTransferObject.code = error.code ? error.code : ErrorCodes_1["default"].UNEXPECTED_EXCEPTION;
                return errorTransferObject;
            }
            exports.createErrorTransferObject = createErrorTransferObject;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletBrowserError.js
    var require_AppletBrowserError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletBrowserError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var AppletBrowserError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(_AppletBrowserError, _AppletError_1_default);
                var _super = _create_super(_AppletBrowserError);
                function _AppletBrowserError(parameters2) {
                    _class_call_check(this, _AppletBrowserError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        pathToDocs: _AppletBrowserError.PATH_TO_DOCS,
                        kind: "appletError"
                    }));
                    _this.name = "AppletBrowserError";
                    return _this;
                }
                return _AppletBrowserError;
            }(AppletError_1["default"]);
            AppletBrowserError.PATH_TO_DOCS = "/api/js/js-browser";
            exports["default"] = AppletBrowserError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalError.js
    var require_InternalError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var SosError_1 = __importDefault(require_SosError());
            var InternalError = /*#__PURE__*/ function(_SosError_1_default) {
                _inherits(InternalError, _SosError_1_default);
                var _super = _create_super(InternalError);
                function InternalError(parameters2) {
                    _class_call_check(this, InternalError);
                    var _this;
                    var message2 = parameters2.message, code = parameters2.code, suggestion = parameters2.suggestion, pathToDocs = parameters2.pathToDocs;
                    var originMessage = parameters2.kind === "internalErrorWithOrigin" ? parameters2.originMessage : void 0;
                    _this = _super.call(this, {
                        kind: "sosError",
                        message: "".concat(message2).concat(originMessage ? " - Original: " + originMessage : ""),
                        code: code,
                        suggestion: suggestion,
                        pathToDocs: pathToDocs
                    });
                    _this.name = "InternalError";
                    _this.origin = parameters2.kind === "internalErrorWithOrigin" ? parameters2.origin : void 0;
                    _this.originStack = parameters2.kind === "internalErrorWithOrigin" ? parameters2.originStack : void 0;
                    _this.originMessage = originMessage;
                    return _this;
                }
                return InternalError;
            }(SosError_1["default"]);
            exports["default"] = InternalError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalBrowserError.js
    var require_InternalBrowserError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalBrowserError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalBrowserError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(_InternalBrowserError, _InternalError_1_default);
                var _super = _create_super(_InternalBrowserError);
                function _InternalBrowserError(parameters2) {
                    _class_call_check(this, _InternalBrowserError);
                    var _this;
                    if (parameters2.kind === "internalBrowserError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalBrowserError.PATH_TO_DOCS,
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalBrowserError.PATH_TO_DOCS,
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalBrowserOpenLinkError";
                    return _possible_constructor_return(_this);
                }
                return _InternalBrowserError;
            }(InternalError_1["default"]);
            InternalBrowserError.PATH_TO_DOCS = "/api/js/js-browser";
            exports["default"] = InternalBrowserError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Browser/appletBrowserHandler.js
    var require_appletBrowserHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Browser/appletBrowserHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleBrowserMessage = void 0;
            var lodash_1 = __importDefault(require_lodash());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var activeAppletActions_1 = require_activeAppletActions();
            var AppletBrowserError_1 = __importDefault(require_AppletBrowserError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var InternalBrowserError_1 = __importDefault(require_InternalBrowserError());
            function handleBrowserMessage(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum) {
                var _a2, _b2, _, options, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".browser.open_link":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".browser.open":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".browser.close":
                                    return [
                                        3,
                                        10
                                    ];
                            }
                            return [
                                3,
                                12
                            ];
                        case 1:
                            if (typeof data.uri !== "string") {
                                throw new AppletBrowserError_1["default"]({
                                    kind: "appletBrowserError",
                                    message: "Property argument uri must be a string.",
                                    code: ErrorCodes_1["default"].BROWSER_LINK_IS_NOT_STRING
                                });
                            }
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveOpenBrowserLink,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    uri: data.uri
                                })
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                8,
                                ,
                                9
                            ]);
                            options = lodash_1["default"].omit(data, "type", "uri");
                            if ("headlessMode" in data && typeof data.headlessMode !== "undefined") {
                                (_a2 = options.clearData) !== null && _a2 !== void 0 ? _a2 : options.clearData = !data.headlessMode;
                                (_b2 = options.canUserClose) !== null && _b2 !== void 0 ? _b2 : options.canUserClose = !data.headlessMode;
                            }
                            if (!(data.type === messageTypePrefix + ".browser.open_link")) return [
                                3,
                                5
                            ];
                            return [
                                4,
                                nativeDriver.browserOpenLink(data.uri, options)
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 5:
                            return [
                                4,
                                nativeDriver.browser.open(data.uri, options)
                            ];
                        case 6:
                            _state.sent();
                            _state.label = 7;
                        case 7:
                            return [
                                3,
                                9
                            ];
                        case 8:
                            error = _state.sent();
                            throw new InternalBrowserError_1["default"]({
                                kind: "internalBrowserErrorWithOrigin",
                                message: "Unexpected error occurred when opening ".concat(data.uri),
                                code: ErrorCodes_1["default"].BROWSER_OPEN_LINK_ERROR,
                                origin: "browserOpenLink",
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 9:
                            return [
                                2,
                                {}
                            ];
                        case 10:
                            return [
                                4,
                                nativeDriver.browser.close()
                            ];
                        case 11:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 12:
                            return [
                                2,
                                null
                            ];
                        case 13:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleBrowserMessage = handleBrowserMessage;
            function browserHandler(param) {
                var messageTypePrefix, data, frontDriver, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleBrowserMessage(messageTypePrefix, data, frontDriver, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = browserHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletCommandError.js
    var require_AppletCommandError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletCommandError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var AppletCommandError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(_AppletCommandError, _AppletError_1_default);
                var _super = _create_super(_AppletCommandError);
                function _AppletCommandError(parameters2) {
                    _class_call_check(this, _AppletCommandError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        pathToDocs: _AppletCommandError.PATH_TO_DOCS,
                        kind: "appletError"
                    }));
                    _this.name = "AppletCommandError";
                    return _this;
                }
                return _AppletCommandError;
            }(AppletError_1["default"]);
            AppletCommandError.PATH_TO_DOCS = "/api/js/js-command";
            exports["default"] = AppletCommandError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Command/appletCommandHandler.js
    var require_appletCommandHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Command/appletCommandHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleCommandMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var activeAppletActions_1 = require_activeAppletActions();
            var AppletCommandError_1 = __importDefault(require_AppletCommandError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            function handleCommandMessage(messageTypePrefix, data, _nativeDriver, appletUid, timingChecksum) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".command.dispatch":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                3
                            ];
                        case 1:
                            if (typeof data.command.type !== "string") {
                                throw new AppletCommandError_1["default"]({
                                    kind: "appletCommandError",
                                    message: "Command type must be a string.",
                                    code: ErrorCodes_1["default"].COMMAND_TYPE_IS_NOT_STRING
                                });
                            }
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletDispatchCommand,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    command: data.command
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 3:
                            return [
                                2,
                                null
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleCommandMessage = handleCommandMessage;
            function commandHandler(param) {
                var messageTypePrefix, data, frontDriver, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleCommandMessage(messageTypePrefix, data, frontDriver, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = commandHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/DeviceInfo/appletDeviceInfoHandler.js
    var require_appletDeviceInfoHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/DeviceInfo/appletDeviceInfoHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleDeviceInfoMessage = void 0;
            var DEVICE_INFO_PREFIX = "device_info";
            function handleDeviceInfoMessage(messageTypePrefix, param, state) {
                var type = param.type;
                switch(type){
                    case "".concat(messageTypePrefix, ".").concat(DEVICE_INFO_PREFIX, ".get_location"):
                        return {
                            location: state.device.location
                        };
                    case "".concat(messageTypePrefix, ".").concat(DEVICE_INFO_PREFIX, ".get_organization_tags"):
                    case "".concat(messageTypePrefix, ".").concat(DEVICE_INFO_PREFIX, ".get_device_tags"):
                        return {
                            tags: state.device.organizationTags
                        };
                    case "".concat(messageTypePrefix, ".").concat(DEVICE_INFO_PREFIX, ".get_device_name"):
                        return {
                            name: state.device.deviceName
                        };
                    default:
                        return null;
                }
            }
            exports.handleDeviceInfoMessage = handleDeviceInfoMessage;
            function deviceInfoHandler(param) {
                var messageTypePrefix, data, getState, state;
                return _ts_generator(this, function(_state) {
                    messageTypePrefix = param.messageTypePrefix, data = param.data, getState = param.getState;
                    state = getState();
                    return [
                        2,
                        handleDeviceInfoMessage(messageTypePrefix, data, state)
                    ];
                });
            }
            exports["default"] = deviceInfoHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Front/FrontCapability.js
    var require_FrontCapability2 = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Front/FrontCapability.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = void 0;
            var FrontCapability_1 = require_FrontCapability();
            Object.defineProperty(exports, "default", {
                enumerable: true,
                get: function get() {
                    return FrontCapability_1.FrontCapabilities;
                }
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletDisplayError.js
    var require_AppletDisplayError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletDisplayError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var AppletDisplayError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(AppletDisplayError, _AppletError_1_default);
                var _super = _create_super(AppletDisplayError);
                function AppletDisplayError(parameters2) {
                    _class_call_check(this, AppletDisplayError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        kind: "appletError"
                    }));
                    _this.name = "AppletDisplayError";
                    return _this;
                }
                return AppletDisplayError;
            }(AppletError_1["default"]);
            exports["default"] = AppletDisplayError;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Telemetry/deviceTelemetryActions.js
    var require_deviceTelemetryActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Telemetry/deviceTelemetryActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateDeviceTelemetryRecord = void 0;
            exports.UpdateDeviceTelemetryRecord = "Device.Telemetry.UpdateDeviceTelemetryRecord";
        }
    });
    // node_modules/@signageos/common-types/dist/Device/Telemetry/DeviceTelemetryType.js
    var require_DeviceTelemetryType = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/Telemetry/DeviceTelemetryType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceTelemetryType = void 0;
            var DeviceTelemetryType;
            (function(DeviceTelemetryType2) {
                DeviceTelemetryType2["VOLUME"] = "VOLUME";
                DeviceTelemetryType2["BRIGHTNESS"] = "BRIGHTNESS";
                DeviceTelemetryType2["TIMERS"] = "TIMERS";
                DeviceTelemetryType2["PROPRIETARY_TIMERS"] = "PROPRIETARY_TIMERS";
                DeviceTelemetryType2["RESOLUTION"] = "RESOLUTION";
                DeviceTelemetryType2["ORIENTATION"] = "ORIENTATION";
                DeviceTelemetryType2["REMOTE_CONTROL"] = "REMOTE_CONTROL";
                DeviceTelemetryType2["APPLICATION_VERSION"] = "APPLICATION_VERSION";
                DeviceTelemetryType2["FIRMWARE_VERSION"] = "FIRMWARE_VERSION";
                DeviceTelemetryType2["DEBUG"] = "DEBUG";
                DeviceTelemetryType2["DATETIME"] = "DATETIME";
                DeviceTelemetryType2["POWER_ACTIONS_SCHEDULE"] = "POWER_ACTIONS_SCHEDULE";
                DeviceTelemetryType2["TEMPERATURE"] = "TEMPERATURE";
                DeviceTelemetryType2["BUNDLED_APPLET"] = "BUNDLED_APPLET";
                DeviceTelemetryType2["AUTO_RECOVERY"] = "AUTO_RECOVERY";
                DeviceTelemetryType2["PEER_RECOVERY"] = "PEER_RECOVERY";
                DeviceTelemetryType2["PROXY"] = "PROXY";
                DeviceTelemetryType2["WIFI_STRENGTH"] = "WIFI_STRENGTH";
                DeviceTelemetryType2["FRONT_CAPABILITIES"] = "FRONT_CAPABILITIES";
                DeviceTelemetryType2["MANAGEMENT_CAPABILITIES"] = "MANAGEMENT_CAPABILITIES";
                DeviceTelemetryType2["DISPLAY_SETTING"] = "DISPLAY_SETTING";
                DeviceTelemetryType2["INPUT_SOURCE"] = "INPUT_SOURCE";
                DeviceTelemetryType2["FRONT_DISPLAY_VERSION"] = "FRONT_DISPLAY_VERSION";
                DeviceTelemetryType2["OFFLINE_RANGE"] = "OFFLINE_RANGE";
                DeviceTelemetryType2["ONLINE_STATUS"] = "ONLINE_STATUS";
                DeviceTelemetryType2["CONNECTION_METHOD"] = "CONNECTION_METHOD";
                DeviceTelemetryType2["EXTENDED_MANAGEMENT"] = "EXTENDED_MANAGEMENT";
                DeviceTelemetryType2["EXTENDED_CONTROL"] = "EXTENDED_CONTROL";
                DeviceTelemetryType2["NETWORK_INTERFACES"] = "NETWORK_INTERFACES";
                DeviceTelemetryType2["DISPLAY_POWER_ON"] = "DISPLAY_POWER_ON";
                DeviceTelemetryType2["STORAGE"] = "STORAGE";
                DeviceTelemetryType2["APP_MODULES"] = "APP_MODULES";
                DeviceTelemetryType2["FEATURE_FLAGS"] = "FEATURE_FLAGS";
                DeviceTelemetryType2["CRYPTOGRAPHIC_KEY"] = "CRYPTOGRAPHIC_KEY";
                DeviceTelemetryType2["APPLET"] = "APPLET";
                DeviceTelemetryType2["PLUGIN"] = "PLUGIN";
                DeviceTelemetryType2["RUNNER"] = "RUNNER";
                DeviceTelemetryType2["RUNNER_CUSTOM"] = "RUNNER_CUSTOM";
                DeviceTelemetryType2["CPU_USAGE"] = "CPU_USAGE";
                DeviceTelemetryType2["MEMORY_USAGE"] = "MEMORY_USAGE";
                DeviceTelemetryType2["INSTALLED_PACKAGES"] = "INSTALLED_PACKAGES";
                DeviceTelemetryType2["CLIENT_PUBLIC_IP"] = "CLIENT_PUBLIC_IP";
                DeviceTelemetryType2["SUPRA"] = "SUPRA";
            })(DeviceTelemetryType || (exports.DeviceTelemetryType = DeviceTelemetryType = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Socket/socketActionDeliverHelper.js
    var require_socketActionDeliverHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Socket/socketActionDeliverHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deliver = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            function deliver(action) {
                var timeoutMs, actionWithEmitter;
                var _arguments = arguments;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            timeoutMs = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : 1e4;
                            return [
                                4,
                                (0, effects_1.put)(action)
                            ];
                        case 1:
                            actionWithEmitter = _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(function() {
                                    return new Promise(function(resolve, reject) {
                                        var timeout = setTimeout(function() {
                                            return reject(new Error("Delivering action ".concat(action.type, " has timed out")));
                                        }, timeoutMs);
                                        actionWithEmitter.__emitter.once("delivered", function() {
                                            clearTimeout(timeout);
                                            resolve();
                                        });
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2,
                                action
                            ];
                    }
                });
            }
            exports.deliver = deliver;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/deviceSagas.js
    var require_deviceSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/deviceSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.notifyFirmwareVersion = exports.notifyFrontCapabilities = exports.getSupportedFrontCapabilities = exports.getDeviceLocationAndTags = exports.updateOrganizationTags = exports.updateDeviceLocation = exports.notifyDeviceApplicationVersion = exports.notifyDeviceTimeAndTimezoneChange = exports.notifyDeviceSaga = exports.updateTitle = void 0;
            var applicationActions_1 = require_applicationActions2();
            var authenticationActions_1 = require_authenticationActions();
            var deviceTelemetryActions_1 = require_deviceTelemetryActions();
            var deviceActions_1 = require_deviceActions();
            var locationActions_1 = require_locationActions();
            var organizationTagActions_1 = require_organizationTagActions();
            var organizationActions_1 = require_organizationActions();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var lodash_1 = require_lodash();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceSagas_1 = require_deviceSagas();
            var periodicTaskSaga_1 = require_periodicTaskSaga();
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            var Property_1 = __importDefault(require_Property());
            var socketActionCreator_1 = require_socketActionCreator();
            var socketActionDeliverHelper_1 = require_socketActionDeliverHelper();
            var deviceActions_2 = require_deviceActions3();
            var deviceDateTimeActions_1 = require_deviceDateTimeActions();
            var constants_1 = require_constants();
            function updateTitle(window2) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceActions_1.UpdateDeviceName, function(action) {
                                    var titleElement;
                                    return _ts_generator(this, function(_state) {
                                        try {
                                            titleElement = window2.document.head.getElementsByTagName("title")[0];
                                            titleElement.innerHTML = action.deviceName;
                                        } catch (error) {
                                            console.error("updateTitle failed", error);
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(organizationActions_1.UpdateOrganization)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateTitle = updateTitle;
            function notifyDeviceSaga(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, deviceSagas_1.notifyDeviceInfo, getNativeDriver)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, deviceSagas_1.notifyDeviceProxyInfo, getNativeDriver)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, (0, exports.notifyFirmwareVersion)(getNativeDriver))
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceSaga = notifyDeviceSaga;
            function notifyDeviceTimeAndTimezoneChange() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceDateTimeActions_1.UpdateDeviceTimeSettings, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceDateTimeActions_1.NotifyCurrentTime,
                                                        timezone: action.timezone,
                                                        timestamp: action.timestamp
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceTimeAndTimezoneChange = notifyDeviceTimeAndTimezoneChange;
            function notifyDeviceApplicationVersion(getNativeDriver, applicationVersion) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, deviceSagas_1.notifyDeviceApplicationVersionCommon, getNativeDriver, applicationVersion)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceApplicationVersion = notifyDeviceApplicationVersion;
            function updateDeviceLocation(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(locationActions_1.UpdateLocation, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].DEVICE_LOCATION, action.location)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var storedLocation;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_LOCATION, null)
                                                ];
                                            case 1:
                                                storedLocation = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: locationActions_1.UpdateLocation,
                                                        location: storedLocation
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateDeviceLocation = updateDeviceLocation;
            function updateOrganizationTags(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(organizationTagActions_1.UpdateOrganizationTags, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].DEVICE_ORGANIZATION_TAGS, action.tags)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var storedOrganizationTags;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_ORGANIZATION_TAGS, [])
                                                ];
                                            case 1:
                                                storedOrganizationTags = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: organizationTagActions_1.UpdateOrganizationTags,
                                                        tags: storedOrganizationTags
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateOrganizationTags = updateOrganizationTags;
            function getDeviceLocationAndTags() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(authenticationActions_1.AuthenticationSucceed, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: locationActions_1.GetLocation
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: organizationTagActions_1.GetOrganizationTags
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.getDeviceLocationAndTags = getDeviceLocationAndTags;
            function getSupportedFrontCapabilities(getNativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var supportedCapabilities, nativeDriver, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, capability, supported, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                supportedCapabilities = [];
                                nativeDriver = getNativeDriver();
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    7,
                                    8
                                ]);
                                _iterator = Object.values(FrontCapability_1["default"])[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    5
                                ];
                                capability = _step.value;
                                return [
                                    4,
                                    nativeDriver.frontSupports(capability)
                                ];
                            case 3:
                                supported = _state.sent();
                                if (supported) {
                                    supportedCapabilities.push(capability);
                                }
                                _state.label = 4;
                            case 4:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 5:
                                return [
                                    3,
                                    8
                                ];
                            case 6:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 8:
                                return [
                                    2,
                                    supportedCapabilities
                                ];
                        }
                    });
                });
            }
            exports.getSupportedFrontCapabilities = getSupportedFrontCapabilities;
            function notifyFrontCapabilities(propertyStorage, getNativeDriver) {
                return (0, periodicTaskSaga_1.runPeriodicTaskSagaUntilSuccessWhilePlatform)(constants_1.REGULARLY, constants_1.SOMETIMES, function() {
                    var supportedCapabilities, isCapable, lastUpdated, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    6,
                                    ,
                                    7
                                ]);
                                return [
                                    4,
                                    getSupportedFrontCapabilities(getNativeDriver)
                                ];
                            case 1:
                                supportedCapabilities = _state.sent();
                                isCapable = {
                                    capable: supportedCapabilities
                                };
                                return [
                                    4,
                                    propertyStorage.getValueOrDefault(Property_1["default"].LATEST_REPORTED_SETTINGS_FRONT_CAPABILITIES, [])
                                ];
                            case 2:
                                lastUpdated = _state.sent();
                                if (!!(0, lodash_1.isEqual)(lastUpdated, isCapable)) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    propertyStorage.setValue(Property_1["default"].LATEST_REPORTED_SETTINGS_FRONT_CAPABILITIES, isCapable)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    (0, socketActionDeliverHelper_1.deliver)({
                                        type: deviceTelemetryActions_1.UpdateDeviceTelemetryRecord,
                                        name: DeviceTelemetryType_1.DeviceTelemetryType.FRONT_CAPABILITIES,
                                        data: isCapable
                                    })
                                ];
                            case 4:
                                _state.sent();
                                _state.label = 5;
                            case 5:
                                return [
                                    3,
                                    7
                                ];
                            case 6:
                                error = _state.sent();
                                console.error("notifyFrontCapabilities failed", error);
                                return [
                                    3,
                                    7
                                ];
                            case 7:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.notifyFrontCapabilities = notifyFrontCapabilities;
            var notifyFirmwareVersion = function(getManagementDriver) {
                return function notifyFirmwareVersion() {
                    var firmwareVersion, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    getManagementDriver().firmwareGetVersion()
                                ];
                            case 1:
                                firmwareVersion = _state.sent();
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: deviceActions_2.UpdateDisplayFirmwareVersion,
                                        version: firmwareVersion
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                error = _state.sent();
                                console.error("notifyFirmwareVersion failed", error);
                                return [
                                    3,
                                    4
                                ];
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                };
            };
            exports.notifyFirmwareVersion = notifyFirmwareVersion;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Display/appletDisplayHandler.js
    var require_appletDisplayHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Display/appletDisplayHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleDisplayMessage = void 0;
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            var AppletDisplayError_1 = __importDefault(require_AppletDisplayError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var deviceSagas_1 = require_deviceSagas2();
            function handleDisplayMessage(messageTypePrefix, data, nativeDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".display.supports":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".display.get_capabilities":
                                    return [
                                        3,
                                        3
                                    ];
                            }
                            return [
                                3,
                                5
                            ];
                        case 1:
                            return [
                                4,
                                isCapabilitySupported(data, nativeDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleGetDisplayCapabilities(nativeDriver)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                2,
                                null
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleDisplayMessage = handleDisplayMessage;
            function isCapabilitySupported(data, nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var capability, supports;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                capability = FrontCapability_1["default"][data.capability];
                                if (typeof capability === "undefined") {
                                    throw new AppletDisplayError_1["default"]({
                                        kind: "appletDisplayError",
                                        message: "Invalid capability",
                                        code: ErrorCodes_1["default"].DISPLAY_CAPABILITY_INVALID
                                    });
                                }
                                return [
                                    4,
                                    nativeDriver.frontSupports(capability)
                                ];
                            case 1:
                                supports = _state.sent();
                                return [
                                    2,
                                    {
                                        supports: supports
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetDisplayCapabilities(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var capabilities;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, deviceSagas_1.getSupportedFrontCapabilities)(function() {
                                        return nativeDriver;
                                    })
                                ];
                            case 1:
                                capabilities = _state.sent();
                                return [
                                    2,
                                    {
                                        capabilities: capabilities
                                    }
                                ];
                        }
                    });
                });
            }
            function displayHandler(param) {
                var messageTypePrefix, data, frontDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver;
                            return [
                                4,
                                handleDisplayMessage(messageTypePrefix, data, frontDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = displayHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalFileSystemError.js
    var require_InternalFileSystemError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalFileSystemError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalFileSystemError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(_InternalFileSystemError, _InternalError_1_default);
                var _super = _create_super(_InternalFileSystemError);
                function _InternalFileSystemError(parameters2) {
                    _class_call_check(this, _InternalFileSystemError);
                    var _this;
                    if (parameters2.kind === "internalFileSystemError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalFileSystemError.PATH_TO_DOCS,
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalFileSystemError.PATH_TO_DOCS,
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalFileSystemError";
                    return _possible_constructor_return(_this);
                }
                return _InternalFileSystemError;
            }(InternalError_1["default"]);
            InternalFileSystemError.PATH_TO_DOCS = "/api/js/js-file-system";
            exports["default"] = InternalFileSystemError;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Error/basicErrors.js
    var require_basicErrors = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Error/basicErrors.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotSupportedMethodError = void 0;
            var NotSupportedMethodError4 = /*#__PURE__*/ function(Error1) {
                _inherits(_NotSupportedMethodError, Error1);
                var _super = _create_super(_NotSupportedMethodError);
                function _NotSupportedMethodError(methodName) {
                    _class_call_check(this, _NotSupportedMethodError);
                    var _this;
                    _this = _super.call(this, "".concat(methodName, " is not supported"));
                    Object.setPrototypeOf(_assert_this_initialized(_this), _NotSupportedMethodError.prototype);
                    return _this;
                }
                return _NotSupportedMethodError;
            }(_wrap_native_super(Error));
            exports.NotSupportedMethodError = NotSupportedMethodError4;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/managementHelper.js
    var require_managementHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/managementHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.fileSystemWipeoutAction = void 0;
            function fileSystemWipeoutAction(managementDriver, cacheDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    4,
                                    ,
                                    5
                                ]);
                                return [
                                    4,
                                    clearCookies(window)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    clearCache(cacheDriver)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    managementDriver.fileSystem.wipeout()
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                error = _state.sent();
                                console.warn("fileSystemWipeoutAction failed", error);
                                return [
                                    3,
                                    5
                                ];
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.fileSystemWipeoutAction = fileSystemWipeoutAction;
            function clearCookies(window2) {
                return __awaiter(this, void 0, void 0, function() {
                    var cookies, id, domain, cookieBase, path2;
                    return _ts_generator(this, function(_state) {
                        try {
                            cookies = window2.document.cookie.split("; ");
                            for(id = 0; id < cookies.length; id++){
                                domain = window2.location.hostname.split(".");
                                while(domain.length > 0){
                                    cookieBase = encodeURIComponent(cookies[id].split(";")[0].split("=")[0]) + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=" + domain.join(".") + " ;path=";
                                    path2 = location.pathname.split("/");
                                    document.cookie = cookieBase + "/";
                                    while(path2.length > 0){
                                        document.cookie = cookieBase + path2.join("/");
                                        path2.pop();
                                    }
                                    domain.shift();
                                }
                            }
                        } catch (error) {
                            console.error("managementHelper - clearCookies failed", error);
                        }
                        return [
                            2
                        ];
                    });
                });
            }
            function clearCache(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var _this, uids, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    4,
                                    ,
                                    5
                                ]);
                                return [
                                    4,
                                    nativeDriver.cacheGetUids()
                                ];
                            case 2:
                                uids = _state.sent();
                                return [
                                    4,
                                    Promise.allSettled(uids.map(function(uid) {
                                        return __awaiter(_this, void 0, void 0, function() {
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        return [
                                                            4,
                                                            nativeDriver.cacheDelete(uid)
                                                        ];
                                                    case 1:
                                                        _state.sent();
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }))
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                error = _state.sent();
                                console.error("managementHelper - clearCache failed", error);
                                return [
                                    3,
                                    5
                                ];
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/FileSystem/appletFileSystemHandler.js
    var require_appletFileSystemHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/FileSystem/appletFileSystemHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.fileSystemHandlerForScripts = exports.handleFileSystemMessage = void 0;
            var InternalFileSystemError_1 = __importDefault(require_InternalFileSystemError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var basicErrors_1 = require_basicErrors();
            var managementHelper_1 = require_managementHelper();
            function handleFileSystemMessage(messageTypePrefix, data, fileSystem, managementDriver, cacheDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".file_system.list_storage_units":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".file_system.list_files":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".file_system.exists":
                                    return [
                                        3,
                                        5
                                    ];
                                case messageTypePrefix + ".file_system.get_file":
                                    return [
                                        3,
                                        7
                                    ];
                                case messageTypePrefix + ".file_system.write_file":
                                    return [
                                        3,
                                        9
                                    ];
                                case messageTypePrefix + ".file_system.append_file":
                                    return [
                                        3,
                                        11
                                    ];
                                case messageTypePrefix + ".file_system.read_file":
                                    return [
                                        3,
                                        13
                                    ];
                                case messageTypePrefix + ".file_system.copy_file":
                                    return [
                                        3,
                                        15
                                    ];
                                case messageTypePrefix + ".file_system.move_file":
                                    return [
                                        3,
                                        17
                                    ];
                                case messageTypePrefix + ".file_system.delete_file":
                                    return [
                                        3,
                                        19
                                    ];
                                case messageTypePrefix + ".file_system.download_file":
                                    return [
                                        3,
                                        21
                                    ];
                                case messageTypePrefix + ".file_system.extract_file":
                                    return [
                                        3,
                                        23
                                    ];
                                case messageTypePrefix + ".file_system.link":
                                    return [
                                        3,
                                        25
                                    ];
                                case messageTypePrefix + ".file_system.get_file_checksum":
                                    return [
                                        3,
                                        27
                                    ];
                                case messageTypePrefix + ".file_system.create_directory":
                                    return [
                                        3,
                                        29
                                    ];
                                case messageTypePrefix + ".file_system.is_directory":
                                    return [
                                        3,
                                        31
                                    ];
                                case messageTypePrefix + ".file_system.create_archive_file":
                                    return [
                                        3,
                                        33
                                    ];
                                case messageTypePrefix + ".file_system.wipeout":
                                    return [
                                        3,
                                        35
                                    ];
                            }
                            return [
                                3,
                                37
                            ];
                        case 1:
                            return [
                                4,
                                handleListStorageUnits(fileSystem)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleListFiles(fileSystem, data)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleFileExists(fileSystem, data)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleGetFile(fileSystem, data)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                handleWriteFile(fileSystem, data)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                handleAppendFile(fileSystem, data)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                handleReadFile(fileSystem, data)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                handleCopyFile(fileSystem, data)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                4,
                                handleMoveFile(fileSystem, data)
                            ];
                        case 18:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 19:
                            return [
                                4,
                                handleDeleteFile(fileSystem, data)
                            ];
                        case 20:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 21:
                            return [
                                4,
                                handleDownloadFile(fileSystem, data)
                            ];
                        case 22:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 23:
                            return [
                                4,
                                handleExtractFile(fileSystem, data)
                            ];
                        case 24:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 25:
                            return [
                                4,
                                handleLink(fileSystem, data)
                            ];
                        case 26:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 27:
                            return [
                                4,
                                handleGetFileChecksum(fileSystem, data)
                            ];
                        case 28:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 29:
                            return [
                                4,
                                handleCreateDirectory(fileSystem, data)
                            ];
                        case 30:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 31:
                            return [
                                4,
                                handleIsDirectory(fileSystem, data)
                            ];
                        case 32:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 33:
                            return [
                                4,
                                handleCreateArchive(fileSystem, data)
                            ];
                        case 34:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 35:
                            return [
                                4,
                                handleWipeout(cacheDriver, managementDriver)
                            ];
                        case 36:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 37:
                            return [
                                2,
                                null
                            ];
                        case 38:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleFileSystemMessage = handleFileSystemMessage;
            function humanizeFilePath(filePath) {
                return "storageUnit=".concat(filePath.storageUnit.type, ",filePath=").concat(filePath.filePath);
            }
            function handleListStorageUnits(fileSystem) {
                return __awaiter(this, void 0, void 0, function() {
                    var storageUnits, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.listStorageUnits()
                                ];
                            case 1:
                                storageUnits = _state.sent();
                                return [
                                    2,
                                    {
                                        storageUnits: storageUnits
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when listing storage units.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_LIST_STORAGE_UNITS_ERROR,
                                    origin: "listStorageUnits()",
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleListFiles(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var files, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.listFiles(data.directoryPath)
                                ];
                            case 1:
                                files = _state.sent();
                                return [
                                    2,
                                    {
                                        files: files
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when listing files.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_LIST_FILES_ERROR,
                                    origin: "listFiles(".concat(humanizeFilePath(data.directoryPath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleFileExists(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var exists, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.exists(data.filePath)
                                ];
                            case 1:
                                exists = _state.sent();
                                return [
                                    2,
                                    {
                                        exists: exists
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when checking for file existence.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_FILE_EXISTS_ERROR,
                                    origin: "exists(".concat(humanizeFilePath(data.filePath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleGetFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var file, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.getFile(data.filePath)
                                ];
                            case 1:
                                file = _state.sent();
                                return [
                                    2,
                                    {
                                        file: file
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when getting a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_GET_FILE_ERROR,
                                    origin: "getFile(".concat(humanizeFilePath(data.filePath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleWriteFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.writeFile(data.filePath, data.contents)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when writing a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_WRITE_FILE_ERROR,
                                    origin: "writeFile(".concat(humanizeFilePath(data.filePath), ", ").concat(data.contents.substr(0, 100), "...)"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleAppendFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.appendFile(data.filePath, data.contents)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when writing a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_APPEND_FILE_ERROR,
                                    origin: "appendFile(".concat(humanizeFilePath(data.filePath), ", ").concat(data.contents.substr(0, 100), "...)"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleReadFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var contents, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.readFile(data.filePath)
                                ];
                            case 1:
                                contents = _state.sent();
                                return [
                                    2,
                                    {
                                        contents: contents
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when reading a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_READ_FILE_ERROR,
                                    origin: "readFile(".concat(humanizeFilePath(data.filePath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleCopyFile(fileSystem, data) {
                var _a2;
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.copyFile(data.sourceFilePath, data.destinationFilePath, data.options)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when copying a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_COPY_FILE_ERROR,
                                    origin: "copyFile(".concat(humanizeFilePath(data.sourceFilePath), ", ").concat(humanizeFilePath(data.destinationFilePath), ", {overwrite:").concat((_a2 = data.options) === null || _a2 === void 0 ? void 0 : _a2.overwrite, "})"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleMoveFile(fileSystem, data) {
                var _a2;
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.moveFile(data.sourceFilePath, data.destinationFilePath, data.options)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when moving a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_MOVE_FILE_ERROR,
                                    origin: "moveFile(".concat(humanizeFilePath(data.sourceFilePath), ", ").concat(humanizeFilePath(data.destinationFilePath), "), {overwrite:").concat((_a2 = data.options) === null || _a2 === void 0 ? void 0 : _a2.overwrite, "})"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleDeleteFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.deleteFile(data.filePath, data.recursive)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when deleting a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_DELETE_FILE_ERROR,
                                    origin: "deleteFile(".concat(humanizeFilePath(data.filePath), ", ").concat(data.recursive, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleDownloadFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.downloadFile(data.filePath, data.sourceUri, data.headers)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when downloading a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_DOWNLOAD_FILE_ERROR,
                                    origin: "downloadFile(".concat(humanizeFilePath(data.filePath), ", ").concat(data.sourceUri, ", ").concat(JSON.stringify(data.headers), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleExtractFile(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.extractFile(data.archiveFilePath, data.destinationDirectoryPath, data.method)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when extracting a file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_EXTRACT_FILE_ERROR,
                                    origin: "extractFile(".concat(humanizeFilePath(data.archiveFilePath), ", ").concat(humanizeFilePath(data.destinationDirectoryPath), ", ").concat(data.method, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleCreateArchive(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.createArchive(data.archiveFilePath, data.archiveEntries)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when creating an archive file.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_CREATE_ARCHIVE_FILE_ERROR,
                                    origin: "createArchive(".concat(humanizeFilePath(data.archiveFilePath), ", ").concat(JSON.stringify(data.archiveEntries), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleLink(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.link(data.sourceFilePath, data.destinationFilePath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: error instanceof basicErrors_1.NotSupportedMethodError ? "Link is not supported on this platform." : "Unexpected error occurred when creating a link.",
                                    code: error instanceof basicErrors_1.NotSupportedMethodError ? ErrorCodes_1["default"].FILE_SYSTEM_LINK_NOT_SUPPORTED : ErrorCodes_1["default"].FILE_SYSTEM_LINK_ERROR,
                                    origin: "link(".concat(humanizeFilePath(data.sourceFilePath), ", ").concat(humanizeFilePath(data.destinationFilePath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleGetFileChecksum(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var checksum, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.getFileChecksum(data.filePath, data.hashType)
                                ];
                            case 1:
                                checksum = _state.sent();
                                return [
                                    2,
                                    {
                                        checksum: checksum
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when getting file checksum.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_GET_CHECKSUM_ERROR,
                                    origin: "getFileChecksum(".concat(humanizeFilePath(data.filePath), ", ").concat(data.hashType, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleCreateDirectory(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.createDirectory(data.directoryPath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when creating directory.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_CREATE_DIR_ERROR,
                                    origin: "createDirectory(".concat(humanizeFilePath(data.directoryPath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleIsDirectory(fileSystem, data) {
                return __awaiter(this, void 0, void 0, function() {
                    var isDirectory, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    fileSystem.isDirectory(data.filePath)
                                ];
                            case 1:
                                isDirectory = _state.sent();
                                return [
                                    2,
                                    {
                                        isDirectory: isDirectory
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when checking if a path is directory.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_IS_DIR_ERROR,
                                    origin: "isDirectory(".concat(humanizeFilePath(data.filePath), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleWipeout(cacheDrive, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    (0, managementHelper_1.fileSystemWipeoutAction)(managementDriver, cacheDrive)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalFileSystemError_1["default"]({
                                    kind: "internalFileSystemErrorWithOrigin",
                                    message: "Unexpected error occurred when wiping out the file system.",
                                    code: ErrorCodes_1["default"].FILE_SYSTEM_WIPEOUT_ERROR,
                                    origin: "wipeout()",
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function fileSystemHandler(param) {
                var messageTypePrefix, data, frontDriver, managementDriver, cacheDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, managementDriver = param.managementDriver, cacheDriver = param.cacheDriver;
                            return [
                                4,
                                handleFileSystemMessage(messageTypePrefix, data, frontDriver.fileSystem, managementDriver, cacheDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = fileSystemHandler;
            function fileSystemHandlerForScripts(param) {
                var messageTypePrefix, data, managementDriver, cacheDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver, cacheDriver = param.cacheDriver;
                            return [
                                4,
                                handleFileSystemMessage(messageTypePrefix, data, managementDriver.fileSystem, managementDriver, cacheDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports.fileSystemHandlerForScripts = fileSystemHandlerForScripts;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalHardwareError.js
    var require_InternalHardwareError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalHardwareError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalHardwareError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(_InternalHardwareError, _InternalError_1_default);
                var _super = _create_super(_InternalHardwareError);
                function _InternalHardwareError(parameters2) {
                    _class_call_check(this, _InternalHardwareError);
                    var _this;
                    if (parameters2.kind === "internalHardwareError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalHardwareError.PATH_TO_DOCS,
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalHardwareError.PATH_TO_DOCS,
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalHardwareError";
                    return _possible_constructor_return(_this);
                }
                return _InternalHardwareError;
            }(InternalError_1["default"]);
            InternalHardwareError.PATH_TO_DOCS = "/api/js/js-hardware";
            exports["default"] = InternalHardwareError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Hardware/appletHardwareBarcodeScannerHandler.js
    var require_appletHardwareBarcodeScannerHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Hardware/appletHardwareBarcodeScannerHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.BarcodeScannerStatus = exports.DEFAULT_SCANNER_ID = void 0;
            var InternalHardwareError_1 = __importDefault(require_InternalHardwareError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var sendAppletMessage_1 = require_sendAppletMessage();
            exports.DEFAULT_SCANNER_ID = 0;
            var BarcodeScannerStatus;
            (function(BarcodeScannerStatus2) {
                BarcodeScannerStatus2[BarcodeScannerStatus2["IDLE"] = 0] = "IDLE";
                BarcodeScannerStatus2[BarcodeScannerStatus2["STARTING"] = 1] = "STARTING";
                BarcodeScannerStatus2[BarcodeScannerStatus2["USED"] = 2] = "USED";
                BarcodeScannerStatus2[BarcodeScannerStatus2["STOPPING"] = 3] = "STOPPING";
            })(BarcodeScannerStatus || (exports.BarcodeScannerStatus = BarcodeScannerStatus = {}));
            function handleHardwareBarcodeScannerMessage(scanners, messageTypePrefix, msg, nativeDriver, window2, getState) {
                var getMessage = function(name) {
                    return "".concat(messageTypePrefix, ".hardware.barcode_scanner.").concat(name);
                };
                switch(msg.type){
                    case getMessage("get_version"):
                        return getVersion(nativeDriver);
                    case getMessage("start"):
                        var startMsg = msg;
                        return startScanning(scanners, nativeDriver, window2, getState, getMessage, startMsg.scannerId, startMsg.options);
                    case getMessage("stop"):
                        var stopMsg = msg;
                        return stopScanning(scanners, nativeDriver, stopMsg.scannerId);
                    default:
                        return Promise.resolve(null);
                }
            }
            function getVersion(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var version, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    nativeDriver.hardware.barcodeScanner.getVersion()
                                ];
                            case 1:
                                version = _state.sent();
                                return [
                                    2,
                                    {
                                        version: version
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw new InternalHardwareError_1["default"]({
                                    kind: "internalHardwareErrorWithOrigin",
                                    message: "Failed to get version",
                                    code: ErrorCodes_1["default"].HARDWARE_GET_BARCODE_SCANNER_VERSION_ERROR,
                                    origin: "getVersion()",
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function startScanning(scanners, nativeDriver, window2, getState, getMessage, scannerId, options) {
                return __awaiter(this, void 0, void 0, function() {
                    var onData, onError, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!!scanners[scannerId]) return [
                                    3,
                                    1
                                ];
                                throw new InternalHardwareError_1["default"]({
                                    kind: "internalHardwareError",
                                    message: "Selected barcode scanner is unknown",
                                    code: ErrorCodes_1["default"].HARDWARE_START_OF_UNKNOWN_BARCODE_SCANNER
                                });
                            case 1:
                                if (!(scanners[scannerId].status === BarcodeScannerStatus.USED && options.cancelPrevious)) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    stopScanning(scanners, nativeDriver, scannerId)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                if (scanners[scannerId].status !== BarcodeScannerStatus.IDLE) {
                                    throw new InternalHardwareError_1["default"]({
                                        kind: "internalHardwareError",
                                        message: "Selected barcode scanner is busy",
                                        code: ErrorCodes_1["default"].HARDWARE_START_OF_BUSY_BARCODE_SCANNER
                                    });
                                }
                                _state.label = 4;
                            case 4:
                                scanners[scannerId].status = BarcodeScannerStatus.STARTING;
                                _state.label = 5;
                            case 5:
                                _state.trys.push([
                                    5,
                                    7,
                                    ,
                                    8
                                ]);
                                onData = function(data) {
                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                        type: getMessage("data"),
                                        scannerId: scannerId,
                                        data: data
                                    });
                                };
                                onError = function(message2) {
                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                        type: getMessage("error"),
                                        scannerId: scannerId,
                                        data: message2
                                    });
                                };
                                return [
                                    4,
                                    nativeDriver.hardware.barcodeScanner.startScanning(scannerId, options.timeout, onData, onError)
                                ];
                            case 6:
                                _state.sent();
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                error = _state.sent();
                                scanners[scannerId].status = BarcodeScannerStatus.IDLE;
                                throw new InternalHardwareError_1["default"]({
                                    kind: "internalHardwareErrorWithOrigin",
                                    message: "Failed to start scanning barcode",
                                    code: ErrorCodes_1["default"].HARDWARE_START_OF_BARCODE_SCANNER_ERROR,
                                    origin: "startScanning(".concat(JSON.stringify(options), ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 8:
                                scanners[scannerId] = {
                                    status: BarcodeScannerStatus.USED
                                };
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function stopScanning(scanners, nativeDriver, scannerId) {
                return __awaiter(this, void 0, void 0, function() {
                    var error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (scanners[scannerId].status !== BarcodeScannerStatus.USED) {
                                    throw new InternalHardwareError_1["default"]({
                                        kind: "internalHardwareError",
                                        message: "Barcode scanner to stop is already idle",
                                        code: ErrorCodes_1["default"].HARDWARE_STOP_OF_IDLE_BARCODE_SCANNER
                                    });
                                }
                                scanners[scannerId].status = BarcodeScannerStatus.STOPPING;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    nativeDriver.hardware.barcodeScanner.stopScanning(scannerId)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalHardwareError_1["default"]({
                                    kind: "internalHardwareErrorWithOrigin",
                                    message: "Failed to stop barcode scanner",
                                    code: ErrorCodes_1["default"].HARDWARE_STOP_OF_BARCODE_SCANNER_ERROR,
                                    origin: "stopScanning(".concat(scannerId, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                scanners[scannerId].status = BarcodeScannerStatus.IDLE;
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            var defaultScanners = _define_property({}, exports.DEFAULT_SCANNER_ID, {
                status: BarcodeScannerStatus.IDLE
            });
            function hardwareBarcodeScannerHandler(param, mockScanners) {
                var messageTypePrefix, data, frontDriver, window2, getState, scanners;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, window2 = param.window, getState = param.getState;
                            scanners = mockScanners !== null && mockScanners !== void 0 ? mockScanners : defaultScanners;
                            return [
                                4,
                                handleHardwareBarcodeScannerMessage(scanners, messageTypePrefix, data, frontDriver, window2, getState)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = hardwareBarcodeScannerHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Hardware/appletHardwareHandler.js
    var require_appletHardwareHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Hardware/appletHardwareHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleHardwareMessage = void 0;
            var InternalHardwareError_1 = __importDefault(require_InternalHardwareError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            function handleHardwareMessage(messageTypePrefix, data, nativeDriver, _appletUid, _timingChecksum) {
                var _, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".hardware.led.set_color":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                5
                            ];
                        case 1:
                            _state.trys.push([
                                1,
                                3,
                                ,
                                4
                            ]);
                            return [
                                4,
                                nativeDriver.hardware.led.setColor(data.color)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            throw new InternalHardwareError_1["default"]({
                                kind: "internalHardwareErrorWithOrigin",
                                message: "Unexpected error occurred when working with hardware.",
                                code: ErrorCodes_1["default"].HARDWARE_SET_COLOR_ERROR,
                                origin: "setColor(".concat(data.color, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 4:
                            return [
                                2,
                                {}
                            ];
                        case 5:
                            return [
                                2,
                                null
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleHardwareMessage = handleHardwareMessage;
            function hardwareHandler(param) {
                var messageTypePrefix, data, frontDriver, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleHardwareMessage(messageTypePrefix, data, frontDriver, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = hardwareHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Hardware/ISerial.js
    var require_ISerial = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Hardware/ISerial.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.Parity = exports.SerialPortEvent = void 0;
            var SerialPortEvent;
            (function(SerialPortEvent2) {
                SerialPortEvent2["DATA"] = "data";
                SerialPortEvent2["CLOSE"] = "close";
            })(SerialPortEvent || (exports.SerialPortEvent = SerialPortEvent = {}));
            var Parity;
            (function(Parity2) {
                Parity2["NONE"] = "none";
                Parity2["EVEN"] = "even";
                Parity2["MARK"] = "mark";
                Parity2["ODD"] = "odd";
                Parity2["SPACE"] = "space";
            })(Parity || (exports.Parity = Parity = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Hardware/appletHardwareSerialPortHandler.js
    var require_appletHardwareSerialPortHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Hardware/appletHardwareSerialPortHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleHardwareSerialPortMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var generator_1 = require_generator();
            var channels_1 = require_channels();
            var ISerial_1 = require_ISerial();
            var InternalHardwareError_1 = __importDefault(require_InternalHardwareError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var sendAppletMessage_1 = require_sendAppletMessage();
            function handleHardwareSerialPortMessage(messageTypePrefix, data, window2, nativeDriver, getState) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".hardware.serial_port.open":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".hardware.serial_port.close":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".hardware.serial_port.write":
                                    return [
                                        3,
                                        5
                                    ];
                            }
                            return [
                                3,
                                7
                            ];
                        case 1:
                            return [
                                4,
                                openSerialPort(messageTypePrefix, window2, nativeDriver, getState, data)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                closeSerialPort(data)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                writeToSerialPort(data)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                2,
                                null
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleHardwareSerialPortMessage = handleHardwareSerialPortMessage;
            var serialPorts = {};
            function getDefaultSerialDevice(nativeDriver) {
                switch(nativeDriver.getApplicationType().toLowerCase()){
                    case "tizen":
                        return "PORT1";
                    case "brightsign":
                        return "0";
                    case "windows":
                        return "COM3";
                    case "default":
                    case "linux":
                        return "/dev/ttyUSB0";
                    case "android":
                        return "/dev/ttyusb0";
                    default:
                        return null;
                }
            }
            function openSerialPort(messageTypePrefix, window2, nativeDriver, getState, data) {
                var serialPort, defaultDevice, error, refid;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (data.options.device === void 0) {
                                defaultDevice = getDefaultSerialDevice(nativeDriver);
                                if (defaultDevice === null) {
                                    throw new InternalHardwareError_1["default"]({
                                        kind: "internalHardwareError",
                                        message: "Failed to get default serial port for device. Please specify manually the device in options object.",
                                        code: ErrorCodes_1["default"].HARDWARE_DEFAULT_DEVICE_NOT_FOUND
                                    });
                                }
                                data.options.device = defaultDevice;
                            }
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                3,
                                ,
                                4
                            ]);
                            return [
                                4,
                                nativeDriver.hardware.serial.openPort(data.options)
                            ];
                        case 2:
                            serialPort = _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            throw new InternalHardwareError_1["default"]({
                                kind: "internalHardwareErrorWithOrigin",
                                message: "Failed to open serial port",
                                code: ErrorCodes_1["default"].HARDWARE_OPEN_SERIAL_PORT_ERROR,
                                origin: "openSerialPort(".concat(JSON.stringify(data.options), ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 4:
                            refid = (0, generator_1.generateUniqueHash)(10);
                            serialPorts[refid] = serialPort;
                            return [
                                4,
                                sendSerialPortDataToActiveApplet(messageTypePrefix, window2, getState, refid, serialPort)
                            ];
                        case 5:
                            _state.sent();
                            return [
                                2,
                                {
                                    refid: refid
                                }
                            ];
                    }
                });
            }
            function sendSerialPortDataToActiveApplet(messageTypePrefix, window2, getState, refid, serialPort) {
                var serialPortDataChannel, serialPortCloseChannel, dataTask;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            serialPortDataChannel = (0, channels_1.createChannel)(function(putData) {
                                serialPort.on(ISerial_1.SerialPortEvent.DATA, function(data) {
                                    putData(data);
                                });
                            });
                            serialPortCloseChannel = (0, channels_1.createChannel)(function(putClosed) {
                                serialPort.on(ISerial_1.SerialPortEvent.CLOSE, function() {
                                    return putClosed(true);
                                });
                            });
                            return [
                                4,
                                (0, effects_1.spawn)(channels_1.takeEvery, serialPortDataChannel, function(data) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".hardware.serial_port.data",
                                                        refid: refid,
                                                        data: data
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            dataTask = _state.sent();
                            return [
                                4,
                                (0, effects_1.spawn)(function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(serialPortCloseChannel.take)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.cancel)(dataTask)
                                                ];
                                            case 2:
                                                _state.sent();
                                                delete serialPorts[refid];
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            function closeSerialPort(data) {
                return __awaiter(this, void 0, void 0, function() {
                    var refid, serialPort, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                refid = data.refid;
                                serialPort = serialPorts[refid];
                                if (!serialPort) {
                                    throw new InternalHardwareError_1["default"]({
                                        kind: "internalHardwareError",
                                        message: "Closing serial port that isn't open",
                                        code: ErrorCodes_1["default"].HARDWARE_CLOSE_SERIAL_PORT_ERROR
                                    });
                                }
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    serialPort.close()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalHardwareError_1["default"]({
                                    kind: "internalHardwareErrorWithOrigin",
                                    message: "Failed to close serial port",
                                    code: ErrorCodes_1["default"].HARDWARE_CLOSE_SERIAL_PORT_ERROR,
                                    origin: "closeSerialPort(".concat(refid, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function writeToSerialPort(data) {
                return __awaiter(this, void 0, void 0, function() {
                    var refid, serialPort, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                refid = data.refid;
                                serialPort = serialPorts[refid];
                                if (!serialPort) {
                                    throw new InternalHardwareError_1["default"]({
                                        kind: "internalHardwareError",
                                        message: "Writting to a serial port that isn't open",
                                        code: ErrorCodes_1["default"].HARDWARE_WRITE_TO_SERIAL_PORT_ERROR
                                    });
                                }
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    serialPort.write(data.data)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalHardwareError_1["default"]({
                                    kind: "internalHardwareErrorWithOrigin",
                                    message: "Failed to write to serial port",
                                    code: ErrorCodes_1["default"].HARDWARE_WRITE_TO_SERIAL_PORT_ERROR,
                                    origin: "writeToSerialPort(".concat(refid, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function hardwareSerialPortHandler(param) {
                var messageTypePrefix, data, frontDriver, window2, getState;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, window2 = param.window, getState = param.getState;
                            return [
                                4,
                                handleHardwareSerialPortMessage(messageTypePrefix, data, window2, frontDriver, getState)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = hardwareSerialPortHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Main/pingHandler.js
    var require_pingHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Main/pingHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var activeAppletActions_1 = require_activeAppletActions();
            function handlePingMessage(messageTypePrefix, data, _nativeDriver, appletUid, timingChecksum) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".ping":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                3
                            ];
                        case 1:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.AppletPing,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 3:
                            return [
                                2,
                                null
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            function pingHandler(param) {
                var messageTypePrefix, data, frontDriver, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handlePingMessage(messageTypePrefix, data, frontDriver, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = pingHandler;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Power/PowerActionType.js
    var require_PowerActionType2 = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Power/PowerActionType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var PowerActionType;
            (function(PowerActionType2) {
                PowerActionType2[PowerActionType2["APP_RESTART"] = 0] = "APP_RESTART";
                PowerActionType2[PowerActionType2["SYSTEM_REBOOT"] = 1] = "SYSTEM_REBOOT";
                PowerActionType2[PowerActionType2["APPLET_RELOAD"] = 2] = "APPLET_RELOAD";
                PowerActionType2[PowerActionType2["APPLET_REFRESH"] = 3] = "APPLET_REFRESH";
                PowerActionType2[PowerActionType2["DISPLAY_POWER_ON"] = 4] = "DISPLAY_POWER_ON";
                PowerActionType2[PowerActionType2["DISPLAY_POWER_OFF"] = 5] = "DISPLAY_POWER_OFF";
                PowerActionType2[PowerActionType2["BACKUP_RESTART"] = 6] = "BACKUP_RESTART";
                PowerActionType2[PowerActionType2["APPLET_ENABLE"] = 7] = "APPLET_ENABLE";
                PowerActionType2[PowerActionType2["APPLET_DISABLE"] = 8] = "APPLET_DISABLE";
                PowerActionType2[PowerActionType2["FILE_SYSTEM_WIPEOUT"] = 9] = "FILE_SYSTEM_WIPEOUT";
                PowerActionType2[PowerActionType2["REAPPLY_POLICY"] = 10] = "REAPPLY_POLICY";
            })(PowerActionType || (PowerActionType = {}));
            exports["default"] = PowerActionType;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Power/devicePowerActions.js
    var require_devicePowerActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Power/devicePowerActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.CancelScheduledPowerActionFailed = exports.CancelScheduledPowerActionSucceed = exports.CancelScheduledPowerAction = exports.SchedulePowerActionFailed = exports.SchedulePowerActionSucceed = exports.SchedulePowerAction = exports.PerformPowerActionFailed = exports.PerformPowerActionSucceed = exports.PerformPowerAction = void 0;
            exports.PerformPowerAction = "Device.Power.PerformPowerAction";
            exports.PerformPowerActionSucceed = "Device.Power.PerformPowerActionSucceed";
            exports.PerformPowerActionFailed = "Device.Power.PerformPowerActionFailed";
            exports.SchedulePowerAction = "Device.Power.SchedulePowerAction";
            exports.SchedulePowerActionSucceed = "Device.Power.SchedulePowerActionSucceed";
            exports.SchedulePowerActionFailed = "Device.Power.SchedulePowerActionFailed";
            exports.CancelScheduledPowerAction = "Device.Power.CancelScheduledPowerAction";
            exports.CancelScheduledPowerActionSucceed = "Device.Power.CancelScheduledPowerActionSucceed";
            exports.CancelScheduledPowerActionFailed = "Device.Power.CancelScheduledPowerActionFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Power/devicePowerActionSagas.js
    var require_devicePowerActionSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Power/devicePowerActionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.performAppletRefresh = exports.deviceAppletDisablingRestoresActiveApplet = exports.devicePerformScheduledPowerAction = exports.devicePerformPowerAction = void 0;
            var appletActions_1 = require_appletActions();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var devicePowerActions_1 = require_devicePowerActions();
            var generator_1 = require_generator();
            var lodash_1 = __importDefault(require_lodash());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var combinedDriver_1 = require_combinedDriver();
            var Property_1 = __importDefault(require_Property());
            var socketActionCreator_1 = require_socketActionCreator();
            var socketActionDeliverHelper_1 = require_socketActionDeliverHelper();
            var activeAppletActions_1 = require_activeAppletActions2();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var dependencyInjection_1 = require_dependencyInjection();
            function devicePerformPowerAction(getNativeDriver, propertyStorage, offlineCache) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(devicePowerActions_1.PerformPowerAction, function(param) {
                                    var powerType, id;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                powerType = param.powerType, id = param.id;
                                                return [
                                                    4,
                                                    (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                                                        "frontPowerActionsDisabled"
                                                    ], function(param) {
                                                        var frontPowerActionsDisabled, powerActionProcessed, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    frontPowerActionsDisabled = param.frontPowerActionsDisabled;
                                                                    if (!!frontPowerActionsDisabled) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        4,
                                                                        ,
                                                                        6
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(socketActionDeliverHelper_1.deliver, {
                                                                            type: devicePowerActions_1.PerformPowerActionSucceed,
                                                                            id: id
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(performPowerAction, getNativeDriver, propertyStorage, offlineCache, powerType)
                                                                    ];
                                                                case 3:
                                                                    powerActionProcessed = _state.sent();
                                                                    if (!powerActionProcessed) {
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                case 4:
                                                                    error = _state.sent();
                                                                    console.error(error);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: devicePowerActions_1.PerformPowerActionFailed,
                                                                            id: id
                                                                        })
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                case 6:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePerformPowerAction = devicePerformPowerAction;
            function devicePerformScheduledPowerAction(getNativeDriver, propertyStorage, offlineCache) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActionActions_1.PerformScheduledPowerAction, function(param) {
                                    var powerType, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                powerType = param.powerType;
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    performPowerAction(getNativeDriver, propertyStorage, offlineCache, powerType)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("devicePerformScheduledPowerAction failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePerformScheduledPowerAction = devicePerformScheduledPowerAction;
            function deviceAppletDisablingRestoresActiveApplet() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActionActions_1.TriggerAppletOn, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletActions_1.UpdateActiveAppletUniqueHash,
                                                        hash: (0, generator_1.generateUniqueHash)()
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("displayPowerOn failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActionActions_1.TriggerAppletOff, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: activeAppletActions_1.ActiveAppletRestore
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("displayPowerOff failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceAppletDisablingRestoresActiveApplet = deviceAppletDisablingRestoresActiveApplet;
            function performPowerAction(getNativeDriver, propertyStorage, offlineCache, powerType) {
                var _ref, frontDriver, cacheDriver, deviceUid, fileUids, contents, contentKeysToDelete;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ref = (0, combinedDriver_1.normalizeFrontCacheDriver)(getNativeDriver()), frontDriver = _ref.frontDriver, cacheDriver = _ref.cacheDriver;
                            return [
                                4,
                                frontDriver.getDeviceUid()
                            ];
                        case 1:
                            deviceUid = _state.sent();
                            switch(powerType){
                                case PowerActionType_1["default"].APPLET_RELOAD:
                                    return [
                                        3,
                                        2
                                    ];
                                case PowerActionType_1["default"].APPLET_REFRESH:
                                    return [
                                        3,
                                        12
                                    ];
                                case PowerActionType_1["default"].APPLET_ENABLE:
                                    return [
                                        3,
                                        16
                                    ];
                                case PowerActionType_1["default"].APPLET_DISABLE:
                                    return [
                                        3,
                                        18
                                    ];
                            }
                            return [
                                3,
                                20
                            ];
                        case 2:
                            return [
                                4,
                                offlineCache.listFileUids("")
                            ];
                        case 3:
                            fileUids = _state.sent();
                            return [
                                4,
                                Promise.all(fileUids.map(function(fileUid) {
                                    return offlineCache.deleteFileAndDeleteDirectoryIfEmpty(fileUid, true);
                                }))
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                cacheDriver.cacheGetAll()
                            ];
                        case 5:
                            contents = _state.sent();
                            contentKeysToDelete = Object.keys(contents).filter(function(key) {
                                return lodash_1["default"].values(Property_1["default"]).indexOf(key) === -1;
                            });
                            return [
                                4,
                                Promise.all(contentKeysToDelete.map(function(uid) {
                                    return cacheDriver.cacheDelete(uid);
                                }))
                            ];
                        case 6:
                            _state.sent();
                            return [
                                4,
                                propertyStorage.removeValue(Property_1["default"].APPLET_TIMINGS_UPDATE_DEFINITION)
                            ];
                        case 7:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletActions_1.UpdateActiveAppletBinaryFile,
                                    appletBinaryFile: null,
                                    appletFrontAppletJsFile: null
                                })
                            ];
                        case 8:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletActions_1.UpdateActiveAppletUniqueHash,
                                    hash: (0, generator_1.generateUniqueHash)()
                                })
                            ];
                        case 9:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletActions_1.SubscribeActiveApplet,
                                    deviceUid: deviceUid
                                })
                            ];
                        case 10:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletRestore
                                })
                            ];
                        case 11:
                            _state.sent();
                            return [
                                2,
                                true
                            ];
                        case 12:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletActions_1.UpdateActiveAppletUniqueHash,
                                    hash: (0, generator_1.generateUniqueHash)()
                                })
                            ];
                        case 13:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletActions_1.SubscribeActiveApplet,
                                    deviceUid: deviceUid
                                })
                            ];
                        case 14:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletRestore
                                })
                            ];
                        case 15:
                            _state.sent();
                            _state.label = 16;
                        case 16:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePowerActionActions_1.TriggerAppletOn
                                })
                            ];
                        case 17:
                            _state.sent();
                            return [
                                2,
                                true
                            ];
                        case 18:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePowerActionActions_1.TriggerAppletOff
                                })
                            ];
                        case 19:
                            _state.sent();
                            return [
                                2,
                                true
                            ];
                        case 20:
                            return [
                                2,
                                false
                            ];
                        case 21:
                            return [
                                2
                            ];
                    }
                });
            }
            function performAppletRefresh() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePowerActions_1.PerformPowerAction,
                                    powerType: PowerActionType_1["default"].APPLET_RELOAD
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.performAppletRefresh = performAppletRefresh;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Main/refreshHandler.js
    var require_refreshHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Main/refreshHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var devicePowerActionSagas_1 = require_devicePowerActionSagas();
            function handleAppletRefreshMessage(messageTypePrefix, data) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".applet_refresh":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                3
                            ];
                        case 1:
                            return [
                                4,
                                (0, devicePowerActionSagas_1.performAppletRefresh)()
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 3:
                            return [
                                2,
                                null
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            function appletRefreshHandler(param) {
                var messageTypePrefix, data;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data;
                            return [
                                4,
                                handleAppletRefreshMessage(messageTypePrefix, data)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = appletRefreshHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Management/Network/appletManagementNetworkHandler.js
    var require_appletManagementNetworkHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Management/Network/appletManagementNetworkHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleManagementNetworkMessage = void 0;
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var PREFIX2 = "management";
            function handleManagementNetworkMessage(messageTypePrefix, data, managementDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_network_info"):
                                    return [
                                        3,
                                        1
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_network_interfaces"):
                                    return [
                                        3,
                                        3
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_network_manual"):
                                    return [
                                        3,
                                        5
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_network_dhcp"):
                                    return [
                                        3,
                                        7
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_network_manual_v2"):
                                    return [
                                        3,
                                        9
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_network_dhcp_v2"):
                                    return [
                                        3,
                                        11
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".disable_network_interface"):
                                    return [
                                        3,
                                        13
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".import_certificate"):
                                    return [
                                        3,
                                        15
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".send_udp"):
                                    return [
                                        3,
                                        17
                                    ];
                            }
                            return [
                                3,
                                19
                            ];
                        case 1:
                            return [
                                4,
                                handleGetNetworkInfo(managementDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleGetNetworkInterfaces(managementDriver)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleSetNetworkManualLegacy(data, managementDriver)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleSetNetworkDHCPLegacy(data, managementDriver)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                handleSetNetworkManual(data, managementDriver)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                handleSetNetworkDHCP(data, managementDriver)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                handleDisableNetworkInterface(data, managementDriver)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                handleImportCertificate(data, managementDriver)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                4,
                                handleSendUdp(data, managementDriver)
                            ];
                        case 18:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 19:
                            return [
                                2,
                                null
                            ];
                        case 20:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleManagementNetworkMessage = handleManagementNetworkMessage;
            function handleGetNetworkInterfaces(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var interfaces;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.listInterfaces()
                                ];
                            case 1:
                                interfaces = _state.sent();
                                return [
                                    2,
                                    {
                                        interfaces: interfaces
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetNetworkInfo(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var networkInterfaces, result17, activeInterface, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, networkInterface;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.listInterfaces()
                                ];
                            case 1:
                                networkInterfaces = _state.sent();
                                result17 = {};
                                activeInterface = null;
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(_iterator = networkInterfaces[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        networkInterface = _step.value;
                                        switch(networkInterface.type){
                                            case "ethernet":
                                                result17.ethernetMacAddress = networkInterface.macAddress;
                                                if (!activeInterface && networkInterface.localAddress) {
                                                    activeInterface = networkInterface;
                                                }
                                                break;
                                            case "mobile":
                                                if (!activeInterface && networkInterface.localAddress) {
                                                    activeInterface = networkInterface;
                                                }
                                                break;
                                            case "wifi":
                                                result17.wifiMacAddress = networkInterface.macAddress;
                                                if (!activeInterface && networkInterface.localAddress) {
                                                    result17.wifiStrength = networkInterface.wifiStrength;
                                                    result17.wifiSsid = networkInterface.wifiSsid;
                                                    activeInterface = networkInterface;
                                                }
                                                break;
                                            default:
                                                break;
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                if (activeInterface) {
                                    result17.activeInterface = activeInterface.type;
                                    result17.localAddress = activeInterface.localAddress;
                                    result17.gateway = activeInterface.gateway;
                                    result17.netmask = activeInterface.netmask;
                                    result17.dns = activeInterface.dns;
                                    result17.interfaceName = activeInterface.name;
                                }
                                return [
                                    2,
                                    {
                                        networkInfo: result17
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetNetworkManual(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.setManual(data.interfaceName, data.options)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetNetworkDHCP(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.setDHCP(data.interfaceName)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetNetworkManualLegacy(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var ifaceName;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getNetworkInterfaceNameByType(data.options["interface"], managementDriver)
                                ];
                            case 1:
                                ifaceName = _state.sent();
                                if (!ifaceName) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    managementDriver.network.setManual(ifaceName, {
                                        localAddress: data.options.localAddress,
                                        netmask: data.options.netmask,
                                        gateway: data.options.gateway,
                                        dns: data.options.dns
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 3:
                                throw new Error("network interface not found");
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleSetNetworkDHCPLegacy(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var ifaceName;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getNetworkInterfaceNameByType(data.networkInterface, managementDriver)
                                ];
                            case 1:
                                ifaceName = _state.sent();
                                if (!ifaceName) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    managementDriver.network.setDHCP(ifaceName)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                            case 3:
                                throw new Error("network interface not found");
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleDisableNetworkInterface(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.disableInterface(data.interfaceName)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function getNetworkInterfaceNameByType(networkInterface, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var ifaces, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, iface;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.listInterfaces()
                                ];
                            case 1:
                                ifaces = _state.sent();
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(_iterator = ifaces[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        iface = _step.value;
                                        if (iface.type === networkInterface) {
                                            return [
                                                2,
                                                iface.name
                                            ];
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                return [
                                    2,
                                    null
                                ];
                        }
                    });
                });
            }
            function handleImportCertificate(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.importCertificate({
                                        type: data.details.type,
                                        caCertificate: data.details.caCertificate,
                                        clientCertificate: data.details.clientCertificate,
                                        clientKey: data.details.clientKey,
                                        clientCertificatePassword: data.details.clientCertificatePassword
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSendUdp(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var supported;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.managementSupports(ManagementCapability_1["default"].SEND_UDP)
                                ];
                            case 1:
                                supported = _state.sent();
                                if (!supported || !managementDriver.network.sendUdp) {
                                    throw new Error("sendUdp is not supported on this platform");
                                }
                                return [
                                    4,
                                    managementDriver.network.sendUdp(data.ip, data.port, data.data)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function managementHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleManagementNetworkMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = managementHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Management/Proxy/appletManagementProxyHandler.js
    var require_appletManagementProxyHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Management/Proxy/appletManagementProxyHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleManagementProxyMessage = void 0;
            var PREFIX2 = "management";
            function handleManagementProxyMessage(messageTypePrefix, data, managementDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".proxy_is_enabled"):
                                    return [
                                        3,
                                        1
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".proxy_set_manual"):
                                    return [
                                        3,
                                        3
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".proxy_disable"):
                                    return [
                                        3,
                                        5
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".proxy_get_connected_to"):
                                    return [
                                        3,
                                        7
                                    ];
                            }
                            return [
                                3,
                                9
                            ];
                        case 1:
                            return [
                                4,
                                handleIsEnabled(managementDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleSetManual(managementDriver, data)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleDisable(managementDriver)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleGetConnectedTo(managementDriver)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                2,
                                null
                            ];
                        case 10:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleManagementProxyMessage = handleManagementProxyMessage;
            function handleIsEnabled(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.proxy.isEnabled()
                                ];
                            case 1:
                                isEnabled = _state.sent();
                                return [
                                    2,
                                    {
                                        isEnabled: isEnabled
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetManual(managementDriver, data) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.proxy.setManual(data.uri, data.port, data.username, data.password)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleDisable(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.proxy.disable()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetConnectedTo(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var connectedTo;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.proxy.getConnectedTo()
                                ];
                            case 1:
                                connectedTo = _state.sent();
                                return [
                                    2,
                                    {
                                        connectedTo: connectedTo
                                    }
                                ];
                        }
                    });
                });
            }
            function managementHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleManagementProxyMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = managementHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Management/SystemInfo/appletManagementSystemInfoHandler.js
    var require_appletManagementSystemInfoHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Management/SystemInfo/appletManagementSystemInfoHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleManagementSystemInfoMessage = void 0;
            var PREFIX2 = "management";
            function handleManagementSystemInfoMessage(messageTypePrefix, data, managementDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_os_info"):
                                    return [
                                        3,
                                        1
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_cpu_usage"):
                                    return [
                                        3,
                                        3
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_memory_usage"):
                                    return [
                                        3,
                                        5
                                    ];
                            }
                            return [
                                3,
                                7
                            ];
                        case 1:
                            return [
                                4,
                                handleOSInfo(managementDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleCpuUsage(managementDriver)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleMemoryUsage(managementDriver)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                2,
                                null
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleManagementSystemInfoMessage = handleManagementSystemInfoMessage;
            function handleOSInfo(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var osVersion;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemInfo.getOSVersion()
                                ];
                            case 1:
                                osVersion = _state.sent();
                                return [
                                    2,
                                    {
                                        osInfo: {
                                            version: osVersion
                                        }
                                    }
                                ];
                        }
                    });
                });
            }
            function handleCpuUsage(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var cpuUsage;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemInfo.getCpuUsage()
                                ];
                            case 1:
                                cpuUsage = _state.sent();
                                return [
                                    2,
                                    {
                                        cpuUsage: cpuUsage
                                    }
                                ];
                        }
                    });
                });
            }
            function handleMemoryUsage(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var memoryUsage;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemInfo.getMemoryUsage()
                                ];
                            case 1:
                                memoryUsage = _state.sent();
                                return [
                                    2,
                                    {
                                        memoryUsage: memoryUsage
                                    }
                                ];
                        }
                    });
                });
            }
            function managementHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleManagementSystemInfoMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = managementHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Management/Wifi/appletWifiHandler.js
    var require_appletWifiHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Management/Wifi/appletWifiHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleWifiMessage = void 0;
            function handleWifiMessage(messageTypePrefix, data, nativeDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".management.wifi.is_enabled":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".management.wifi.get_connected_to":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".management.wifi.enable":
                                    return [
                                        3,
                                        5
                                    ];
                                case messageTypePrefix + ".management.wifi.disable":
                                    return [
                                        3,
                                        7
                                    ];
                                case messageTypePrefix + ".management.wifi.is_ap_enabled":
                                    return [
                                        3,
                                        9
                                    ];
                                case messageTypePrefix + ".management.wifi.enable_ap":
                                    return [
                                        3,
                                        11
                                    ];
                                case messageTypePrefix + ".management.wifi.connect":
                                    return [
                                        3,
                                        13
                                    ];
                                case messageTypePrefix + ".management.wifi.disconnect":
                                    return [
                                        3,
                                        15
                                    ];
                                case messageTypePrefix + ".management.wifi.get_country":
                                    return [
                                        3,
                                        17
                                    ];
                                case messageTypePrefix + ".management.wifi.set_country":
                                    return [
                                        3,
                                        19
                                    ];
                                case messageTypePrefix + ".management.wifi.scan":
                                    return [
                                        3,
                                        21
                                    ];
                            }
                            return [
                                3,
                                23
                            ];
                        case 1:
                            return [
                                4,
                                isWifiClientEnabled(nativeDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                getWifiConnectedTo(nativeDriver)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                enableWifiClient(nativeDriver)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                disableWifi(nativeDriver)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                isWifiAPEnabled(nativeDriver)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                enableWifiAP(data, nativeDriver)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                connectWifi(data, nativeDriver)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                disconnectWifi(nativeDriver)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                4,
                                getCountry(nativeDriver)
                            ];
                        case 18:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 19:
                            return [
                                4,
                                setCountry(data, nativeDriver)
                            ];
                        case 20:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 21:
                            return [
                                4,
                                scanWifiDevices(nativeDriver)
                            ];
                        case 22:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 23:
                            return [
                                2,
                                null
                            ];
                        case 24:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleWifiMessage = handleWifiMessage;
            function isWifiClientEnabled(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.isClientEnabled()
                                ];
                            case 1:
                                isEnabled = _state.sent();
                                return [
                                    2,
                                    {
                                        isWifiEnabled: isEnabled
                                    }
                                ];
                        }
                    });
                });
            }
            function getWifiConnectedTo(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var ssid;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.getConnectedTo()
                                ];
                            case 1:
                                ssid = _state.sent();
                                return [
                                    2,
                                    {
                                        ssid: ssid
                                    }
                                ];
                        }
                    });
                });
            }
            function enableWifiClient(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.enableClient()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function disableWifi(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.disable()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function isWifiAPEnabled(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.isAPEnabled()
                                ];
                            case 1:
                                isEnabled = _state.sent();
                                return [
                                    2,
                                    {
                                        isWifiAPEnabled: isEnabled
                                    }
                                ];
                        }
                    });
                });
            }
            function enableWifiAP(data, nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.enableAP(data.ssid, data.password)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function connectWifi(data, nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var password;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                password = data.password;
                                if (password && (password.length < 8 || password.length > 63)) {
                                    throw new Error("Password must be between 8 and 63 characters long");
                                }
                                return [
                                    4,
                                    nativeDriver.wifi.connect(data.ssid, data.password, data.options)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function disconnectWifi(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.disconnect()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function getCountry(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var countryCode;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.getCountry()
                                ];
                            case 1:
                                countryCode = _state.sent();
                                return [
                                    2,
                                    {
                                        countryCode: countryCode
                                    }
                                ];
                        }
                    });
                });
            }
            function setCountry(data, nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.setCountry(data.countryCode)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function scanWifiDevices(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var devices;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.wifi.scan()
                                ];
                            case 1:
                                devices = _state.sent();
                                return [
                                    2,
                                    {
                                        devices: devices
                                    }
                                ];
                        }
                    });
                });
            }
            function wifiHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleWifiMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = wifiHandler;
        }
    });
    // node_modules/@signageos/front-display/node_modules/moment-timezone/moment-timezone.js
    var require_moment_timezone3 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/moment-timezone/moment-timezone.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root, factory) {
                "use strict";
                if ((typeof module === "undefined" ? "undefined" : _type_of(module)) === "object" && module.exports) {
                    module.exports = factory(require_moment());
                } else if (typeof define === "function" && define.amd) {
                    define([
                        "moment"
                    ], factory);
                } else {
                    factory(root.moment);
                }
            })(exports, function(moment4) {
                "use strict";
                if (moment4.version === void 0 && moment4["default"]) {
                    moment4 = moment4["default"];
                }
                var VERSION = "0.5.33", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess;
                if (!moment4 || typeof moment4.version !== "string") {
                    logError2("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
                }
                var momentVersion = moment4.version.split("."), major = +momentVersion[0], minor = +momentVersion[1];
                if (major < 2 || major === 2 && minor < 6) {
                    logError2("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + moment4.version + ". See momentjs.com");
                }
                function charCodeToInt(charCode) {
                    if (charCode > 96) {
                        return charCode - 87;
                    } else if (charCode > 64) {
                        return charCode - 29;
                    }
                    return charCode - 48;
                }
                function unpackBase60(string5) {
                    var i = 0, parts = string5.split("."), whole = parts[0], fractional = parts[1] || "", multiplier = 1, num, out = 0, sign2 = 1;
                    if (string5.charCodeAt(0) === 45) {
                        i = 1;
                        sign2 = -1;
                    }
                    for(i; i < whole.length; i++){
                        num = charCodeToInt(whole.charCodeAt(i));
                        out = 60 * out + num;
                    }
                    for(i = 0; i < fractional.length; i++){
                        multiplier = multiplier / 60;
                        num = charCodeToInt(fractional.charCodeAt(i));
                        out += num * multiplier;
                    }
                    return out * sign2;
                }
                function arrayToInt(array4) {
                    for(var i = 0; i < array4.length; i++){
                        array4[i] = unpackBase60(array4[i]);
                    }
                }
                function intToUntil(array4, length) {
                    for(var i = 0; i < length; i++){
                        array4[i] = Math.round((array4[i - 1] || 0) + array4[i] * 6e4);
                    }
                    array4[length - 1] = Infinity;
                }
                function mapIndices(source, indices) {
                    var out = [], i;
                    for(i = 0; i < indices.length; i++){
                        out[i] = source[indices[i]];
                    }
                    return out;
                }
                function unpack(string5) {
                    var data = string5.split("|"), offsets = data[2].split(" "), indices = data[3].split(""), untils = data[4].split(" ");
                    arrayToInt(offsets);
                    arrayToInt(indices);
                    arrayToInt(untils);
                    intToUntil(untils, indices.length);
                    return {
                        name: data[0],
                        abbrs: mapIndices(data[1].split(" "), indices),
                        offsets: mapIndices(offsets, indices),
                        untils: untils,
                        population: data[5] | 0
                    };
                }
                function Zone(packedString) {
                    if (packedString) {
                        this._set(unpack(packedString));
                    }
                }
                Zone.prototype = {
                    _set: function _set(unpacked) {
                        this.name = unpacked.name;
                        this.abbrs = unpacked.abbrs;
                        this.untils = unpacked.untils;
                        this.offsets = unpacked.offsets;
                        this.population = unpacked.population;
                    },
                    _index: function _index(timestamp) {
                        var target = +timestamp, untils = this.untils, i;
                        for(i = 0; i < untils.length; i++){
                            if (target < untils[i]) {
                                return i;
                            }
                        }
                    },
                    countries: function countries1() {
                        var zone_name = this.name;
                        return Object.keys(countries).filter(function(country_code) {
                            return countries[country_code].zones.indexOf(zone_name) !== -1;
                        });
                    },
                    parse: function parse(timestamp) {
                        var target = +timestamp, offsets = this.offsets, untils = this.untils, max = untils.length - 1, offset, offsetNext, offsetPrev, i;
                        for(i = 0; i < max; i++){
                            offset = offsets[i];
                            offsetNext = offsets[i + 1];
                            offsetPrev = offsets[i ? i - 1 : i];
                            if (offset < offsetNext && tz.moveAmbiguousForward) {
                                offset = offsetNext;
                            } else if (offset > offsetPrev && tz.moveInvalidForward) {
                                offset = offsetPrev;
                            }
                            if (target < untils[i] - offset * 6e4) {
                                return offsets[i];
                            }
                        }
                        return offsets[max];
                    },
                    abbr: function abbr(mom) {
                        return this.abbrs[this._index(mom)];
                    },
                    offset: function offset(mom) {
                        logError2("zone.offset has been deprecated in favor of zone.utcOffset");
                        return this.offsets[this._index(mom)];
                    },
                    utcOffset: function utcOffset(mom) {
                        return this.offsets[this._index(mom)];
                    }
                };
                function Country(country_name, zone_names) {
                    this.name = country_name;
                    this.zones = zone_names;
                }
                function OffsetAt(at) {
                    var timeString = at.toTimeString();
                    var abbr = timeString.match(/\([a-z ]+\)/i);
                    if (abbr && abbr[0]) {
                        abbr = abbr[0].match(/[A-Z]/g);
                        abbr = abbr ? abbr.join("") : void 0;
                    } else {
                        abbr = timeString.match(/[A-Z]{3,5}/g);
                        abbr = abbr ? abbr[0] : void 0;
                    }
                    if (abbr === "GMT") {
                        abbr = void 0;
                    }
                    this.at = +at;
                    this.abbr = abbr;
                    this.offset = at.getTimezoneOffset();
                }
                function ZoneScore(zone) {
                    this.zone = zone;
                    this.offsetScore = 0;
                    this.abbrScore = 0;
                }
                ZoneScore.prototype.scoreOffsetAt = function(offsetAt) {
                    this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);
                    if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, "") !== offsetAt.abbr) {
                        this.abbrScore++;
                    }
                };
                function findChange(low, high) {
                    var mid, diff;
                    while(diff = ((high.at - low.at) / 12e4 | 0) * 6e4){
                        mid = new OffsetAt(new Date(low.at + diff));
                        if (mid.offset === low.offset) {
                            low = mid;
                        } else {
                            high = mid;
                        }
                    }
                    return low;
                }
                function userOffsets() {
                    var startYear = /* @__PURE__ */ new Date().getFullYear() - 2, last = new OffsetAt(new Date(startYear, 0, 1)), offsets = [
                        last
                    ], change, next, i;
                    for(i = 1; i < 48; i++){
                        next = new OffsetAt(new Date(startYear, i, 1));
                        if (next.offset !== last.offset) {
                            change = findChange(last, next);
                            offsets.push(change);
                            offsets.push(new OffsetAt(new Date(change.at + 6e4)));
                        }
                        last = next;
                    }
                    for(i = 0; i < 4; i++){
                        offsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));
                        offsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));
                    }
                    return offsets;
                }
                function sortZoneScores(a, b) {
                    if (a.offsetScore !== b.offsetScore) {
                        return a.offsetScore - b.offsetScore;
                    }
                    if (a.abbrScore !== b.abbrScore) {
                        return a.abbrScore - b.abbrScore;
                    }
                    if (a.zone.population !== b.zone.population) {
                        return b.zone.population - a.zone.population;
                    }
                    return b.zone.name.localeCompare(a.zone.name);
                }
                function addToGuesses(name, offsets) {
                    var i, offset;
                    arrayToInt(offsets);
                    for(i = 0; i < offsets.length; i++){
                        offset = offsets[i];
                        guesses[offset] = guesses[offset] || {};
                        guesses[offset][name] = true;
                    }
                }
                function guessesForUserOffsets(offsets) {
                    var offsetsLength = offsets.length, filteredGuesses = {}, out = [], i, j, guessesOffset;
                    for(i = 0; i < offsetsLength; i++){
                        guessesOffset = guesses[offsets[i].offset] || {};
                        for(j in guessesOffset){
                            if (guessesOffset.hasOwnProperty(j)) {
                                filteredGuesses[j] = true;
                            }
                        }
                    }
                    for(i in filteredGuesses){
                        if (filteredGuesses.hasOwnProperty(i)) {
                            out.push(names[i]);
                        }
                    }
                    return out;
                }
                function rebuildGuess() {
                    try {
                        var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;
                        if (intlName && intlName.length > 3) {
                            var name = names[normalizeName(intlName)];
                            if (name) {
                                return name;
                            }
                            logError2("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded.");
                        }
                    } catch (e) {}
                    var offsets = userOffsets(), offsetsLength = offsets.length, guesses2 = guessesForUserOffsets(offsets), zoneScores = [], zoneScore, i, j;
                    for(i = 0; i < guesses2.length; i++){
                        zoneScore = new ZoneScore(getZone(guesses2[i]), offsetsLength);
                        for(j = 0; j < offsetsLength; j++){
                            zoneScore.scoreOffsetAt(offsets[j]);
                        }
                        zoneScores.push(zoneScore);
                    }
                    zoneScores.sort(sortZoneScores);
                    return zoneScores.length > 0 ? zoneScores[0].zone.name : void 0;
                }
                function guess(ignoreCache) {
                    if (!cachedGuess || ignoreCache) {
                        cachedGuess = rebuildGuess();
                    }
                    return cachedGuess;
                }
                function normalizeName(name) {
                    return (name || "").toLowerCase().replace(/\//g, "_");
                }
                function addZone(packed) {
                    var i, name, split, normalized;
                    if (typeof packed === "string") {
                        packed = [
                            packed
                        ];
                    }
                    for(i = 0; i < packed.length; i++){
                        split = packed[i].split("|");
                        name = split[0];
                        normalized = normalizeName(name);
                        zones[normalized] = packed[i];
                        names[normalized] = name;
                        addToGuesses(normalized, split[2].split(" "));
                    }
                }
                function getZone(name, caller) {
                    name = normalizeName(name);
                    var zone = zones[name];
                    var link;
                    if (zone instanceof Zone) {
                        return zone;
                    }
                    if (typeof zone === "string") {
                        zone = new Zone(zone);
                        zones[name] = zone;
                        return zone;
                    }
                    if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {
                        zone = zones[name] = new Zone();
                        zone._set(link);
                        zone.name = names[name];
                        return zone;
                    }
                    return null;
                }
                function getNames() {
                    var i, out = [];
                    for(i in names){
                        if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {
                            out.push(names[i]);
                        }
                    }
                    return out.sort();
                }
                function getCountryNames() {
                    return Object.keys(countries);
                }
                function addLink(aliases) {
                    var i, alias, normal0, normal1;
                    if (typeof aliases === "string") {
                        aliases = [
                            aliases
                        ];
                    }
                    for(i = 0; i < aliases.length; i++){
                        alias = aliases[i].split("|");
                        normal0 = normalizeName(alias[0]);
                        normal1 = normalizeName(alias[1]);
                        links[normal0] = normal1;
                        names[normal0] = alias[0];
                        links[normal1] = normal0;
                        names[normal1] = alias[1];
                    }
                }
                function addCountries(data) {
                    var i, country_code, country_zones, split;
                    if (!data || !data.length) return;
                    for(i = 0; i < data.length; i++){
                        split = data[i].split("|");
                        country_code = split[0].toUpperCase();
                        country_zones = split[1].split(" ");
                        countries[country_code] = new Country(country_code, country_zones);
                    }
                }
                function getCountry(name) {
                    name = name.toUpperCase();
                    return countries[name] || null;
                }
                function zonesForCountry(country, with_offset) {
                    country = getCountry(country);
                    if (!country) return null;
                    var zones2 = country.zones.sort();
                    if (with_offset) {
                        return zones2.map(function(zone_name) {
                            var zone = getZone(zone_name);
                            return {
                                name: zone_name,
                                offset: zone.utcOffset(/* @__PURE__ */ new Date())
                            };
                        });
                    }
                    return zones2;
                }
                function loadData(data) {
                    addZone(data.zones);
                    addLink(data.links);
                    addCountries(data.countries);
                    tz.dataVersion = data.version;
                }
                function zoneExists(name) {
                    if (!zoneExists.didShowError) {
                        zoneExists.didShowError = true;
                        logError2("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')");
                    }
                    return !!getZone(name);
                }
                function needsOffset(m) {
                    var isUnixTimestamp = m._f === "X" || m._f === "x";
                    return !!(m._a && m._tzm === void 0 && !isUnixTimestamp);
                }
                function logError2(message2) {
                    if (typeof console !== "undefined" && typeof console.error === "function") {
                        console.error(message2);
                    }
                }
                function tz(input) {
                    var args = Array.prototype.slice.call(arguments, 0, -1), name = arguments[arguments.length - 1], zone = getZone(name), out = moment4.utc.apply(null, args);
                    if (zone && !moment4.isMoment(input) && needsOffset(out)) {
                        out.add(zone.parse(out), "minutes");
                    }
                    out.tz(name);
                    return out;
                }
                tz.version = VERSION;
                tz.dataVersion = "";
                tz._zones = zones;
                tz._links = links;
                tz._names = names;
                tz._countries = countries;
                tz.add = addZone;
                tz.link = addLink;
                tz.load = loadData;
                tz.zone = getZone;
                tz.zoneExists = zoneExists;
                tz.guess = guess;
                tz.names = getNames;
                tz.Zone = Zone;
                tz.unpack = unpack;
                tz.unpackBase60 = unpackBase60;
                tz.needsOffset = needsOffset;
                tz.moveInvalidForward = true;
                tz.moveAmbiguousForward = false;
                tz.countries = getCountryNames;
                tz.zonesForCountry = zonesForCountry;
                var fn = moment4.fn;
                moment4.tz = tz;
                moment4.defaultZone = null;
                moment4.updateOffset = function(mom, keepTime) {
                    var zone = moment4.defaultZone, offset;
                    if (mom._z === void 0) {
                        if (zone && needsOffset(mom) && !mom._isUTC) {
                            mom._d = moment4.utc(mom._a)._d;
                            mom.utc().add(zone.parse(mom), "minutes");
                        }
                        mom._z = zone;
                    }
                    if (mom._z) {
                        offset = mom._z.utcOffset(mom);
                        if (Math.abs(offset) < 16) {
                            offset = offset / 60;
                        }
                        if (mom.utcOffset !== void 0) {
                            var z = mom._z;
                            mom.utcOffset(-offset, keepTime);
                            mom._z = z;
                        } else {
                            mom.zone(offset, keepTime);
                        }
                    }
                };
                fn.tz = function(name, keepTime) {
                    if (name) {
                        if (typeof name !== "string") {
                            throw new Error("Time zone name must be a string, got " + name + " [" + (typeof name === "undefined" ? "undefined" : _type_of(name)) + "]");
                        }
                        this._z = getZone(name);
                        if (this._z) {
                            moment4.updateOffset(this, keepTime);
                        } else {
                            logError2("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/.");
                        }
                        return this;
                    }
                    if (this._z) {
                        return this._z.name;
                    }
                };
                function abbrWrap(old) {
                    return function() {
                        if (this._z) {
                            return this._z.abbr(this);
                        }
                        return old.call(this);
                    };
                }
                function resetZoneWrap(old) {
                    return function() {
                        this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                function resetZoneWrap2(old) {
                    return function() {
                        if (arguments.length > 0) this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                fn.zoneName = abbrWrap(fn.zoneName);
                fn.zoneAbbr = abbrWrap(fn.zoneAbbr);
                fn.utc = resetZoneWrap(fn.utc);
                fn.local = resetZoneWrap(fn.local);
                fn.utcOffset = resetZoneWrap2(fn.utcOffset);
                moment4.tz.setDefault = function(name) {
                    if (major < 2 || major === 2 && minor < 9) {
                        logError2("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + moment4.version + ".");
                    }
                    moment4.defaultZone = name ? getZone(name) : null;
                    return moment4;
                };
                var momentProperties = moment4.momentProperties;
                if (Object.prototype.toString.call(momentProperties) === "[object Array]") {
                    momentProperties.push("_z");
                    momentProperties.push("_a");
                } else if (momentProperties) {
                    momentProperties._z = null;
                }
                return moment4;
            });
        }
    });
    // node_modules/@signageos/front-display/node_modules/moment-timezone/data/packed/latest.json
    var require_latest2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/moment-timezone/data/packed/latest.json": function(exports, module) {
            module.exports = {
                version: "2021a",
                zones: [
                    "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
                    "Africa/Accra|LMT GMT +0020 +0030|.Q 0 -k -u|01212121212121212121212121212121212121212121212131313131313131|-2bRzX.8 9RbX.8 fdE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE Mok 1BXE M0k 1BXE fak 9vbu bjCu MLu 1Bcu MLu 1BAu MLu 1Bcu MLu 1Bcu MLu 1Bcu MLu|41e5",
                    "Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5",
                    "Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5",
                    "Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6",
                    "Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4",
                    "Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5",
                    "Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6",
                    "Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5",
                    "Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3",
                    "Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4",
                    "Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5",
                    "Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|",
                    "Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5",
                    "Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5",
                    "Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5",
                    "Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|",
                    "Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5",
                    "Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5",
                    "Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4",
                    "America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326",
                    "America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4",
                    "America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3",
                    "America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4",
                    "America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|",
                    "America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|",
                    "America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|",
                    "America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|",
                    "America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|",
                    "America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4",
                    "America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5",
                    "America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2",
                    "America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3",
                    "America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5",
                    "America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4",
                    "America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5",
                    "America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3",
                    "America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2",
                    "America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2",
                    "America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5",
                    "America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4",
                    "America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2",
                    "America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4",
                    "America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4",
                    "America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5",
                    "America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3",
                    "America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5",
                    "America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5",
                    "America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4",
                    "America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5",
                    "America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2",
                    "America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4",
                    "America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8",
                    "America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3",
                    "America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2",
                    "America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5",
                    "America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5",
                    "America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5",
                    "America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3",
                    "America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5",
                    "America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5",
                    "America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2",
                    "America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5",
                    "America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3",
                    "America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3",
                    "America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2",
                    "America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212132121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2",
                    "America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5",
                    "America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5",
                    "America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4",
                    "America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4",
                    "America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5",
                    "America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4",
                    "America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2",
                    "America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2",
                    "America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4",
                    "America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3",
                    "America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5",
                    "America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6",
                    "America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6",
                    "America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4",
                    "America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5",
                    "America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5",
                    "America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4",
                    "America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4",
                    "America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4",
                    "America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2",
                    "America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5",
                    "America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2",
                    "America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6",
                    "America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2",
                    "America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3",
                    "America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5",
                    "America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5",
                    "America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5",
                    "America/Nassau|LMT EST EWT EPT EDT|59.u 50 40 40 40|01212314141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2kNuO.u 1drbO.u 6tX0 cp0 1hS0 pF0 J630 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4",
                    "America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6",
                    "America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2",
                    "America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2",
                    "America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2",
                    "America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3",
                    "America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2",
                    "America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4",
                    "America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5",
                    "America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4",
                    "America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4",
                    "America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5",
                    "America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|",
                    "America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842",
                    "America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2",
                    "America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5",
                    "America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4",
                    "America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229",
                    "America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4",
                    "America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5",
                    "America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5",
                    "America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6",
                    "America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452",
                    "America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2",
                    "America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4",
                    "America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3",
                    "America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5",
                    "America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656",
                    "America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4",
                    "America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3",
                    "America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4",
                    "America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642",
                    "America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3",
                    "Antarctica/Casey|-00 +08 +11|0 -80 -b0|0121212121212|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01|10",
                    "Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70",
                    "Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80",
                    "Antarctica/Macquarie|AEST AEDT -00|-a0 -b0 0|010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|1",
                    "Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60",
                    "Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5",
                    "Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40",
                    "Antarctica/Rothera|-00 -03|0 30|01|gOo0|130",
                    "Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20",
                    "Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40",
                    "Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25",
                    "Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4",
                    "Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5",
                    "Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5",
                    "Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5",
                    "Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3",
                    "Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4",
                    "Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4",
                    "Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4",
                    "Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|",
                    "Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5",
                    "Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4",
                    "Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5",
                    "Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6",
                    "Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|",
                    "Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5",
                    "Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4",
                    "Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4",
                    "Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6",
                    "Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4",
                    "Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3",
                    "Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6",
                    "Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5",
                    "Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6",
                    "Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5",
                    "Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4",
                    "Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5",
                    "Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4",
                    "Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5",
                    "Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4",
                    "Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5",
                    "Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5",
                    "Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3",
                    "Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6",
                    "Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6",
                    "Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4",
                    "Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4",
                    "Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5",
                    "Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4",
                    "Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6",
                    "Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5",
                    "Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5",
                    "Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2",
                    "Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5",
                    "Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5",
                    "Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4",
                    "Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4",
                    "Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3",
                    "Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5",
                    "Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6",
                    "Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4",
                    "Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4",
                    "Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5",
                    "Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5",
                    "Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4",
                    "Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4",
                    "Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5",
                    "Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|",
                    "Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4",
                    "Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5",
                    "Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4",
                    "Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4",
                    "Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6",
                    "Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2",
                    "Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5",
                    "Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5",
                    "Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5",
                    "Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6",
                    "Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3",
                    "Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6",
                    "Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5",
                    "Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5",
                    "Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2",
                    "Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4",
                    "Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5",
                    "Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5",
                    "Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4",
                    "Atlantic/Bermuda|BMT BST AST ADT|4j.i 3j.i 40 30|010102323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28p7E.G 1bb0 1i10 11X0 ru30 thbE.G 1PX0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3",
                    "Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4",
                    "Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4",
                    "Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3",
                    "Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4",
                    "Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4",
                    "Atlantic/South_Georgia|-02|20|0||30",
                    "Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2",
                    "Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5",
                    "Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5",
                    "Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5",
                    "Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3",
                    "Australia/Hobart|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4",
                    "Australia/Darwin|ACST ACDT|-9u -au|010101010|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4",
                    "Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293iJ xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368",
                    "Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347",
                    "Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10",
                    "Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5",
                    "Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293i0 xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5",
                    "CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2",
                    "CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "EST|EST|50|0||",
                    "EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Etc/GMT-0|GMT|0|0||",
                    "Etc/GMT-1|+01|-10|0||",
                    "Pacific/Port_Moresby|+10|-a0|0||25e4",
                    "Etc/GMT-11|+11|-b0|0||",
                    "Pacific/Tarawa|+12|-c0|0||29e3",
                    "Etc/GMT-13|+13|-d0|0||",
                    "Etc/GMT-14|+14|-e0|0||",
                    "Etc/GMT-2|+02|-20|0||",
                    "Etc/GMT-3|+03|-30|0||",
                    "Etc/GMT-4|+04|-40|0||",
                    "Etc/GMT-5|+05|-50|0||",
                    "Etc/GMT-6|+06|-60|0||",
                    "Indian/Christmas|+07|-70|0||21e2",
                    "Etc/GMT-8|+08|-80|0||",
                    "Pacific/Palau|+09|-90|0||21e3",
                    "Etc/GMT+1|-01|10|0||",
                    "Etc/GMT+10|-10|a0|0||",
                    "Etc/GMT+11|-11|b0|0||",
                    "Etc/GMT+12|-12|c0|0||",
                    "Etc/GMT+3|-03|30|0||",
                    "Etc/GMT+4|-04|40|0||",
                    "Etc/GMT+5|-05|50|0||",
                    "Etc/GMT+6|-06|60|0||",
                    "Etc/GMT+7|-07|70|0||",
                    "Etc/GMT+8|-08|80|0||",
                    "Etc/GMT+9|-09|90|0||",
                    "Etc/UTC|UTC|0|0||",
                    "Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5",
                    "Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3",
                    "Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5",
                    "Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5",
                    "Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6",
                    "Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5",
                    "Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5",
                    "Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5",
                    "Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5",
                    "Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5",
                    "Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4",
                    "Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4",
                    "Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3",
                    "Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4",
                    "Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5",
                    "Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4",
                    "Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5",
                    "Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4",
                    "Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5",
                    "Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5",
                    "Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2n5c9.l cFX9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3",
                    "Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6",
                    "Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6",
                    "Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4",
                    "Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5",
                    "Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5",
                    "Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|",
                    "Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4",
                    "Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5",
                    "Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4",
                    "Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5",
                    "Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4",
                    "Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5",
                    "Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4",
                    "Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|0123232323232323212121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5",
                    "Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5",
                    "Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4",
                    "HST|HST|a0|0||",
                    "Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2",
                    "Indian/Cocos|+0630|-6u|0||596",
                    "Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130",
                    "Indian/Mahe|LMT +04|-3F.M -40|01|-2xorF.M|79e3",
                    "Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4",
                    "Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4",
                    "Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4",
                    "Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3",
                    "MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "MST|MST|70|0||",
                    "MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600",
                    "Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3",
                    "Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4",
                    "Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3",
                    "Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3",
                    "Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1",
                    "Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483",
                    "Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4",
                    "Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3",
                    "Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125",
                    "Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4",
                    "Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4",
                    "Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4",
                    "Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2",
                    "Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2",
                    "Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3",
                    "Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2",
                    "Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2",
                    "Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3",
                    "Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2",
                    "Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4",
                    "Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3",
                    "Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56",
                    "Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3",
                    "Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3",
                    "Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4",
                    "Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3",
                    "PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|"
                ],
                links: [
                    "Africa/Abidjan|Africa/Bamako",
                    "Africa/Abidjan|Africa/Banjul",
                    "Africa/Abidjan|Africa/Conakry",
                    "Africa/Abidjan|Africa/Dakar",
                    "Africa/Abidjan|Africa/Freetown",
                    "Africa/Abidjan|Africa/Lome",
                    "Africa/Abidjan|Africa/Nouakchott",
                    "Africa/Abidjan|Africa/Ouagadougou",
                    "Africa/Abidjan|Africa/Timbuktu",
                    "Africa/Abidjan|Atlantic/St_Helena",
                    "Africa/Cairo|Egypt",
                    "Africa/Johannesburg|Africa/Maseru",
                    "Africa/Johannesburg|Africa/Mbabane",
                    "Africa/Lagos|Africa/Bangui",
                    "Africa/Lagos|Africa/Brazzaville",
                    "Africa/Lagos|Africa/Douala",
                    "Africa/Lagos|Africa/Kinshasa",
                    "Africa/Lagos|Africa/Libreville",
                    "Africa/Lagos|Africa/Luanda",
                    "Africa/Lagos|Africa/Malabo",
                    "Africa/Lagos|Africa/Niamey",
                    "Africa/Lagos|Africa/Porto-Novo",
                    "Africa/Maputo|Africa/Blantyre",
                    "Africa/Maputo|Africa/Bujumbura",
                    "Africa/Maputo|Africa/Gaborone",
                    "Africa/Maputo|Africa/Harare",
                    "Africa/Maputo|Africa/Kigali",
                    "Africa/Maputo|Africa/Lubumbashi",
                    "Africa/Maputo|Africa/Lusaka",
                    "Africa/Nairobi|Africa/Addis_Ababa",
                    "Africa/Nairobi|Africa/Asmara",
                    "Africa/Nairobi|Africa/Asmera",
                    "Africa/Nairobi|Africa/Dar_es_Salaam",
                    "Africa/Nairobi|Africa/Djibouti",
                    "Africa/Nairobi|Africa/Kampala",
                    "Africa/Nairobi|Africa/Mogadishu",
                    "Africa/Nairobi|Indian/Antananarivo",
                    "Africa/Nairobi|Indian/Comoro",
                    "Africa/Nairobi|Indian/Mayotte",
                    "Africa/Tripoli|Libya",
                    "America/Adak|America/Atka",
                    "America/Adak|US/Aleutian",
                    "America/Anchorage|US/Alaska",
                    "America/Argentina/Buenos_Aires|America/Buenos_Aires",
                    "America/Argentina/Catamarca|America/Argentina/ComodRivadavia",
                    "America/Argentina/Catamarca|America/Catamarca",
                    "America/Argentina/Cordoba|America/Cordoba",
                    "America/Argentina/Cordoba|America/Rosario",
                    "America/Argentina/Jujuy|America/Jujuy",
                    "America/Argentina/Mendoza|America/Mendoza",
                    "America/Atikokan|America/Coral_Harbour",
                    "America/Chicago|US/Central",
                    "America/Curacao|America/Aruba",
                    "America/Curacao|America/Kralendijk",
                    "America/Curacao|America/Lower_Princes",
                    "America/Denver|America/Shiprock",
                    "America/Denver|Navajo",
                    "America/Denver|US/Mountain",
                    "America/Detroit|US/Michigan",
                    "America/Edmonton|Canada/Mountain",
                    "America/Fort_Wayne|America/Indiana/Indianapolis",
                    "America/Fort_Wayne|America/Indianapolis",
                    "America/Fort_Wayne|US/East-Indiana",
                    "America/Godthab|America/Nuuk",
                    "America/Halifax|Canada/Atlantic",
                    "America/Havana|Cuba",
                    "America/Indiana/Knox|America/Knox_IN",
                    "America/Indiana/Knox|US/Indiana-Starke",
                    "America/Jamaica|Jamaica",
                    "America/Kentucky/Louisville|America/Louisville",
                    "America/Los_Angeles|US/Pacific",
                    "America/Manaus|Brazil/West",
                    "America/Mazatlan|Mexico/BajaSur",
                    "America/Mexico_City|Mexico/General",
                    "America/New_York|US/Eastern",
                    "America/Noronha|Brazil/DeNoronha",
                    "America/Panama|America/Cayman",
                    "America/Phoenix|US/Arizona",
                    "America/Port_of_Spain|America/Anguilla",
                    "America/Port_of_Spain|America/Antigua",
                    "America/Port_of_Spain|America/Dominica",
                    "America/Port_of_Spain|America/Grenada",
                    "America/Port_of_Spain|America/Guadeloupe",
                    "America/Port_of_Spain|America/Marigot",
                    "America/Port_of_Spain|America/Montserrat",
                    "America/Port_of_Spain|America/St_Barthelemy",
                    "America/Port_of_Spain|America/St_Kitts",
                    "America/Port_of_Spain|America/St_Lucia",
                    "America/Port_of_Spain|America/St_Thomas",
                    "America/Port_of_Spain|America/St_Vincent",
                    "America/Port_of_Spain|America/Tortola",
                    "America/Port_of_Spain|America/Virgin",
                    "America/Regina|Canada/Saskatchewan",
                    "America/Rio_Branco|America/Porto_Acre",
                    "America/Rio_Branco|Brazil/Acre",
                    "America/Santiago|Chile/Continental",
                    "America/Sao_Paulo|Brazil/East",
                    "America/St_Johns|Canada/Newfoundland",
                    "America/Tijuana|America/Ensenada",
                    "America/Tijuana|America/Santa_Isabel",
                    "America/Tijuana|Mexico/BajaNorte",
                    "America/Toronto|America/Montreal",
                    "America/Toronto|Canada/Eastern",
                    "America/Vancouver|Canada/Pacific",
                    "America/Whitehorse|Canada/Yukon",
                    "America/Winnipeg|Canada/Central",
                    "Asia/Ashgabat|Asia/Ashkhabad",
                    "Asia/Bangkok|Asia/Phnom_Penh",
                    "Asia/Bangkok|Asia/Vientiane",
                    "Asia/Dhaka|Asia/Dacca",
                    "Asia/Dubai|Asia/Muscat",
                    "Asia/Ho_Chi_Minh|Asia/Saigon",
                    "Asia/Hong_Kong|Hongkong",
                    "Asia/Jerusalem|Asia/Tel_Aviv",
                    "Asia/Jerusalem|Israel",
                    "Asia/Kathmandu|Asia/Katmandu",
                    "Asia/Kolkata|Asia/Calcutta",
                    "Asia/Kuala_Lumpur|Asia/Singapore",
                    "Asia/Kuala_Lumpur|Singapore",
                    "Asia/Macau|Asia/Macao",
                    "Asia/Makassar|Asia/Ujung_Pandang",
                    "Asia/Nicosia|Europe/Nicosia",
                    "Asia/Qatar|Asia/Bahrain",
                    "Asia/Rangoon|Asia/Yangon",
                    "Asia/Riyadh|Asia/Aden",
                    "Asia/Riyadh|Asia/Kuwait",
                    "Asia/Seoul|ROK",
                    "Asia/Shanghai|Asia/Chongqing",
                    "Asia/Shanghai|Asia/Chungking",
                    "Asia/Shanghai|Asia/Harbin",
                    "Asia/Shanghai|PRC",
                    "Asia/Taipei|ROC",
                    "Asia/Tehran|Iran",
                    "Asia/Thimphu|Asia/Thimbu",
                    "Asia/Tokyo|Japan",
                    "Asia/Ulaanbaatar|Asia/Ulan_Bator",
                    "Asia/Urumqi|Asia/Kashgar",
                    "Atlantic/Faroe|Atlantic/Faeroe",
                    "Atlantic/Reykjavik|Iceland",
                    "Atlantic/South_Georgia|Etc/GMT+2",
                    "Australia/Adelaide|Australia/South",
                    "Australia/Brisbane|Australia/Queensland",
                    "Australia/Broken_Hill|Australia/Yancowinna",
                    "Australia/Darwin|Australia/North",
                    "Australia/Hobart|Australia/Currie",
                    "Australia/Hobart|Australia/Tasmania",
                    "Australia/Lord_Howe|Australia/LHI",
                    "Australia/Melbourne|Australia/Victoria",
                    "Australia/Perth|Australia/West",
                    "Australia/Sydney|Australia/ACT",
                    "Australia/Sydney|Australia/Canberra",
                    "Australia/Sydney|Australia/NSW",
                    "Etc/GMT-0|Etc/GMT",
                    "Etc/GMT-0|Etc/GMT+0",
                    "Etc/GMT-0|Etc/GMT0",
                    "Etc/GMT-0|Etc/Greenwich",
                    "Etc/GMT-0|GMT",
                    "Etc/GMT-0|GMT+0",
                    "Etc/GMT-0|GMT-0",
                    "Etc/GMT-0|GMT0",
                    "Etc/GMT-0|Greenwich",
                    "Etc/UTC|Etc/UCT",
                    "Etc/UTC|Etc/Universal",
                    "Etc/UTC|Etc/Zulu",
                    "Etc/UTC|UCT",
                    "Etc/UTC|UTC",
                    "Etc/UTC|Universal",
                    "Etc/UTC|Zulu",
                    "Europe/Belgrade|Europe/Ljubljana",
                    "Europe/Belgrade|Europe/Podgorica",
                    "Europe/Belgrade|Europe/Sarajevo",
                    "Europe/Belgrade|Europe/Skopje",
                    "Europe/Belgrade|Europe/Zagreb",
                    "Europe/Chisinau|Europe/Tiraspol",
                    "Europe/Dublin|Eire",
                    "Europe/Helsinki|Europe/Mariehamn",
                    "Europe/Istanbul|Asia/Istanbul",
                    "Europe/Istanbul|Turkey",
                    "Europe/Lisbon|Portugal",
                    "Europe/London|Europe/Belfast",
                    "Europe/London|Europe/Guernsey",
                    "Europe/London|Europe/Isle_of_Man",
                    "Europe/London|Europe/Jersey",
                    "Europe/London|GB",
                    "Europe/London|GB-Eire",
                    "Europe/Moscow|W-SU",
                    "Europe/Oslo|Arctic/Longyearbyen",
                    "Europe/Oslo|Atlantic/Jan_Mayen",
                    "Europe/Prague|Europe/Bratislava",
                    "Europe/Rome|Europe/San_Marino",
                    "Europe/Rome|Europe/Vatican",
                    "Europe/Warsaw|Poland",
                    "Europe/Zurich|Europe/Busingen",
                    "Europe/Zurich|Europe/Vaduz",
                    "Indian/Christmas|Etc/GMT-7",
                    "Pacific/Auckland|Antarctica/McMurdo",
                    "Pacific/Auckland|Antarctica/South_Pole",
                    "Pacific/Auckland|NZ",
                    "Pacific/Chatham|NZ-CHAT",
                    "Pacific/Chuuk|Pacific/Truk",
                    "Pacific/Chuuk|Pacific/Yap",
                    "Pacific/Easter|Chile/EasterIsland",
                    "Pacific/Guam|Pacific/Saipan",
                    "Pacific/Honolulu|Pacific/Johnston",
                    "Pacific/Honolulu|US/Hawaii",
                    "Pacific/Kwajalein|Kwajalein",
                    "Pacific/Pago_Pago|Pacific/Midway",
                    "Pacific/Pago_Pago|Pacific/Samoa",
                    "Pacific/Pago_Pago|US/Samoa",
                    "Pacific/Palau|Etc/GMT-9",
                    "Pacific/Pohnpei|Pacific/Ponape",
                    "Pacific/Port_Moresby|Etc/GMT-10",
                    "Pacific/Tarawa|Etc/GMT-12",
                    "Pacific/Tarawa|Pacific/Funafuti",
                    "Pacific/Tarawa|Pacific/Wake",
                    "Pacific/Tarawa|Pacific/Wallis"
                ],
                countries: [
                    "AD|Europe/Andorra",
                    "AE|Asia/Dubai",
                    "AF|Asia/Kabul",
                    "AG|America/Port_of_Spain America/Antigua",
                    "AI|America/Port_of_Spain America/Anguilla",
                    "AL|Europe/Tirane",
                    "AM|Asia/Yerevan",
                    "AO|Africa/Lagos Africa/Luanda",
                    "AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo",
                    "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia",
                    "AS|Pacific/Pago_Pago",
                    "AT|Europe/Vienna",
                    "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla",
                    "AW|America/Curacao America/Aruba",
                    "AX|Europe/Helsinki Europe/Mariehamn",
                    "AZ|Asia/Baku",
                    "BA|Europe/Belgrade Europe/Sarajevo",
                    "BB|America/Barbados",
                    "BD|Asia/Dhaka",
                    "BE|Europe/Brussels",
                    "BF|Africa/Abidjan Africa/Ouagadougou",
                    "BG|Europe/Sofia",
                    "BH|Asia/Qatar Asia/Bahrain",
                    "BI|Africa/Maputo Africa/Bujumbura",
                    "BJ|Africa/Lagos Africa/Porto-Novo",
                    "BL|America/Port_of_Spain America/St_Barthelemy",
                    "BM|Atlantic/Bermuda",
                    "BN|Asia/Brunei",
                    "BO|America/La_Paz",
                    "BQ|America/Curacao America/Kralendijk",
                    "BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco",
                    "BS|America/Nassau",
                    "BT|Asia/Thimphu",
                    "BW|Africa/Maputo Africa/Gaborone",
                    "BY|Europe/Minsk",
                    "BZ|America/Belize",
                    "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson",
                    "CC|Indian/Cocos",
                    "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi",
                    "CF|Africa/Lagos Africa/Bangui",
                    "CG|Africa/Lagos Africa/Brazzaville",
                    "CH|Europe/Zurich",
                    "CI|Africa/Abidjan",
                    "CK|Pacific/Rarotonga",
                    "CL|America/Santiago America/Punta_Arenas Pacific/Easter",
                    "CM|Africa/Lagos Africa/Douala",
                    "CN|Asia/Shanghai Asia/Urumqi",
                    "CO|America/Bogota",
                    "CR|America/Costa_Rica",
                    "CU|America/Havana",
                    "CV|Atlantic/Cape_Verde",
                    "CW|America/Curacao",
                    "CX|Indian/Christmas",
                    "CY|Asia/Nicosia Asia/Famagusta",
                    "CZ|Europe/Prague",
                    "DE|Europe/Zurich Europe/Berlin Europe/Busingen",
                    "DJ|Africa/Nairobi Africa/Djibouti",
                    "DK|Europe/Copenhagen",
                    "DM|America/Port_of_Spain America/Dominica",
                    "DO|America/Santo_Domingo",
                    "DZ|Africa/Algiers",
                    "EC|America/Guayaquil Pacific/Galapagos",
                    "EE|Europe/Tallinn",
                    "EG|Africa/Cairo",
                    "EH|Africa/El_Aaiun",
                    "ER|Africa/Nairobi Africa/Asmara",
                    "ES|Europe/Madrid Africa/Ceuta Atlantic/Canary",
                    "ET|Africa/Nairobi Africa/Addis_Ababa",
                    "FI|Europe/Helsinki",
                    "FJ|Pacific/Fiji",
                    "FK|Atlantic/Stanley",
                    "FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae",
                    "FO|Atlantic/Faroe",
                    "FR|Europe/Paris",
                    "GA|Africa/Lagos Africa/Libreville",
                    "GB|Europe/London",
                    "GD|America/Port_of_Spain America/Grenada",
                    "GE|Asia/Tbilisi",
                    "GF|America/Cayenne",
                    "GG|Europe/London Europe/Guernsey",
                    "GH|Africa/Accra",
                    "GI|Europe/Gibraltar",
                    "GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule",
                    "GM|Africa/Abidjan Africa/Banjul",
                    "GN|Africa/Abidjan Africa/Conakry",
                    "GP|America/Port_of_Spain America/Guadeloupe",
                    "GQ|Africa/Lagos Africa/Malabo",
                    "GR|Europe/Athens",
                    "GS|Atlantic/South_Georgia",
                    "GT|America/Guatemala",
                    "GU|Pacific/Guam",
                    "GW|Africa/Bissau",
                    "GY|America/Guyana",
                    "HK|Asia/Hong_Kong",
                    "HN|America/Tegucigalpa",
                    "HR|Europe/Belgrade Europe/Zagreb",
                    "HT|America/Port-au-Prince",
                    "HU|Europe/Budapest",
                    "ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura",
                    "IE|Europe/Dublin",
                    "IL|Asia/Jerusalem",
                    "IM|Europe/London Europe/Isle_of_Man",
                    "IN|Asia/Kolkata",
                    "IO|Indian/Chagos",
                    "IQ|Asia/Baghdad",
                    "IR|Asia/Tehran",
                    "IS|Atlantic/Reykjavik",
                    "IT|Europe/Rome",
                    "JE|Europe/London Europe/Jersey",
                    "JM|America/Jamaica",
                    "JO|Asia/Amman",
                    "JP|Asia/Tokyo",
                    "KE|Africa/Nairobi",
                    "KG|Asia/Bishkek",
                    "KH|Asia/Bangkok Asia/Phnom_Penh",
                    "KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati",
                    "KM|Africa/Nairobi Indian/Comoro",
                    "KN|America/Port_of_Spain America/St_Kitts",
                    "KP|Asia/Pyongyang",
                    "KR|Asia/Seoul",
                    "KW|Asia/Riyadh Asia/Kuwait",
                    "KY|America/Panama America/Cayman",
                    "KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral",
                    "LA|Asia/Bangkok Asia/Vientiane",
                    "LB|Asia/Beirut",
                    "LC|America/Port_of_Spain America/St_Lucia",
                    "LI|Europe/Zurich Europe/Vaduz",
                    "LK|Asia/Colombo",
                    "LR|Africa/Monrovia",
                    "LS|Africa/Johannesburg Africa/Maseru",
                    "LT|Europe/Vilnius",
                    "LU|Europe/Luxembourg",
                    "LV|Europe/Riga",
                    "LY|Africa/Tripoli",
                    "MA|Africa/Casablanca",
                    "MC|Europe/Monaco",
                    "MD|Europe/Chisinau",
                    "ME|Europe/Belgrade Europe/Podgorica",
                    "MF|America/Port_of_Spain America/Marigot",
                    "MG|Africa/Nairobi Indian/Antananarivo",
                    "MH|Pacific/Majuro Pacific/Kwajalein",
                    "MK|Europe/Belgrade Europe/Skopje",
                    "ML|Africa/Abidjan Africa/Bamako",
                    "MM|Asia/Yangon",
                    "MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan",
                    "MO|Asia/Macau",
                    "MP|Pacific/Guam Pacific/Saipan",
                    "MQ|America/Martinique",
                    "MR|Africa/Abidjan Africa/Nouakchott",
                    "MS|America/Port_of_Spain America/Montserrat",
                    "MT|Europe/Malta",
                    "MU|Indian/Mauritius",
                    "MV|Indian/Maldives",
                    "MW|Africa/Maputo Africa/Blantyre",
                    "MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas",
                    "MY|Asia/Kuala_Lumpur Asia/Kuching",
                    "MZ|Africa/Maputo",
                    "NA|Africa/Windhoek",
                    "NC|Pacific/Noumea",
                    "NE|Africa/Lagos Africa/Niamey",
                    "NF|Pacific/Norfolk",
                    "NG|Africa/Lagos",
                    "NI|America/Managua",
                    "NL|Europe/Amsterdam",
                    "NO|Europe/Oslo",
                    "NP|Asia/Kathmandu",
                    "NR|Pacific/Nauru",
                    "NU|Pacific/Niue",
                    "NZ|Pacific/Auckland Pacific/Chatham",
                    "OM|Asia/Dubai Asia/Muscat",
                    "PA|America/Panama",
                    "PE|America/Lima",
                    "PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier",
                    "PG|Pacific/Port_Moresby Pacific/Bougainville",
                    "PH|Asia/Manila",
                    "PK|Asia/Karachi",
                    "PL|Europe/Warsaw",
                    "PM|America/Miquelon",
                    "PN|Pacific/Pitcairn",
                    "PR|America/Puerto_Rico",
                    "PS|Asia/Gaza Asia/Hebron",
                    "PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores",
                    "PW|Pacific/Palau",
                    "PY|America/Asuncion",
                    "QA|Asia/Qatar",
                    "RE|Indian/Reunion",
                    "RO|Europe/Bucharest",
                    "RS|Europe/Belgrade",
                    "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr",
                    "RW|Africa/Maputo Africa/Kigali",
                    "SA|Asia/Riyadh",
                    "SB|Pacific/Guadalcanal",
                    "SC|Indian/Mahe",
                    "SD|Africa/Khartoum",
                    "SE|Europe/Stockholm",
                    "SG|Asia/Singapore",
                    "SH|Africa/Abidjan Atlantic/St_Helena",
                    "SI|Europe/Belgrade Europe/Ljubljana",
                    "SJ|Europe/Oslo Arctic/Longyearbyen",
                    "SK|Europe/Prague Europe/Bratislava",
                    "SL|Africa/Abidjan Africa/Freetown",
                    "SM|Europe/Rome Europe/San_Marino",
                    "SN|Africa/Abidjan Africa/Dakar",
                    "SO|Africa/Nairobi Africa/Mogadishu",
                    "SR|America/Paramaribo",
                    "SS|Africa/Juba",
                    "ST|Africa/Sao_Tome",
                    "SV|America/El_Salvador",
                    "SX|America/Curacao America/Lower_Princes",
                    "SY|Asia/Damascus",
                    "SZ|Africa/Johannesburg Africa/Mbabane",
                    "TC|America/Grand_Turk",
                    "TD|Africa/Ndjamena",
                    "TF|Indian/Reunion Indian/Kerguelen",
                    "TG|Africa/Abidjan Africa/Lome",
                    "TH|Asia/Bangkok",
                    "TJ|Asia/Dushanbe",
                    "TK|Pacific/Fakaofo",
                    "TL|Asia/Dili",
                    "TM|Asia/Ashgabat",
                    "TN|Africa/Tunis",
                    "TO|Pacific/Tongatapu",
                    "TR|Europe/Istanbul",
                    "TT|America/Port_of_Spain",
                    "TV|Pacific/Funafuti",
                    "TW|Asia/Taipei",
                    "TZ|Africa/Nairobi Africa/Dar_es_Salaam",
                    "UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye",
                    "UG|Africa/Nairobi Africa/Kampala",
                    "UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway",
                    "US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu",
                    "UY|America/Montevideo",
                    "UZ|Asia/Samarkand Asia/Tashkent",
                    "VA|Europe/Rome Europe/Vatican",
                    "VC|America/Port_of_Spain America/St_Vincent",
                    "VE|America/Caracas",
                    "VG|America/Port_of_Spain America/Tortola",
                    "VI|America/Port_of_Spain America/St_Thomas",
                    "VN|Asia/Bangkok Asia/Ho_Chi_Minh",
                    "VU|Pacific/Efate",
                    "WF|Pacific/Wallis",
                    "WS|Pacific/Apia",
                    "YE|Asia/Riyadh Asia/Aden",
                    "YT|Africa/Nairobi Indian/Mayotte",
                    "ZA|Africa/Johannesburg",
                    "ZM|Africa/Maputo Africa/Lusaka",
                    "ZW|Africa/Maputo Africa/Harare"
                ]
            };
        }
    });
    // node_modules/@signageos/front-display/node_modules/moment-timezone/index.js
    var require_moment_timezone4 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/moment-timezone/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var moment4 = module.exports = require_moment_timezone3();
            moment4.tz.load(require_latest2());
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/DateTime/dateTimeFacade.js
    var require_dateTimeFacade = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/DateTime/dateTimeFacade.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getCurrentTime = exports.setNtpOrManualTime = void 0;
            function setNtpOrManualTime(nativeDriver, timestampMs, timezone, ntpServer) {
                return __awaiter(this, void 0, void 0, function() {
                    var _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = ntpServer;
                                if (!_tmp) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    nativeDriver.timeManager.canSetAuto()
                                ];
                            case 1:
                                _tmp = _state.sent();
                                _state.label = 2;
                            case 2:
                                if (!_tmp) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    nativeDriver.timeManager.setAuto(ntpServer, timezone)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    nativeDriver.timeManager.canSetManual()
                                ];
                            case 5:
                                if (!_state.sent()) return [
                                    3,
                                    7
                                ];
                                return [
                                    4,
                                    nativeDriver.timeManager.setManual(timestampMs, timezone)
                                ];
                            case 6:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 7:
                                throw new Error("Device is not able to set time & timezone");
                        }
                    });
                });
            }
            exports.setNtpOrManualTime = setNtpOrManualTime;
            function getCurrentTime(nativeDriver) {
                var _a2;
                return __awaiter(this, void 0, void 0, function() {
                    var settings, _tmp, _, _tmp1, _tmp2, _1, _tmp3, _tmp4;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    nativeDriver.timeManager.getEpochMillis()
                                ];
                            case 1:
                                _tmp.timestamp = _state.sent(), _tmp.timezone = null;
                                return [
                                    4,
                                    nativeDriver.timeManager.getZoneOffset()
                                ];
                            case 2:
                                _tmp.timezoneOffset = _state.sent().toPosix();
                                return [
                                    4,
                                    nativeDriver.timeManager.isAutoEnabled()
                                ];
                            case 3:
                                settings = (_tmp.ntpEnabled = _state.sent(), _tmp);
                                return [
                                    4,
                                    nativeDriver.timeManager.canGetZoneId()
                                ];
                            case 4:
                                if (!_state.sent()) return [
                                    3,
                                    6
                                ];
                                _ = Object.assign;
                                _tmp1 = [
                                    Object.assign({}, settings)
                                ];
                                _tmp2 = {};
                                return [
                                    4,
                                    nativeDriver.timeManager.getZoneId()
                                ];
                            case 5:
                                settings = _.apply(Object, _tmp1.concat([
                                    (_tmp2.timezone = _state.sent(), _tmp2)
                                ]));
                                _state.label = 6;
                            case 6:
                                return [
                                    4,
                                    nativeDriver.timeManager.canGetNtpServer()
                                ];
                            case 7:
                                if (!_state.sent()) return [
                                    3,
                                    9
                                ];
                                _1 = Object.assign;
                                _tmp3 = [
                                    Object.assign({}, settings)
                                ];
                                _tmp4 = {};
                                return [
                                    4,
                                    nativeDriver.timeManager.getNtpServer()
                                ];
                            case 8:
                                settings = _1.apply(Object, _tmp3.concat([
                                    (_tmp4.ntpServer = (_a2 = _state.sent()) !== null && _a2 !== void 0 ? _a2 : void 0, _tmp4)
                                ]));
                                _state.label = 9;
                            case 9:
                                return [
                                    2,
                                    settings
                                ];
                        }
                    });
                });
            }
            exports.getCurrentTime = getCurrentTime;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Timer/TimerType.js
    var require_TimerType = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Timer/TimerType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.numberToNativeTimerType = void 0;
            var NumberTimerType;
            (function(NumberTimerType2) {
                NumberTimerType2[NumberTimerType2["TIMER_1"] = 0] = "TIMER_1";
                NumberTimerType2[NumberTimerType2["TIMER_2"] = 1] = "TIMER_2";
                NumberTimerType2[NumberTimerType2["TIMER_3"] = 2] = "TIMER_3";
                NumberTimerType2[NumberTimerType2["TIMER_4"] = 3] = "TIMER_4";
                NumberTimerType2[NumberTimerType2["TIMER_5"] = 4] = "TIMER_5";
                NumberTimerType2[NumberTimerType2["TIMER_6"] = 5] = "TIMER_6";
                NumberTimerType2[NumberTimerType2["TIMER_7"] = 6] = "TIMER_7";
            })(NumberTimerType || (NumberTimerType = {}));
            exports["default"] = NumberTimerType;
            var numberToNativeTimerType = function(type) {
                return NumberTimerType[type];
            };
            exports.numberToNativeTimerType = numberToNativeTimerType;
        }
    });
    // node_modules/@signageos/front-display/es6/Property/propertyStorage.js
    var require_propertyStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/Property/propertyStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var createPropertyStorage3 = function(getNativeDriver) {
                return {
                    getValueOrDefault: function(key, defaultValue) {
                        return __awaiter(this, void 0, void 0, function() {
                            var nativeDriver, rawValue, error;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        nativeDriver = getNativeDriver();
                                        _state.label = 1;
                                    case 1:
                                        _state.trys.push([
                                            1,
                                            3,
                                            ,
                                            4
                                        ]);
                                        return [
                                            4,
                                            nativeDriver.cacheGet(key)
                                        ];
                                    case 2:
                                        rawValue = _state.sent();
                                        return [
                                            2,
                                            JSON.parse(rawValue)
                                        ];
                                    case 3:
                                        error = _state.sent();
                                        return [
                                            2,
                                            defaultValue
                                        ];
                                    case 4:
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    },
                    setValue: function(key, value) {
                        return __awaiter(this, void 0, void 0, function() {
                            var nativeDriver, rawValue;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        nativeDriver = getNativeDriver();
                                        rawValue = JSON.stringify(value);
                                        return [
                                            4,
                                            nativeDriver.cacheSave(key, rawValue)
                                        ];
                                    case 1:
                                        _state.sent();
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    },
                    removeValue: function(key) {
                        return __awaiter(this, void 0, void 0, function() {
                            var nativeDriver;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        nativeDriver = getNativeDriver();
                                        return [
                                            4,
                                            nativeDriver.cacheDelete(key)
                                        ];
                                    case 1:
                                        _state.sent();
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    }
                };
            };
            exports["default"] = createPropertyStorage3;
        }
    });
    // node_modules/@signageos/front-display/es6/Util/processCallback.js
    var require_processCallback = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/processCallback.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.CALLBACK_TIMEOUT_MS = void 0;
            var wait_1 = __importDefault(require_wait());
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Util:processCallback");
            exports.CALLBACK_TIMEOUT_MS = 1e3;
            function processCallback(callback) {
                var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
                return __awaiter(this, void 0, void 0, function() {
                    var debugTag;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                debugTag = options.debugTag;
                                if (!callback) {
                                    return [
                                        2
                                    ];
                                }
                                debug4("Finalize callback after ".concat(debugTag, " will be called after ").concat(exports.CALLBACK_TIMEOUT_MS, " ms"));
                                return [
                                    4,
                                    (0, wait_1["default"])(exports.CALLBACK_TIMEOUT_MS)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    callback()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports["default"] = processCallback;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Security/DefaultSecurity.js
    var require_DefaultSecurity = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Security/DefaultSecurity.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var DefaultSecurity = /*#__PURE__*/ function() {
                function DefaultSecurity(storage, setPinDelegate) {
                    _class_call_check(this, DefaultSecurity);
                    this.storage = storage;
                    this.setPinDelegate = setPinDelegate;
                    this.events = new events_1.EventEmitter();
                }
                _create_class(DefaultSecurity, [
                    {
                        key: "isSecure",
                        value: function isSecure() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getPin()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent() !== ""
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "verifyPin",
                        value: function verifyPin(pin) {
                            return __awaiter(this, void 0, void 0, function() {
                                var currentPin;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getPin()
                                            ];
                                        case 1:
                                            currentPin = _state.sent();
                                            if (currentPin !== "" && currentPin === pin) {
                                                return [
                                                    2,
                                                    true
                                                ];
                                            }
                                            return [
                                                2,
                                                false
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getPin",
                        value: function getPin() {
                            var _a2;
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.storage.loadPin()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                (_a2 = _state.sent()) !== null && _a2 !== void 0 ? _a2 : ""
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setPin",
                        value: function setPin(newPin) {
                            return __awaiter(this, void 0, void 0, function() {
                                var oldPin, e;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.storage.loadPin()
                                            ];
                                        case 1:
                                            oldPin = _state.sent();
                                            return [
                                                4,
                                                this.storage.savePin(newPin)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            _state.trys.push([
                                                3,
                                                5,
                                                ,
                                                7
                                            ]);
                                            return [
                                                4,
                                                this.setPinDelegate(newPin)
                                            ];
                                        case 4:
                                            _state.sent();
                                            this.events.emit("pin_set");
                                            return [
                                                3,
                                                7
                                            ];
                                        case 5:
                                            e = _state.sent();
                                            return [
                                                4,
                                                this.storage.savePin(oldPin)
                                            ];
                                        case 6:
                                            _state.sent();
                                            throw e;
                                        case 7:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "onPinSet",
                        value: function onPinSet(listener) {
                            var _this = this;
                            this.events.addListener("pin_set", listener);
                            return function() {
                                return _this.events.removeListener("pin_set", listener);
                            };
                        }
                    }
                ]);
                return DefaultSecurity;
            }();
            exports["default"] = DefaultSecurity;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Security/PinPropertyStorage.js
    var require_PinPropertyStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Security/PinPropertyStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Property_1 = __importDefault(require_Property());
            var PinPropertyStorage = /*#__PURE__*/ function() {
                function PinPropertyStorage(propertyStorage) {
                    _class_call_check(this, PinPropertyStorage);
                    this.propertyStorage = propertyStorage;
                }
                _create_class(PinPropertyStorage, [
                    {
                        /**
         * @returns Whether this storage has ever persisted any data.
         */ key: "hasPersistedData",
                        value: function hasPersistedData() {
                            return __awaiter(this, void 0, void 0, function() {
                                var pin;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(Property_1["default"].PIN, void 0)
                                            ];
                                        case 1:
                                            pin = _state.sent();
                                            return [
                                                2,
                                                typeof pin !== "undefined"
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "loadPin",
                        value: function loadPin() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(Property_1["default"].PIN, null)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "savePin",
                        value: function savePin(pin) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.setValue(Property_1["default"].PIN, pin)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return PinPropertyStorage;
            }();
            exports["default"] = PinPropertyStorage;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Security/security.js
    var require_security = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Security/security.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createCompatibleSecurity = exports.createSecurity = exports.DEFAULT_OPEN_PIN_CODE = void 0;
            var propertyStorage_1 = __importDefault(require_propertyStorage());
            var DefaultSecurity_1 = __importDefault(require_DefaultSecurity());
            var PinPropertyStorage_1 = __importDefault(require_PinPropertyStorage());
            exports.DEFAULT_OPEN_PIN_CODE = "0000";
            function createSecurity(storage, onSetPin) {
                return new DefaultSecurity_1["default"](storage, onSetPin);
            }
            exports.createSecurity = createSecurity;
            function createCompatibleSecurity2() {
                for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                    args[_key] = arguments[_key];
                }
                var getFrontDriver = args[0];
                var getCacheDriver = args.length === 1 ? args[0] : args[1];
                var properties = (0, propertyStorage_1["default"])(getCacheDriver);
                var storage = new PinPropertyStorage_1["default"](properties);
                return createSecurity(storage, function(pin) {
                    return getFrontDriver().controlSetPin(pin);
                });
            }
            exports.createCompatibleSecurity = createCompatibleSecurity2;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Security/controlEnablingSagas.js
    var require_controlEnablingSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Security/controlEnablingSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.reportDevicePinChangedSaga = exports.generateControlPinSaga = exports.controlEnablingSaga = exports.putDevicePinChanged = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var keyActions_1 = require_keyActions();
            var authenticationActions_1 = require_authenticationActions();
            var deviceInputActions_1 = require_deviceInputActions();
            var deviceRemoteControlActions_1 = require_deviceRemoteControlActions();
            var KeyCode_1 = require_KeyCode();
            var numericSequence_1 = require_numericSequence();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var security_1 = require_security();
            var applicationActions_1 = require_applicationActions();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var responsible_1 = require_responsible();
            var processCallback_1 = __importDefault(require_processCallback());
            var putDevicePinChanged = function(pin) {
                return (0, effects_1.put)({
                    type: deviceInputActions_1.DevicePinChanged,
                    pin: pin
                });
            };
            exports.putDevicePinChanged = putDevicePinChanged;
            exports.controlEnablingSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].KIOSK, (0, dependencyInjection_1.withDependencies)([
                "frontDriver"
            ], function(param) {
                var frontDriver, security;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            frontDriver = param.frontDriver;
                            security = frontDriver.security;
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeySequence, function(handleKeySequence) {
                                    var characterSequence, isPinOk, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                characterSequence = (0, numericSequence_1.getNumericCode)(handleKeySequence.sequence);
                                                if (!characterSequence) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                return [
                                                    4,
                                                    security.verifyPin(characterSequence)
                                                ];
                                            case 1:
                                                isPinOk = _state.sent();
                                                if (!isPinOk) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    remoteControlSetEnabled(frontDriver, true)
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("controlEnablingSaga:keySequence", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeyUp, function(handleKeyUp) {
                                    var isSecure, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                return [
                                                    4,
                                                    security.isSecure()
                                                ];
                                            case 1:
                                                isSecure = _state.sent();
                                                if (!isSecure) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                if (!(handleKeyUp.keyCode === KeyCode_1.KeyCode[KeyCode_1.KeyCode.LOCK])) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    remoteControlSetEnabled(frontDriver, false)
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("controlEnablingSaga:keyUp", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }));
            exports.generateControlPinSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].KIOSK, (0, dependencyInjection_1.withDependencies)([
                "frontDriver"
            ], function(param) {
                var frontDriver, security;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            frontDriver = param.frontDriver;
                            security = frontDriver.security;
                            return [
                                4,
                                (0, effects_1.fork)(function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    ensurePin(security)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("generateControlPinSaga:ensurePin", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, function() {
                                    var pin, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    6,
                                                    ,
                                                    7
                                                ]);
                                                return [
                                                    4,
                                                    ensurePin(security)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    security.verifyPin(security_1.DEFAULT_OPEN_PIN_CODE)
                                                ];
                                            case 2:
                                                if (!_state.sent()) return [
                                                    3,
                                                    5
                                                ];
                                                pin = generateRandomPinCode();
                                                return [
                                                    4,
                                                    security.setPin(pin)
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, exports.putDevicePinChanged)(pin)
                                                ];
                                            case 4:
                                                _state.sent();
                                                _state.label = 5;
                                            case 5:
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 6:
                                                error = _state.sent();
                                                console.error("generateControlPinSaga", error);
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }));
            exports.reportDevicePinChangedSaga = (0, dependencyInjection_1.withDependencies)([
                "frontDriver"
            ], function(param) {
                var frontDriver, security, pinSetChannel, listener, removeListener;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            frontDriver = param.frontDriver;
                            security = frontDriver.security;
                            pinSetChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.none());
                            return [
                                4,
                                (0, effects_1.takeEvery)(pinSetChannel, function() {
                                    var pin, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    security.getPin()
                                                ];
                                            case 1:
                                                pin = _state.sent();
                                                return [
                                                    4,
                                                    (0, exports.putDevicePinChanged)(pin)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("reportDevicePinChangedSaga:devicePinChanged", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            listener = function() {
                                return pinSetChannel.put({});
                            };
                            removeListener = security.onPinSet(listener);
                            try {
                                pinSetChannel.put({});
                                (0, effects_1.take)(applicationActions_1.StopApplication);
                            } finally{
                                removeListener();
                            }
                            return [
                                2
                            ];
                    }
                });
            });
            function ensurePin(security) {
                return __awaiter(this, void 0, void 0, function() {
                    var isSecure;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    security.isSecure()
                                ];
                            case 1:
                                isSecure = _state.sent();
                                if (!!isSecure) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    security.setPin(security_1.DEFAULT_OPEN_PIN_CODE)
                                ];
                            case 2:
                                _state.sent();
                                _state.label = 3;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function generateRandomPinCode() {
                return Math.floor(Math.random() * 1e4).toString().padStart(4, "0");
            }
            function remoteControlSetEnabled(nativeDriver, enabled) {
                var finalizeCallback;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                nativeDriver.remoteControlSetEnabled(enabled)
                            ];
                        case 1:
                            finalizeCallback = _state.sent();
                            (0, processCallback_1["default"])(finalizeCallback);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceRemoteControlActions_1.DeviceRemoteControlSet,
                                    enabled: enabled
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletSecurityError.js
    var require_AppletSecurityError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletSecurityError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var AppletSecurityError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(_AppletSecurityError, _AppletError_1_default);
                var _super = _create_super(_AppletSecurityError);
                function _AppletSecurityError(parameters2) {
                    _class_call_check(this, _AppletSecurityError);
                    return _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        pathToDocs: _AppletSecurityError.PATH_TO_DOCS,
                        kind: "appletError"
                    }));
                }
                return _AppletSecurityError;
            }(AppletError_1["default"]);
            AppletSecurityError.PATH_TO_DOCS = "/api/js/management/12-js-management-security";
            exports["default"] = AppletSecurityError;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Audio/deviceAudioActions.js
    var require_deviceAudioActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Audio/deviceAudioActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceVolumeFailed = exports.SetDeviceVolumeSucceeded = exports.SetDeviceVolume = void 0;
            exports.SetDeviceVolume = "Device.Audio.SetDeviceVolume";
            exports.SetDeviceVolumeSucceeded = "Device.Audio.SetDeviceVolumeSucceed";
            exports.SetDeviceVolumeFailed = "Device.Audio.SetDeviceVolumeFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/AutoRecovery/deviceAutoRecoveryActions.js
    var require_deviceAutoRecoveryActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/AutoRecovery/deviceAutoRecoveryActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceAutoRecoveryFailed = exports.SetDeviceAutoRecoverySucceeded = exports.SetDeviceAutoRecovery = void 0;
            exports.SetDeviceAutoRecovery = "Device.AutoRecovery.SetAutoRecovery";
            exports.SetDeviceAutoRecoverySucceeded = "Device.AutoRecovery.SetAutoRecoverySucceeded";
            exports.SetDeviceAutoRecoveryFailed = "Device.AutoRecovery.SetAutoRecoveryFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/Brightness/deviceBrightnessActions.js
    var require_deviceBrightnessActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Brightness/deviceBrightnessActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceBrightnessFailed = exports.SetDeviceBrightnessSucceeded = exports.SetDeviceBrightness = void 0;
            exports.SetDeviceBrightness = "Device.Brightness.SyncBrightnessSettings";
            exports.SetDeviceBrightnessSucceeded = "Device.Brightness.SyncBrightnessSettingsSucceed";
            exports.SetDeviceBrightnessFailed = "Device.Brightness.SyncBrightnessSettingsFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/ExtendedManagement/deviceExtendedManagementActions.js
    var require_deviceExtendedManagementActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/ExtendedManagement/deviceExtendedManagementActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetExtendedManagementUrlFailed = exports.SetExtendedManagementUrlSucceeded = exports.SetExtendedManagementUrl = void 0;
            exports.SetExtendedManagementUrl = "Device.ExtendedManagement.SetUrl";
            exports.SetExtendedManagementUrlSucceeded = "Device.ExtendedManagement.SetUrlSucceed";
            exports.SetExtendedManagementUrlFailed = "Device.ExtendedManagement.SetUrlFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/PeerRecovery/devicePeerRecoveryActions.js
    var require_devicePeerRecoveryActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/PeerRecovery/devicePeerRecoveryActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDevicePeerRecoveryFailed = exports.SetDevicePeerRecoverySucceeded = exports.SetDevicePeerRecovery = void 0;
            exports.SetDevicePeerRecovery = "Device.PeerRecovery.SetPeerRecovery";
            exports.SetDevicePeerRecoverySucceeded = "Device.PeerRecovery.SetPeerRecoverySucceeded";
            exports.SetDevicePeerRecoveryFailed = "Device.PeerRecovery.SetPeerRecoveryFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/Policy/devicePolicyActions.js
    var require_devicePolicyActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Policy/devicePolicyActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ApplyPolicySucceeded = exports.ApplyPolicyFailed = exports.UpdateDevicePolicyItems = exports.GetDevicePolicyItems = void 0;
            exports.GetDevicePolicyItems = "Device.Policy.GetDevicePolicyItems";
            exports.UpdateDevicePolicyItems = "Device.Policy.UpdateDevicePolicyItems";
            exports.ApplyPolicyFailed = "Device.Policy.ApplyPolicyFailed";
            exports.ApplyPolicySucceeded = "Device.Policy.ApplyPolicySucceeded";
        }
    });
    // node_modules/@signageos/actions/dist/Device/LockMode/deviceLockModeActions.js
    var require_deviceLockModeActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/LockMode/deviceLockModeActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceLockModeFailed = exports.SetDeviceLockModeSucceeded = exports.SetDeviceLockMode = void 0;
            exports.SetDeviceLockMode = "Device.RemoteControl.SyncRemoteControlSettings";
            exports.SetDeviceLockModeSucceeded = "Device.RemoteControl.SyncRemoteControlSettingsSucceed";
            exports.SetDeviceLockModeFailed = "Device.RemoteControl.SyncRemoteControlSettingsFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/RemoteControl/deviceRemoteControlActions.js
    var require_deviceRemoteControlActions2 = __commonJS({
        "node_modules/@signageos/actions/dist/Device/RemoteControl/deviceRemoteControlActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetDeviceRemoteControlSettingsFailed = exports.SetDeviceRemoteControlSettingsSucceeded = exports.SetDeviceRemoteControlSettings = void 0;
            var deviceLockModeActions_1 = require_deviceLockModeActions();
            exports.SetDeviceRemoteControlSettings = deviceLockModeActions_1.SetDeviceLockMode;
            exports.SetDeviceRemoteControlSettingsSucceeded = deviceLockModeActions_1.SetDeviceLockModeSucceeded;
            exports.SetDeviceRemoteControlSettingsFailed = deviceLockModeActions_1.SetDeviceLockModeFailed;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Resolution/deviceResolutionActions.js
    var require_deviceResolutionActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Resolution/deviceResolutionActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifySupportedResolutions = exports.DeviceResizeFailed = exports.DeviceResizeSucceeded = exports.DeviceResize = void 0;
            exports.DeviceResize = "Device.Resolution.ResizeDevice";
            exports.DeviceResizeSucceeded = "Device.Resolution.DeviceResizeSucceeded";
            exports.DeviceResizeFailed = "Device.Resolution.DeviceResizeFailed";
            exports.NotifySupportedResolutions = "Device.Resolution.NotifySupportedResolutions";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/deviceTelemetryHelper.js
    var require_deviceTelemetryHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/deviceTelemetryHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.registerTelemetry = exports.increaseConstantByRandomValueFromInterval = exports.calculateInitialTelemetryTimeoutMs = void 0;
            var periodicTaskSaga_1 = require_periodicTaskSaga();
            var debug_1 = __importDefault(require_browser2());
            var dependencyInjection_1 = require_dependencyInjection();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Management:Telemetry:deviceTelemetryHelper");
            var TELEMETRY_INITIAL_DELAY = 2e4;
            var TELEMETRY_INITIAL_RANDOM_DELAY = 1e4;
            var TELEMETRY_INITIAL_ONLY_RETRY = 1e4;
            function calculateInitialTelemetryTimeoutMs() {
                var initialDelayMs = increaseConstantByRandomValueFromInterval(TELEMETRY_INITIAL_DELAY, TELEMETRY_INITIAL_RANDOM_DELAY);
                debug4("calculated initial telemetry timeout ".concat(initialDelayMs, "ms"));
                return initialDelayMs;
            }
            exports.calculateInitialTelemetryTimeoutMs = calculateInitialTelemetryTimeoutMs;
            function increaseConstantByRandomValueFromInterval(constant, interval) {
                return constant + Math.round(Math.random() * interval);
            }
            exports.increaseConstantByRandomValueFromInterval = increaseConstantByRandomValueFromInterval;
            var registerTelemetry = function(type, periodMs, performTelemetry) {
                return (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                    "telemetryInitialTimeoutMs"
                ], function(param) {
                    var telemetryInitialTimeoutMs;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                telemetryInitialTimeoutMs = param.telemetryInitialTimeoutMs;
                                if (!(periodMs > 0)) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    (0, periodicTaskSaga_1.runPeriodicTaskSagaWhilePlatform)(telemetryInitialTimeoutMs, periodMs, function() {
                                        var error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        2,
                                                        ,
                                                        3
                                                    ]);
                                                    return [
                                                        5,
                                                        _ts_values(__yieldStar(performTelemetry()))
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 2:
                                                    error = _state.sent();
                                                    debug4("reporting device telemetry ".concat(type, " failed"), error);
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 3:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    }, {
                                        randomize: true
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 2:
                                if (!(periodMs === 0)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    (0, periodicTaskSaga_1.runPeriodicTaskSagaUntilSuccessWhilePlatform)(telemetryInitialTimeoutMs, TELEMETRY_INITIAL_ONLY_RETRY, function() {
                                        var error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        2,
                                                        ,
                                                        3
                                                    ]);
                                                    return [
                                                        5,
                                                        _ts_values(__yieldStar(performTelemetry()))
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 2:
                                                    error = _state.sent();
                                                    debug4("reporting device telemetry ".concat(type, " failed"), error);
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 3:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                debug4("reporting device telemetry ".concat(type, " disabled by received configuration"));
                                _state.label = 5;
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                }));
            };
            exports.registerTelemetry = registerTelemetry;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/telemetryStackStorage.js
    var require_telemetryStackStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/telemetryStackStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.initializeTelemetryStackStorage = exports.telemetryStackStorage = exports.TelemetryStackStorage = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Property_1 = __importDefault(require_Property());
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Management:Telemetry:telemetryStackStorage");
            var MAX_STACK_SIZE = 10;
            var TelemetryStackStorage = /*#__PURE__*/ function() {
                function TelemetryStackStorage(propertyStorage) {
                    var config = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
                    _class_call_check(this, TelemetryStackStorage);
                    var _a2, _b2;
                    this.propertyStorage = propertyStorage;
                    this.maxStackSize = (_a2 = config.maxStackSize) !== null && _a2 !== void 0 ? _a2 : MAX_STACK_SIZE;
                    this.keyPrefix = (_b2 = config.keyPrefix) !== null && _b2 !== void 0 ? _b2 : "telemetry_stack_";
                }
                _create_class(TelemetryStackStorage, [
                    {
                        key: "getStorageKey",
                        value: function getStorageKey(type) {
                            return "".concat(this.keyPrefix).concat(type);
                        }
                    },
                    {
                        key: "pushTelemetry",
                        value: function pushTelemetry(type, data) {
                            return __awaiter(this, void 0, void 0, function() {
                                var allowedTelemetryTypes, key, stack, entry, allTelemetryData, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            allowedTelemetryTypes = [
                                                DeviceTelemetryType_1.DeviceTelemetryType.CPU_USAGE,
                                                DeviceTelemetryType_1.DeviceTelemetryType.MEMORY_USAGE
                                            ];
                                            if (!allowedTelemetryTypes.includes(type)) {
                                                return [
                                                    2
                                                ];
                                            }
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                5,
                                                ,
                                                6
                                            ]);
                                            key = this.getStorageKey(type);
                                            return [
                                                4,
                                                this.getStack(type)
                                            ];
                                        case 2:
                                            stack = _state.sent();
                                            entry = {
                                                type: type,
                                                data: data
                                            };
                                            stack.unshift(entry);
                                            if (stack.length > this.maxStackSize) {
                                                stack.splice(this.maxStackSize);
                                            }
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(Property_1["default"].TELEMETRY_STACK_STORAGE, {})
                                            ];
                                        case 3:
                                            allTelemetryData = _state.sent();
                                            allTelemetryData[key] = stack;
                                            return [
                                                4,
                                                this.propertyStorage.setValue(Property_1["default"].TELEMETRY_STACK_STORAGE, allTelemetryData)
                                            ];
                                        case 4:
                                            _state.sent();
                                            debug4("Pushed telemetry ".concat(type, " to stack, stack size: ").concat(stack.length, ", data:"), data);
                                            return [
                                                3,
                                                6
                                            ];
                                        case 5:
                                            error = _state.sent();
                                            debug4("Failed to push telemetry ".concat(type, " to stack:"), error);
                                            return [
                                                3,
                                                6
                                            ];
                                        case 6:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getStack",
                        value: function getStack(type) {
                            return __awaiter(this, void 0, void 0, function() {
                                var key, allTelemetryData, stackData, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            key = this.getStorageKey(type);
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(Property_1["default"].TELEMETRY_STACK_STORAGE, {})
                                            ];
                                        case 1:
                                            allTelemetryData = _state.sent();
                                            stackData = allTelemetryData[key];
                                            if (!stackData) {
                                                return [
                                                    2,
                                                    []
                                                ];
                                            }
                                            if (!Array.isArray(stackData)) {
                                                debug4("Invalid stack format for ".concat(type, ", resetting"));
                                                return [
                                                    2,
                                                    []
                                                ];
                                            }
                                            return [
                                                2,
                                                stackData
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            debug4("Failed to get stack for ".concat(type, ":"), error);
                                            return [
                                                2,
                                                []
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getLastEntries",
                        value: function getLastEntries(type, count) {
                            return __awaiter(this, void 0, void 0, function() {
                                var stack;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getStack(type)
                                            ];
                                        case 1:
                                            stack = _state.sent();
                                            return [
                                                2,
                                                stack.slice(0, count)
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return TelemetryStackStorage;
            }();
            exports.TelemetryStackStorage = TelemetryStackStorage;
            function initializeTelemetryStackStorage(propertyStorage, config) {
                exports.telemetryStackStorage = new TelemetryStackStorage(propertyStorage, config);
            }
            exports.initializeTelemetryStackStorage = initializeTelemetryStackStorage;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Secrets/secretActions.js
    var require_secretActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Secrets/secretActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.RegenerateCryptoKeyPairFailed = exports.RegenerateCryptoKeyPairSucceeded = exports.RegenerateCryptoKeyPair = exports.GenerateCryptoKeyPairFailed = exports.GenerateCryptoKeyPairSucceeded = exports.GenerateCryptoKeyPair = void 0;
            exports.GenerateCryptoKeyPair = "Device.Secret.GenerateCryptoKeyPair";
            exports.GenerateCryptoKeyPairSucceeded = "Device.Secret.GenerateCryptoKeyPairSucceeded";
            exports.GenerateCryptoKeyPairFailed = "Device.Secret.GenerateCryptoKeyPairFailed";
            exports.RegenerateCryptoKeyPair = "Device.Secret.RegenerateCryptoKeyPair";
            exports.RegenerateCryptoKeyPairSucceeded = "Device.Secret.RegenerateCryptoKeyPairSucceeded";
            exports.RegenerateCryptoKeyPairFailed = "Device.Secret.RegenerateCryptoKeyPairFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Secrets/deviceCryptographicSaga.js
    var require_deviceCryptographicSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Secrets/deviceCryptographicSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkKeyPairValidity = exports.cryptographySaga = exports.regenerateKeyPair = exports.CryptographicKeyChanged = void 0;
            var secretActions_1 = require_secretActions();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var capable_1 = require_capable();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var socketActionCreator_1 = require_socketActionCreator();
            var Property_1 = __importDefault(require_Property());
            exports.CryptographicKeyChanged = "Secrets.CryptographicKeyChanged";
            function regenerateKeyPair(getNativeDriver, action) {
                var nativeDriver, keyPairData, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = getNativeDriver();
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                5,
                                ,
                                7
                            ]);
                            return [
                                4,
                                nativeDriver.secretManager.generateKeys()
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                nativeDriver.secretManager.getPublicKey()
                            ];
                        case 3:
                            keyPairData = _state.sent();
                            if (!keyPairData) {
                                throw new Error("Failed to get public key");
                            }
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: secretActions_1.RegenerateCryptoKeyPairSucceeded,
                                    uid: action.uid,
                                    publicKey: keyPairData.publicKeySpki
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 5:
                            error = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: secretActions_1.RegenerateCryptoKeyPairFailed,
                                    uid: action.uid
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.regenerateKeyPair = regenerateKeyPair;
            function cryptographySaga(getNativeDriver, responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SECRET_MANAGEMENT)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(secretActions_1.RegenerateCryptoKeyPair, regenerateKeyPair, getNativeDriver)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SECRETS, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "propertyStorage"
                                ], function(param) {
                                    var managementDriver, propertyStorage, isGenerated, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, propertyStorage = param.propertyStorage;
                                                return [
                                                    4,
                                                    propertyStorage.getValueOrDefault(Property_1["default"].LATEST_REPORTED_SETTINGS_CRYPTOGRAPHIC_KEY, null)
                                                ];
                                            case 1:
                                                isGenerated = _state.sent();
                                                if (!(isGenerated === null)) return [
                                                    3,
                                                    7
                                                ];
                                                _state.label = 2;
                                            case 2:
                                                _state.trys.push([
                                                    2,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                return [
                                                    4,
                                                    managementDriver.secretManager.generateKeys()
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: exports.CryptographicKeyChanged
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("generateCryptographicKeys failed", error);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 7:
                                                return [
                                                    4,
                                                    checkKeyPairValidity()
                                                ];
                                            case 8:
                                                _state.sent();
                                                _state.label = 9;
                                            case 9:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.cryptographySaga = cryptographySaga;
            function checkKeyPairValidity() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SECRETS, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver"
                                ], function(param) {
                                    var managementDriver, publicKeyData, currentDate, validityEndDate, error, error1;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver;
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    8,
                                                    ,
                                                    9
                                                ]);
                                                return [
                                                    4,
                                                    managementDriver.secretManager.getPublicKey()
                                                ];
                                            case 2:
                                                publicKeyData = _state.sent();
                                                if (!(publicKeyData && publicKeyData.keyValidity && publicKeyData.keyValidity.end)) return [
                                                    3,
                                                    7
                                                ];
                                                currentDate = /* @__PURE__ */ new Date();
                                                validityEndDate = new Date(publicKeyData.keyValidity.end);
                                                if (!(currentDate >= validityEndDate)) return [
                                                    3,
                                                    7
                                                ];
                                                _state.label = 3;
                                            case 3:
                                                _state.trys.push([
                                                    3,
                                                    6,
                                                    ,
                                                    7
                                                ]);
                                                return [
                                                    4,
                                                    managementDriver.secretManager.generateKeys()
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: exports.CryptographicKeyChanged
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 6:
                                                error = _state.sent();
                                                console.error("generateCryptographicKeys failed", error);
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 8:
                                                error1 = _state.sent();
                                                console.error("checkKeyPairValidity failed", error1);
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 9:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.checkKeyPairValidity = checkKeyPairValidity;
        }
    });
    // node_modules/@signageos/actions/dist/Device/CustomScript/deviceCustomScriptActions.js
    var require_deviceCustomScriptActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/CustomScript/deviceCustomScriptActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ExecuteCustomScriptFailed = exports.ExecuteCustomScriptSucceeded = exports.ExecuteCustomScript = void 0;
            exports.ExecuteCustomScript = "Device.CustomScript.ExecuteCustomScript";
            exports.ExecuteCustomScriptSucceeded = "Device.CustomScript.ExecuteCustomScriptSucceeded";
            exports.ExecuteCustomScriptFailed = "Device.CustomScript.ExecuteCustomScriptFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/Plugin/pluginActions.js
    var require_pluginActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Plugin/pluginActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PluginReloadFailed = exports.PluginReloadSucceeded = exports.ReloadPlugin = exports.UpdateAssignedPlugins = exports.GetAssignedPlugins = exports.UpdateAssignDevicePlugin = exports.UnAssignDevicePlugin = exports.PluginGetFailed = exports.PluginGetSucceeded = exports.PluginGet = exports.PluginSetFailed = exports.PluginSetSucceeded = exports.PluginSet = exports.AssignDevicePlugin = void 0;
            exports.AssignDevicePlugin = "Device.Plugin.AssignDevicePlugin";
            exports.PluginSet = "Device.Plugin.PluginSet";
            exports.PluginSetSucceeded = "Device.Plugin.PluginSetSucceeded";
            exports.PluginSetFailed = "Device.Plugin.PluginSetFailed";
            exports.PluginGet = "Device.Plugin.PluginGet";
            exports.PluginGetSucceeded = "Device.Plugin.PluginGetSucceeded";
            exports.PluginGetFailed = "Device.Plugin.PluginGetFailed";
            exports.UnAssignDevicePlugin = "Device.Plugin.UnAssignDevicePlugin";
            exports.UpdateAssignDevicePlugin = "Device.Plugin.UpdateAssignDevicePlugin";
            exports.GetAssignedPlugins = "Device.Plugin.GetAssignedPlugins";
            exports.UpdateAssignedPlugins = "Device.Plugin.UpdateAssignedPlugins";
            exports.ReloadPlugin = "Device.Plugin.ReloadPlugin";
            exports.PluginReloadSucceeded = "Device.Plugin.PluginReloadSucceeded";
            exports.PluginReloadFailed = "Device.Plugin.PluginReloadFailed";
        }
    });
    // node_modules/@signageos/actions/dist/Device/Runner/runnerActions.js
    var require_runnerActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Runner/runnerActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.RunnerReloadFailed = exports.RunnerReloadSucceeded = exports.ReloadRunner = exports.UpdateAssignedRunner = exports.GetAssignedRunners = exports.UpdateAssignDeviceRunner = exports.UnAssignDeviceRunner = exports.RunnerGetFailed = exports.RunnerGetSucceeded = exports.RunnerGet = exports.RunnerSetFailed = exports.RunnerSetSucceeded = exports.RunnerSet = exports.AssignDeviceRunner = void 0;
            exports.AssignDeviceRunner = "Device.Runner.AssignDeviceRunner";
            exports.RunnerSet = "Device.Runner.RunnerSet";
            exports.RunnerSetSucceeded = "Device.Runner.RunnerSetSucceeded";
            exports.RunnerSetFailed = "Device.Runner.RunnerSetFailed";
            exports.RunnerGet = "Device.Runner.RunnerGet";
            exports.RunnerGetSucceeded = "Device.Runner.RunnerGetSucceeded";
            exports.RunnerGetFailed = "Device.Runner.RunnerGetFailed";
            exports.UnAssignDeviceRunner = "Device.Runner.UnAssignDeviceRunner";
            exports.UpdateAssignDeviceRunner = "Device.Runner.UpdateAssignDeviceRunner";
            exports.GetAssignedRunners = "Device.Runner.GetAssignedRunners";
            exports.UpdateAssignedRunner = "Device.Runner.UpdateAssignedRunner";
            exports.ReloadRunner = "Device.Runner.ReloadRunner";
            exports.RunnerReloadSucceeded = "Device.Runner.RunnerReloadSucceeded";
            exports.RunnerReloadFailed = "Device.Runner.RunnerReloadFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/telemetryStatisticalAnomaly.js
    var require_telemetryStatisticalAnomaly = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/telemetryStatisticalAnomaly.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.shouldReportTelemetry = void 0;
            var getTelemetryStackStorageModule = function() {
                return require_telemetryStackStorage();
            };
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var shouldReportTelemetry = function(isDeviceSettingsChanged, telemetryType) {
                return __awaiter(void 0, void 0, void 0, function() {
                    var stackableTelemetries, shouldReturn, telemetryStack, entries;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                stackableTelemetries = [
                                    DeviceTelemetryType_1.DeviceTelemetryType.CPU_USAGE,
                                    DeviceTelemetryType_1.DeviceTelemetryType.MEMORY_USAGE
                                ];
                                shouldReturn = false;
                                if (isDeviceSettingsChanged) {
                                    shouldReturn = true;
                                }
                                if (!stackableTelemetries.includes(telemetryType)) return [
                                    3,
                                    2
                                ];
                                telemetryStack = getTelemetryStackStorageModule().telemetryStackStorage;
                                return [
                                    4,
                                    telemetryStack.getLastEntries(telemetryType, 10)
                                ];
                            case 1:
                                entries = _state.sent().map(function(item) {
                                    return item.data.usage;
                                });
                                shouldReturn = shouldSendAlert(entries.slice(0, -1), entries[entries.length - 1]);
                                _state.label = 2;
                            case 2:
                                return [
                                    2,
                                    shouldReturn
                                ];
                        }
                    });
                });
            };
            exports.shouldReportTelemetry = shouldReportTelemetry;
            var calculateMean = function(data) {
                if (data.length === 0) {
                    return 0;
                }
                var sum = data.reduce(function(acc, value) {
                    return acc + value;
                }, 0);
                return sum / data.length;
            };
            var calculateStdDev = function(data, mean) {
                if (data.length < 2) {
                    return 0;
                }
                var variance = data.reduce(function(acc, value) {
                    return acc + Math.pow(value - mean, 2);
                }, 0) / (data.length - 1);
                return Math.sqrt(variance);
            };
            var shouldSendAlert = function(historicalUsage, newUsageValue) {
                var lastOnePlusNew = [
                    historicalUsage[historicalUsage.length - 1],
                    newUsageValue
                ];
                var lastButOneAndLast = historicalUsage.slice(-2);
                var stdDevOfLastTwo = Math.round(calculateStdDev(lastOnePlusNew, calculateMean(lastOnePlusNew)) * 100) / 100;
                var stdDevOfTwoHistorical = Math.round(calculateStdDev(lastButOneAndLast, calculateMean(lastButOneAndLast)) * 100) / 100;
                if (stdDevOfLastTwo > 7) {
                    return true;
                }
                var diffBetweenTwoLastENtries = Math.abs(Math.round((stdDevOfLastTwo - stdDevOfTwoHistorical) * 100)) / 100;
                if (diffBetweenTwoLastENtries <= 0.1) {
                    return true;
                }
                return false;
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/deviceTelemetrySagas.js
    var require_deviceTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/deviceTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getTelemetryPropertyName = exports.getPropertyName = exports.createDeviceTelemetrySaga = void 0;
            var deviceAudioActions_1 = require_deviceAudioActions();
            var deviceAutoRecoveryActions_1 = require_deviceAutoRecoveryActions();
            var deviceBrightnessActions_1 = require_deviceBrightnessActions();
            var deviceDateTimeActions_1 = require_deviceDateTimeActions();
            var deviceDebugActions_1 = require_deviceDebugActions();
            var deviceExtendedManagementActions_1 = require_deviceExtendedManagementActions();
            var devicePeerRecoveryActions_1 = require_devicePeerRecoveryActions();
            var devicePolicyActions_1 = require_devicePolicyActions();
            var devicePowerActions_1 = require_devicePowerActions();
            var deviceRemoteControlActions_1 = require_deviceRemoteControlActions2();
            var deviceResolutionActions_1 = require_deviceResolutionActions();
            var deviceTelemetryActions_1 = require_deviceTelemetryActions();
            var deviceTimerActions_1 = require_deviceTimerActions();
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var wait_1 = __importDefault(require_wait());
            var lodash_1 = __importDefault(require_lodash());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var telemetryIntervals_1 = require_telemetryIntervals();
            var dependencyInjection_1 = require_dependencyInjection();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var Property_1 = __importDefault(require_Property());
            var socketActionDeliverHelper_1 = require_socketActionDeliverHelper();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var telemetryStackStorage_1 = require_telemetryStackStorage();
            var networkActions_1 = require_networkActions();
            var deviceCryptographicSaga_1 = require_deviceCryptographicSaga();
            var deviceCustomScriptActions_1 = require_deviceCustomScriptActions();
            var constants_1 = require_constants();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var pluginActions_1 = require_pluginActions();
            var runnerActions_1 = require_runnerActions();
            var telemetryStatisticalAnomaly_1 = require_telemetryStatisticalAnomaly();
            var createDeviceTelemetrySaga = function(type, responsibility, requiredCapabilities, getSettings) {
                return (0, dependencyInjection_1.withDependencies)([
                    "telemetryIntervals"
                ], function(param, responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                    var telemetryIntervals, _a2, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, capability, supported, err, succeedActions, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, succeedAction, err, telemetryIntervalType, periodMs;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                telemetryIntervals = param.telemetryIntervals;
                                if (!responsibilities.has(Responsibility_1["default"].TELEMETRY) || !responsibilities.has(responsibility)) {
                                    return [
                                        2
                                    ];
                                }
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    7,
                                    8
                                ]);
                                _iterator = requiredCapabilities[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    5
                                ];
                                capability = _step.value;
                                return [
                                    4,
                                    getManagementDriver().managementSupports(capability)
                                ];
                            case 3:
                                supported = _state.sent();
                                if (!supported) {
                                    return [
                                        2
                                    ];
                                }
                                _state.label = 4;
                            case 4:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 5:
                                return [
                                    3,
                                    8
                                ];
                            case 6:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 8:
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(Property_1["default"].TELEMETRY_INVALIDATION, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        forceTelemetryUpdate(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 9:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(Property_1["default"].TELEMETRY_TYPE_INVALIDATION, function(action) {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    if (!(action.name === type)) return [
                                                        3,
                                                        2
                                                    ];
                                                    return [
                                                        4,
                                                        forceTelemetryUpdate(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    _state.label = 2;
                                                case 2:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 10:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(devicePolicyActions_1.ApplyPolicySucceeded, function(actionType) {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    if (!(actionType.name === type)) return [
                                                        3,
                                                        2
                                                    ];
                                                    return [
                                                        4,
                                                        forceTelemetryUpdate(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    _state.label = 2;
                                                case 2:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 11:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(deviceCustomScriptActions_1.ExecuteCustomScriptSucceeded, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        getSettingsAndSendItWhenChanged(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 12:
                                _state.sent();
                                succeedActions = convertTypeToActions(type);
                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                _state.label = 13;
                            case 13:
                                _state.trys.push([
                                    13,
                                    18,
                                    19,
                                    20
                                ]);
                                _iterator1 = succeedActions[Symbol.iterator]();
                                _state.label = 14;
                            case 14:
                                if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
                                    3,
                                    17
                                ];
                                succeedAction = _step1.value;
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(succeedAction, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        forceTelemetryUpdate(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 15:
                                _state.sent();
                                _state.label = 16;
                            case 16:
                                _iteratorNormalCompletion1 = true;
                                return [
                                    3,
                                    14
                                ];
                            case 17:
                                return [
                                    3,
                                    20
                                ];
                            case 18:
                                err = _state.sent();
                                _didIteratorError1 = true;
                                _iteratorError1 = err;
                                return [
                                    3,
                                    20
                                ];
                            case 19:
                                try {
                                    if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                        _iterator1["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError1) {
                                        throw _iteratorError1;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 20:
                                telemetryIntervalType = convertTelemetryTypeToIntervalType(type);
                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals[telemetryIntervalType]) !== null && _a2 !== void 0 ? _a2 : 0;
                                return [
                                    4,
                                    (0, deviceTelemetryHelper_1.registerTelemetry)(type, periodMs, function() {
                                        var error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        4,
                                                        ,
                                                        5
                                                    ]);
                                                    if (!(type === DeviceTelemetryType_1.DeviceTelemetryType.APP_MODULES)) return [
                                                        3,
                                                        2
                                                    ];
                                                    return [
                                                        5,
                                                        _ts_values(__yieldStar(forceTelemetryUpdate(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)))
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    _state.label = 2;
                                                case 2:
                                                    return [
                                                        5,
                                                        _ts_values(__yieldStar(getSettingsAndSendItWhenChanged(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)))
                                                    ];
                                                case 3:
                                                    _state.sent();
                                                    return [
                                                        3,
                                                        5
                                                    ];
                                                case 4:
                                                    error = _state.sent();
                                                    console.error("reporting device settings ".concat(type, " failed"), error);
                                                    return [
                                                        3,
                                                        5
                                                    ];
                                                case 5:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 21:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.createDeviceTelemetrySaga = createDeviceTelemetrySaga;
            function getSettingsAndSendItWhenChanged(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                var property, cachedDeviceSettings, currentDeviceSettings, isDeviceSettingsChanged, shouldReport, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                8,
                                ,
                                9
                            ]);
                            property = getTelemetryPropertyName(type, "LATEST_REPORTED_SETTINGS");
                            return [
                                4,
                                propertyStorage.getValueOrDefault(property, void 0)
                            ];
                        case 1:
                            cachedDeviceSettings = _state.sent();
                            return [
                                4,
                                getSettings({
                                    managementDriver: getManagementDriver(),
                                    timerStorage: timerStorage,
                                    powerActionRules: powerActionRules,
                                    propertyStorage: propertyStorage,
                                    applicationVersion: applicationVersion
                                })
                            ];
                        case 2:
                            currentDeviceSettings = _state.sent();
                            return [
                                4,
                                (0, effects_1.call)([
                                    telemetryStackStorage_1.telemetryStackStorage,
                                    "pushTelemetry"
                                ], type, currentDeviceSettings)
                            ];
                        case 3:
                            _state.sent();
                            isDeviceSettingsChanged = !lodash_1["default"].isEqual(cachedDeviceSettings, currentDeviceSettings);
                            return [
                                4,
                                (0, effects_1.call)(telemetryStatisticalAnomaly_1.shouldReportTelemetry, isDeviceSettingsChanged, type)
                            ];
                        case 4:
                            shouldReport = _state.sent();
                            if (!shouldReport) return [
                                3,
                                7
                            ];
                            return [
                                4,
                                (0, socketActionDeliverHelper_1.deliver)({
                                    type: deviceTelemetryActions_1.UpdateDeviceTelemetryRecord,
                                    name: type,
                                    data: currentDeviceSettings
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                4,
                                propertyStorage.setValue(property, currentDeviceSettings)
                            ];
                        case 6:
                            _state.sent();
                            _state.label = 7;
                        case 7:
                            return [
                                3,
                                9
                            ];
                        case 8:
                            error = _state.sent();
                            console.error("getSettingsAndSendItWhenChanged and sending device telemetry ".concat(type, " failed"), error);
                            return [
                                3,
                                9
                            ];
                        case 9:
                            return [
                                2
                            ];
                    }
                });
            }
            function forceTelemetryUpdate(type, getSettings, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                var property, currentDeviceSettings, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            property = getTelemetryPropertyName(type, "LATEST_REPORTED_SETTINGS");
                            return [
                                4,
                                (0, wait_1["default"])(constants_1.DEBOUNCE + Math.random() * constants_1.FREQUENTLY)
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                6,
                                ,
                                7
                            ]);
                            return [
                                4,
                                getSettings({
                                    managementDriver: getManagementDriver(),
                                    timerStorage: timerStorage,
                                    powerActionRules: powerActionRules,
                                    propertyStorage: propertyStorage,
                                    applicationVersion: applicationVersion
                                })
                            ];
                        case 3:
                            currentDeviceSettings = _state.sent();
                            telemetryStackStorage_1.telemetryStackStorage.pushTelemetry(type, currentDeviceSettings);
                            return [
                                4,
                                (0, socketActionDeliverHelper_1.deliver)({
                                    type: deviceTelemetryActions_1.UpdateDeviceTelemetryRecord,
                                    name: type,
                                    data: currentDeviceSettings
                                }, constants_1.TIMEOUT)
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                propertyStorage.setValue(property, currentDeviceSettings)
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 6:
                            error = _state.sent();
                            console.error("forceTelemetryUpdate failed", error);
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            function getPropertyName(type, prefix) {
                if (typeof DeviceSettingsType_1.DeviceSettingsType[type] === "undefined") {
                    throw Error("Device settings type ".concat(type, " does not exist"));
                }
                var propertyKey = "".concat(prefix, "_").concat(DeviceSettingsType_1.DeviceSettingsType[type]);
                if (typeof Property_1["default"][propertyKey] === "undefined") {
                    throw Error("Property key is not valid ".concat(propertyKey));
                }
                return Property_1["default"][propertyKey];
            }
            exports.getPropertyName = getPropertyName;
            function getTelemetryPropertyName(type, prefix) {
                if (typeof DeviceTelemetryType_1.DeviceTelemetryType[type] === "undefined") {
                    throw Error("Device settings type ".concat(type, " does not exist"));
                }
                var propertyKey = "".concat(prefix, "_").concat(DeviceTelemetryType_1.DeviceTelemetryType[type]);
                if (typeof Property_1["default"][propertyKey] === "undefined") {
                    throw Error("Property key is not valid ".concat(propertyKey));
                }
                return Property_1["default"][propertyKey];
            }
            exports.getTelemetryPropertyName = getTelemetryPropertyName;
            function convertTelemetryTypeToIntervalType(type) {
                switch(type){
                    case DeviceTelemetryType_1.DeviceTelemetryType.APPLICATION_VERSION:
                        return telemetryIntervals_1.IntervalType.APPLICATION_VERSION;
                    case DeviceTelemetryType_1.DeviceTelemetryType.BRIGHTNESS:
                        return telemetryIntervals_1.IntervalType.BRIGHTNESS;
                    case DeviceTelemetryType_1.DeviceTelemetryType.DATETIME:
                        return telemetryIntervals_1.IntervalType.DATETIME;
                    case DeviceTelemetryType_1.DeviceTelemetryType.DEBUG:
                        return telemetryIntervals_1.IntervalType.DEBUG;
                    case DeviceTelemetryType_1.DeviceTelemetryType.FIRMWARE_VERSION:
                        return telemetryIntervals_1.IntervalType.FIRMWARE_VERSION;
                    case DeviceTelemetryType_1.DeviceTelemetryType.ORIENTATION:
                        return telemetryIntervals_1.IntervalType.ORIENTATION;
                    case DeviceTelemetryType_1.DeviceTelemetryType.POWER_ACTIONS_SCHEDULE:
                        return telemetryIntervals_1.IntervalType.POWER_ACTIONS_SCHEDULE;
                    case DeviceTelemetryType_1.DeviceTelemetryType.PROPRIETARY_TIMERS:
                        return telemetryIntervals_1.IntervalType.PROPRIETARY_TIMERS;
                    case DeviceTelemetryType_1.DeviceTelemetryType.REMOTE_CONTROL:
                        return telemetryIntervals_1.IntervalType.REMOTE_CONTROL;
                    case DeviceTelemetryType_1.DeviceTelemetryType.RESOLUTION:
                        return telemetryIntervals_1.IntervalType.RESOLUTION;
                    case DeviceTelemetryType_1.DeviceTelemetryType.TEMPERATURE:
                        return telemetryIntervals_1.IntervalType.TEMPERATURE;
                    case DeviceTelemetryType_1.DeviceTelemetryType.TIMERS:
                        return telemetryIntervals_1.IntervalType.TIMERS;
                    case DeviceTelemetryType_1.DeviceTelemetryType.VOLUME:
                        return telemetryIntervals_1.IntervalType.VOLUME;
                    case DeviceTelemetryType_1.DeviceTelemetryType.BUNDLED_APPLET:
                        return telemetryIntervals_1.IntervalType.BUNDLED_APPLET;
                    case DeviceTelemetryType_1.DeviceTelemetryType.PROXY:
                        return telemetryIntervals_1.IntervalType.PROXY;
                    case DeviceTelemetryType_1.DeviceTelemetryType.WIFI_STRENGTH:
                        return telemetryIntervals_1.IntervalType.WIFI_STRENGTH;
                    case DeviceTelemetryType_1.DeviceTelemetryType.AUTO_RECOVERY:
                        return telemetryIntervals_1.IntervalType.AUTO_RECOVERY;
                    case DeviceTelemetryType_1.DeviceTelemetryType.PEER_RECOVERY:
                        return telemetryIntervals_1.IntervalType.PEER_RECOVERY;
                    case DeviceTelemetryType_1.DeviceTelemetryType.MANAGEMENT_CAPABILITIES:
                        return telemetryIntervals_1.IntervalType.MANAGEMENT_CAPABILITIES;
                    case DeviceTelemetryType_1.DeviceTelemetryType.NETWORK_INTERFACES:
                        return telemetryIntervals_1.IntervalType.NETWORK_INTERFACES;
                    case DeviceTelemetryType_1.DeviceTelemetryType.DISPLAY_POWER_ON:
                        return telemetryIntervals_1.IntervalType.DISPLAY_POWER_ON;
                    case DeviceTelemetryType_1.DeviceTelemetryType.APP_MODULES:
                        return telemetryIntervals_1.IntervalType.APP_MODULES;
                    case DeviceTelemetryType_1.DeviceTelemetryType.FEATURE_FLAGS:
                        return telemetryIntervals_1.IntervalType.FEATURE_FLAGS;
                    case DeviceTelemetryType_1.DeviceTelemetryType.CRYPTOGRAPHIC_KEY:
                        return telemetryIntervals_1.IntervalType.CRYPTOGRAPHIC_KEY;
                    case DeviceTelemetryType_1.DeviceTelemetryType.EXTENDED_MANAGEMENT:
                        return telemetryIntervals_1.IntervalType.EXTENDED_MANAGEMENT_URL;
                    case DeviceTelemetryType_1.DeviceTelemetryType.PLUGIN:
                        return telemetryIntervals_1.IntervalType.PLUGIN;
                    case DeviceTelemetryType_1.DeviceTelemetryType.RUNNER:
                        return telemetryIntervals_1.IntervalType.RUNNER;
                    case DeviceTelemetryType_1.DeviceTelemetryType.RUNNER_CUSTOM:
                        return telemetryIntervals_1.IntervalType.RUNNER_CUSTOM;
                    case DeviceTelemetryType_1.DeviceTelemetryType.MEMORY_USAGE:
                        return telemetryIntervals_1.IntervalType.MEMORY_USAGE;
                    case DeviceTelemetryType_1.DeviceTelemetryType.CPU_USAGE:
                        return telemetryIntervals_1.IntervalType.CPU_USAGE;
                    case DeviceTelemetryType_1.DeviceTelemetryType.INSTALLED_PACKAGES:
                        return telemetryIntervals_1.IntervalType.INSTALLED_PACKAGES;
                    case DeviceTelemetryType_1.DeviceTelemetryType.SUPRA:
                        return telemetryIntervals_1.IntervalType.SUPRA;
                    default:
                        return telemetryIntervals_1.IntervalType.DEFAULT;
                }
            }
            function convertTypeToActions(type) {
                switch(type){
                    case DeviceTelemetryType_1.DeviceTelemetryType.BRIGHTNESS:
                        return [
                            deviceBrightnessActions_1.SetDeviceBrightnessSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.DATETIME:
                        return [
                            deviceDateTimeActions_1.UpdateDeviceTimeSettingsSucceed
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.DEBUG:
                        return [
                            deviceDebugActions_1.SetDeviceDebugSettingsSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.ORIENTATION:
                        return [
                            deviceResolutionActions_1.DeviceResizeSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.POWER_ACTIONS_SCHEDULE:
                        return [
                            devicePowerActions_1.SchedulePowerActionSucceed,
                            devicePowerActions_1.CancelScheduledPowerActionSucceed
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.PROPRIETARY_TIMERS:
                        return [
                            deviceTimerActions_1.SetDeviceTimerSettingsSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.REMOTE_CONTROL:
                        return [
                            deviceRemoteControlActions_1.SetDeviceRemoteControlSettingsSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.RESOLUTION:
                        return [
                            deviceResolutionActions_1.DeviceResizeSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.TIMERS:
                        return [
                            deviceTimerActions_1.SetDeviceTimerSettingsSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.VOLUME:
                        return [
                            deviceAudioActions_1.SetDeviceVolumeSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.AUTO_RECOVERY:
                        return [
                            deviceAutoRecoveryActions_1.SetDeviceAutoRecoverySucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.PEER_RECOVERY:
                        return [
                            devicePeerRecoveryActions_1.SetDevicePeerRecoverySucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.EXTENDED_MANAGEMENT:
                        return [
                            deviceExtendedManagementActions_1.SetExtendedManagementUrlSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.NETWORK_INTERFACES:
                        return [
                            networkActions_1.NetworkStatusChanged
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.DISPLAY_POWER_ON:
                        return [
                            devicePowerActions_1.PerformPowerActionSucceed,
                            devicePowerActionActions_1.TriggerDisplayPowerOn,
                            devicePowerActionActions_1.TriggerDisplayPowerOff
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.CRYPTOGRAPHIC_KEY:
                        return [
                            deviceCryptographicSaga_1.CryptographicKeyChanged
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.PLUGIN:
                        return [
                            pluginActions_1.PluginGetSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.RUNNER:
                        return [
                            runnerActions_1.RunnerGetSucceeded
                        ];
                    case DeviceTelemetryType_1.DeviceTelemetryType.RUNNER_CUSTOM:
                        return [
                            runnerActions_1.RunnerGetSucceeded
                        ];
                    default:
                        return [];
                }
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Capabilities/deviceCapabilitiesTelemetrySagas.js
    var require_deviceCapabilitiesTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Capabilities/deviceCapabilitiesTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getSupportedManagementCapabilities = exports.getSupportedCapabilities = exports.telemetryManagementCapabilitiesSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            exports.telemetryManagementCapabilitiesSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.MANAGEMENT_CAPABILITIES, Responsibility_1["default"].CAPABILITIES_MANAGEMENT, [], getSupportedCapabilities);
            function getSupportedCapabilities(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var supportedCapabilities, isCapable;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getSupportedManagementCapabilities(managementDriver)
                                ];
                            case 1:
                                supportedCapabilities = _state.sent();
                                isCapable = {
                                    capable: supportedCapabilities
                                };
                                return [
                                    2,
                                    isCapable
                                ];
                        }
                    });
                });
            }
            exports.getSupportedCapabilities = getSupportedCapabilities;
            function getSupportedManagementCapabilities(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var supportedCapabilities, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, capability, supports, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                supportedCapabilities = [];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    7,
                                    8
                                ]);
                                _iterator = Object.values(ManagementCapability_1["default"])[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    5
                                ];
                                capability = _step.value;
                                return [
                                    4,
                                    managementDriver.managementSupports(capability)
                                ];
                            case 3:
                                supports = _state.sent();
                                if (supports) {
                                    supportedCapabilities.push(capability);
                                }
                                _state.label = 4;
                            case 4:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 5:
                                return [
                                    3,
                                    8
                                ];
                            case 6:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 8:
                                return [
                                    2,
                                    supportedCapabilities
                                ];
                        }
                    });
                });
            }
            exports.getSupportedManagementCapabilities = getSupportedManagementCapabilities;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Management/appletManagementHandler.js
    var require_appletManagementHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Management/appletManagementHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleManagementMessage = void 0;
            var Orientation_1 = __importDefault(require_Orientation());
            var VideoOrientation_1 = __importDefault(require_VideoOrientation());
            var convertWeekday_1 = require_convertWeekday();
            var object_1 = require_object2();
            var debug_1 = __importDefault(require_browser2());
            var moment_timezone_1 = __importDefault(require_moment_timezone4());
            var dependencyInjection_1 = require_dependencyInjection();
            var dateTimeFacade_1 = require_dateTimeFacade();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var TimerType_1 = __importStar(require_TimerType());
            var Property_1 = __importDefault(require_Property());
            var propertyStorage_1 = __importDefault(require_propertyStorage());
            var processCallback_1 = __importDefault(require_processCallback());
            var controlEnablingSagas_1 = require_controlEnablingSagas();
            var security_1 = require_security();
            var AppletSecurityError_1 = __importDefault(require_AppletSecurityError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var ErrorSuggestions_1 = __importDefault(require_ErrorSuggestions());
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var deviceCapabilitiesTelemetrySagas_1 = require_deviceCapabilitiesTelemetrySagas();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Applet:Management:appletManagementHandler");
            var PREFIX2 = "management";
            var DEBUG_PREFIX = "debug";
            function handleManagementMessage(messageTypePrefix, data, managementDriver, frontDriver, propertyStorage, applicationVersion, timerStorage) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".supports"):
                                    return [
                                        3,
                                        1
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".initialize"):
                                    return [
                                        3,
                                        3
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_application_type"):
                                    return [
                                        3,
                                        5
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".app_upgrade"):
                                    return [
                                        3,
                                        7
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_application_version"):
                                    return [
                                        3,
                                        9
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_model"):
                                    return [
                                        3,
                                        11
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_serial_number"):
                                    return [
                                        3,
                                        13
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_battery_status"):
                                    return [
                                        3,
                                        15
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_current_temperature"):
                                    return [
                                        3,
                                        17
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_brand"):
                                    return [
                                        3,
                                        19
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".upload_screenshot"):
                                    return [
                                        3,
                                        21
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".firmware_upgrade"):
                                    return [
                                        3,
                                        23
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_firmware_version"):
                                    return [
                                        3,
                                        25
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_firmware_type"):
                                    return [
                                        3,
                                        27
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_volume"):
                                    return [
                                        3,
                                        29
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_volume"):
                                    return [
                                        3,
                                        31
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_screen_brightness"):
                                    return [
                                        3,
                                        33
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_screen_brightness"):
                                    return [
                                        3,
                                        35
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".install_package"):
                                    return [
                                        3,
                                        37
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".stop_package"):
                                    return [
                                        3,
                                        39
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".clear_package_data"):
                                    return [
                                        3,
                                        41
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".reboot_system"):
                                    return [
                                        3,
                                        43
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".restart_app"):
                                    return [
                                        3,
                                        45
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".power_on_display"):
                                    return [
                                        3,
                                        47
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".power_off_display"):
                                    return [
                                        3,
                                        49
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_is_display_power_on"):
                                    return [
                                        3,
                                        51
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".resize_screen"):
                                    return [
                                        3,
                                        53
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_screen_orientation"):
                                    return [
                                        3,
                                        55
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_timers"):
                                    return [
                                        3,
                                        57
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_timer"):
                                    return [
                                        3,
                                        59
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_proprietary_timers"):
                                    return [
                                        3,
                                        61
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_proprietary_timer"):
                                    return [
                                        3,
                                        63
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".delete_proprietary_timer"):
                                    return [
                                        3,
                                        65
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_remote_control_enabled"):
                                    return [
                                        3,
                                        67
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_is_remote_control_enabled"):
                                    return [
                                        3,
                                        69
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_current_time_with_timezone"):
                                    return [
                                        3,
                                        71
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_current_time_with_timezone"):
                                    return [
                                        3,
                                        73
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_ntp_time_with_timezone"):
                                    return [
                                        3,
                                        75
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_debug"):
                                    return [
                                        3,
                                        77
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".is_enabled"):
                                    return [
                                        3,
                                        79
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".reset_settings"):
                                    return [
                                        3,
                                        81
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".factory_reset"):
                                    return [
                                        3,
                                        83
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_pin_code"):
                                    return [
                                        3,
                                        85
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_pin_code"):
                                    return [
                                        3,
                                        87
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_peer_recovery"):
                                    return [
                                        3,
                                        89
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_peer_recovery"):
                                    return [
                                        3,
                                        91
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_auto_recovery"):
                                    return [
                                        3,
                                        93
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_extendedmanagement_url"):
                                    return [
                                        3,
                                        95
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_extendedmanagement_url"):
                                    return [
                                        3,
                                        97
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_auto_recovery"):
                                    return [
                                        3,
                                        99
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(DEBUG_PREFIX, ".is_remote_enabled"):
                                    return [
                                        3,
                                        101
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_hardware_acceleration"):
                                    return [
                                        3,
                                        103
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".is_hardware_acceleration_enabled"):
                                    return [
                                        3,
                                        105
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".set_scheduled_reboot"):
                                    return [
                                        3,
                                        107
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_scheduled_reboots"):
                                    return [
                                        3,
                                        109
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".remove_scheduled_reboot"):
                                    return [
                                        3,
                                        111
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".clear_scheduled_reboots"):
                                    return [
                                        3,
                                        113
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".get_capabilities"):
                                    return [
                                        3,
                                        115
                                    ];
                            }
                            return [
                                3,
                                117
                            ];
                        case 1:
                            return [
                                4,
                                isCapabilitySupported(data, managementDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleInitialization(data, managementDriver)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleGetApplicationType(managementDriver)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleAppUpgrade(data, managementDriver)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                Promise.resolve({
                                    applicationVersion: applicationVersion
                                })
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                handleGetModel(managementDriver)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                handleGetSerialNumber(managementDriver)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                handleGetBatteryStatus(managementDriver)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                4,
                                handleGetCurrentTemperature(managementDriver)
                            ];
                        case 18:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 19:
                            return [
                                4,
                                handleGetBrand(managementDriver)
                            ];
                        case 20:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 21:
                            return [
                                4,
                                handleUploadScreenshot(data, managementDriver)
                            ];
                        case 22:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 23:
                            return [
                                4,
                                handleFirmwareUpgrade(data, managementDriver)
                            ];
                        case 24:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 25:
                            return [
                                4,
                                handleGetFirmwareVersion(managementDriver)
                            ];
                        case 26:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 27:
                            return [
                                4,
                                handleGetFirmwareType(managementDriver)
                            ];
                        case 28:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 29:
                            return [
                                4,
                                handleGetVolume(managementDriver)
                            ];
                        case 30:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 31:
                            return [
                                4,
                                handleSetVolume(data, managementDriver)
                            ];
                        case 32:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 33:
                            return [
                                4,
                                handleSetScreenBrightness(data, managementDriver, propertyStorage)
                            ];
                        case 34:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 35:
                            return [
                                4,
                                handleGetScreenBrightness(managementDriver)
                            ];
                        case 36:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 37:
                            return [
                                4,
                                handleInstallPackage(data, managementDriver)
                            ];
                        case 38:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 39:
                            return [
                                4,
                                handleStopPackage(data, managementDriver)
                            ];
                        case 40:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 41:
                            return [
                                4,
                                handleClearPackageData(data, managementDriver)
                            ];
                        case 42:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 43:
                            return [
                                4,
                                handleRebootSystem(managementDriver)
                            ];
                        case 44:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 45:
                            return [
                                4,
                                handleRestartApp(managementDriver)
                            ];
                        case 46:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 47:
                            return [
                                4,
                                handlePowerOnDisplay(managementDriver)
                            ];
                        case 48:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 49:
                            return [
                                4,
                                handlePowerOffDisplay(managementDriver)
                            ];
                        case 50:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 51:
                            return [
                                4,
                                handleGetIsDisplayPowerOn(managementDriver)
                            ];
                        case 52:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 53:
                            return [
                                4,
                                handleResizeScreen(data, managementDriver)
                            ];
                        case 54:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 55:
                            return [
                                4,
                                handleGetScreenOrientation(managementDriver)
                            ];
                        case 56:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 57:
                            return [
                                4,
                                handleGetTimers(managementDriver)
                            ];
                        case 58:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 59:
                            return [
                                4,
                                handleSetTimer(data, managementDriver)
                            ];
                        case 60:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 61:
                            return [
                                4,
                                handleGetProprietaryTimers(timerStorage)
                            ];
                        case 62:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 63:
                            return [
                                4,
                                handleSetProprietaryTimer(data, timerStorage)
                            ];
                        case 64:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 65:
                            return [
                                4,
                                handleDeleteProprietaryTimer(data, timerStorage)
                            ];
                        case 66:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 67:
                            return [
                                4,
                                handleSetRemoteControlEnabled(data, managementDriver)
                            ];
                        case 68:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 69:
                            return [
                                4,
                                handleGetIsRemoteControlEnable(managementDriver)
                            ];
                        case 70:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 71:
                            return [
                                4,
                                handleGetCurrentTimeWithTimezone(managementDriver)
                            ];
                        case 72:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 73:
                            return [
                                4,
                                handleSetManualTimeWithTimezone(data, managementDriver)
                            ];
                        case 74:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 75:
                            return [
                                4,
                                handleSetNTPTimeWithTimezone(data, managementDriver)
                            ];
                        case 76:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 77:
                            return [
                                4,
                                handleSetDebug(data, managementDriver)
                            ];
                        case 78:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 79:
                            return [
                                4,
                                handleIsDebugEnabled(managementDriver)
                            ];
                        case 80:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 81:
                            return [
                                4,
                                handleResetSettings(managementDriver)
                            ];
                        case 82:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 83:
                            return [
                                4,
                                handleFactoryReset(managementDriver)
                            ];
                        case 84:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 85:
                            return [
                                5,
                                _ts_values(__yieldStar(handleSetPinCode(frontDriver, data)))
                            ];
                        case 86:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 87:
                            return [
                                4,
                                handleGetPinCode(frontDriver)
                            ];
                        case 88:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 89:
                            return [
                                4,
                                handleGetPeerRecovery(managementDriver)
                            ];
                        case 90:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 91:
                            return [
                                4,
                                handleSetPeerRecovery(data, managementDriver)
                            ];
                        case 92:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 93:
                            return [
                                4,
                                handleGetAutoRecovery(managementDriver)
                            ];
                        case 94:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 95:
                            return [
                                4,
                                handleGetExtendedManagementUrl(managementDriver)
                            ];
                        case 96:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 97:
                            return [
                                4,
                                handleSetExtendedManagementUrl(data, managementDriver)
                            ];
                        case 98:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 99:
                            return [
                                4,
                                handleSetAutoRecovery(data, managementDriver)
                            ];
                        case 100:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 101:
                            return [
                                4,
                                handleRemoteDebug(propertyStorage)
                            ];
                        case 102:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 103:
                            return [
                                4,
                                handleSetHardwareAcceleration(data, managementDriver)
                            ];
                        case 104:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 105:
                            return [
                                4,
                                handleIsHardwareAccelerationEnabled(managementDriver)
                            ];
                        case 106:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 107:
                            return [
                                4,
                                handleSetScheduledRebootAction(data, managementDriver)
                            ];
                        case 108:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 109:
                            return [
                                4,
                                handleGetScheduledRebootActions(managementDriver)
                            ];
                        case 110:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 111:
                            return [
                                4,
                                handleRemoveScheduledRebootAction(data, managementDriver)
                            ];
                        case 112:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 113:
                            return [
                                4,
                                handleClearScheduledRebootActions(managementDriver)
                            ];
                        case 114:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 115:
                            return [
                                4,
                                handleGetManagementCapabilities(managementDriver)
                            ];
                        case 116:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 117:
                            return [
                                2,
                                null
                            ];
                        case 118:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleManagementMessage = handleManagementMessage;
            function isCapabilitySupported(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var capability, supports;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                capability = ManagementCapability_1["default"][data.capability];
                                if (typeof capability === "undefined") {
                                    throw new Error("Invalid management capability");
                                }
                                return [
                                    4,
                                    managementDriver.managementSupports(capability)
                                ];
                            case 1:
                                supports = _state.sent();
                                return [
                                    2,
                                    {
                                        supports: supports
                                    }
                                ];
                        }
                    });
                });
            }
            function handleInitialization(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.initialize(data.staticBaseUrl)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetApplicationType(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var applicationType;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getApplicationType()
                                ];
                            case 1:
                                applicationType = _state.sent();
                                return [
                                    2,
                                    {
                                        applicationType: applicationType
                                    }
                                ];
                        }
                    });
                });
            }
            function handleAppUpgrade(data, managementDriver) {
                var baseUrl, version, directUri, finalizeCallback, url, staticBaseUrl;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            baseUrl = data.baseUrl, version = data.version, directUri = data.directUri;
                            if (directUri && (baseUrl || version)) {
                                throw new Error("Invalid arguments for upgrade fw");
                            }
                            finalizeCallback = void 0;
                            url = baseUrl || directUri;
                            if (!!url) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                (0, dependencyInjection_1.awaitDependencies)([
                                    "staticBaseUrl"
                                ])
                            ];
                        case 1:
                            staticBaseUrl = _state.sent().staticBaseUrl;
                            return [
                                4,
                                managementDriver.appUpgrade(staticBaseUrl, version)
                            ];
                        case 2:
                            finalizeCallback = _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            return [
                                4,
                                managementDriver.appUpgrade(url, version)
                            ];
                        case 4:
                            finalizeCallback = _state.sent();
                            _state.label = 5;
                        case 5:
                            (0, processCallback_1["default"])(finalizeCallback, {
                                debugTag: "appUpgrade()"
                            });
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleGetModel(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var model;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemInfo.getModel()
                                ];
                            case 1:
                                model = _state.sent();
                                return [
                                    2,
                                    {
                                        model: model
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetSerialNumber(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var serialNumber;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemInfo.getSerialNumber()
                                ];
                            case 1:
                                serialNumber = _state.sent();
                                return [
                                    2,
                                    {
                                        serialNumber: serialNumber
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetBrand(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var brand;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemInfo.getBrand()
                                ];
                            case 1:
                                brand = _state.sent();
                                return [
                                    2,
                                    {
                                        brand: brand
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetBatteryStatus(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var batteryStatus;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.batteryGetStatus()
                                ];
                            case 1:
                                batteryStatus = _state.sent();
                                return [
                                    2,
                                    {
                                        batteryStatus: batteryStatus
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetCurrentTemperature(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var currentTemperature;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getCurrentTemperature()
                                ];
                            case 1:
                                currentTemperature = _state.sent();
                                return [
                                    2,
                                    {
                                        currentTemperature: currentTemperature
                                    }
                                ];
                        }
                    });
                });
            }
            function handleUploadScreenshot(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var request, _ref, url, imageInformations;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                request = {
                                    baseUrl: data.uploadBaseUrl,
                                    headers: data.headers,
                                    computeHash: data.computeHash
                                };
                                return [
                                    4,
                                    managementDriver.screenshotUpload(request)
                                ];
                            case 1:
                                _ref = _state.sent(), url = _ref.url, imageInformations = _ref.imageInformations;
                                return [
                                    2,
                                    {
                                        screenshotUrl: url,
                                        aHash: imageInformations === null || imageInformations === void 0 ? void 0 : imageInformations.aHash
                                    }
                                ];
                        }
                    });
                });
            }
            function handleFirmwareUpgrade(data, managementDriver) {
                var baseUrl, version, directUri, finalizeCallback, url, staticBaseUrl;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            baseUrl = data.baseUrl, version = data.version, directUri = data.directUri;
                            if (directUri && (baseUrl || version)) {
                                throw new Error("Invalid arguments for upgrade fw");
                            }
                            finalizeCallback = void 0;
                            url = baseUrl || directUri;
                            if (!!url) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                (0, dependencyInjection_1.awaitDependencies)([
                                    "staticBaseUrl"
                                ])
                            ];
                        case 1:
                            staticBaseUrl = _state.sent().staticBaseUrl;
                            return [
                                4,
                                managementDriver.firmwareUpgrade(staticBaseUrl, version)
                            ];
                        case 2:
                            finalizeCallback = _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            return [
                                4,
                                managementDriver.firmwareUpgrade(url, version)
                            ];
                        case 4:
                            finalizeCallback = _state.sent();
                            _state.label = 5;
                        case 5:
                            (0, processCallback_1["default"])(finalizeCallback, {
                                debugTag: "firmwareUpgrade()"
                            });
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleGetFirmwareVersion(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var firmwareVersion;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.firmwareGetVersion()
                                ];
                            case 1:
                                firmwareVersion = _state.sent();
                                return [
                                    2,
                                    {
                                        firmwareVersion: firmwareVersion
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetFirmwareType(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var firmwareType;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.firmwareGetType()
                                ];
                            case 1:
                                firmwareType = _state.sent();
                                return [
                                    2,
                                    {
                                        firmwareType: firmwareType
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetVolume(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var volume;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getVolume()
                                ];
                            case 1:
                                volume = _state.sent();
                                return [
                                    2,
                                    {
                                        volume: volume
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetScreenBrightness(data, managementDriver, propertyStorage) {
                return __awaiter(this, void 0, void 0, function() {
                    var timeFrom1, brightness1, timeFrom2, brightness2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                timeFrom1 = data.timeFrom1, brightness1 = data.brightness1, timeFrom2 = data.timeFrom2, brightness2 = data.brightness2;
                                return [
                                    4,
                                    managementDriver.screenSetBrightness(timeFrom1, brightness1, timeFrom2, brightness2)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    propertyStorage.setValue(Property_1["default"].BRIGHTNESS_SETTINGS, {
                                        timeFrom1: timeFrom1,
                                        brightness1: brightness1,
                                        timeFrom2: timeFrom2,
                                        brightness2: brightness2
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleInstallPackage(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var baseUrl, packageName, version, build;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                baseUrl = data.baseUrl, packageName = data.packageName, version = data.version, build = data.build;
                                return [
                                    4,
                                    managementDriver.packageInstall(baseUrl, packageName, version, build)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleStopPackage(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var packageName, stopped;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                packageName = data.packageName;
                                return [
                                    4,
                                    managementDriver.packageStop(packageName)
                                ];
                            case 1:
                                stopped = _state.sent();
                                return [
                                    2,
                                    {
                                        stopped: stopped
                                    }
                                ];
                        }
                    });
                });
            }
            function handleClearPackageData(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var packageName;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                packageName = data.packageName;
                                return [
                                    4,
                                    managementDriver.packageClearData(packageName)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetScreenBrightness(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var screenBrightness;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.screenGetBrightness()
                                ];
                            case 1:
                                screenBrightness = _state.sent();
                                return [
                                    2,
                                    {
                                        screenBrightness: screenBrightness
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetVolume(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var volume;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                volume = data.volume;
                                return [
                                    4,
                                    managementDriver.setVolume(volume)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleRebootSystem(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.systemReboot()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleRestartApp(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.appRestart()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handlePowerOnDisplay(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.displayPowerOn()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handlePowerOffDisplay(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.displayPowerOff()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetIsDisplayPowerOn(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isDisplayPowerOn;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.displayIsPowerOn()
                                ];
                            case 1:
                                isDisplayPowerOn = _state.sent();
                                return [
                                    2,
                                    {
                                        isDisplayPowerOn: isDisplayPowerOn
                                    }
                                ];
                        }
                    });
                });
            }
            function handleResizeScreen(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var baseUrl, currentVersion, resolutionData, orientation, resolution, videoOrientation, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                baseUrl = data.baseUrl, currentVersion = data.currentVersion, resolutionData = data.resolution;
                                orientation = Orientation_1["default"][data.orientation];
                                resolution = void 0;
                                if (resolutionData === "FULL_HD") {
                                    resolution = {
                                        width: 1920,
                                        height: 1080
                                    };
                                } else if (resolutionData === "HD_READY") {
                                    resolution = {
                                        width: 1280,
                                        height: 720
                                    };
                                } else if (_type_of(resolutionData.width) !== void 0 && _type_of(resolutionData.height) !== void 0) {
                                    resolution = {
                                        width: resolutionData.width,
                                        height: resolutionData.height,
                                        framerate: resolutionData.framerate
                                    };
                                }
                                videoOrientation = void 0;
                                if (typeof orientation === "undefined") {
                                    throw new Error("Invalid  orientation");
                                }
                                if (typeof resolution === "undefined") {
                                    throw new Error("Invalid resolution");
                                }
                                if (data.videoOrientation) {
                                    videoOrientation = VideoOrientation_1["default"][data.videoOrientation];
                                    if (typeof videoOrientation === "undefined") {
                                        throw new Error("Invalid video orientation");
                                    }
                                }
                                return [
                                    4,
                                    managementDriver.screenResize(baseUrl, orientation, resolution, currentVersion, videoOrientation)
                                ];
                            case 1:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback, {
                                    debugTag: "screenResize()"
                                });
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetScreenOrientation(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var currentOrientation;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                debug4("handleGetScreenOrientation");
                                return [
                                    4,
                                    managementDriver.getCurrentOrientation()
                                ];
                            case 1:
                                currentOrientation = _state.sent();
                                return [
                                    2,
                                    {
                                        screenOrientation: Orientation_1["default"][currentOrientation]
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetTimers(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var timers, appletTimers;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getTimers()
                                ];
                            case 1:
                                timers = _state.sent();
                                appletTimers = timers.map(function(timer) {
                                    return {
                                        type: (0, TimerType_1.numberToNativeTimerType)(timer.type),
                                        timeOn: timer.timeOn,
                                        timeOff: timer.timeOff,
                                        weekdays: convertWeekday_1.convertWeekday.fromTimerWeekday(timer.weekdays).toShort(),
                                        volume: timer.volume
                                    };
                                });
                                return [
                                    2,
                                    {
                                        timers: appletTimers
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetTimer(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var timeOn, timeOff, volume, timerType, weekdays;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                timeOn = data.timeOn, timeOff = data.timeOff, volume = data.volume;
                                timerType = TimerType_1["default"][data.timerType];
                                weekdays = convertWeekday_1.convertWeekday.fromShort(data.weekdays).toTimerWeekday();
                                if (typeof timerType === "undefined") {
                                    throw new Error("Invalid timer type");
                                }
                                weekdays.forEach(function(weekday) {
                                    if (typeof weekday === "undefined") {
                                        throw new Error("Invalid timer week day");
                                    }
                                });
                                return [
                                    4,
                                    managementDriver.setTimer(timerType, timeOn, timeOff, weekdays, volume)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetProprietaryTimers(timerStorage) {
                return __awaiter(this, void 0, void 0, function() {
                    var timersSettingsObject, timerTypes, timers;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    timerStorage.getShortTimers()
                                ];
                            case 1:
                                timersSettingsObject = _state.sent();
                                timerTypes = (0, object_1.getObjectKeys)(timersSettingsObject);
                                timers = timerTypes.map(function(timerType) {
                                    var timerSettings = timersSettingsObject[timerType];
                                    return {
                                        type: timerSettings.type,
                                        timeOn: timerSettings.timeOn,
                                        timeOff: timerSettings.timeOff,
                                        weekdays: timerSettings.weekdays
                                    };
                                });
                                return [
                                    2,
                                    {
                                        timers: timers
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetProprietaryTimer(data, timerStorage) {
                return __awaiter(this, void 0, void 0, function() {
                    var timeOn, timeOff, timerType, weekdays, keepAppletRunning;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                timeOn = data.timeOn, timeOff = data.timeOff, timerType = data.timerType, weekdays = data.weekdays, keepAppletRunning = data.keepAppletRunning;
                                if (timeOn === null && timeOff === null) {
                                    return [
                                        2,
                                        handleDeleteProprietaryTimer(data, timerStorage)
                                    ];
                                }
                                if (typeof timerType === "undefined") {
                                    throw new Error("Invalid timer type");
                                }
                                weekdays.forEach(function(weekday) {
                                    if (typeof weekday === "undefined") {
                                        throw new Error("Invalid timer week day");
                                    }
                                });
                                return [
                                    4,
                                    timerStorage.setShortTimer({
                                        type: timerType,
                                        timeOn: timeOn,
                                        timeOff: timeOff,
                                        weekdays: weekdays,
                                        keepAppletRunning: keepAppletRunning
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleDeleteProprietaryTimer(data, timerStorage) {
                return __awaiter(this, void 0, void 0, function() {
                    var timerType;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                timerType = data.timerType;
                                if (typeof timerType === "undefined") {
                                    throw new Error("Invalid timer type");
                                }
                                return [
                                    4,
                                    timerStorage.deleteShortTimer(timerType)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetRemoteControlEnabled(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var enabled, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                enabled = data.enabled;
                                return [
                                    4,
                                    managementDriver.remoteControlSetEnabled(enabled)
                                ];
                            case 1:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetIsRemoteControlEnable(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isRemoteControlEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.remoteControlIsEnabled()
                                ];
                            case 1:
                                isRemoteControlEnabled = _state.sent();
                                return [
                                    2,
                                    {
                                        isRemoteControlEnabled: isRemoteControlEnabled
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetCurrentTimeWithTimezone(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var currentTimeWithTimezone;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, dateTimeFacade_1.getCurrentTime)(managementDriver)
                                ];
                            case 1:
                                currentTimeWithTimezone = _state.sent();
                                return [
                                    2,
                                    {
                                        currentTimeWithTimezone: {
                                            currentDate: new Date(currentTimeWithTimezone.timestamp),
                                            timezone: currentTimeWithTimezone.timezone || void 0,
                                            ntpServer: currentTimeWithTimezone.ntpServer,
                                            ntpEnabled: currentTimeWithTimezone.ntpEnabled
                                        }
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetManualTimeWithTimezone(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var timestampMs, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (data.currentDate instanceof Date) {
                                    timestampMs = (0, moment_timezone_1["default"])(data.currentDate).valueOf();
                                } else {
                                    timestampMs = moment_timezone_1["default"].tz({
                                        year: data.currentDate.year,
                                        month: data.currentDate.month - 1,
                                        day: data.currentDate.day,
                                        hour: data.currentDate.hour,
                                        minute: data.currentDate.minute,
                                        second: data.currentDate.second
                                    }, data.timezone).valueOf();
                                }
                                return [
                                    4,
                                    (0, dateTimeFacade_1.setNtpOrManualTime)(managementDriver, timestampMs, data.timezone)
                                ];
                            case 1:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback, {
                                    debugTag: "setNtpOrManualTime()"
                                });
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetNTPTimeWithTimezone(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var newCurrentMoment, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                newCurrentMoment = (0, moment_timezone_1["default"])();
                                return [
                                    4,
                                    (0, dateTimeFacade_1.setNtpOrManualTime)(managementDriver, newCurrentMoment.valueOf(), data.timezone, data.ntpServer)
                                ];
                            case 1:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback, {
                                    debugTag: "setNtpOrManualTime()"
                                });
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetDebug(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var enabled, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                enabled = data.enabled;
                                return [
                                    4,
                                    managementDriver.setDebug(enabled)
                                ];
                            case 1:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback, {
                                    debugTag: "setDebug()"
                                });
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleIsDebugEnabled(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.isDebugEnabled()
                                ];
                            case 1:
                                isEnabled = _state.sent();
                                return [
                                    2,
                                    {
                                        isEnabled: isEnabled
                                    }
                                ];
                        }
                    });
                });
            }
            function handleResetSettings(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.resetSettings()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleFactoryReset(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.factoryReset()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetPinCode(frontDriver, param) {
                var pinCode;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            pinCode = param.pinCode;
                            if (pinCode === security_1.DEFAULT_OPEN_PIN_CODE) {
                                throw new AppletSecurityError_1["default"]({
                                    kind: "appletSecurityError",
                                    code: ErrorCodes_1["default"].SECURITY_PIN_CODE_0000,
                                    message: "The PIN code 0000 is not allowed."
                                });
                            }
                            return [
                                4,
                                frontDriver.security.setPin(pinCode)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, controlEnablingSagas_1.putDevicePinChanged)(pinCode)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleGetPinCode(frontDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var pinCode;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    frontDriver.security.getPin()
                                ];
                            case 1:
                                pinCode = _state.sent();
                                if (!pinCode) {
                                    throw new AppletSecurityError_1["default"]({
                                        kind: "appletSecurityError",
                                        code: ErrorCodes_1["default"].SECURITY_PIN_CODE_NOT_SET_YET,
                                        message: "The PIN code was not set yet.",
                                        suggestion: ErrorSuggestions_1["default"].SECURITY_PIN_CODE_NOT_SET_YET
                                    });
                                }
                                return [
                                    2,
                                    {
                                        pinCode: pinCode
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetPeerRecovery(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            managementDriver.getPeerRecovery()
                        ];
                    });
                });
            }
            function handleGetManagementCapabilities(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var capabilities;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, deviceCapabilitiesTelemetrySagas_1.getSupportedManagementCapabilities)(managementDriver)
                                ];
                            case 1:
                                capabilities = _state.sent();
                                return [
                                    2,
                                    {
                                        capabilities: capabilities
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetPeerRecovery(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.setPeerRecovery(data.enabled ? {
                                        enabled: true,
                                        urlLauncherAddress: data.urlLauncherAddress
                                    } : {
                                        enabled: false,
                                        autoEnableTimeoutMs: data.autoEnableTimeoutMs
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetAutoRecovery(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            managementDriver.getAutoRecovery()
                        ];
                    });
                });
            }
            function handleSetAutoRecovery(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.setAutoRecovery(data.enabled ? {
                                        enabled: true,
                                        healthcheckIntervalMs: data.healthcheckIntervalMs
                                    } : {
                                        enabled: false,
                                        autoEnableTimeoutMs: data.autoEnableTimeoutMs
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleRemoteDebug(propertyStorage) {
                return __awaiter(this, void 0, void 0, function() {
                    var isEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    propertyStorage.getValueOrDefault(Property_1["default"].DEBUG_WEINRE_ENABLED, false)
                                ];
                            case 1:
                                isEnabled = _state.sent();
                                return [
                                    2,
                                    {
                                        isEnabled: isEnabled
                                    }
                                ];
                        }
                    });
                });
            }
            function handleGetExtendedManagementUrl(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var url;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getExtendedManagementUrl()
                                ];
                            case 1:
                                url = _state.sent();
                                return [
                                    2,
                                    {
                                        url: url
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetExtendedManagementUrl(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.setExtendedManagementUrl(data.url)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleSetHardwareAcceleration(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isSupported;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.managementSupports(ManagementCapabilities_1.ManagementCapabilities.HARDWARE_ACCELERATION)
                                ];
                            case 1:
                                isSupported = _state.sent();
                                if (!isSupported) {
                                    throw new Error("Hardware acceleration is not supported on this device.");
                                }
                                return [
                                    4,
                                    managementDriver.setHardwareAcceleration(data.enabled)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleIsHardwareAccelerationEnabled(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var enabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.isHardwareAccelerationEnabled()
                                ];
                            case 1:
                                enabled = _state.sent();
                                return [
                                    2,
                                    {
                                        enabled: enabled
                                    }
                                ];
                        }
                    });
                });
            }
            function handleSetScheduledRebootAction(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var rule, id;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                rule = data.rule;
                                id = Math.random().toString(36).substring(2);
                                return [
                                    4,
                                    managementDriver.powerExecutors.powerActionTimer.set(id, {
                                        powerType: PowerActionType_1["default"].SYSTEM_REBOOT,
                                        weekdays: rule.weekdays,
                                        time: rule.time
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleGetScheduledRebootActions(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var rules, actions;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.powerExecutors.powerActionTimer.rules()
                                ];
                            case 1:
                                rules = _state.sent();
                                actions = Object.entries(rules).map(function(param) {
                                    var _param = _sliced_to_array(param, 2), id = _param[0], value = _param[1];
                                    return {
                                        id: id,
                                        rule: {
                                            weekdays: value.weekdays,
                                            time: value.time
                                        }
                                    };
                                });
                                return [
                                    2,
                                    {
                                        actions: actions
                                    }
                                ];
                        }
                    });
                });
            }
            function handleRemoveScheduledRebootAction(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.powerExecutors.powerActionTimer.unset(data.id)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleClearScheduledRebootActions(managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.powerExecutors.powerActionTimer.reset()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function managementHandler(param) {
                var messageTypePrefix, data, managementDriver, frontDriver, cacheDriver, applicationVersion, timerStorage, propertyStorage;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver, frontDriver = param.frontDriver, cacheDriver = param.cacheDriver, applicationVersion = param.applicationVersion, timerStorage = param.timerStorage;
                            propertyStorage = (0, propertyStorage_1["default"])(function() {
                                return cacheDriver;
                            });
                            return [
                                4,
                                handleManagementMessage(messageTypePrefix, data, managementDriver, frontDriver, propertyStorage, applicationVersion, timerStorage)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = managementHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Monitors/appletMonitorsHandler.js
    var require_appletMonitorsHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Monitors/appletMonitorsHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleMonitorsMessage = void 0;
            function handleMonitorsMessage(messageTypePrefix, data, nativeDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".monitors.get_list":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                3
                            ];
                        case 1:
                            return [
                                4,
                                getMonitorsList(nativeDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                2,
                                null
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleMonitorsMessage = handleMonitorsMessage;
            function monitorsHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleMonitorsMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = monitorsHandler;
            function getMonitorsList(nativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var monitors;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.monitors.getList()
                                ];
                            case 1:
                                monitors = _state.sent();
                                return [
                                    2,
                                    {
                                        monitors: monitors
                                    }
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Native/nativeCommandHandler.js
    var require_nativeCommandHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Native/nativeCommandHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleNativeCommandMessage = void 0;
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            var PREFIX2 = "native_commands";
            function handleNativeCommandMessage(messageTypePrefix, data, managementDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".mdc.send_one"):
                                    return [
                                        3,
                                        1
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".mdc.send_one_raw"):
                                    return [
                                        3,
                                        3
                                    ];
                                case "".concat(messageTypePrefix, ".").concat(PREFIX2, ".nmc.send_one"):
                                    return [
                                        3,
                                        5
                                    ];
                            }
                            return [
                                3,
                                7
                            ];
                        case 1:
                            return [
                                4,
                                handleMdcSendOne(data, managementDriver, false)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleMdcSendOne(data, managementDriver, true)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleNmcSendOne(data, managementDriver)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                2,
                                null
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleNativeCommandMessage = handleNativeCommandMessage;
            function nativeCommandHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleNativeCommandMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = nativeCommandHandler;
            function handleMdcSendOne(data, managementDriver, raw) {
                return __awaiter(this, void 0, void 0, function() {
                    var isSupported, rawCommandResponse, commandResponse;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.managementSupports(ManagementCapabilities_1.ManagementCapabilities.NATIVE_COMMANDS_MDC)
                                ];
                            case 1:
                                isSupported = _state.sent();
                                if (!isSupported) {
                                    throw new Error("Native MDC commands are not supported on this device.");
                                }
                                if (!raw) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    managementDriver.nativeCommands.mdc.sendOneRaw(data.ipAddress, data.data)
                                ];
                            case 2:
                                rawCommandResponse = _state.sent();
                                return [
                                    2,
                                    {
                                        commandResponse: rawCommandResponse
                                    }
                                ];
                            case 3:
                                return [
                                    4,
                                    managementDriver.nativeCommands.mdc.sendOne(data.ipAddress, data.command, data.data)
                                ];
                            case 4:
                                commandResponse = _state.sent();
                                return [
                                    2,
                                    {
                                        commandResponse: commandResponse
                                    }
                                ];
                        }
                    });
                });
            }
            function handleNmcSendOne(data, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var isSupported, commandResponse;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.managementSupports(ManagementCapabilities_1.ManagementCapabilities.NATIVE_COMMANDS_NMC)
                                ];
                            case 1:
                                isSupported = _state.sent();
                                if (!isSupported) {
                                    throw new Error("Native NMC commands are not supported on this device.");
                                }
                                return [
                                    4,
                                    managementDriver.nativeCommands.nmc.sendOne(data.ipAddress, data.command, data.data)
                                ];
                            case 2:
                                commandResponse = _state.sent();
                                return [
                                    2,
                                    {
                                        commandResponse: commandResponse
                                    }
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Timer/wait.js
    var require_wait2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Timer/wait.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = wait6;
            function wait6(timeout) {
                var signal = (arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}).signal;
                var timer = void 0;
                var rejectCallback = null;
                var promise3 = new Promise(function(resolve, reject) {
                    rejectCallback = reject;
                    timer = setTimeout(function() {
                        rejectCallback = null;
                        resolve();
                    }, timeout);
                });
                promise3.cancel = function(reason) {
                    if (timer) {
                        clearTimeout(timer);
                        timer = void 0;
                        if (rejectCallback) {
                            rejectCallback(reason !== null && reason !== void 0 ? reason : new Error("Wait cancelled"));
                        }
                        rejectCallback = null;
                    }
                };
                signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", function() {
                    return promise3.cancel(signal.reason);
                });
                return promise3;
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Input/osdSagas.js
    var require_osdSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Input/osdSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.showOSDSaga = exports.putOpenOSD = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var keyActions_1 = require_keyActions();
            var socketActionCreator_1 = require_socketActionCreator();
            var numericSequence_1 = require_numericSequence();
            var appletTimingActions_1 = require_appletTimingActions();
            var KeyCode_1 = require_KeyCode();
            var appletActions_1 = require_appletActions();
            var dependencyInjection_1 = require_dependencyInjection();
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            var wait_1 = __importDefault(require_wait2());
            var OSD_TIME_LIMIT = 1e4;
            function putOpenOSD(frontDriver, state, waitTime) {
                var currentTime;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            currentTime = Date.now();
                            if (currentTime - state.applet.lastOpenedOSDTime < OSD_TIME_LIMIT) {
                                console.warn("OSD is opened too often, skipping.");
                                return [
                                    2,
                                    {}
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletTimingActions_1.ShowOSDTime,
                                    time: currentTime
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, wait_1["default"])(waitTime)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletTimingActions_1.ShowOSD,
                                    appletBinaryFile: {
                                        localUri: frontDriver.getOSDUri()
                                    }
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            exports.putOpenOSD = putOpenOSD;
            exports.showOSDSaga = (0, dependencyInjection_1.withDependencies)([
                "frontDriver"
            ], function(param) {
                var frontDriver, security, isCurrentlyOsdShown;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            frontDriver = param.frontDriver;
                            security = frontDriver.security;
                            isCurrentlyOsdShown = false;
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.ShowOSD, function() {
                                    return _ts_generator(this, function(_state) {
                                        isCurrentlyOsdShown = true;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(appletActions_1.UpdateActiveAppletBinary, function() {
                                    return _ts_generator(this, function(_state) {
                                        isCurrentlyOsdShown = false;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeySequence, function(handleKeySequence) {
                                    var sequence, keySequenceWithoutLastKey, lastKey, characterSequence, matchesPin, frontOsdSupported, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                sequence = handleKeySequence.sequence;
                                                keySequenceWithoutLastKey = sequence.slice(0, sequence.length - 1);
                                                lastKey = sequence[sequence.length - 1];
                                                characterSequence = (0, numericSequence_1.getNumericCode)(keySequenceWithoutLastKey);
                                                return [
                                                    4,
                                                    security.verifyPin(characterSequence)
                                                ];
                                            case 1:
                                                matchesPin = _state.sent();
                                                return [
                                                    4,
                                                    frontDriver.frontSupports(FrontCapability_1["default"].FRONT_OSD)
                                                ];
                                            case 2:
                                                frontOsdSupported = _state.sent();
                                                if (!(matchesPin && KeyCode_1.KeyCode[lastKey] === KeyCode_1.KeyCode.OK && frontOsdSupported)) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    4,
                                                    showOSD(frontDriver)
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("openOSDSaga", error);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeyUp, function(handleKeyUp) {
                                    var keyCode;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                keyCode = handleKeyUp.keyCode;
                                                if (!(isCurrentlyOsdShown && KeyCode_1.KeyCode[keyCode] === KeyCode_1.KeyCode.EXIT)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    hideOSD()
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            });
            function showOSD(frontDriver) {
                var osdUri = frontDriver.getOSDUri();
                return (0, effects_1.put)({
                    type: appletTimingActions_1.ShowOSD,
                    appletBinaryFile: {
                        localUri: osdUri
                    }
                });
            }
            function hideOSD() {
                return (0, effects_1.put)({
                    type: appletTimingActions_1.HideOSD
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/OSD/appletOSDHandler.js
    var require_appletOSDHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/OSD/appletOSDHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleOSDMessage = void 0;
            var osdSagas_1 = require_osdSagas();
            var OSD_OPEN_WAIT_TIME = 6e3;
            function handleOSDMessage(messageTypePrefix, data, frontDriver, state) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".osd.show_osd":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                3
                            ];
                        case 1:
                            return [
                                4,
                                (0, osdSagas_1.putOpenOSD)(frontDriver, state, OSD_OPEN_WAIT_TIME)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                2,
                                null
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleOSDMessage = handleOSDMessage;
            function osdHandler(param) {
                var messageTypePrefix, data, frontDriver, getState, state;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, getState = param.getState;
                            state = getState();
                            return [
                                4,
                                handleOSDMessage(messageTypePrefix, data, frontDriver, state)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = osdHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/HashAlgorithm.js
    var require_HashAlgorithm = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/HashAlgorithm.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var HashAlgorithm2;
            (function(HashAlgorithm3) {
                HashAlgorithm3["MD5"] = "md5";
                HashAlgorithm3["SHA1"] = "sha1";
                HashAlgorithm3["SHA256"] = "sha256";
                HashAlgorithm3["SHA384"] = "sha384";
                HashAlgorithm3["SHA512"] = "sha512";
                HashAlgorithm3["CRC32"] = "crc32";
            })(HashAlgorithm2 || (HashAlgorithm2 = {}));
            exports["default"] = HashAlgorithm2;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletNativeCacheError.js
    var require_AppletNativeCacheError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletNativeCacheError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var AppletNativeCacheError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(_AppletNativeCacheError, _AppletError_1_default);
                var _super = _create_super(_AppletNativeCacheError);
                function _AppletNativeCacheError(parameters2) {
                    _class_call_check(this, _AppletNativeCacheError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        pathToDocs: _AppletNativeCacheError.PATH_TO_DOCS,
                        kind: "appletError"
                    }));
                    _this.name = "AppletNativeCacheError";
                    return _this;
                }
                return _AppletNativeCacheError;
            }(AppletError_1["default"]);
            AppletNativeCacheError.PATH_TO_DOCS = "/api/js/js-command";
            exports["default"] = AppletNativeCacheError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletResourceError.js
    var require_AppletResourceError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/AppletResourceError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var AppletError_1 = __importDefault(require_AppletError());
            var AppletResourceError = /*#__PURE__*/ function(_AppletError_1_default) {
                _inherits(AppletResourceError, _AppletError_1_default);
                var _super = _create_super(AppletResourceError);
                function AppletResourceError(parameters2) {
                    _class_call_check(this, AppletResourceError);
                    var _this;
                    _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                        kind: "appletError"
                    }));
                    _this.name = "AppletResourceError";
                    return _this;
                }
                return AppletResourceError;
            }(AppletError_1["default"]);
            exports["default"] = AppletResourceError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalNativeCacheError.js
    var require_InternalNativeCacheError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalNativeCacheError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalNativeCacheError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(InternalNativeCacheError, _InternalError_1_default);
                var _super = _create_super(InternalNativeCacheError);
                function InternalNativeCacheError(parameters2) {
                    _class_call_check(this, InternalNativeCacheError);
                    var _this;
                    if (parameters2.kind === "internalNativeCacheError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalNativeCacheError";
                    return _possible_constructor_return(_this);
                }
                return InternalNativeCacheError;
            }(InternalError_1["default"]);
            exports["default"] = InternalNativeCacheError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalOfflineCacheError.js
    var require_InternalOfflineCacheError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalOfflineCacheError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalOfflineCacheError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(InternalOfflineCacheError, _InternalError_1_default);
                var _super = _create_super(InternalOfflineCacheError);
                function InternalOfflineCacheError(parameters2) {
                    _class_call_check(this, InternalOfflineCacheError);
                    var _this;
                    if (parameters2.kind === "internalOfflineCacheError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalOfflineCacheError";
                    return _possible_constructor_return(_this);
                }
                return InternalOfflineCacheError;
            }(InternalError_1["default"]);
            exports["default"] = InternalOfflineCacheError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/OfflineCache/appletOfflineCacheHandler.js
    var require_appletOfflineCacheHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/OfflineCache/appletOfflineCacheHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleOfflineCacheMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var HashAlgorithm_1 = __importDefault(require_HashAlgorithm());
            var AppletNativeCacheError_1 = __importDefault(require_AppletNativeCacheError());
            var AppletResourceError_1 = __importDefault(require_AppletResourceError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var ErrorSuggestions_1 = __importDefault(require_ErrorSuggestions());
            var InternalNativeCacheError_1 = __importDefault(require_InternalNativeCacheError());
            var InternalOfflineCacheError_1 = __importDefault(require_InternalOfflineCacheError());
            function getAppletPrefix(appletUid, shortAppletFilesUrl) {
                return "applet/".concat(shortAppletFilesUrl ? appletUid.slice(0, 8) : appletUid, "/data/");
            }
            function handleOfflineCacheMessage(messageTypePrefix, data, nativeDriver, offlineCache, appletPrefix, _timingChecksum) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".offline.cache.list_files":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".offline.cache.list_contents":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".offline.cache.save_file":
                                    return [
                                        3,
                                        5
                                    ];
                                case messageTypePrefix + ".offline.cache.save_content":
                                    return [
                                        3,
                                        7
                                    ];
                                case messageTypePrefix + ".offline.cache.load_file":
                                    return [
                                        3,
                                        9
                                    ];
                                case messageTypePrefix + ".offline.cache.load_content":
                                    return [
                                        3,
                                        11
                                    ];
                                case messageTypePrefix + ".offline.cache.delete_file":
                                    return [
                                        3,
                                        13
                                    ];
                                case messageTypePrefix + ".offline.cache.delete_content":
                                    return [
                                        3,
                                        15
                                    ];
                                case messageTypePrefix + ".offline.cache.validate_checksum":
                                    return [
                                        3,
                                        17
                                    ];
                                case messageTypePrefix + ".offline.cache.get_checksum":
                                    return [
                                        3,
                                        19
                                    ];
                                case messageTypePrefix + ".offline.cache.decompress_file":
                                    return [
                                        3,
                                        21
                                    ];
                            }
                            return [
                                3,
                                23
                            ];
                        case 1:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemListFiles, offlineCache, appletPrefix)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemListContents, nativeDriver, appletPrefix)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemSaveFile, data, offlineCache, appletPrefix)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemSaveContent, data, nativeDriver, appletPrefix)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemLoadFile, data, offlineCache, appletPrefix)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemLoadContent, data, nativeDriver, appletPrefix)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemDeleteFile, data, offlineCache, appletPrefix)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemDeleteContent, data, nativeDriver, appletPrefix)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemValidateChecksum, data, offlineCache, appletPrefix)
                            ];
                        case 18:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 19:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemGetChecksum, data, offlineCache, appletPrefix)
                            ];
                        case 20:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 21:
                            return [
                                4,
                                (0, effects_1.call)(handleFileSystemDecompressFile, data, offlineCache, appletPrefix)
                            ];
                        case 22:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 23:
                            return [
                                2,
                                null
                            ];
                        case 24:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleOfflineCacheMessage = handleOfflineCacheMessage;
            function handleFileSystemListFiles(offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUids, error, appletFileUids, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, fileUid;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUids = [];
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    offlineCache.listFilesRecursively()
                                ];
                            case 2:
                                fileUids = _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalOfflineCacheError_1["default"]({
                                    kind: "internalOfflineCacheErrorWithOrigin",
                                    message: "Couldn't not read the files from the offline cache.",
                                    code: ErrorCodes_1["default"].OFFLINE_CACHE_LIST_FILES_ERROR,
                                    origin: "listFilesRecursively",
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                appletFileUids = [];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(_iterator = fileUids[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        fileUid = _step.value;
                                        if (fileUid.indexOf(appletPrefix) === 0) {
                                            appletFileUids.push(fileUid.substring(appletPrefix.length));
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                return [
                                    2,
                                    {
                                        fileUids: appletFileUids
                                    }
                                ];
                        }
                    });
                });
            }
            function handleFileSystemListContents(nativeDriver, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var appletContentUids, contentUids, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, contentUid, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                appletContentUids = [];
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    nativeDriver.cacheGetUids()
                                ];
                            case 2:
                                contentUids = _state.sent();
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(_iterator = contentUids[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        contentUid = _step.value;
                                        if (contentUid.indexOf(appletPrefix) === 0) {
                                            appletContentUids.push(contentUid.substring(appletPrefix.length));
                                        }
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                                return [
                                    2,
                                    {
                                        contentUids: appletContentUids
                                    }
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalNativeCacheError_1["default"]({
                                    kind: "internalNativeCacheErrorWithOrigin",
                                    message: "Unexpected error ocurred when listing content",
                                    code: ErrorCodes_1["default"].NATIVE_CACHE_GET_CONTENT_ERROR,
                                    origin: "cacheGetUids",
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            var savingFiles = {};
            function handleFileSystemSaveFile(data, offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUid, exists, savedFile;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUid = appletPrefix + data.uid;
                                if (typeof savingFiles[fileUid] !== "undefined") {
                                    throw new AppletResourceError_1["default"]({
                                        kind: "appletResourcesError",
                                        message: "already loading file: " + fileUid,
                                        code: ErrorCodes_1["default"].FILE_IS_ALREADY_LOADING,
                                        suggestion: ErrorSuggestions_1["default"].FILE_IS_ALREADY_LOADING
                                    });
                                }
                                return [
                                    4,
                                    offlineCache.fileExists(fileUid)
                                ];
                            case 1:
                                exists = _state.sent();
                                if (exists) {
                                    throw new AppletResourceError_1["default"]({
                                        kind: "appletResourcesError",
                                        message: "already existing file: " + fileUid,
                                        code: ErrorCodes_1["default"].FILE_ALREADY_EXISTS,
                                        suggestion: ErrorSuggestions_1["default"].FILE_ALREADY_EXISTS
                                    });
                                }
                                savingFiles[fileUid] = data;
                                console.info("start", fileUid);
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    ,
                                    4,
                                    5
                                ]);
                                return [
                                    4,
                                    offlineCache.retriableDownloadFile(5, fileUid, data.uri, data.headers)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                delete savingFiles[fileUid];
                                return [
                                    7
                                ];
                            case 5:
                                console.info("end", fileUid);
                                return [
                                    4,
                                    offlineCache.getFile(fileUid)
                                ];
                            case 6:
                                savedFile = _state.sent();
                                if (savedFile === null) {
                                    throw new InternalOfflineCacheError_1["default"]({
                                        kind: "internalOfflineCacheError",
                                        message: "File wasn't saved correctly.",
                                        code: ErrorCodes_1["default"].OFFLINE_CACHE_SAVE_FILE_GET_FILE_ERROR
                                    });
                                }
                                return [
                                    2,
                                    {
                                        savedFile: {
                                            filePath: savedFile.localUri
                                        }
                                    }
                                ];
                        }
                    });
                });
            }
            var savingContents = {};
            function handleFileSystemSaveContent(data, nativeDriver, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var contentUid, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                contentUid = appletPrefix + data.uid;
                                if (typeof savingContents[contentUid] !== "undefined") {
                                    throw new AppletNativeCacheError_1["default"]({
                                        kind: "appletNativeCacheError",
                                        message: "Already saving the file with UID: " + contentUid,
                                        code: ErrorCodes_1["default"].NATIVE_CACHE_ALREADY_SAVING_CONTENT
                                    });
                                }
                                savingContents[contentUid] = data;
                                console.info("start", contentUid);
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    4,
                                    5
                                ]);
                                return [
                                    4,
                                    nativeDriver.cacheSave(contentUid, data.content)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalNativeCacheError_1["default"]({
                                    kind: "internalNativeCacheErrorWithOrigin",
                                    message: "Couldn't save the file to the offline cache.",
                                    code: ErrorCodes_1["default"].NATIVE_CACHE_SAVE_CONTENT_ERROR,
                                    origin: "cacheSave(".concat(contentUid, ", ").concat(data.content, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                delete savingContents[contentUid];
                                return [
                                    7
                                ];
                            case 5:
                                console.info("end", contentUid);
                                return [
                                    2,
                                    {
                                        savedContent: data
                                    }
                                ];
                        }
                    });
                });
            }
            function handleFileSystemLoadFile(data, offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUid, loadedFile;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUid = appletPrefix + data.uid;
                                return [
                                    4,
                                    offlineCache.getFile(fileUid)
                                ];
                            case 1:
                                loadedFile = _state.sent();
                                if (loadedFile === null) {
                                    throw new InternalOfflineCacheError_1["default"]({
                                        kind: "internalOfflineCacheError",
                                        message: "Reading the file from the offline cache failed.",
                                        code: ErrorCodes_1["default"].OFFLINE_CACHE_GET_FILE_ERROR
                                    });
                                }
                                return [
                                    2,
                                    {
                                        loadedFile: {
                                            filePath: loadedFile.localUri
                                        }
                                    }
                                ];
                        }
                    });
                });
            }
            function handleFileSystemLoadContent(data, nativeDriver, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var contentUid, _tmp, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                contentUid = appletPrefix + data.uid;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                _tmp = {};
                                return [
                                    4,
                                    nativeDriver.cacheGet(contentUid)
                                ];
                            case 2:
                                return [
                                    2,
                                    (_tmp.loadedContent = _state.sent(), _tmp)
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalNativeCacheError_1["default"]({
                                    kind: "internalNativeCacheErrorWithOrigin",
                                    message: "Couldn't load the file from offline cache.",
                                    code: ErrorCodes_1["default"].NATIVE_CACHE_GET_CONTENT_ERROR,
                                    origin: "cacheGet(".concat(contentUid, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function handleFileSystemDeleteFile(data, offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUid;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUid = appletPrefix + data.uid;
                                return [
                                    4,
                                    offlineCache.deleteFileAndDeleteDirectoryIfEmpty(fileUid)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleFileSystemDeleteContent(data, nativeDriver, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var contentUid, error, error1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                contentUid = appletPrefix + data.uid;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    3,
                                    ,
                                    4
                                ]);
                                return [
                                    4,
                                    nativeDriver.cacheGet(contentUid)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                error = _state.sent();
                                throw new InternalNativeCacheError_1["default"]({
                                    kind: "internalNativeCacheErrorWithOrigin",
                                    message: "Couldn't load the file before deleting it.",
                                    code: ErrorCodes_1["default"].NATIVE_CACHE_GET_CONTENT_ERROR,
                                    origin: "cacheGet(".concat(contentUid, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            case 4:
                                _state.trys.push([
                                    4,
                                    6,
                                    ,
                                    7
                                ]);
                                return [
                                    4,
                                    nativeDriver.cacheDelete(contentUid)
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    3,
                                    7
                                ];
                            case 6:
                                error1 = _state.sent();
                                throw new InternalNativeCacheError_1["default"]({
                                    kind: "internalNativeCacheErrorWithOrigin",
                                    message: "File wasn't deleted correctly.",
                                    code: ErrorCodes_1["default"].NATIVE_CACHE_DELETE_CONTENT_ERROR,
                                    origin: "cacheDelete(".concat(contentUid, ")"),
                                    originStack: error1.stack,
                                    originMessage: error1.message
                                });
                            case 7:
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function handleFileSystemValidateChecksum(data, offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUid, exists, hashAlgorithm, checksum;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUid = appletPrefix + data.uid;
                                return [
                                    4,
                                    offlineCache.fileExists(fileUid)
                                ];
                            case 1:
                                exists = _state.sent();
                                if (!exists) {
                                    throw new Error("file ".concat(fileUid, " must be saved before hashing!"));
                                }
                                hashAlgorithm = data.hashType;
                                if (!isHashAlgorithmSupported(hashAlgorithm)) {
                                    throw new Error("hash algorithm ".concat(hashAlgorithm, " is not supported"));
                                }
                                return [
                                    4,
                                    offlineCache.getFileChecksum(fileUid, hashAlgorithm)
                                ];
                            case 2:
                                checksum = _state.sent();
                                return [
                                    2,
                                    {
                                        validatedChecksum: checksum === data.hash
                                    }
                                ];
                        }
                    });
                });
            }
            function handleFileSystemGetChecksum(data, offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUid, exists, hashAlgorithm, checksum;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUid = appletPrefix + data.uid;
                                return [
                                    4,
                                    offlineCache.fileExists(fileUid)
                                ];
                            case 1:
                                exists = _state.sent();
                                if (!exists) {
                                    throw new Error("file ".concat(fileUid, " must be saved before hashing!"));
                                }
                                hashAlgorithm = data.hashType;
                                if (!isHashAlgorithmSupported(hashAlgorithm)) {
                                    throw new Error("hash algorithm ".concat(hashAlgorithm, " is not supported"));
                                }
                                return [
                                    4,
                                    offlineCache.getFileChecksum(fileUid, hashAlgorithm)
                                ];
                            case 2:
                                checksum = _state.sent();
                                return [
                                    2,
                                    {
                                        checksum: checksum
                                    }
                                ];
                        }
                    });
                });
            }
            function isHashAlgorithmSupported(hashAlgorithm) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            Object.values(HashAlgorithm_1["default"]).includes(hashAlgorithm)
                        ];
                    });
                });
            }
            function handleFileSystemDecompressFile(data, offlineCache, appletPrefix) {
                return __awaiter(this, void 0, void 0, function() {
                    var fileUid, fileDestinationUid, exists;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileUid = appletPrefix + data.uid;
                                fileDestinationUid = appletPrefix + data.destinationUid;
                                return [
                                    4,
                                    offlineCache.fileExists(fileUid)
                                ];
                            case 1:
                                exists = _state.sent();
                                if (!exists) {
                                    throw new Error("file ".concat(fileUid, " must be saved before decompressing!"));
                                }
                                return [
                                    4,
                                    offlineCache.extractFile(fileUid, fileDestinationUid, data.method)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2,
                                    {}
                                ];
                        }
                    });
                });
            }
            function offlineCacheHandler(param) {
                var messageTypePrefix, data, cacheDriver, offlineCache, appletUid, timingChecksum, shortAppletFilesUrl, appletPrefix;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, cacheDriver = param.cacheDriver, offlineCache = param.offlineCache, appletUid = param.appletUid, timingChecksum = param.timingChecksum, shortAppletFilesUrl = param.shortAppletFilesUrl;
                            appletPrefix = getAppletPrefix(appletUid, shortAppletFilesUrl);
                            return [
                                4,
                                (0, effects_1.call)(handleOfflineCacheMessage, messageTypePrefix, data, cacheDriver, offlineCache, appletPrefix, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = offlineCacheHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalStreamError.js
    var require_InternalStreamError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalStreamError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalOfflineCacheError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(InternalOfflineCacheError, _InternalError_1_default);
                var _super = _create_super(InternalOfflineCacheError);
                function InternalOfflineCacheError(parameters2) {
                    _class_call_check(this, InternalOfflineCacheError);
                    var _this;
                    if (parameters2.kind === "internalStreamError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalStreamError";
                    return _possible_constructor_return(_this);
                }
                return InternalOfflineCacheError;
            }(InternalError_1["default"]);
            exports["default"] = InternalOfflineCacheError;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Error/videoErrors.js
    var require_videoErrors = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Error/videoErrors.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NoMoreAvailableVideosError = void 0;
            var NoMoreAvailableVideosError = /*#__PURE__*/ function(Error1) {
                _inherits(_NoMoreAvailableVideosError, Error1);
                var _super = _create_super(_NoMoreAvailableVideosError);
                function _NoMoreAvailableVideosError() {
                    _class_call_check(this, _NoMoreAvailableVideosError);
                    var _this;
                    _this = _super.call(this, "Couldn't perform operation because all available video players are currently busy");
                    Object.setPrototypeOf(_assert_this_initialized(_this), _NoMoreAvailableVideosError.prototype);
                    return _this;
                }
                return _NoMoreAvailableVideosError;
            }(_wrap_native_super(Error));
            exports.NoMoreAvailableVideosError = NoMoreAvailableVideosError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Stream/appletStreamHandler.js
    var require_appletStreamHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Stream/appletStreamHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.resolveProtocolType = exports.handleStreamResetTrack = exports.handleStreamSelectTrack = exports.handleStreamGetTracks = exports.handleStreamResume = exports.handleStreamPause = exports.handleStreamStop = exports.handleStreamPlay = exports.handleStreamPrepare = exports.handleStreamMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var activeAppletActions_1 = require_activeAppletActions();
            var channels_1 = require_channels();
            var InternalStreamError_1 = __importDefault(require_InternalStreamError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var videoErrors_1 = require_videoErrors();
            var streamActions_1 = require_streamActions();
            function handleStreamMessage(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".stream.prepare":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".stream.play":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".stream.stop":
                                    return [
                                        3,
                                        5
                                    ];
                                case messageTypePrefix + ".stream.pause":
                                    return [
                                        3,
                                        7
                                    ];
                                case messageTypePrefix + ".stream.resume":
                                    return [
                                        3,
                                        9
                                    ];
                                case messageTypePrefix + ".stream.get_tracks":
                                    return [
                                        3,
                                        11
                                    ];
                                case messageTypePrefix + ".stream.select_track":
                                    return [
                                        3,
                                        13
                                    ];
                                case messageTypePrefix + ".stream.reset_track":
                                    return [
                                        3,
                                        15
                                    ];
                            }
                            return [
                                3,
                                17
                            ];
                        case 1:
                            return [
                                4,
                                handleStreamPrepare(data, nativeDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleStreamPlay(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleStreamStop(data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleStreamPause(data, nativeDriver)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                handleStreamResume(data, nativeDriver)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                handleStreamGetTracks(data, nativeDriver)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                handleStreamSelectTrack(data, nativeDriver)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                handleStreamResetTrack(data, nativeDriver)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                2,
                                null
                            ];
                        case 18:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleStreamMessage = handleStreamMessage;
            function handleStreamPrepare(data, nativeDriver) {
                var _a2, streamProtocol, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            streamProtocol = resolveProtocolType(data);
                            if (typeof streamProtocol !== "undefined") {
                                data.options = Object.assign(Object.assign({}, data.options), {
                                    protocol: streamProtocol
                                });
                            }
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                3,
                                ,
                                4
                            ]);
                            return [
                                4,
                                nativeDriver.stream.prepare(data.uri, data.x, data.y, data.width, data.height, data.options)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            if (error instanceof videoErrors_1.NoMoreAvailableVideosError) {
                                console.warn("Video prepare failed because there are no more available video players");
                            } else {
                                throw new InternalStreamError_1["default"]({
                                    kind: "internalStreamErrorWithOrigin",
                                    message: "Couldn't prepare the stream.",
                                    code: ErrorCodes_1["default"].STREAM_PREPARE_ERROR,
                                    origin: "prepare(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height).concat(typeof ((_a2 = data.options) === null || _a2 === void 0 ? void 0 : _a2.protocol) !== "undefined" ? ", " + data.options.protocol : "", ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            }
                            return [
                                3,
                                4
                            ];
                        case 4:
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            exports.handleStreamPrepare = handleStreamPrepare;
            function handleStreamPlay(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum) {
                var _a2, streamProtocol, stream, error, streamChannel, streamCloseChannel, eventsTask;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            streamProtocol = resolveProtocolType(data);
                            if (typeof streamProtocol !== "undefined") {
                                data.options = Object.assign(Object.assign({}, data.options), {
                                    protocol: streamProtocol
                                });
                            }
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                3,
                                ,
                                4
                            ]);
                            return [
                                4,
                                nativeDriver.stream.play(data.uri, data.x, data.y, data.width, data.height, data.options)
                            ];
                        case 2:
                            stream = _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't play the stream.",
                                code: ErrorCodes_1["default"].STREAM_PLAY_ERROR,
                                origin: "play(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height).concat(typeof ((_a2 = data.options) === null || _a2 === void 0 ? void 0 : _a2.protocol) !== "undefined" ? ", " + data.options.protocol : "", ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 4:
                            streamChannel = (0, channels_1.createChannel)(function(putEvent) {
                                stream.once("error", function(event) {
                                    return putEvent(event);
                                });
                                stream.on("connected", function(event) {
                                    return putEvent(event);
                                });
                                stream.on("disconnected", function(event) {
                                    return putEvent(event);
                                });
                                stream.on("tracks_changed", function(event) {
                                    return putEvent(event);
                                });
                            });
                            streamCloseChannel = (0, channels_1.createChannel)(function(putEvent) {
                                stream.once("closed", function(event) {
                                    return putEvent(event);
                                });
                            });
                            return [
                                4,
                                (0, effects_1.spawn)(channels_1.takeEvery, streamChannel, function(streamMessage) {
                                    var _a3, _b2, _c, _d, _e, _f, _, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    10,
                                                    ,
                                                    11
                                                ]);
                                                _ = streamMessage.type;
                                                switch(_){
                                                    case "error":
                                                        return [
                                                            3,
                                                            1
                                                        ];
                                                    case "connected":
                                                        return [
                                                            3,
                                                            3
                                                        ];
                                                    case "disconnected":
                                                        return [
                                                            3,
                                                            5
                                                        ];
                                                    case "tracks_changed":
                                                        return [
                                                            3,
                                                            7
                                                        ];
                                                }
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 1:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: streamActions_1.StreamError,
                                                        uri: streamMessage.uri,
                                                        x: streamMessage.x,
                                                        y: streamMessage.y,
                                                        width: streamMessage.width,
                                                        height: streamMessage.height,
                                                        protocol: (_b2 = (_a3 = streamMessage.options) === null || _a3 === void 0 ? void 0 : _a3.protocol) !== null && _b2 !== void 0 ? _b2 : streamMessage.protocol,
                                                        errorMessage: streamMessage.errorMessage
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 3:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: streamActions_1.StreamConnected,
                                                        uri: streamMessage.uri,
                                                        x: streamMessage.x,
                                                        y: streamMessage.y,
                                                        width: streamMessage.width,
                                                        height: streamMessage.height,
                                                        protocol: (_d = (_c = streamMessage.options) === null || _c === void 0 ? void 0 : _c.protocol) !== null && _d !== void 0 ? _d : streamMessage.protocol
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 5:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: streamActions_1.StreamDisconnected,
                                                        uri: streamMessage.uri,
                                                        x: streamMessage.x,
                                                        y: streamMessage.y,
                                                        width: streamMessage.width,
                                                        height: streamMessage.height,
                                                        protocol: (_f = (_e = streamMessage.options) === null || _e === void 0 ? void 0 : _e.protocol) !== null && _f !== void 0 ? _f : streamMessage.protocol
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 7:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: streamActions_1.StreamTracksChanged,
                                                        uri: streamMessage.uri,
                                                        x: streamMessage.x,
                                                        y: streamMessage.y,
                                                        width: streamMessage.width,
                                                        height: streamMessage.height,
                                                        tracks: streamMessage.tracks
                                                    })
                                                ];
                                            case 8:
                                                _state.sent();
                                                return [
                                                    3,
                                                    9
                                                ];
                                            case 9:
                                                return [
                                                    3,
                                                    11
                                                ];
                                            case 10:
                                                error = _state.sent();
                                                console.error(messageTypePrefix + ".stream.play event sending failed", error);
                                                return [
                                                    3,
                                                    11
                                                ];
                                            case 11:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 5:
                            eventsTask = _state.sent();
                            return [
                                4,
                                (0, effects_1.spawn)(function() {
                                    var _;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(streamCloseChannel.take)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _ = (0, effects_1.cancel);
                                                return [
                                                    4,
                                                    eventsTask
                                                ];
                                            case 2:
                                                return [
                                                    4,
                                                    _.apply(void 0, [
                                                        _state.sent()
                                                    ])
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletStreamPlay,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 7:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            exports.handleStreamPlay = handleStreamPlay;
            function handleStreamStop(data, nativeDriver, appletUid, timingChecksum) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.stream.stop(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't stop the stream.",
                                code: ErrorCodes_1["default"].STREAM_STOP_ERROR,
                                origin: "stop(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletStreamStop,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            exports.handleStreamStop = handleStreamStop;
            function handleStreamPause(data, nativeDriver) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.stream.pause(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't pause the stream.",
                                code: ErrorCodes_1["default"].STREAM_PAUSE_ERROR,
                                origin: "pause(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleStreamPause = handleStreamPause;
            function handleStreamResume(data, nativeDriver) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.stream.resume(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't resume the stream.",
                                code: ErrorCodes_1["default"].STREAM_RESUME_ERROR,
                                origin: "resume(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleStreamResume = handleStreamResume;
            function handleStreamGetTracks(data, nativeDriver) {
                var tracks, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.stream.getTracks(data.videoId)
                            ];
                        case 1:
                            tracks = _state.sent();
                            return [
                                2,
                                {
                                    tracks: tracks
                                }
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't get stream track info.",
                                code: ErrorCodes_1["default"].STREAM_GET_TRACKS_ERROR,
                                origin: "getTracks(".concat(JSON.stringify(data.videoId), ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleStreamGetTracks = handleStreamGetTracks;
            function handleStreamSelectTrack(data, nativeDriver) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.stream.selectTrack(data.videoId, data.trackType, data.groupId, data.trackIndex)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't select stream track.",
                                code: ErrorCodes_1["default"].STREAM_SELECT_TRACK,
                                origin: "selectTrack(".concat(JSON.stringify(data.videoId), ", ").concat(data.trackType, ", ").concat(data.groupId, ", ").concat(data.trackIndex, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleStreamSelectTrack = handleStreamSelectTrack;
            function handleStreamResetTrack(data, nativeDriver) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.stream.resetTrack(data.videoId, data.trackType, data.groupId)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalStreamError_1["default"]({
                                kind: "internalStreamErrorWithOrigin",
                                message: "Couldn't reset stream track.",
                                code: ErrorCodes_1["default"].STREAM_RESET_TRACK,
                                origin: "resetTrack(".concat(JSON.stringify(data.videoId), ", ").concat(data.trackType, ", ").concat(data.groupId, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleStreamResetTrack = handleStreamResetTrack;
            function resolveProtocolType(data) {
                var _a2;
                if (data.protocolType !== void 0) {
                    return data.protocolType.toUpperCase();
                }
                if (data.protocol !== void 0) {
                    return data.protocol.toUpperCase();
                }
                return (_a2 = data.options) === null || _a2 === void 0 ? void 0 : _a2.protocol;
            }
            exports.resolveProtocolType = resolveProtocolType;
            function streamHandler(param) {
                var messageTypePrefix, data, frontDriver, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleStreamMessage(messageTypePrefix, data, frontDriver, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = streamHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Synchronization/PolymorphicSynchronizer/IPolymorphicSynchronizer.js
    var require_IPolymorphicSynchronizer = __commonJS({
        "node_modules/@signageos/front-display/es6/Synchronization/PolymorphicSynchronizer/IPolymorphicSynchronizer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SynchronizerType = void 0;
            var SynchronizerType;
            (function(SynchronizerType2) {
                SynchronizerType2["SyncServer"] = "sync-server";
                SynchronizerType2["P2PLocal"] = "p2p-local";
            })(SynchronizerType || (exports.SynchronizerType = SynchronizerType = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Sync/ISyncConnectMessage.js
    var require_ISyncConnectMessage = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Sync/ISyncConnectMessage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SyncEngine = void 0;
            var SyncEngine;
            (function(SyncEngine2) {
                SyncEngine2["SyncServer"] = "sync-server";
                SyncEngine2["P2PLocal"] = "p2p-local";
                SyncEngine2["Udp"] = "udp";
            })(SyncEngine || (exports.SyncEngine = SyncEngine = {}));
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Sync/appletSyncHandler.utils.js
    var require_appletSyncHandler_utils = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Sync/appletSyncHandler.utils.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.appletSyncEngineToSynchronizerSynchronizerType = void 0;
            var IPolymorphicSynchronizer_1 = require_IPolymorphicSynchronizer();
            var ISyncConnectMessage_1 = require_ISyncConnectMessage();
            function appletSyncEngineToSynchronizerSynchronizerType(engine) {
                if (engine === void 0) {
                    return void 0;
                }
                switch(engine){
                    case ISyncConnectMessage_1.SyncEngine.SyncServer:
                        return IPolymorphicSynchronizer_1.SynchronizerType.SyncServer;
                    case ISyncConnectMessage_1.SyncEngine.Udp:
                    case ISyncConnectMessage_1.SyncEngine.P2PLocal:
                        return IPolymorphicSynchronizer_1.SynchronizerType.P2PLocal;
                    default:
                        throw new Error("Unknown sync engine: " + engine);
                }
            }
            exports.appletSyncEngineToSynchronizerSynchronizerType = appletSyncEngineToSynchronizerSynchronizerType;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalSynchronizerError.js
    var require_InternalSynchronizerError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalSynchronizerError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalSynchronizerError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(_InternalSynchronizerError, _InternalError_1_default);
                var _super = _create_super(_InternalSynchronizerError);
                function _InternalSynchronizerError(parameters2) {
                    _class_call_check(this, _InternalSynchronizerError);
                    var _this;
                    if (parameters2.kind === "internalSynchronizerError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalSynchronizerError.PATH_TO_DOCS,
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalSynchronizerError.PATH_TO_DOCS,
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalSynchronizerError";
                    return _possible_constructor_return(_this);
                }
                return _InternalSynchronizerError;
            }(InternalError_1["default"]);
            InternalSynchronizerError.PATH_TO_DOCS = "/api/js/js-sync-playback";
            exports["default"] = InternalSynchronizerError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Sync/appletSyncHandler.js
    var require_appletSyncHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Sync/appletSyncHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleSyncMessage = void 0;
            var appletSyncHandler_utils_1 = require_appletSyncHandler_utils();
            var InternalSynchronizerError_1 = __importDefault(require_InternalSynchronizerError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            function handleSyncMessage(messageTypePrefix, data, _nativeDriver, synchronizer, _appletUid, _timingChecksum) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".sync.connect":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".sync.close":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".sync.init":
                                    return [
                                        3,
                                        5
                                    ];
                                case messageTypePrefix + ".sync.leave_group":
                                    return [
                                        3,
                                        7
                                    ];
                                case messageTypePrefix + ".sync.wait":
                                    return [
                                        3,
                                        9
                                    ];
                                case messageTypePrefix + ".sync.cancel_wait":
                                    return [
                                        3,
                                        11
                                    ];
                                case messageTypePrefix + ".sync.request_set_value":
                                    return [
                                        3,
                                        13
                                    ];
                                case messageTypePrefix + ".sync.is_master":
                                    return [
                                        3,
                                        15
                                    ];
                            }
                            return [
                                3,
                                17
                            ];
                        case 1:
                            return [
                                4,
                                handleSyncConnect(data, synchronizer)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleSyncClose(synchronizer)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleSyncJoinGroup(data, synchronizer)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleSyncLeaveGroup(data, synchronizer)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                handleSyncWait(data, synchronizer)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                handleSyncCancelWait(data, synchronizer)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                4,
                                handleBroadcastValue(data, synchronizer)
                            ];
                        case 14:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 15:
                            return [
                                4,
                                handleIsMaster(data, synchronizer)
                            ];
                        case 16:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 17:
                            return [
                                2,
                                null
                            ];
                        case 18:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleSyncMessage = handleSyncMessage;
            function handleSyncConnect(param, synchronizer) {
                var serverUri, engine, config, syncType, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            serverUri = param.serverUri, engine = param.engine, config = param.config;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                3,
                                ,
                                4
                            ]);
                            syncType = (0, appletSyncHandler_utils_1.appletSyncEngineToSynchronizerSynchronizerType)(engine);
                            return [
                                4,
                                synchronizer.connect(serverUri, syncType, config)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "Synchronizer couldn't connect to the server.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_CONNECT_ERROR,
                                origin: "connect()",
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 4:
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleSyncClose(synchronizer) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.close()
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "The connection wasn't closed correctly.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_CLOSE_ERROR,
                                origin: "close()",
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleSyncJoinGroup(data, synchronizer) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.joinGroup({
                                    groupName: data.groupName,
                                    deviceIdentification: data.deviceIdentification
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "The group initialization failed.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_JOIN_GROUP_ERROR,
                                origin: "joinGroup()",
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleSyncLeaveGroup(data, synchronizer) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.leaveGroup(data.groupName)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "Failed to leave the group.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_LEAVE_GROUP_ERROR,
                                origin: "leaveGroup()",
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            function handleSyncWait(data, synchronizer) {
                var responseData, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.wait({
                                    groupName: data.groupName,
                                    data: data.data,
                                    timeoutMs: data.timeout
                                })
                            ];
                        case 1:
                            responseData = _state.sent();
                            return [
                                2,
                                {
                                    responseData: responseData
                                }
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "Wait failed for unexpected reason.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_WAIT_ERROR,
                                origin: "wait(".concat(data.groupName, ", ").concat(data.data, ", ").concat(data.timeout, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            function handleSyncCancelWait(data, synchronizer) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.cancelWait(data.groupName)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "Cancel wait failed for unexpected reason.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_CANCEL_WAIT_ERROR,
                                origin: "cancelWait(".concat(data.groupName, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            function handleBroadcastValue(data, synchronizer) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.broadcastValue({
                                    groupName: data.groupName,
                                    key: data.key,
                                    value: data.value
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "Synchronizer couldn't set the value.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_BROADCAST_VALUE_ERROR,
                                origin: "setValue(".concat(data.groupName, ", ").concat(data.key, ", ").concat(data.value, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            function handleIsMaster(data, synchronizer) {
                var isMaster, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                synchronizer.isMaster(data.groupName)
                            ];
                        case 1:
                            isMaster = _state.sent();
                            return [
                                2,
                                {
                                    isMaster: isMaster
                                }
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalSynchronizerError_1["default"]({
                                kind: "internalSynchronizerErrorWithOrigin",
                                message: "Synchronizer couldn't get the master status.",
                                code: ErrorCodes_1["default"].SYNCHRONIZER_IS_MASTER_ERROR,
                                origin: "isMaster(".concat(data.groupName, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            function syncHandler(param) {
                var messageTypePrefix, data, frontDriver, synchronizer, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, synchronizer = param.synchronizer, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleSyncMessage(messageTypePrefix, data, frontDriver, synchronizer, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = syncHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Timing/appletTimingHandler.js
    var require_appletTimingHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Timing/appletTimingHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleAppletTimingMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var appletTimingActions_1 = require_appletTimingActions();
            function handleAppletTimingMessage(messageTypePrefix, data) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".timing.triggers.pause":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".timing.triggers.resume":
                                    return [
                                        3,
                                        3
                                    ];
                            }
                            return [
                                3,
                                5
                            ];
                        case 1:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletTimingActions_1.PauseAppletTimingTriggers
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 3:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletTimingActions_1.ResumeAppletTimingTriggers
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 5:
                            return [
                                2,
                                null
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleAppletTimingMessage = handleAppletTimingMessage;
            function timingHandler(param) {
                var messageTypePrefix, data;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data;
                            return [
                                4,
                                handleAppletTimingMessage(messageTypePrefix, data)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = timingHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Input/GestureAction.js
    var require_GestureAction = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Input/GestureAction.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var GestureAction;
            (function(GestureAction2) {
                GestureAction2[GestureAction2["DOWN"] = 0] = "DOWN";
                GestureAction2[GestureAction2["SCROLL"] = 1] = "SCROLL";
                GestureAction2[GestureAction2["FLING"] = 2] = "FLING";
                GestureAction2[GestureAction2["SHOW_PRESS"] = 3] = "SHOW_PRESS";
                GestureAction2[GestureAction2["SINGLE_TAP_UP"] = 4] = "SINGLE_TAP_UP";
                GestureAction2[GestureAction2["SINGLE_TAP_UP_CONFIRMED"] = 5] = "SINGLE_TAP_UP_CONFIRMED";
                GestureAction2[GestureAction2["LONG_PRESS"] = 6] = "LONG_PRESS";
                GestureAction2[GestureAction2["DOUBLE_TAP"] = 7] = "DOUBLE_TAP";
                GestureAction2[GestureAction2["DOUBLE_TAP_EVENT"] = 8] = "DOUBLE_TAP_EVENT";
            })(GestureAction || (GestureAction = {}));
            exports["default"] = GestureAction;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Touch/touchGestureResolver.js
    var require_touchGestureResolver = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Touch/touchGestureResolver.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.resetLastTap = exports.handleTouch = void 0;
            var GestureAction_1 = __importDefault(require_GestureAction());
            var DOUBLE_TAP_THRESHOLD = 500;
            var lastTap = null;
            function handleTouch(type) {
                if (type === "touchend") {
                    var result17 = [
                        GestureAction_1["default"].SINGLE_TAP_UP
                    ];
                    var now2 = /* @__PURE__ */ new Date().valueOf();
                    if (lastTap != null && now2 - lastTap <= DOUBLE_TAP_THRESHOLD) {
                        result17.push(GestureAction_1["default"].DOUBLE_TAP);
                    }
                    lastTap = now2;
                    return result17;
                }
                return [];
            }
            exports.handleTouch = handleTouch;
            function resetLastTap() {
                lastTap = null;
            }
            exports.resetLastTap = resetLastTap;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Touch/appletTouchHandler.js
    var require_appletTouchHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Touch/appletTouchHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleTouchMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var motionActions_1 = require_motionActions();
            var GestureAction_1 = __importDefault(require_GestureAction());
            var touchGestureResolver_1 = require_touchGestureResolver();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Applet:Touch:appletTouchHandler");
            function handleTouchMessage(messageTypePrefix, data, _nativeDriver, _window, _appletUid, _timingChecksum) {
                var _, gestures, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, gesture, err, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".touch.event":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                12
                            ];
                        case 1:
                            _state.trys.push([
                                1,
                                10,
                                ,
                                11
                            ]);
                            gestures = (0, touchGestureResolver_1.handleTouch)(data.eventType);
                            if (!(gestures.length > 0)) return [
                                3,
                                9
                            ];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                7,
                                8,
                                9
                            ]);
                            _iterator = gestures[Symbol.iterator]();
                            _state.label = 3;
                        case 3:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                6
                            ];
                            gesture = _step.value;
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: motionActions_1.HandleMotion,
                                    gestureAction: GestureAction_1["default"][gesture]
                                })
                            ];
                        case 4:
                            _state.sent();
                            _state.label = 5;
                        case 5:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                3
                            ];
                        case 6:
                            return [
                                3,
                                9
                            ];
                        case 7:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                9
                            ];
                        case 8:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 9:
                            return [
                                3,
                                11
                            ];
                        case 10:
                            error = _state.sent();
                            debug4("handleTouchMessage failed", error);
                            return [
                                3,
                                11
                            ];
                        case 11:
                            return [
                                2,
                                {}
                            ];
                        case 12:
                            return [
                                2,
                                null
                            ];
                        case 13:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleTouchMessage = handleTouchMessage;
            function touchHandler(param) {
                var messageTypePrefix, data, frontDriver, window2, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, window2 = param.window, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleTouchMessage(messageTypePrefix, data, frontDriver, window2, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = touchHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalVideoError.js
    var require_InternalVideoError = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Error/InternalVideoError.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var InternalError_1 = __importDefault(require_InternalError());
            var InternalVideoError = /*#__PURE__*/ function(_InternalError_1_default) {
                _inherits(_InternalVideoError, _InternalError_1_default);
                var _super = _create_super(_InternalVideoError);
                function _InternalVideoError(parameters2) {
                    _class_call_check(this, _InternalVideoError);
                    var _this;
                    if (parameters2.kind === "internalVideoError") {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalVideoError.PATH_TO_DOCS,
                            kind: "internalError"
                        }));
                    } else {
                        _this = _super.call(this, Object.assign(Object.assign({}, parameters2), {
                            pathToDocs: _InternalVideoError.PATH_TO_DOCS,
                            kind: "internalErrorWithOrigin"
                        }));
                    }
                    _this.name = "InternalVideoError";
                    return _possible_constructor_return(_this);
                }
                return _InternalVideoError;
            }(InternalError_1["default"]);
            InternalVideoError.PATH_TO_DOCS = "/api/js/js-sync-playback";
            exports["default"] = InternalVideoError;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Video/appletVideoHandler.js
    var require_appletVideoHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Video/appletVideoHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleVideoMessage = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var appletVideoActions_1 = require_appletVideoActions();
            var EmitVideoEvent_1 = require_EmitVideoEvent();
            var activeAppletActions_1 = require_activeAppletActions2();
            var InternalVideoError_1 = __importDefault(require_InternalVideoError());
            var ErrorCodes_1 = __importDefault(require_ErrorCodes());
            var videoErrors_1 = require_videoErrors();
            function handleVideoMessage(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".restore":
                                    return [
                                        3,
                                        1
                                    ];
                                case messageTypePrefix + ".video.play":
                                    return [
                                        3,
                                        3
                                    ];
                                case messageTypePrefix + ".video.prepare":
                                    return [
                                        3,
                                        5
                                    ];
                                case messageTypePrefix + ".video.stop":
                                    return [
                                        3,
                                        7
                                    ];
                                case messageTypePrefix + ".video.pause":
                                    return [
                                        3,
                                        9
                                    ];
                                case messageTypePrefix + ".video.resume":
                                    return [
                                        3,
                                        11
                                    ];
                            }
                            return [
                                3,
                                13
                            ];
                        case 1:
                            return [
                                4,
                                handleRestore()
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                4,
                                handleVideoPlay(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            return [
                                4,
                                handleVideoPrepare(data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 6:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 7:
                            return [
                                4,
                                handleVideoStop(data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 8:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 9:
                            return [
                                4,
                                handleVideoPause(data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 10:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 11:
                            return [
                                4,
                                handleVideoResume(data, nativeDriver, appletUid, timingChecksum)
                            ];
                        case 12:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 13:
                            return [
                                2,
                                null
                            ];
                        case 14:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleVideoMessage = handleVideoMessage;
            function handleRestore() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletRestore
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleVideoPlay(messageTypePrefix, data, nativeDriver, appletUid, timingChecksum) {
                var nativeVideo, error, nativeVideoEndedChannel;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.video.play(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            nativeVideo = _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalVideoError_1["default"]({
                                kind: "internalVideoErrorWithOrigin",
                                message: "Couldn't play the video.",
                                code: ErrorCodes_1["default"].VIDEO_PLAY_ERROR,
                                origin: "play(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            nativeVideoEndedChannel = (0, redux_saga_1.eventChannel)(function(putEvent) {
                                var onEnded = function(event) {
                                    return putEvent({
                                        type: "ended",
                                        event: event
                                    });
                                };
                                var onError = function(event) {
                                    return putEvent({
                                        type: "error",
                                        event: event
                                    });
                                };
                                var onStopped = function(event) {
                                    return putEvent({
                                        type: "stopped",
                                        event: event
                                    });
                                };
                                nativeVideo.once("ended", onEnded);
                                nativeVideo.once("error", onError);
                                nativeVideo.once("stopped", onStopped);
                                return function() {
                                    nativeVideo.removeListener("ended", onEnded);
                                    nativeVideo.removeListener("error", onError);
                                    nativeVideo.removeListener("stopped", onStopped);
                                };
                            }, redux_saga_1.buffers.dropping(1));
                            return [
                                4,
                                (0, effects_1.spawn)(function() {
                                    var message2, event, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.take)(nativeVideoEndedChannel)
                                                ];
                                            case 1:
                                                message2 = _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                _state.trys.push([
                                                    2,
                                                    4,
                                                    5,
                                                    6
                                                ]);
                                                event = message2.event;
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: EmitVideoEvent_1.EmitVideoEvent,
                                                        event: {
                                                            type: message2.type,
                                                            srcArguments: event.srcArguments,
                                                            data: event.data
                                                        }
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error(messageTypePrefix + ".video.play event sending failed", error);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                nativeVideoEndedChannel.close();
                                                return [
                                                    7
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletVideoActions_1.ActiveAppletVideoPlay,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleVideoPrepare(data, nativeDriver, appletUid, timingChecksum) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (data.options && typeof data.options.volume !== "undefined" && (data.options.volume < 0 || data.options.volume > 100)) {
                                throw new Error("Volume out of bounds: " + data.options.volume);
                            }
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                3,
                                ,
                                4
                            ]);
                            return [
                                4,
                                nativeDriver.video.prepare(data.uri, data.x, data.y, data.width, data.height, data.options)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            if (error instanceof videoErrors_1.NoMoreAvailableVideosError) {
                                console.warn("video prepare failed because there are no more available video players");
                            } else {
                                throw new InternalVideoError_1["default"]({
                                    kind: "internalVideoErrorWithOrigin",
                                    message: "Couldn't prepare the video.",
                                    code: ErrorCodes_1["default"].VIDEO_PREPARE_ERROR,
                                    origin: "prepare(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                    originStack: error.stack,
                                    originMessage: error.message
                                });
                            }
                            return [
                                3,
                                4
                            ];
                        case 4:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletVideoActions_1.ActiveAppletVideoPrepare,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleVideoStop(data, nativeDriver, appletUid, timingChecksum) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.video.stop(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalVideoError_1["default"]({
                                kind: "internalVideoErrorWithOrigin",
                                message: "Couldn't stop the video.",
                                code: ErrorCodes_1["default"].VIDEO_STOP_ERROR,
                                origin: "stop(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletVideoActions_1.ActiveAppletVideoStop,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleVideoPause(data, nativeDriver, appletUid, timingChecksum) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.video.pause(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalVideoError_1["default"]({
                                kind: "internalVideoErrorWithOrigin",
                                message: "Couldn't pause the video.",
                                code: ErrorCodes_1["default"].VIDEO_PAUSE_ERROR,
                                origin: "stop(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletVideoActions_1.ActiveAppletVideoPause,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function handleVideoResume(data, nativeDriver, appletUid, timingChecksum) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                nativeDriver.video.resume(data.uri, data.x, data.y, data.width, data.height)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                3,
                                3
                            ];
                        case 2:
                            error = _state.sent();
                            throw new InternalVideoError_1["default"]({
                                kind: "internalVideoErrorWithOrigin",
                                message: "Couldn't resume the video.",
                                code: ErrorCodes_1["default"].VIDEO_RESUME_ERROR,
                                origin: "stop(".concat(data.uri, ", ").concat(data.x, ", ").concat(data.y, ", ").concat(data.width, ", ").concat(data.height, ")"),
                                originStack: error.stack,
                                originMessage: error.message
                            });
                        case 3:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletVideoActions_1.ActiveAppletVideoResume,
                                    appletUid: appletUid,
                                    timingChecksum: timingChecksum,
                                    data: data
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
            function videoHandler(param) {
                var messageTypePrefix, data, frontDriver, appletUid, timingChecksum;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, frontDriver = param.frontDriver, appletUid = param.appletUid, timingChecksum = param.timingChecksum;
                            return [
                                4,
                                handleVideoMessage(messageTypePrefix, data, frontDriver, appletUid, timingChecksum)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = videoHandler;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/Secrets/appletSecretsHandler.js
    var require_appletSecretsHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/Secrets/appletSecretsHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleSecretsMessage = void 0;
            function handleSecretsMessage(messageTypePrefix, data, managementDriver) {
                var _;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _ = data.type;
                            switch(_){
                                case messageTypePrefix + ".secret_decrypt":
                                    return [
                                        3,
                                        1
                                    ];
                            }
                            return [
                                3,
                                3
                            ];
                        case 1:
                            return [
                                4,
                                handleDecryptValue(data.value, managementDriver)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            return [
                                2,
                                null
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.handleSecretsMessage = handleSecretsMessage;
            function secretsHandler(param) {
                var messageTypePrefix, data, managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageTypePrefix = param.messageTypePrefix, data = param.data, managementDriver = param.managementDriver;
                            return [
                                4,
                                handleSecretsMessage(messageTypePrefix, data, managementDriver)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports["default"] = secretsHandler;
            function handleDecryptValue(value, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var decrypted;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.secretManager.decryptJweGeneralToUtf8(JSON.parse(value))
                                ];
                            case 1:
                                decrypted = _state.sent();
                                return [
                                    2,
                                    {
                                        decryptedValue: decrypted
                                    }
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/appletMessageHandler.js
    var require_appletMessageHandler = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/appletMessageHandler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.handleAppletMessage = exports.handleAppletManagementMessage = void 0;
            var appletBrowserHandler_1 = __importDefault(require_appletBrowserHandler());
            var appletCommandHandler_1 = __importDefault(require_appletCommandHandler());
            var appletDeviceInfoHandler_1 = __importDefault(require_appletDeviceInfoHandler());
            var appletDisplayHandler_1 = __importDefault(require_appletDisplayHandler());
            var appletFileSystemHandler_1 = __importStar(require_appletFileSystemHandler());
            var appletHardwareBarcodeScannerHandler_1 = __importDefault(require_appletHardwareBarcodeScannerHandler());
            var appletHardwareHandler_1 = __importDefault(require_appletHardwareHandler());
            var appletHardwareSerialPortHandler_1 = __importDefault(require_appletHardwareSerialPortHandler());
            var pingHandler_1 = __importDefault(require_pingHandler());
            var refreshHandler_1 = __importDefault(require_refreshHandler());
            var appletManagementNetworkHandler_1 = __importDefault(require_appletManagementNetworkHandler());
            var appletManagementProxyHandler_1 = __importDefault(require_appletManagementProxyHandler());
            var appletManagementSystemInfoHandler_1 = __importDefault(require_appletManagementSystemInfoHandler());
            var appletWifiHandler_1 = __importDefault(require_appletWifiHandler());
            var appletManagementHandler_1 = __importDefault(require_appletManagementHandler());
            var appletMonitorsHandler_1 = __importDefault(require_appletMonitorsHandler());
            var nativeCommandHandler_1 = __importDefault(require_nativeCommandHandler());
            var appletOSDHandler_1 = __importDefault(require_appletOSDHandler());
            var appletOfflineCacheHandler_1 = __importDefault(require_appletOfflineCacheHandler());
            var appletStreamHandler_1 = __importDefault(require_appletStreamHandler());
            var appletSyncHandler_1 = __importDefault(require_appletSyncHandler());
            var appletTimingHandler_1 = __importDefault(require_appletTimingHandler());
            var appletTouchHandler_1 = __importDefault(require_appletTouchHandler());
            var appletVideoHandler_1 = __importDefault(require_appletVideoHandler());
            var appletSecretsHandler_1 = __importDefault(require_appletSecretsHandler());
            var managementHandlers = [
                appletWifiHandler_1["default"],
                appletManagementHandler_1["default"],
                appletManagementNetworkHandler_1["default"],
                appletMonitorsHandler_1["default"],
                appletManagementProxyHandler_1["default"],
                appletManagementSystemInfoHandler_1["default"],
                nativeCommandHandler_1["default"],
                appletSecretsHandler_1["default"],
                appletFileSystemHandler_1.fileSystemHandlerForScripts
            ];
            var frontHandlers = [
                refreshHandler_1["default"],
                pingHandler_1["default"],
                appletVideoHandler_1["default"],
                appletStreamHandler_1["default"],
                appletCommandHandler_1["default"],
                appletHardwareHandler_1["default"],
                appletHardwareBarcodeScannerHandler_1["default"],
                appletHardwareSerialPortHandler_1["default"],
                appletTouchHandler_1["default"],
                appletOfflineCacheHandler_1["default"],
                appletBrowserHandler_1["default"],
                appletTimingHandler_1["default"],
                appletSyncHandler_1["default"],
                appletFileSystemHandler_1["default"],
                appletDisplayHandler_1["default"],
                appletDeviceInfoHandler_1["default"],
                appletOSDHandler_1["default"]
            ];
            function handleAppletManagementMessage(parameters2) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                handleAppletMessageWithHandlers(parameters2, managementHandlers)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports.handleAppletManagementMessage = handleAppletManagementMessage;
            function handleAppletMessage(parameters2) {
                var handlers;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            handlers = _to_consumable_array(managementHandlers).concat(_to_consumable_array(frontHandlers));
                            return [
                                4,
                                handleAppletMessageWithHandlers(parameters2, handlers)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            exports.handleAppletMessage = handleAppletMessage;
            function handleAppletMessageWithHandlers(parameters2, handlers) {
                var index, handler, response, messageTypePrefix, data, overlookedMessages;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            index = 0;
                            _state.label = 1;
                        case 1:
                            if (!(index < handlers.length)) return [
                                3,
                                4
                            ];
                            handler = handlers[index];
                            return [
                                4,
                                handler(parameters2)
                            ];
                        case 2:
                            response = _state.sent();
                            if (response !== null) {
                                return [
                                    2,
                                    response
                                ];
                            }
                            _state.label = 3;
                        case 3:
                            index++;
                            return [
                                3,
                                1
                            ];
                        case 4:
                            messageTypePrefix = parameters2.messageTypePrefix, data = parameters2.data;
                            overlookedMessages = [
                                messageTypePrefix + "_loader.ready",
                                messageTypePrefix + "_api.ready"
                            ];
                            if (overlookedMessages.indexOf(data.type) === -1 && data.type !== "hug.ping") {
                                throw new Error("Unknown message type: " + data.type);
                            }
                            return [
                                2,
                                {}
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/appletSagas.js
    var require_appletSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/appletSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.notifyAppletTelemetry = exports.bindAppletIframe = exports.bindAppletMessages = exports.updateAppletDeviceAuthHash = exports.updateAppletUniqueHash = void 0;
            var activeAppletActions_1 = require_activeAppletActions();
            var appletActions_1 = require_appletActions();
            var deviceAuthenticationActions_1 = require_deviceAuthenticationActions();
            var generator_1 = require_generator();
            var debug_1 = __importDefault(require_browser2());
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var combinedDriver_1 = require_combinedDriver();
            var socketActionCreator_1 = require_socketActionCreator();
            var appletTimingActions_1 = require_appletTimingActions();
            var errorHelper_1 = require_errorHelper();
            var sendAppletMessage_1 = __importStar(require_sendAppletMessage());
            var appletMessageHandler = __importStar(require_appletMessageHandler());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Property_1 = __importDefault(require_Property());
            var deviceTelemetryActions_1 = require_deviceTelemetryActions();
            var lodash_1 = require_lodash();
            var socketActionDeliverHelper_1 = require_socketActionDeliverHelper();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Applet:appletSagas");
            function updateAppletUniqueHash() {
                var activeAppletUniqueHash, lastUpdateActiveAppletBinary;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            activeAppletUniqueHash = null;
                            lastUpdateActiveAppletBinary = null;
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(appletActions_1.UpdateActiveAppletUniqueHash, function(updateActiveAppletUniqueHash) {
                                    return _ts_generator(this, function(_state) {
                                        activeAppletUniqueHash = updateActiveAppletUniqueHash.hash;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.HideOSD, function() {
                                    return _ts_generator(this, function(_state) {
                                        lastUpdateActiveAppletBinary = null;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(appletActions_1.UpdateActiveAppletBinary, function(updateActiveAppletBinary) {
                                    var changed, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                changed = !lastUpdateActiveAppletBinary || lastUpdateActiveAppletBinary.activeAppletUid !== updateActiveAppletBinary.activeAppletUid || lastUpdateActiveAppletBinary.activeAppletVersion !== updateActiveAppletBinary.activeAppletVersion || JSON.stringify(lastUpdateActiveAppletBinary.activeConfiguration) !== JSON.stringify(updateActiveAppletBinary.activeConfiguration);
                                                if (!(changed || activeAppletUniqueHash === null)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletActions_1.UpdateActiveAppletUniqueHash,
                                                        hash: (0, generator_1.generateUniqueHash)()
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                lastUpdateActiveAppletBinary = updateActiveAppletBinary;
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("updateAppletUniqueHash failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateAppletUniqueHash = updateAppletUniqueHash;
            function updateAppletDeviceAuthHash(messageTypePrefix, window2, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceAuthenticationActions_1.UpdateAuthentication, function(action) {
                                    var deviceAuthHash;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                deviceAuthHash = action.authHash;
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, {
                                                        type: messageTypePrefix + ".auth_hash.update",
                                                        authHash: deviceAuthHash
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateAppletDeviceAuthHash = updateAppletDeviceAuthHash;
            function bindAppletMessages(messageTypePrefix, window2, getState, getNativeDriver, getSynchronizer, offlineCache, shortAppletFilesUrl, timerStorage) {
                var messageChannel;
                function callback(managementDriver, applicationVersion, event) {
                    var data, appletState, appletUid, iframeId, timingChecksum, activeAppletIframe, nextAppletIframe, invocationUid, response, error, error1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    7,
                                    ,
                                    8
                                ]);
                                data = event.data;
                                appletState = getState().applet;
                                activeAppletIframe = appletState.activeAppletIframeId && window2.document.getElementById(appletState.activeAppletIframeId);
                                nextAppletIframe = appletState.nextApplet && appletState.nextApplet.iframeId && window2.document.getElementById(appletState.nextApplet.iframeId);
                                if (activeAppletIframe && event.source === activeAppletIframe.contentWindow) {
                                    appletUid = appletState.activeAppletUid;
                                    iframeId = appletState.activeAppletIframeId;
                                    timingChecksum = appletState.activeTimingChecksum;
                                } else if (nextAppletIframe && event.source === nextAppletIframe.contentWindow) {
                                    appletUid = appletState.nextApplet.uid;
                                    iframeId = appletState.nextApplet.iframeId;
                                    timingChecksum = appletState.nextApplet.timingChecksum;
                                } else {
                                    return [
                                        2
                                    ];
                                }
                                if (!appletUid) {
                                    throw new Error("Applet UID is not set");
                                }
                                if (!timingChecksum) {
                                    throw new Error("Timing checksum is not set");
                                }
                                invocationUid = data.invocationUid;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    4,
                                    ,
                                    6
                                ]);
                                debug4("handle message from applet: " + data.type, data);
                                return [
                                    4,
                                    (0, effects_1.call)(handleAppletMessage, messageTypePrefix, data, appletUid, timingChecksum, getNativeDriver, function() {
                                        return managementDriver;
                                    }, getSynchronizer, offlineCache, window2, getState, applicationVersion, shortAppletFilesUrl, timerStorage)
                                ];
                            case 2:
                                response = _state.sent();
                                debug4("message OK: " + data.type, data);
                                return [
                                    4,
                                    (0, effects_1.call)(sendAppletMessage_1["default"], window2, iframeId, Object.assign({
                                        type: messageTypePrefix + ".invocation.success",
                                        invocationUid: invocationUid
                                    }, response))
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    6
                                ];
                            case 4:
                                error = _state.sent();
                                debug4("message FAILED: " + data.type, data);
                                return [
                                    4,
                                    (0, effects_1.call)(sendAppletMessage_1["default"], window2, iframeId, {
                                        type: messageTypePrefix + ".invocation.error",
                                        invocationUid: invocationUid,
                                        error: (0, errorHelper_1.createErrorTransferObject)(error)
                                    })
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                error1 = _state.sent();
                                debug4("bindAppletMassages failed", error1);
                                return [
                                    3,
                                    8
                                ];
                            case 8:
                                return [
                                    2
                                ];
                        }
                    });
                }
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageChannel = createMessageEventChannel(window2);
                            return [
                                4,
                                (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "applicationVersion"
                                ], function(param) {
                                    var managementDriver, applicationVersion;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, applicationVersion = param.applicationVersion;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(messageChannel, callback, managementDriver, applicationVersion)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                }))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.bindAppletMessages = bindAppletMessages;
            function handleAppletMessage(messageTypePrefix, data, appletUid, timingChecksum, getNativeDriver, getManagementDriver, getSynchronizer, offlineCache, window2, getState, applicationVersion, shortAppletFilesUrl, timerStorage) {
                var _ref, frontDriver, cacheDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            debug4("Handling applet message", data, appletUid, timingChecksum);
                            _ref = (0, combinedDriver_1.normalizeFrontCacheDriver)(getNativeDriver()), frontDriver = _ref.frontDriver, cacheDriver = _ref.cacheDriver;
                            return [
                                4,
                                appletMessageHandler.handleAppletMessage({
                                    data: data,
                                    window: window2,
                                    appletUid: appletUid,
                                    offlineCache: offlineCache,
                                    timingChecksum: timingChecksum,
                                    messageTypePrefix: messageTypePrefix,
                                    synchronizer: getSynchronizer(),
                                    frontDriver: frontDriver,
                                    cacheDriver: cacheDriver,
                                    managementDriver: getManagementDriver(),
                                    getState: getState,
                                    applicationVersion: applicationVersion,
                                    shortAppletFilesUrl: shortAppletFilesUrl,
                                    timerStorage: timerStorage
                                })
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function bindAppletIframe(messageTypePrefix, window2, getState, frontDisplayVersion, getNativeDriver) {
                var iframeReadyPromises;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            iframeReadyPromises = {};
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.CreateAppletIframe, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        iframeReadyPromises[action.id] = initializeApplet(window2, action.uid, action.id, messageTypePrefix, getState, frontDisplayVersion, getNativeDriver);
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.RemoveAppletIframe, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        delete iframeReadyPromises[action.id];
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.StartAppletIframe, function(action) {
                                    var _a2, state, appletIframeId, appletUid, timingChecksum, deviceAuthHash, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    10,
                                                    ,
                                                    11
                                                ]);
                                                state = getState();
                                                appletIframeId = action.id;
                                                appletUid = action.uid;
                                                if (!iframeReadyPromises[appletIframeId]) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    iframeReadyPromises[appletIframeId]
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 2:
                                                return [
                                                    4,
                                                    initializeApplet(window2, appletUid, appletIframeId, messageTypePrefix, getState, frontDisplayVersion, getNativeDriver)
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                timingChecksum = (_a2 = state.applet.activeTimingChecksum) !== null && _a2 !== void 0 ? _a2 : "";
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: activeAppletActions_1.ActiveAppletLoaded,
                                                        appletUid: appletUid,
                                                        timingChecksum: timingChecksum
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                if (!state.deviceConnect.connectedBaseUrl) return [
                                                    3,
                                                    7
                                                ];
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1["default"])(window2, appletIframeId, {
                                                        type: messageTypePrefix + ".connect.update",
                                                        connectedBaseUrl: state.deviceConnect.connectedBaseUrl
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                _state.label = 7;
                                            case 7:
                                                deviceAuthHash = state.deviceAuthentication.authHash;
                                                return [
                                                    4,
                                                    (0, sendAppletMessage_1["default"])(window2, appletIframeId, {
                                                        type: messageTypePrefix + ".auth_hash.update",
                                                        authHash: deviceAuthHash
                                                    })
                                                ];
                                            case 8:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: activeAppletActions_1.ActiveAppletReady,
                                                        appletUid: appletUid,
                                                        timingChecksum: timingChecksum
                                                    })
                                                ];
                                            case 9:
                                                _state.sent();
                                                return [
                                                    3,
                                                    11
                                                ];
                                            case 10:
                                                error = _state.sent();
                                                debug4("bindAppletIframe failed", error);
                                                return [
                                                    3,
                                                    11
                                                ];
                                            case 11:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.bindAppletIframe = bindAppletIframe;
            function initializeApplet(window2, appletUid, iframeId, messageTypePrefix, getState, frontDisplayVersion, managementDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var state, appletConfiguration, frontAppletJsFile, hasBundledFrontApplet, appletVersion, newConfig, connectedBaseUrl, finalConfig, _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                state = getState();
                                appletConfiguration = state.applet.activeAppletConfiguration;
                                frontAppletJsFile = state.applet.activeAppletFrontAppletJsFile;
                                hasBundledFrontApplet = state.applet.activeAppletHasBundledFrontApplet;
                                appletVersion = state.applet.activeAppletVersion;
                                if (state.applet.nextApplet && appletUid === state.applet.nextApplet.uid) {
                                    appletConfiguration = state.applet.nextApplet.configuration;
                                    frontAppletJsFile = state.applet.nextApplet.appletFrontAppletJsFile;
                                    hasBundledFrontApplet = state.applet.nextApplet.hasBundledFrontApplet;
                                    appletVersion = state.applet.nextApplet.appletVersion;
                                }
                                if (!!hasBundledFrontApplet) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    waitForAppletMessage(window2, iframeId, messageTypePrefix + "_loader.ready")
                                ];
                            case 1:
                                _state.sent();
                                if (!frontAppletJsFile) {
                                    throw new Error("Front applet js file was not loaded yet");
                                }
                                return [
                                    4,
                                    (0, sendAppletMessage_1["default"])(window2, iframeId, {
                                        type: messageTypePrefix + ".api_js_uri",
                                        uri: frontAppletJsFile.localUri
                                    })
                                ];
                            case 2:
                                _state.sent();
                                _state.label = 3;
                            case 3:
                                return [
                                    4,
                                    waitForAppletMessage(window2, iframeId, messageTypePrefix + "_api.ready")
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    (0, sendAppletMessage_1["default"])(window2, iframeId, {
                                        type: messageTypePrefix + ".front_display_version.update",
                                        version: frontDisplayVersion
                                    })
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    (0, sendAppletMessage_1["default"])(window2, iframeId, {
                                        type: messageTypePrefix + ".applet_version.update",
                                        version: appletVersion
                                    })
                                ];
                            case 6:
                                _state.sent();
                                return [
                                    4,
                                    handleDecryptedFields(state, appletConfiguration, managementDriver)
                                ];
                            case 7:
                                newConfig = _state.sent();
                                connectedBaseUrl = state.deviceConnect.connectedBaseUrl;
                                if (!connectedBaseUrl) return [
                                    3,
                                    9
                                ];
                                return [
                                    4,
                                    fetchLocalConfigFromDevServer(connectedBaseUrl, newConfig)
                                ];
                            case 8:
                                _tmp = _state.sent();
                                return [
                                    3,
                                    10
                                ];
                            case 9:
                                _tmp = newConfig;
                                _state.label = 10;
                            case 10:
                                finalConfig = _tmp;
                                return [
                                    4,
                                    (0, sendAppletMessage_1["default"])(window2, iframeId, {
                                        type: messageTypePrefix + ".config.update",
                                        config: finalConfig
                                    })
                                ];
                            case 11:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function createMessageEventChannel(window2) {
                var messageChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.dropping(10));
                window2.addEventListener("message", function(event) {
                    messageChannel.put(event);
                });
                return messageChannel;
            }
            function waitForAppletMessage(window2, appletIframeId, type) {
                var appletIframe = window2.document.getElementById(appletIframeId);
                if (!appletIframe) {
                    throw new Error("Not found active applet iframe by id " + appletIframeId);
                }
                if (!appletIframe.contentWindow) {
                    throw new Error("Not found active applet iframe contentWindow " + appletIframeId);
                }
                var appletWindow = appletIframe.contentWindow.window;
                return new Promise(function(resolve) {
                    var messageListener = function(event) {
                        var sourceWindow = event.source;
                        if (sourceWindow === appletWindow) {
                            var data = event.data;
                            switch(data.type){
                                case type:
                                    window2.removeEventListener("message", messageListener);
                                    resolve();
                                    break;
                                default:
                            }
                        }
                    };
                    window2.addEventListener("message", messageListener);
                });
            }
            function handleDecryptedFields(state, appletConfiguration, managementDriver) {
                var _a2;
                return __awaiter(this, void 0, void 0, function() {
                    var getEncryptedFields, encryptedKeys, isSupported, newConfig, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, key, valueFromConfiguration, jweGeneral, decryptedValue, err, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                getEncryptedFields = ((_a2 = state.applet.activeAppletMetadata) === null || _a2 === void 0 ? void 0 : _a2.encryptedConfig) || {};
                                encryptedKeys = Object.keys(getEncryptedFields);
                                return [
                                    4,
                                    managementDriver().managementSupports(ManagementCapability_1["default"].SECRETS)
                                ];
                            case 1:
                                isSupported = _state.sent();
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    12,
                                    ,
                                    13
                                ]);
                                if (!(encryptedKeys.length > 0 && isSupported)) return [
                                    3,
                                    11
                                ];
                                newConfig = Object.assign({}, appletConfiguration);
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 3;
                            case 3:
                                _state.trys.push([
                                    3,
                                    8,
                                    9,
                                    10
                                ]);
                                _iterator = encryptedKeys[Symbol.iterator]();
                                _state.label = 4;
                            case 4:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    7
                                ];
                                key = _step.value;
                                valueFromConfiguration = state.applet.activeAppletConfiguration[key];
                                if (!valueFromConfiguration) return [
                                    3,
                                    6
                                ];
                                jweGeneral = JSON.parse(import_buffer.Buffer.from(valueFromConfiguration, "base64").toString("utf-8"));
                                return [
                                    4,
                                    managementDriver().secretManager.decryptJweGeneralToUtf8(jweGeneral)
                                ];
                            case 5:
                                decryptedValue = _state.sent();
                                newConfig[key] = decryptedValue;
                                _state.label = 6;
                            case 6:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    4
                                ];
                            case 7:
                                return [
                                    3,
                                    10
                                ];
                            case 8:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    10
                                ];
                            case 9:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 10:
                                return [
                                    2,
                                    newConfig
                                ];
                            case 11:
                                return [
                                    3,
                                    13
                                ];
                            case 12:
                                error = _state.sent();
                                console.error("Failed to decrypt applet configuration", error);
                                return [
                                    3,
                                    13
                                ];
                            case 13:
                                return [
                                    2,
                                    appletConfiguration
                                ];
                        }
                    });
                });
            }
            function fetchLocalConfigFromDevServer(connectedBaseUrl, existingConfig) {
                return __awaiter(this, void 0, void 0, function() {
                    var response, localConfig, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    5,
                                    ,
                                    6
                                ]);
                                return [
                                    4,
                                    fetch("".concat(connectedBaseUrl, "/config"))
                                ];
                            case 1:
                                response = _state.sent();
                                if (!response.ok) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    response.json()
                                ];
                            case 2:
                                localConfig = _state.sent();
                                if (localConfig && (typeof localConfig === "undefined" ? "undefined" : _type_of(localConfig)) === "object" && Object.keys(localConfig).length > 0) {
                                    debug4("Fetched local config from dev server", localConfig);
                                    return [
                                        2,
                                        Object.assign(Object.assign({}, existingConfig), localConfig)
                                    ];
                                } else {
                                    debug4("Local config from dev server is empty, using existing config");
                                }
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                debug4("Failed to fetch local config from dev server, status: ".concat(response.status, ", using existing config"));
                                _state.label = 4;
                            case 4:
                                return [
                                    3,
                                    6
                                ];
                            case 5:
                                error = _state.sent();
                                debug4("Failed to fetch local config from dev server, using existing config", error);
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                return [
                                    2,
                                    existingConfig
                                ];
                        }
                    });
                });
            }
            function notifyAppletTelemetry(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletActions_1.UpdateActiveAppletBinary, function(action) {
                                    var currentAppletSetting, lastUpdated, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                if (!(action.activeAppletUid && action.activeAppletUid && action.activeAppletVersion)) return [
                                                    3,
                                                    4
                                                ];
                                                currentAppletSetting = {
                                                    appletUid: action.activeAppletUid,
                                                    appletVersion: action.activeAppletVersion,
                                                    config: action.activeConfiguration
                                                };
                                                return [
                                                    4,
                                                    propertyStorage.getValueOrDefault(Property_1["default"].LATEST_REPORTED_SETTINGS_APPLET, {})
                                                ];
                                            case 1:
                                                lastUpdated = _state.sent();
                                                if (!!(0, lodash_1.isEqual)(lastUpdated, currentAppletSetting)) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    4,
                                                    (0, socketActionDeliverHelper_1.deliver)({
                                                        type: deviceTelemetryActions_1.UpdateDeviceTelemetryRecord,
                                                        name: DeviceTelemetryType_1.DeviceTelemetryType.APPLET,
                                                        data: currentAppletSetting
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].LATEST_REPORTED_SETTINGS_APPLET, currentAppletSetting)
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("notifyAppletTelemetry failed", error);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyAppletTelemetry = notifyAppletTelemetry;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/AppletTiming/TimingFinishEventType.js
    var require_TimingFinishEventType = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/AppletTiming/TimingFinishEventType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var TimingFinishEventType;
            (function(TimingFinishEventType2) {
                TimingFinishEventType2[TimingFinishEventType2["DURATION"] = 0] = "DURATION";
                TimingFinishEventType2[TimingFinishEventType2["IDLE_TIMEOUT"] = 1] = "IDLE_TIMEOUT";
                TimingFinishEventType2[TimingFinishEventType2["SCREEN_TAP"] = 2] = "SCREEN_TAP";
            })(TimingFinishEventType || (TimingFinishEventType = {}));
            exports["default"] = TimingFinishEventType;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Applet/defaultApplet.js
    var require_defaultApplet = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Applet/defaultApplet.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getDefaultAppletTimingDefinition = void 0;
            var TimingFinishEventType_1 = __importDefault(require_TimingFinishEventType());
            function getDefaultAppletTimingDefinition(appletUid, appletVersion, frontAppletVersion, checksum, config) {
                var DEFAULT_FINISH_EVENT = {
                    type: TimingFinishEventType_1["default"][TimingFinishEventType_1["default"].DURATION],
                    data: null
                };
                return {
                    appletUid: appletUid,
                    configuration: config !== null && config !== void 0 ? config : {},
                    timmingChecksum: checksum,
                    appletVersion: appletVersion,
                    frontAppletVersion: frontAppletVersion,
                    finishEvent: DEFAULT_FINISH_EVENT,
                    position: 1
                };
            }
            exports.getDefaultAppletTimingDefinition = getDefaultAppletTimingDefinition;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/AppletTiming/appletTimingCacheSagas.js
    var require_appletTimingCacheSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/AppletTiming/appletTimingCacheSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.saveAppletBinary = exports.deleteTimingsDefinitionCallback = exports.deleteAppletTimingsDefinition = exports.saveAppletTimingsDefinition = exports.loadAppletTimingsDefinition = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var applicationActions_1 = require_applicationActions2();
            var appletActions_1 = require_appletActions();
            var TimingFinishEventType_1 = __importDefault(require_TimingFinishEventType());
            var Property_1 = __importDefault(require_Property());
            var activeAppletActions_1 = require_activeAppletActions2();
            function loadAppletTimingsDefinition(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var updateAppletTimingsDefinition, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                return [
                                                    4,
                                                    propertyStorage.getValueOrDefault(Property_1["default"].APPLET_TIMINGS_UPDATE_DEFINITION, null)
                                                ];
                                            case 1:
                                                updateAppletTimingsDefinition = _state.sent();
                                                if (!updateAppletTimingsDefinition) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)(updateAppletTimingsDefinition)
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("loadAppletTimingsDefinition failed", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.loadAppletTimingsDefinition = loadAppletTimingsDefinition;
            function saveAppletTimingsDefinition(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(appletActions_1.UpdateAppletTimingsDefinition, function(action) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].APPLET_TIMINGS_UPDATE_DEFINITION, action)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("saveAppletTimingsDefinition failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.saveAppletTimingsDefinition = saveAppletTimingsDefinition;
            function deleteAppletTimingsDefinition(propertyStorage, defaultDefinitions) {
                var defaultDefinitionsOrNull, definitions;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            defaultDefinitionsOrNull = function() {
                                if (defaultDefinitions && defaultDefinitions.length > 0) {
                                    return defaultDefinitions;
                                }
                                return null;
                            };
                            definitions = defaultDefinitionsOrNull();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(appletActions_1.LastActiveAppletMissed, deleteTimingsDefinitionCallback, propertyStorage, definitions)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deleteAppletTimingsDefinition = deleteAppletTimingsDefinition;
            function deleteTimingsDefinitionCallback(propertyStorage, timingDefinitions) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.removeValue(Property_1["default"].APPLET_TIMINGS_UPDATE_DEFINITION)
                            ];
                        case 1:
                            _state.sent();
                            if (!!timingDefinitions) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: appletActions_1.UpdateActiveAppletBinaryFile,
                                    appletBinaryFile: null,
                                    appletFrontAppletJsFile: null
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletRestore
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deleteTimingsDefinitionCallback = deleteTimingsDefinitionCallback;
            function saveAppletBinary() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(appletActions_1.UpdateActiveAppletBinary, function(action) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                if (!(typeof action.__source !== "undefined")) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletActions_1.UpdateAppletTimingsDefinition,
                                                        definitions: [
                                                            {
                                                                appletUid: action.activeAppletUid,
                                                                configuration: action.activeConfiguration,
                                                                timmingChecksum: action.activeTimingChecksum,
                                                                appletVersion: action.activeAppletVersion,
                                                                appletVersionPostfix: action.activeAppletVersionPostfix,
                                                                isPackage: action.activeAppletIsPackage,
                                                                frontAppletVersion: action.activeAppletFrontAppletVersion || action.activeAppletHugApiVersion,
                                                                // deprecated will be deleted
                                                                finishEvent: {
                                                                    type: TimingFinishEventType_1["default"][TimingFinishEventType_1["default"].DURATION],
                                                                    data: null
                                                                },
                                                                position: 1,
                                                                metadata: action.activeAppletMetadata
                                                            }
                                                        ]
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("saveAppletBinary failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.saveAppletBinary = saveAppletBinary;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Hash/checksum.js
    var require_checksum = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/dist/Hash/checksum.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checksumString = checksumString2;
            exports.checksumMessage = checksumMessage;
            var crypto_1 = require_crypto_browserify();
            function checksumString2(message2, length) {
                if (length === void 0) {
                    length = 50;
                }
                var hash = (0, crypto_1.createHash)("sha256");
                hash.update(message2);
                return hash.digest("hex").substring(0, length);
            }
            function checksumMessage(message2, algorithm) {
                var hash = (0, crypto_1.createHash)(algorithm);
                hash.update(message2);
                return hash.digest();
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Supra/supraConstants.js
    var require_supraConstants = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Supra/supraConstants.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DEFAULT_SUPRA_SERVER_STATUS_PORT = exports.DEFAULT_SUPRA_APP_NAME = exports.DEFAULT_SUPRA_SCREEN_APPLET_VERSION = exports.SUPRA_APPLET_UID = void 0;
            exports.SUPRA_APPLET_UID = "@signageos/supra-screen";
            exports.DEFAULT_SUPRA_SCREEN_APPLET_VERSION = "latest";
            exports.DEFAULT_SUPRA_APP_NAME = "/opt/signageos-display-supra/@signageosdisplay-supra";
            exports.DEFAULT_SUPRA_SERVER_STATUS_PORT = 6112;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Supra/supraConfig.js
    var require_supraConfig = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Supra/supraConfig.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.parseSupraCoreAppConfigFromDSN = exports.getSupraAppletChecksum = exports.getSupraScreenCredentials = exports.getAvailableSupraServer = exports.getSupraCoreAppConfigFromServerConfig = exports.getSupraCoreAppDefaultConfig = void 0;
            var url = __importStar(require_url());
            var checksum_1 = require_checksum();
            var supraConstants_1 = require_supraConstants();
            var lodash_1 = require_lodash();
            function getSupraCoreAppDefaultConfig() {
                return {
                    secure: false,
                    appName: supraConstants_1.DEFAULT_SUPRA_APP_NAME,
                    supraScreenAppletVersion: supraConstants_1.DEFAULT_SUPRA_SCREEN_APPLET_VERSION
                };
            }
            exports.getSupraCoreAppDefaultConfig = getSupraCoreAppDefaultConfig;
            function getSupraCoreAppConfigFromServerConfig(server) {
                var _a2;
                if (!server) {
                    return null;
                }
                var configuration = Object.assign(Object.assign({}, getSupraCoreAppDefaultConfig()), {
                    hostname: server.hostname,
                    secure: (_a2 = server.secure) !== null && _a2 !== void 0 ? _a2 : false
                });
                return configuration;
            }
            exports.getSupraCoreAppConfigFromServerConfig = getSupraCoreAppConfigFromServerConfig;
            function getAvailableSupraServer(servers) {
                return __awaiter(this, void 0, void 0, function() {
                    var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, server, protocol, urlToCheck, options, response, error, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    8,
                                    9,
                                    10
                                ]);
                                _iterator = servers[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    7
                                ];
                                server = _step.value;
                                protocol = server.secure ? "https:" : "http:";
                                urlToCheck = "".concat(protocol, "//").concat(server.hostname, ":").concat(supraConstants_1.DEFAULT_SUPRA_SERVER_STATUS_PORT);
                                _state.label = 3;
                            case 3:
                                _state.trys.push([
                                    3,
                                    5,
                                    ,
                                    6
                                ]);
                                options = {
                                    method: "GET",
                                    cache: "no-cache"
                                };
                                if ("AbortSignal" in globalThis && "timeout" in AbortSignal) {
                                    options.signal = AbortSignal.timeout(5e3);
                                }
                                return [
                                    4,
                                    fetch(urlToCheck, options)
                                ];
                            case 4:
                                response = _state.sent();
                                if (response.ok) {
                                    return [
                                        2,
                                        server
                                    ];
                                }
                                return [
                                    3,
                                    6
                                ];
                            case 5:
                                error = _state.sent();
                                console.error("Error checking Supra server ".concat(server.hostname, ":"), error);
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 7:
                                return [
                                    3,
                                    10
                                ];
                            case 8:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    10
                                ];
                            case 9:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 10:
                                return [
                                    2,
                                    null
                                ];
                        }
                    });
                });
            }
            exports.getAvailableSupraServer = getAvailableSupraServer;
            function getSupraScreenCredentials(deviceUid, authHash) {
                return {
                    clientID: (0, checksum_1.checksumString)(deviceUid, 20),
                    clientSecret: authHash.substring(0, 40).padStart(40, "0")
                };
            }
            exports.getSupraScreenCredentials = getSupraScreenCredentials;
            function getSupraAppletChecksum(supraScreenAppletVersion, configuration) {
                return (0, checksum_1.checksumString)(supraConstants_1.SUPRA_APPLET_UID + ":" + supraScreenAppletVersion + ":" + JSON.stringify(configuration));
            }
            exports.getSupraAppletChecksum = getSupraAppletChecksum;
            function parseSupraCoreAppConfigFromDSN(supraDsn) {
                if (!supraDsn) {
                    return null;
                }
                var parsedUrl = url.parse(supraDsn, true);
                var configuration = Object.assign({
                    hostname: parsedUrl.hostname,
                    secure: parsedUrl.protocol !== null ? parsedUrl.protocol === "supras:" : void 0
                }, parsedUrl.query);
                return (0, lodash_1.omitBy)(configuration, lodash_1.isNil);
            }
            exports.parseSupraCoreAppConfigFromDSN = parseSupraCoreAppConfigFromDSN;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Supra/supraAppletTimingController.js
    var require_supraAppletTimingController = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Supra/supraAppletTimingController.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getSupraUpdateActiveAppletBinary = void 0;
            var appletActions_1 = require_appletActions();
            var supraConstants_1 = require_supraConstants();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var supraConfig_1 = require_supraConfig();
            var Property_1 = __importDefault(require_Property());
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            function getSupraUpdateActiveAppletBinary(frontDriver, propertyStorage, definition, authHash) {
                var _a2, _b2, _c, _d, deviceUid, applicationType, supraScreenServerConfig, supraScreenAppletCredentials, supraServer, supraCoreAppDefaultConfig, supraCoreAppConfig, supraCoreAppOverrideConfig, secure, supraScreenAppletVersion, appArgs, configuration, action;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)([
                                    frontDriver,
                                    frontDriver.frontSupports
                                ], FrontCapability_1["default"].SUPRA)
                            ];
                        case 1:
                            if (!_state.sent()) {
                                return [
                                    2,
                                    null
                                ];
                            }
                            if (!(definition.configuration.supra === "enabled")) return [
                                3,
                                6
                            ];
                            return [
                                4,
                                (0, effects_1.call)([
                                    frontDriver,
                                    frontDriver.getDeviceUid
                                ])
                            ];
                        case 2:
                            deviceUid = _state.sent();
                            return [
                                4,
                                (0, effects_1.call)([
                                    frontDriver,
                                    frontDriver.getApplicationType
                                ])
                            ];
                        case 3:
                            applicationType = _state.sent();
                            if (!authHash) {
                                console.warn("Cannot show Supra applet - authentication hash is missing");
                                return [
                                    2,
                                    null
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.call)(propertyStorage.getValueOrDefault, Property_1["default"].SUPRA_SCREEN_CONFIG, null)
                            ];
                        case 4:
                            supraScreenServerConfig = _state.sent();
                            if (!supraScreenServerConfig) {
                                console.info("Supra screen config not yet available in propertyStorage, falling back to empty server list");
                            }
                            supraScreenAppletCredentials = (0, supraConfig_1.getSupraScreenCredentials)(deviceUid, authHash);
                            return [
                                4,
                                (0, effects_1.call)(supraConfig_1.getAvailableSupraServer, (supraScreenServerConfig === null || supraScreenServerConfig === void 0 ? void 0 : supraScreenServerConfig.servers) || [])
                            ];
                        case 5:
                            supraServer = _state.sent();
                            supraCoreAppDefaultConfig = (0, supraConfig_1.getSupraCoreAppDefaultConfig)();
                            supraCoreAppConfig = (0, supraConfig_1.getSupraCoreAppConfigFromServerConfig)(supraServer);
                            supraCoreAppOverrideConfig = (0, supraConfig_1.parseSupraCoreAppConfigFromDSN)(definition.configuration.supraDsn);
                            secure = (_b2 = (_a2 = supraCoreAppOverrideConfig === null || supraCoreAppOverrideConfig === void 0 ? void 0 : supraCoreAppOverrideConfig.secure) !== null && _a2 !== void 0 ? _a2 : supraCoreAppConfig === null || supraCoreAppConfig === void 0 ? void 0 : supraCoreAppConfig.secure) !== null && _b2 !== void 0 ? _b2 : supraCoreAppDefaultConfig.secure;
                            supraScreenAppletVersion = (_d = (_c = supraCoreAppOverrideConfig === null || supraCoreAppOverrideConfig === void 0 ? void 0 : supraCoreAppOverrideConfig.supraScreenAppletVersion) !== null && _c !== void 0 ? _c : supraCoreAppConfig === null || supraCoreAppConfig === void 0 ? void 0 : supraCoreAppConfig.supraScreenAppletVersion) !== null && _d !== void 0 ? _d : supraCoreAppDefaultConfig.supraScreenAppletVersion;
                            if (!supraCoreAppConfig) {
                                console.warn("Cannot show Supra applet - Supra server configuration is missing");
                                return [
                                    2,
                                    null
                                ];
                            }
                            if (!supraCoreAppConfig.hostname) {
                                console.warn("Cannot show Supra applet - Supra server hostname is missing");
                                return [
                                    2,
                                    null
                                ];
                            }
                            appArgs = [
                                "--",
                                "--device-uid",
                                deviceUid,
                                "--application-type",
                                applicationType
                            ];
                            configuration = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, supraScreenAppletCredentials), supraCoreAppConfig), {
                                hostname: supraCoreAppConfig.hostname,
                                appName: supraCoreAppConfig.appName,
                                extraArgs: appArgs.join(" ")
                            }), supraCoreAppOverrideConfig), {
                                secure: secure ? 1 : 0
                            });
                            action = {
                                type: appletActions_1.UpdateActiveAppletBinary,
                                activeAppletUid: supraConstants_1.SUPRA_APPLET_UID,
                                activeConfiguration: configuration,
                                activeTimingChecksum: (0, supraConfig_1.getSupraAppletChecksum)(supraScreenAppletVersion, configuration),
                                activeAppletVersion: supraScreenAppletVersion,
                                activeAppletVersionPostfix: void 0,
                                activeAppletFrontAppletVersion: void 0,
                                activeAppletIsPackage: true,
                                activeAppletMetadata: void 0
                            };
                            return [
                                2,
                                action
                            ];
                        case 6:
                            return [
                                2,
                                null
                            ];
                    }
                });
            }
            exports.getSupraUpdateActiveAppletBinary = getSupraUpdateActiveAppletBinary;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/AppletTiming/appletTimingControllerSagas.js
    var require_appletTimingControllerSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/AppletTiming/appletTimingControllerSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.controlActiveAppletTiming = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dateTimeFactory_1 = require_dateTimeFactory();
            var appletActions_1 = require_appletActions();
            var motionActions_1 = require_motionActions();
            var keyActions_1 = require_keyActions();
            var appletTimingActions_1 = require_appletTimingActions();
            var channels_1 = require_channels();
            var deviceConnectActions_1 = require_deviceConnectActions();
            var activeAppletActions_1 = require_activeAppletActions2();
            var devicePowerActions_1 = require_devicePowerActions();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var generator_1 = require_generator();
            var checksum_1 = require_checksum();
            var TimingFinishEventType_1 = __importDefault(require_TimingFinishEventType());
            var deviceConnectActions_2 = require_deviceConnectActions2();
            var deviceAuthenticationActions_1 = require_deviceAuthenticationActions();
            var supraAppletTimingController_1 = require_supraAppletTimingController();
            function createConnectedAppletTimingDefinition(appletUid, appletVersion) {
                return {
                    appletUid: appletUid,
                    configuration: {},
                    timmingChecksum: (0, checksum_1.checksumString)(appletUid + "," + appletVersion),
                    appletVersion: appletVersion,
                    isPackage: true,
                    appletVersionPostfix: (0, generator_1.generateUniqueHash)(),
                    finishEvent: {
                        type: TimingFinishEventType_1["default"][TimingFinishEventType_1["default"].DURATION],
                        data: null
                    },
                    position: 1,
                    metadata: {}
                };
            }
            function controlActiveAppletTiming(webWorkerFactory, defaultDefinitions, frontDriver, propertyStorage) {
                var defaultDefinitionsOrNull, appletTimingWebWorker, appletTimingChannel, model, setModel;
                function putUpdateActiveAppletBinaryIfChanged(definition) {
                    var _a2, supraAction, action;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, effects_1.call)(supraAppletTimingController_1.getSupraUpdateActiveAppletBinary, frontDriver, propertyStorage, definition, model.authHash)
                                ];
                            case 1:
                                supraAction = _state.sent();
                                action = supraAction !== null && supraAction !== void 0 ? supraAction : {
                                    type: appletActions_1.UpdateActiveAppletBinary,
                                    activeAppletUid: definition.appletUid,
                                    activeConfiguration: definition.configuration,
                                    activeTimingChecksum: definition.timmingChecksum,
                                    activeAppletVersion: definition.appletVersion,
                                    activeAppletVersionPostfix: definition.appletVersionPostfix,
                                    activeAppletFrontAppletVersion: definition.frontAppletVersion,
                                    activeAppletIsPackage: (_a2 = definition.isPackage) !== null && _a2 !== void 0 ? _a2 : false,
                                    activeAppletMetadata: definition.metadata
                                };
                                if (!(!model.lastPutUpdateActiveAppletBinary || JSON.stringify(action) !== JSON.stringify(model.lastPutUpdateActiveAppletBinary))) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    (0, effects_1.put)(action)
                                ];
                            case 2:
                                _state.sent();
                                setModel(Object.assign(Object.assign({}, model), {
                                    lastPutUpdateActiveAppletBinary: action
                                }));
                                _state.label = 3;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                }
                function putPrepareNextAppletTimingIfChanged(nextDefinition) {
                    var _a2, action;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                action = {
                                    type: appletTimingActions_1.PrepareNextAppletTiming,
                                    appletUid: nextDefinition.appletUid,
                                    configuration: nextDefinition.configuration,
                                    timingChecksum: nextDefinition.timmingChecksum,
                                    appletVersion: nextDefinition.appletVersion,
                                    appletFrontAppletVersion: nextDefinition.frontAppletVersion,
                                    isPackage: (_a2 = nextDefinition.isPackage) !== null && _a2 !== void 0 ? _a2 : false,
                                    appletMetadata: nextDefinition.metadata
                                };
                                if (!(!model.lastPutPrepareNextAppletTiming || JSON.stringify(action) !== JSON.stringify(model.lastPutPrepareNextAppletTiming))) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    (0, effects_1.put)(action)
                                ];
                            case 1:
                                _state.sent();
                                setModel(Object.assign(Object.assign({}, model), {
                                    lastPutPrepareNextAppletTiming: action
                                }));
                                _state.label = 2;
                            case 2:
                                return [
                                    2
                                ];
                        }
                    });
                }
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            defaultDefinitionsOrNull = function() {
                                if (defaultDefinitions && defaultDefinitions.length > 0) {
                                    return defaultDefinitions;
                                }
                                return null;
                            };
                            appletTimingWebWorker = webWorkerFactory.createAppletTimingController();
                            appletTimingChannel = (0, channels_1.createChannel)(function(putHere) {
                                appletTimingWebWorker.onMessage(putHere);
                            });
                            appletTimingWebWorker.start(void 0);
                            setModel = function(newModel) {
                                model = newModel;
                                appletTimingWebWorker.postMessage(newModel);
                            };
                            setModel({
                                definitions: defaultDefinitionsOrNull(),
                                currentDefinitionIndex: null,
                                startTimestamp: null,
                                lastInteractionTimestamp: null,
                                triggersPausedTimestamp: null,
                                lastPutUpdateActiveAppletBinary: null,
                                lastPutPrepareNextAppletTiming: null,
                                authHash: null,
                                deviceInConnectedMode: null
                            });
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(appletActions_1.UpdateAppletTimingsDefinition, function(action) {
                                    var definitions;
                                    return _ts_generator(this, function(_state) {
                                        if (action.definitions && action.definitions.length > 0) {
                                            definitions = action.definitions.sort(function(a, b) {
                                                return a.position - b.position;
                                            });
                                        } else {
                                            definitions = defaultDefinitionsOrNull();
                                        }
                                        setModel(Object.assign(Object.assign({}, model), {
                                            definitions: definitions,
                                            currentDefinitionIndex: null,
                                            startTimestamp: null,
                                            lastInteractionTimestamp: null,
                                            triggersPausedTimestamp: null,
                                            lastPutUpdateActiveAppletBinary: null,
                                            lastPutPrepareNextAppletTiming: null
                                        }));
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(appletActions_1.LastActiveAppletMissed, function() {
                                    var definitions;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                definitions = defaultDefinitionsOrNull();
                                                setModel(Object.assign(Object.assign({}, model), {
                                                    definitions: definitions,
                                                    currentDefinitionIndex: null,
                                                    startTimestamp: null,
                                                    lastInteractionTimestamp: null,
                                                    triggersPausedTimestamp: null,
                                                    lastPutUpdateActiveAppletBinary: null,
                                                    lastPutPrepareNextAppletTiming: null
                                                }));
                                                if (!!defaultDefinitions) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletTimingActions_1.HideApplet
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)([
                                    motionActions_1.HandleMotion,
                                    keyActions_1.HandleKeyUp
                                ], function() {
                                    return _ts_generator(this, function(_state) {
                                        if (model.currentDefinitionIndex !== null && model.triggersPausedTimestamp === null) {
                                            setModel(Object.assign(Object.assign({}, model), {
                                                lastInteractionTimestamp: (0, dateTimeFactory_1.now)().valueOf()
                                            }));
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)([
                                    appletTimingActions_1.PauseAppletTimingTriggers,
                                    appletTimingActions_1.ShowOSD
                                ], function() {
                                    return _ts_generator(this, function(_state) {
                                        if (model.currentDefinitionIndex !== null && model.triggersPausedTimestamp === null) {
                                            setModel(Object.assign(Object.assign({}, model), {
                                                triggersPausedTimestamp: (0, dateTimeFactory_1.now)().valueOf()
                                            }));
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)([
                                    appletTimingActions_1.ResumeAppletTimingTriggers,
                                    appletActions_1.UpdateActiveAppletUniqueHash
                                ], function() {
                                    var pauseDuration;
                                    return _ts_generator(this, function(_state) {
                                        if (model.startTimestamp !== null && model.triggersPausedTimestamp !== null) {
                                            pauseDuration = (0, dateTimeFactory_1.now)().valueOf() - model.triggersPausedTimestamp;
                                            setModel(Object.assign(Object.assign({}, model), {
                                                startTimestamp: model.startTimestamp + pauseDuration,
                                                triggersPausedTimestamp: null
                                            }));
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.HideOSD, function() {
                                    return _ts_generator(this, function(_state) {
                                        setModel(Object.assign(Object.assign({}, model), {
                                            currentDefinitionIndex: null,
                                            startTimestamp: null,
                                            lastInteractionTimestamp: null,
                                            triggersPausedTimestamp: null,
                                            lastPutUpdateActiveAppletBinary: null,
                                            lastPutPrepareNextAppletTiming: null
                                        }));
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                4,
                                (0, channels_1.takeEvery)(appletTimingChannel, function() {
                                    var _a2, newCurrentIndex, newNextIndex, definition, nextDefinition;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!(model.definitions !== null && model.definitions.length > 0 && !((_a2 = model.deviceInConnectedMode) === null || _a2 === void 0 ? void 0 : _a2.connected))) return [
                                                    3,
                                                    3
                                                ];
                                                newCurrentIndex = model.currentDefinitionIndex === null ? 0 : (model.currentDefinitionIndex + 1) % model.definitions.length;
                                                newNextIndex = (newCurrentIndex + 1) % model.definitions.length;
                                                setModel(Object.assign(Object.assign({}, model), {
                                                    currentDefinitionIndex: newCurrentIndex,
                                                    startTimestamp: (0, dateTimeFactory_1.now)().valueOf(),
                                                    lastInteractionTimestamp: null,
                                                    triggersPausedTimestamp: null
                                                }));
                                                definition = model.definitions[newCurrentIndex];
                                                return [
                                                    4,
                                                    putUpdateActiveAppletBinaryIfChanged(definition)
                                                ];
                                            case 1:
                                                _state.sent();
                                                if (!(newNextIndex !== newCurrentIndex)) return [
                                                    3,
                                                    3
                                                ];
                                                nextDefinition = model.definitions[newNextIndex];
                                                return [
                                                    5,
                                                    _ts_values(__yieldStar(putPrepareNextAppletTimingIfChanged(nextDefinition)))
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 7:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceConnectActions_2.DeviceConnected, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                setModel(Object.assign(Object.assign({}, model), {
                                                    deviceInConnectedMode: {
                                                        connected: true,
                                                        appletUid: action.appletUid,
                                                        appletVersion: action.appletVersion
                                                    }
                                                }));
                                                return [
                                                    4,
                                                    putUpdateActiveAppletBinaryIfChanged(createConnectedAppletTimingDefinition(action.appletUid, action.appletVersion))
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 8:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceConnectActions_1.DisconnectDevice, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                setModel(Object.assign(Object.assign({}, model), {
                                                    deviceInConnectedMode: null
                                                }));
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePowerActions_1.PerformPowerAction,
                                                        powerType: PowerActionType_1["default"].APPLET_RELOAD
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 9:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(activeAppletActions_1.ActiveAppletRestore, function() {
                                    var _a2;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!((_a2 = model.deviceInConnectedMode) === null || _a2 === void 0 ? void 0 : _a2.connected)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    putUpdateActiveAppletBinaryIfChanged(createConnectedAppletTimingDefinition(model.deviceInConnectedMode.appletUid, model.deviceInConnectedMode.appletVersion))
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 10:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletTimingActions_1.ReevaluateActiveAppletBinary, function() {
                                    var _a2, currentDefinition;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!(model.currentDefinitionIndex !== null)) return [
                                                    3,
                                                    2
                                                ];
                                                currentDefinition = (_a2 = model.definitions) === null || _a2 === void 0 ? void 0 : _a2[model.currentDefinitionIndex];
                                                if (!currentDefinition) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    putUpdateActiveAppletBinaryIfChanged(currentDefinition)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 11:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceAuthenticationActions_1.UpdateAuthentication, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        setModel(Object.assign(Object.assign({}, model), {
                                            authHash: action.authHash
                                        }));
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 12:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.controlActiveAppletTiming = controlActiveAppletTiming;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/DateTime/currentTimeSyncSagas.js
    var require_currentTimeSyncSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/DateTime/currentTimeSyncSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.notifyCurrentTime = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceDateTimeActions_1 = require_deviceDateTimeActions();
            var dateTimeFacade_1 = require_dateTimeFacade();
            var dependencyInjection_1 = require_dependencyInjection();
            exports.notifyCurrentTime = (0, dependencyInjection_1.withDependencies)([
                "managementDriver",
                "propertyStorage"
            ], function(param) {
                var managementDriver, currentTimeWithTimezone, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            managementDriver = param.managementDriver;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                4,
                                ,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.call)(dateTimeFacade_1.getCurrentTime, managementDriver)
                            ];
                        case 2:
                            currentTimeWithTimezone = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)(Object.assign({
                                    type: deviceDateTimeActions_1.NotifyCurrentTime
                                }, currentTimeWithTimezone))
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 4:
                            error = _state.sent();
                            console.error("startupDeviceDateTimeSettings", error);
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/DateTime/currentTimeSyncSagas.js
    var require_currentTimeSyncSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/DateTime/currentTimeSyncSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.startupDeviceDateTimeSettings = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var applicationActions_1 = require_applicationActions2();
            var authenticationActions_1 = require_authenticationActions();
            var currentTimeSyncSagas_1 = require_currentTimeSyncSagas();
            function startupDeviceDateTimeSettings() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, currentTimeSyncSagas_1.notifyCurrentTime)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(authenticationActions_1.AuthenticationSucceed, currentTimeSyncSagas_1.notifyCurrentTime)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.startupDeviceDateTimeSettings = startupDeviceDateTimeSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugHelper.js
    var require_deviceDebugHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.startWeinreDebug = void 0;
            function startWeinreDebug(global2) {
                if (!global2.__weinreLoaded) {
                    var script = global2.document.createElement("script");
                    script.src = "weinre.js";
                    document.body.appendChild(script);
                    global2.__weinreLoaded = true;
                }
            }
            exports.startWeinreDebug = startWeinreDebug;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugSettingsSagas.js
    var require_deviceDebugSettingsSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Debug/deviceDebugSettingsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.readSetDeviceDebugSettingsCallback = exports.readSetDeviceDebugSettings = exports.setDeviceDebugSettingsCallback = exports.devicePerformDebugSettings = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceDebugActions_1 = require_deviceDebugActions();
            var deviceDebugLocalActions_1 = require_deviceDebugLocalActions();
            var deviceDebugHelper_1 = require_deviceDebugHelper();
            var Property_1 = __importDefault(require_Property());
            var applicationActions_1 = require_applicationActions2();
            var activeAppletActions_1 = require_activeAppletActions();
            var sendAppletMessage_1 = require_sendAppletMessage();
            function devicePerformDebugSettings(global2, getNativeDriver, propertyStorage, messageTypePrefix, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceDebugActions_1.SetDeviceDebugSettings, setDeviceDebugSettingsCallback, global2, getNativeDriver, propertyStorage, messageTypePrefix, getState)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePerformDebugSettings = devicePerformDebugSettings;
            function setDeviceDebugSettingsCallback(global2, getNativeDriver, propertyStorage, messageTypePrefix, getState, param) {
                var weinreEnabled, appletEnabled, uid, e;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            weinreEnabled = param.weinreEnabled, appletEnabled = param.appletEnabled, uid = param.uid;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                5,
                                ,
                                7
                            ]);
                            weinreEnabled = typeof weinreEnabled === "undefined" ? !!appletEnabled : !!weinreEnabled;
                            return [
                                4,
                                propertyStorage.setValue(Property_1["default"].DEBUG_WEINRE_ENABLED, weinreEnabled)
                            ];
                        case 2:
                            _state.sent();
                            if (weinreEnabled) {
                                (0, deviceDebugHelper_1.startWeinreDebug)(global2);
                            }
                            return [
                                5,
                                _ts_values(__yieldStar(setDebugInAppletIfSomeActive(global2, getNativeDriver, propertyStorage, messageTypePrefix, getState, function() {
                                    return weinreEnabled;
                                })))
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceDebugActions_1.SetDeviceDebugSettingsSucceeded,
                                    uid: uid
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 5:
                            e = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceDebugActions_1.SetDeviceDebugSettingsFailed,
                                    uid: uid
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceDebugSettingsCallback = setDeviceDebugSettingsCallback;
            function readSetDeviceDebugSettings(global2, getNativeDriver, propertyStorage, messageTypePrefix, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, readSetDeviceDebugSettingsCallback, propertyStorage)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(activeAppletActions_1.ActiveAppletReady, setDebugInAppletIfSomeActive, global2, getNativeDriver, propertyStorage, messageTypePrefix, getState, function() {
                                    return getState().debug.debugOn;
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.readSetDeviceDebugSettings = readSetDeviceDebugSettings;
            function readSetDeviceDebugSettingsCallback(propertyStorage) {
                var debugOnFromStorage;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEBUG_WEINRE_ENABLED, false)
                            ];
                        case 1:
                            debugOnFromStorage = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceDebugLocalActions_1.ReadDeviceDebugSettings,
                                    debugOn: debugOnFromStorage
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.readSetDeviceDebugSettingsCallback = readSetDeviceDebugSettingsCallback;
            function setDebugInAppletIfSomeActive(global2, getNativeDriver, propertyStorage, messageTypePrefix, getState, isEnabled) {
                var url, duid, activeAppletUid;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEBUG_WEINRE_SERVER_URL, "")
                            ];
                        case 1:
                            url = _state.sent();
                            return [
                                4,
                                getNativeDriver().getDeviceUid()
                            ];
                        case 2:
                            duid = _state.sent();
                            activeAppletUid = getState().applet.activeAppletUid;
                            if (!activeAppletUid) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(global2, getState, {
                                    type: messageTypePrefix + ".debug.configure",
                                    enabled: isEnabled(),
                                    url: url,
                                    id: "".concat(duid, "_").concat(activeAppletUid)
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/actions/dist/Device/Deprovision/deviceDeprovisionActions.js
    var require_deviceDeprovisionActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Deprovision/deviceDeprovisionActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PerformDeviceDeprovision = void 0;
            exports.PerformDeviceDeprovision = "Device.Deprovision.PerformDeviceDeprovision";
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Deprovision/deviceDeprovisionSagas.js
    var require_deviceDeprovisionSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Deprovision/deviceDeprovisionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceDeprovision = void 0;
            var deviceDeprovisionActions_1 = require_deviceDeprovisionActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var socketActionCreator_1 = require_socketActionCreator();
            function deviceDeprovision(getNativeDriver, getManagementDriver, responsibilities, sessionIdKey) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].DEPROVISIONING)) return [
                                3,
                                2
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceDeprovisionActions_1.PerformDeviceDeprovision, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    Promise.allSettled([
                                                        getNativeDriver().security.setPin(""),
                                                        getNativeDriver().remoteControlSetEnabled(true),
                                                        getNativeDriver().hardware.led.setColor("#00000"),
                                                        getManagementDriver().wifi.disconnect(),
                                                        getManagementDriver().wifi.disable(),
                                                        getNativeDriver().setSessionId(sessionIdKey, "")
                                                    ])
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("deviceDeprovision failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceDeprovision = deviceDeprovision;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Power/powerActionTimers.js
    var require_powerActionTimers = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Power/powerActionTimers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.unsetByFilter = void 0;
            function unsetByFilter(timer, filter) {
                return __awaiter(this, void 0, void 0, function() {
                    var rules, uidsToUnset, hasUidsToUnset, _timer;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    timer.rules()
                                ];
                            case 1:
                                rules = _state.sent();
                                uidsToUnset = Object.entries(rules).filter(function(param) {
                                    var _param = _sliced_to_array(param, 2), _key = _param[0], value = _param[1];
                                    return filter(value);
                                }).reduce(function(uids, param) {
                                    var _param = _sliced_to_array(param, 2), key = _param[0], _value = _param[1];
                                    return _to_consumable_array(uids).concat([
                                        key
                                    ]);
                                }, []);
                                hasUidsToUnset = uidsToUnset.length > 0;
                                if (hasUidsToUnset) {
                                    ;
                                    (_timer = timer).unset.apply(_timer, _to_consumable_array(uidsToUnset));
                                }
                                return [
                                    2,
                                    hasUidsToUnset
                                ];
                        }
                    });
                });
            }
            exports.unsetByFilter = unsetByFilter;
        }
    });
    // node_modules/@signageos/front-display/es6/Device/Power/deviceSchedulePowerActionSagas.js
    var require_deviceSchedulePowerActionSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Device/Power/deviceSchedulePowerActionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceSchedulePowerActionCommon = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var devicePowerActions_1 = require_devicePowerActions();
            var powerActionTimers_1 = require_powerActionTimers();
            var applicationActions_1 = require_applicationActions();
            function deviceSchedulePowerActionCommon(powerActionTimer, shouldHandle) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, powerActionTimers_1.unsetByFilter)(powerActionTimer, function(rule) {
                                    return !shouldHandle(rule.powerType);
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                powerActionTimer.notifyStart()
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                ,
                                7,
                                9
                            ]);
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActions_1.SchedulePowerAction, function(action) {
                                    var uid, rule, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    5
                                                ]);
                                                if (!shouldHandle(action.powerType)) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                uid = action.uid, rule = __rest(action, [
                                                    "uid"
                                                ]);
                                                return [
                                                    4,
                                                    powerActionTimer.set(uid, rule)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePowerActions_1.SchedulePowerActionSucceed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePowerActions_1.SchedulePowerActionFailed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActions_1.CancelScheduledPowerAction, function(action) {
                                    var uid, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    5
                                                ]);
                                                uid = action.scheduledPowerActionUid;
                                                return [
                                                    4,
                                                    powerActionTimer.unset(uid)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePowerActions_1.CancelScheduledPowerActionSucceed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePowerActions_1.CancelScheduledPowerActionFailed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.take)(applicationActions_1.StopApplication)
                            ];
                        case 6:
                            _state.sent();
                            return [
                                3,
                                9
                            ];
                        case 7:
                            return [
                                4,
                                powerActionTimer.notifyEnd()
                            ];
                        case 8:
                            _state.sent();
                            return [
                                7
                            ];
                        case 9:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceSchedulePowerActionCommon = deviceSchedulePowerActionCommon;
        }
    });
    // node_modules/moment-timezone/moment-timezone.js
    var require_moment_timezone5 = __commonJS({
        "node_modules/moment-timezone/moment-timezone.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root, factory) {
                "use strict";
                if ((typeof module === "undefined" ? "undefined" : _type_of(module)) === "object" && module.exports) {
                    module.exports = factory(require_moment());
                } else if (typeof define === "function" && define.amd) {
                    define([
                        "moment"
                    ], factory);
                } else {
                    factory(root.moment);
                }
            })(exports, function(moment4) {
                "use strict";
                if (moment4.version === void 0 && moment4["default"]) {
                    moment4 = moment4["default"];
                }
                var VERSION = "0.5.35", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess;
                if (!moment4 || typeof moment4.version !== "string") {
                    logError2("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
                }
                var momentVersion = moment4.version.split("."), major = +momentVersion[0], minor = +momentVersion[1];
                if (major < 2 || major === 2 && minor < 6) {
                    logError2("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + moment4.version + ". See momentjs.com");
                }
                function charCodeToInt(charCode) {
                    if (charCode > 96) {
                        return charCode - 87;
                    } else if (charCode > 64) {
                        return charCode - 29;
                    }
                    return charCode - 48;
                }
                function unpackBase60(string5) {
                    var i = 0, parts = string5.split("."), whole = parts[0], fractional = parts[1] || "", multiplier = 1, num, out = 0, sign2 = 1;
                    if (string5.charCodeAt(0) === 45) {
                        i = 1;
                        sign2 = -1;
                    }
                    for(i; i < whole.length; i++){
                        num = charCodeToInt(whole.charCodeAt(i));
                        out = 60 * out + num;
                    }
                    for(i = 0; i < fractional.length; i++){
                        multiplier = multiplier / 60;
                        num = charCodeToInt(fractional.charCodeAt(i));
                        out += num * multiplier;
                    }
                    return out * sign2;
                }
                function arrayToInt(array4) {
                    for(var i = 0; i < array4.length; i++){
                        array4[i] = unpackBase60(array4[i]);
                    }
                }
                function intToUntil(array4, length) {
                    for(var i = 0; i < length; i++){
                        array4[i] = Math.round((array4[i - 1] || 0) + array4[i] * 6e4);
                    }
                    array4[length - 1] = Infinity;
                }
                function mapIndices(source, indices) {
                    var out = [], i;
                    for(i = 0; i < indices.length; i++){
                        out[i] = source[indices[i]];
                    }
                    return out;
                }
                function unpack(string5) {
                    var data = string5.split("|"), offsets = data[2].split(" "), indices = data[3].split(""), untils = data[4].split(" ");
                    arrayToInt(offsets);
                    arrayToInt(indices);
                    arrayToInt(untils);
                    intToUntil(untils, indices.length);
                    return {
                        name: data[0],
                        abbrs: mapIndices(data[1].split(" "), indices),
                        offsets: mapIndices(offsets, indices),
                        untils: untils,
                        population: data[5] | 0
                    };
                }
                function Zone(packedString) {
                    if (packedString) {
                        this._set(unpack(packedString));
                    }
                }
                Zone.prototype = {
                    _set: function _set(unpacked) {
                        this.name = unpacked.name;
                        this.abbrs = unpacked.abbrs;
                        this.untils = unpacked.untils;
                        this.offsets = unpacked.offsets;
                        this.population = unpacked.population;
                    },
                    _index: function _index(timestamp) {
                        var target = +timestamp, untils = this.untils, i;
                        for(i = 0; i < untils.length; i++){
                            if (target < untils[i]) {
                                return i;
                            }
                        }
                    },
                    countries: function countries1() {
                        var zone_name = this.name;
                        return Object.keys(countries).filter(function(country_code) {
                            return countries[country_code].zones.indexOf(zone_name) !== -1;
                        });
                    },
                    parse: function parse(timestamp) {
                        var target = +timestamp, offsets = this.offsets, untils = this.untils, max = untils.length - 1, offset, offsetNext, offsetPrev, i;
                        for(i = 0; i < max; i++){
                            offset = offsets[i];
                            offsetNext = offsets[i + 1];
                            offsetPrev = offsets[i ? i - 1 : i];
                            if (offset < offsetNext && tz.moveAmbiguousForward) {
                                offset = offsetNext;
                            } else if (offset > offsetPrev && tz.moveInvalidForward) {
                                offset = offsetPrev;
                            }
                            if (target < untils[i] - offset * 6e4) {
                                return offsets[i];
                            }
                        }
                        return offsets[max];
                    },
                    abbr: function abbr(mom) {
                        return this.abbrs[this._index(mom)];
                    },
                    offset: function offset(mom) {
                        logError2("zone.offset has been deprecated in favor of zone.utcOffset");
                        return this.offsets[this._index(mom)];
                    },
                    utcOffset: function utcOffset(mom) {
                        return this.offsets[this._index(mom)];
                    }
                };
                function Country(country_name, zone_names) {
                    this.name = country_name;
                    this.zones = zone_names;
                }
                function OffsetAt(at) {
                    var timeString = at.toTimeString();
                    var abbr = timeString.match(/\([a-z ]+\)/i);
                    if (abbr && abbr[0]) {
                        abbr = abbr[0].match(/[A-Z]/g);
                        abbr = abbr ? abbr.join("") : void 0;
                    } else {
                        abbr = timeString.match(/[A-Z]{3,5}/g);
                        abbr = abbr ? abbr[0] : void 0;
                    }
                    if (abbr === "GMT") {
                        abbr = void 0;
                    }
                    this.at = +at;
                    this.abbr = abbr;
                    this.offset = at.getTimezoneOffset();
                }
                function ZoneScore(zone) {
                    this.zone = zone;
                    this.offsetScore = 0;
                    this.abbrScore = 0;
                }
                ZoneScore.prototype.scoreOffsetAt = function(offsetAt) {
                    this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);
                    if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, "") !== offsetAt.abbr) {
                        this.abbrScore++;
                    }
                };
                function findChange(low, high) {
                    var mid, diff;
                    while(diff = ((high.at - low.at) / 12e4 | 0) * 6e4){
                        mid = new OffsetAt(new Date(low.at + diff));
                        if (mid.offset === low.offset) {
                            low = mid;
                        } else {
                            high = mid;
                        }
                    }
                    return low;
                }
                function userOffsets() {
                    var startYear = /* @__PURE__ */ new Date().getFullYear() - 2, last = new OffsetAt(new Date(startYear, 0, 1)), offsets = [
                        last
                    ], change, next, i;
                    for(i = 1; i < 48; i++){
                        next = new OffsetAt(new Date(startYear, i, 1));
                        if (next.offset !== last.offset) {
                            change = findChange(last, next);
                            offsets.push(change);
                            offsets.push(new OffsetAt(new Date(change.at + 6e4)));
                        }
                        last = next;
                    }
                    for(i = 0; i < 4; i++){
                        offsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));
                        offsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));
                    }
                    return offsets;
                }
                function sortZoneScores(a, b) {
                    if (a.offsetScore !== b.offsetScore) {
                        return a.offsetScore - b.offsetScore;
                    }
                    if (a.abbrScore !== b.abbrScore) {
                        return a.abbrScore - b.abbrScore;
                    }
                    if (a.zone.population !== b.zone.population) {
                        return b.zone.population - a.zone.population;
                    }
                    return b.zone.name.localeCompare(a.zone.name);
                }
                function addToGuesses(name, offsets) {
                    var i, offset;
                    arrayToInt(offsets);
                    for(i = 0; i < offsets.length; i++){
                        offset = offsets[i];
                        guesses[offset] = guesses[offset] || {};
                        guesses[offset][name] = true;
                    }
                }
                function guessesForUserOffsets(offsets) {
                    var offsetsLength = offsets.length, filteredGuesses = {}, out = [], i, j, guessesOffset;
                    for(i = 0; i < offsetsLength; i++){
                        guessesOffset = guesses[offsets[i].offset] || {};
                        for(j in guessesOffset){
                            if (guessesOffset.hasOwnProperty(j)) {
                                filteredGuesses[j] = true;
                            }
                        }
                    }
                    for(i in filteredGuesses){
                        if (filteredGuesses.hasOwnProperty(i)) {
                            out.push(names[i]);
                        }
                    }
                    return out;
                }
                function rebuildGuess() {
                    try {
                        var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;
                        if (intlName && intlName.length > 3) {
                            var name = names[normalizeName(intlName)];
                            if (name) {
                                return name;
                            }
                            logError2("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded.");
                        }
                    } catch (e) {}
                    var offsets = userOffsets(), offsetsLength = offsets.length, guesses2 = guessesForUserOffsets(offsets), zoneScores = [], zoneScore, i, j;
                    for(i = 0; i < guesses2.length; i++){
                        zoneScore = new ZoneScore(getZone(guesses2[i]), offsetsLength);
                        for(j = 0; j < offsetsLength; j++){
                            zoneScore.scoreOffsetAt(offsets[j]);
                        }
                        zoneScores.push(zoneScore);
                    }
                    zoneScores.sort(sortZoneScores);
                    return zoneScores.length > 0 ? zoneScores[0].zone.name : void 0;
                }
                function guess(ignoreCache) {
                    if (!cachedGuess || ignoreCache) {
                        cachedGuess = rebuildGuess();
                    }
                    return cachedGuess;
                }
                function normalizeName(name) {
                    return (name || "").toLowerCase().replace(/\//g, "_");
                }
                function addZone(packed) {
                    var i, name, split, normalized;
                    if (typeof packed === "string") {
                        packed = [
                            packed
                        ];
                    }
                    for(i = 0; i < packed.length; i++){
                        split = packed[i].split("|");
                        name = split[0];
                        normalized = normalizeName(name);
                        zones[normalized] = packed[i];
                        names[normalized] = name;
                        addToGuesses(normalized, split[2].split(" "));
                    }
                }
                function getZone(name, caller) {
                    name = normalizeName(name);
                    var zone = zones[name];
                    var link;
                    if (zone instanceof Zone) {
                        return zone;
                    }
                    if (typeof zone === "string") {
                        zone = new Zone(zone);
                        zones[name] = zone;
                        return zone;
                    }
                    if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {
                        zone = zones[name] = new Zone();
                        zone._set(link);
                        zone.name = names[name];
                        return zone;
                    }
                    return null;
                }
                function getNames() {
                    var i, out = [];
                    for(i in names){
                        if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {
                            out.push(names[i]);
                        }
                    }
                    return out.sort();
                }
                function getCountryNames() {
                    return Object.keys(countries);
                }
                function addLink(aliases) {
                    var i, alias, normal0, normal1;
                    if (typeof aliases === "string") {
                        aliases = [
                            aliases
                        ];
                    }
                    for(i = 0; i < aliases.length; i++){
                        alias = aliases[i].split("|");
                        normal0 = normalizeName(alias[0]);
                        normal1 = normalizeName(alias[1]);
                        links[normal0] = normal1;
                        names[normal0] = alias[0];
                        links[normal1] = normal0;
                        names[normal1] = alias[1];
                    }
                }
                function addCountries(data) {
                    var i, country_code, country_zones, split;
                    if (!data || !data.length) return;
                    for(i = 0; i < data.length; i++){
                        split = data[i].split("|");
                        country_code = split[0].toUpperCase();
                        country_zones = split[1].split(" ");
                        countries[country_code] = new Country(country_code, country_zones);
                    }
                }
                function getCountry(name) {
                    name = name.toUpperCase();
                    return countries[name] || null;
                }
                function zonesForCountry(country, with_offset) {
                    country = getCountry(country);
                    if (!country) return null;
                    var zones2 = country.zones.sort();
                    if (with_offset) {
                        return zones2.map(function(zone_name) {
                            var zone = getZone(zone_name);
                            return {
                                name: zone_name,
                                offset: zone.utcOffset(/* @__PURE__ */ new Date())
                            };
                        });
                    }
                    return zones2;
                }
                function loadData(data) {
                    addZone(data.zones);
                    addLink(data.links);
                    addCountries(data.countries);
                    tz.dataVersion = data.version;
                }
                function zoneExists(name) {
                    if (!zoneExists.didShowError) {
                        zoneExists.didShowError = true;
                        logError2("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')");
                    }
                    return !!getZone(name);
                }
                function needsOffset(m) {
                    var isUnixTimestamp = m._f === "X" || m._f === "x";
                    return !!(m._a && m._tzm === void 0 && !isUnixTimestamp);
                }
                function logError2(message2) {
                    if (typeof console !== "undefined" && typeof console.error === "function") {
                        console.error(message2);
                    }
                }
                function tz(input) {
                    var args = Array.prototype.slice.call(arguments, 0, -1), name = arguments[arguments.length - 1], zone = getZone(name), out = moment4.utc.apply(null, args);
                    if (zone && !moment4.isMoment(input) && needsOffset(out)) {
                        out.add(zone.parse(out), "minutes");
                    }
                    out.tz(name);
                    return out;
                }
                tz.version = VERSION;
                tz.dataVersion = "";
                tz._zones = zones;
                tz._links = links;
                tz._names = names;
                tz._countries = countries;
                tz.add = addZone;
                tz.link = addLink;
                tz.load = loadData;
                tz.zone = getZone;
                tz.zoneExists = zoneExists;
                tz.guess = guess;
                tz.names = getNames;
                tz.Zone = Zone;
                tz.unpack = unpack;
                tz.unpackBase60 = unpackBase60;
                tz.needsOffset = needsOffset;
                tz.moveInvalidForward = true;
                tz.moveAmbiguousForward = false;
                tz.countries = getCountryNames;
                tz.zonesForCountry = zonesForCountry;
                var fn = moment4.fn;
                moment4.tz = tz;
                moment4.defaultZone = null;
                moment4.updateOffset = function(mom, keepTime) {
                    var zone = moment4.defaultZone, offset;
                    if (mom._z === void 0) {
                        if (zone && needsOffset(mom) && !mom._isUTC) {
                            mom._d = moment4.utc(mom._a)._d;
                            mom.utc().add(zone.parse(mom), "minutes");
                        }
                        mom._z = zone;
                    }
                    if (mom._z) {
                        offset = mom._z.utcOffset(mom);
                        if (Math.abs(offset) < 16) {
                            offset = offset / 60;
                        }
                        if (mom.utcOffset !== void 0) {
                            var z = mom._z;
                            mom.utcOffset(-offset, keepTime);
                            mom._z = z;
                        } else {
                            mom.zone(offset, keepTime);
                        }
                    }
                };
                fn.tz = function(name, keepTime) {
                    if (name) {
                        if (typeof name !== "string") {
                            throw new Error("Time zone name must be a string, got " + name + " [" + (typeof name === "undefined" ? "undefined" : _type_of(name)) + "]");
                        }
                        this._z = getZone(name);
                        if (this._z) {
                            moment4.updateOffset(this, keepTime);
                        } else {
                            logError2("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/.");
                        }
                        return this;
                    }
                    if (this._z) {
                        return this._z.name;
                    }
                };
                function abbrWrap(old) {
                    return function() {
                        if (this._z) {
                            return this._z.abbr(this);
                        }
                        return old.call(this);
                    };
                }
                function resetZoneWrap(old) {
                    return function() {
                        this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                function resetZoneWrap2(old) {
                    return function() {
                        if (arguments.length > 0) this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                fn.zoneName = abbrWrap(fn.zoneName);
                fn.zoneAbbr = abbrWrap(fn.zoneAbbr);
                fn.utc = resetZoneWrap(fn.utc);
                fn.local = resetZoneWrap(fn.local);
                fn.utcOffset = resetZoneWrap2(fn.utcOffset);
                moment4.tz.setDefault = function(name) {
                    if (major < 2 || major === 2 && minor < 9) {
                        logError2("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + moment4.version + ".");
                    }
                    moment4.defaultZone = name ? getZone(name) : null;
                    return moment4;
                };
                var momentProperties = moment4.momentProperties;
                if (Object.prototype.toString.call(momentProperties) === "[object Array]") {
                    momentProperties.push("_z");
                    momentProperties.push("_a");
                } else if (momentProperties) {
                    momentProperties._z = null;
                }
                return moment4;
            });
        }
    });
    // node_modules/moment-timezone/data/packed/latest.json
    var require_latest3 = __commonJS({
        "node_modules/moment-timezone/data/packed/latest.json": function(exports, module) {
            module.exports = {
                version: "2021e",
                zones: [
                    "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
                    "Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5",
                    "Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5",
                    "Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6",
                    "Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4",
                    "Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5",
                    "Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6",
                    "Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5",
                    "Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3",
                    "Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4",
                    "Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5",
                    "Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|",
                    "Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5",
                    "Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5",
                    "Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5",
                    "Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|",
                    "Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5",
                    "Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5",
                    "Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4",
                    "America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326",
                    "America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4",
                    "America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5",
                    "America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4",
                    "America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|",
                    "America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|",
                    "America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|",
                    "America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|",
                    "America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|",
                    "America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5",
                    "America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5",
                    "America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3",
                    "America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5",
                    "America/Barbados|LMT AST ADT -0330|3W.t 40 30 3u|0121213121212121|-2m4k1.v 1eAN1.v RB0 1Bz0 Op0 1rb0 11d0 1jJc0 IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4",
                    "America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5",
                    "America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3",
                    "America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2",
                    "America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5",
                    "America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4",
                    "America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2",
                    "America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4",
                    "America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4",
                    "America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5",
                    "America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3",
                    "America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5",
                    "America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4",
                    "America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5",
                    "America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5",
                    "America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4",
                    "America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8",
                    "America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3",
                    "America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2",
                    "America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5",
                    "America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5",
                    "America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5",
                    "America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3",
                    "America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5",
                    "America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5",
                    "America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2",
                    "America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5",
                    "America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3",
                    "America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3",
                    "America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2",
                    "America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212132121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2",
                    "America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5",
                    "America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5",
                    "America/Guyana|LMT -04 -0345 -03|3Q.D 40 3J 30|01231|-2mf87.l 8Hc7.l 2r7bJ Ey0f|80e4",
                    "America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4",
                    "America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5",
                    "America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4",
                    "America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2",
                    "America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2",
                    "America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4",
                    "America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3",
                    "America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5",
                    "America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6",
                    "America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6",
                    "America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4",
                    "America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5",
                    "America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5",
                    "America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4",
                    "America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4",
                    "America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4",
                    "America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2",
                    "America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5",
                    "America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2",
                    "America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6",
                    "America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2",
                    "America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3",
                    "America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5",
                    "America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5",
                    "America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5",
                    "America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6",
                    "America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2",
                    "America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2",
                    "America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2",
                    "America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3",
                    "America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2",
                    "America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4",
                    "America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4",
                    "America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4",
                    "America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|",
                    "America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842",
                    "America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2",
                    "America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5",
                    "America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4",
                    "America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229",
                    "America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4",
                    "America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5",
                    "America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5",
                    "America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6",
                    "America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452",
                    "America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2",
                    "America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4",
                    "America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3",
                    "America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5",
                    "America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656",
                    "America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4",
                    "America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3",
                    "America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4",
                    "America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642",
                    "America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3",
                    "Antarctica/Casey|-00 +08 +11|0 -80 -b0|0121212121212|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01|10",
                    "Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70",
                    "Pacific/Port_Moresby|+10|-a0|0||25e4",
                    "Antarctica/Macquarie|AEST AEDT -00|-a0 -b0 0|010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|1",
                    "Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60",
                    "Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5",
                    "Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40",
                    "Antarctica/Rothera|-00 -03|0 30|01|gOo0|130",
                    "Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5",
                    "Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40",
                    "Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25",
                    "Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4",
                    "Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5",
                    "Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00 LA0 1C00 Oo0 1zc0 Oo0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 Oo0 1zc0 Oo0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 Oo0 1C00 LA0 1C00|25e5",
                    "Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3",
                    "Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4",
                    "Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4",
                    "Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4",
                    "Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|",
                    "Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5",
                    "Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4",
                    "Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5",
                    "Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6",
                    "Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|",
                    "Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5",
                    "Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4",
                    "Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4",
                    "Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6",
                    "Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4",
                    "Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3",
                    "Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6",
                    "Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5",
                    "Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6",
                    "Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5",
                    "Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4",
                    "Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5",
                    "Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4",
                    "Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1qo0 Xc0 1qo0|18e5",
                    "Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1qo0 Xc0 1qo0|25e4",
                    "Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5",
                    "Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5",
                    "Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3",
                    "Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6",
                    "Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6",
                    "Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4",
                    "Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4",
                    "Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5",
                    "Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4",
                    "Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6",
                    "Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5",
                    "Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5",
                    "Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2",
                    "Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5",
                    "Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5",
                    "Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4",
                    "Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4",
                    "Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3",
                    "Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5",
                    "Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6",
                    "Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4",
                    "Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4",
                    "Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5",
                    "Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5",
                    "Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4",
                    "Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4",
                    "Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5",
                    "Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|",
                    "Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4",
                    "Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5",
                    "Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4",
                    "Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4",
                    "Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6",
                    "Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2",
                    "Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5",
                    "Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5",
                    "Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5",
                    "Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6",
                    "Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3",
                    "Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6",
                    "Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5",
                    "Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5",
                    "Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2",
                    "Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4",
                    "Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5",
                    "Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5",
                    "Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|0121212121212121212121212121212121212121212123212321232123212121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4",
                    "Atlantic/Bermuda|BMT BST AST ADT|4j.i 3j.i 40 30|010102323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28p7E.G 1bb0 1i10 11X0 ru30 thbE.G 1PX0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3",
                    "Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4",
                    "Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4",
                    "Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3",
                    "Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|0121212121212121212121212121212121212121212123212321232123212121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4",
                    "Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4",
                    "Atlantic/South_Georgia|-02|20|0||30",
                    "Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2",
                    "Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5",
                    "Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5",
                    "Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5",
                    "Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3",
                    "Australia/Hobart|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4",
                    "Australia/Darwin|ACST ACDT|-9u -au|010101010|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4",
                    "Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293iJ xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368",
                    "Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347",
                    "Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10",
                    "Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5",
                    "Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293i0 xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5",
                    "CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2",
                    "CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "EST|EST|50|0||",
                    "EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Etc/GMT-0|GMT|0|0||",
                    "Etc/GMT-1|+01|-10|0||",
                    "Etc/GMT-11|+11|-b0|0||",
                    "Pacific/Tarawa|+12|-c0|0||29e3",
                    "Etc/GMT-13|+13|-d0|0||",
                    "Etc/GMT-14|+14|-e0|0||",
                    "Etc/GMT-2|+02|-20|0||",
                    "Etc/GMT-3|+03|-30|0||",
                    "Etc/GMT-4|+04|-40|0||",
                    "Etc/GMT-5|+05|-50|0||",
                    "Etc/GMT-6|+06|-60|0||",
                    "Indian/Christmas|+07|-70|0||21e2",
                    "Etc/GMT-8|+08|-80|0||",
                    "Pacific/Palau|+09|-90|0||21e3",
                    "Etc/GMT+1|-01|10|0||",
                    "Etc/GMT+10|-10|a0|0||",
                    "Etc/GMT+11|-11|b0|0||",
                    "Etc/GMT+12|-12|c0|0||",
                    "Etc/GMT+3|-03|30|0||",
                    "Etc/GMT+4|-04|40|0||",
                    "Etc/GMT+5|-05|50|0||",
                    "Etc/GMT+6|-06|60|0||",
                    "Etc/GMT+7|-07|70|0||",
                    "Etc/GMT+8|-08|80|0||",
                    "Etc/GMT+9|-09|90|0||",
                    "Etc/UTC|UTC|0|0||",
                    "Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5",
                    "Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3",
                    "Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5",
                    "Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5",
                    "Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6",
                    "Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5",
                    "Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5",
                    "Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5",
                    "Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5",
                    "Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5",
                    "Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4",
                    "Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4",
                    "Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3",
                    "Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4",
                    "Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5",
                    "Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4",
                    "Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5",
                    "Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4",
                    "Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5",
                    "Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5",
                    "Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2n5c9.l cFX9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3",
                    "Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6",
                    "Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6",
                    "Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4",
                    "Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5",
                    "Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5",
                    "Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|",
                    "Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4",
                    "Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5",
                    "Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4",
                    "Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5",
                    "Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4",
                    "Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5",
                    "Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4",
                    "Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|0123232323232323212121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5",
                    "Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5",
                    "Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4",
                    "HST|HST|a0|0||",
                    "Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2",
                    "Indian/Cocos|+0630|-6u|0||596",
                    "Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130",
                    "Indian/Mahe|LMT +04|-3F.M -40|01|-2xorF.M|79e3",
                    "Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4",
                    "Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4",
                    "Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4",
                    "Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3",
                    "MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|",
                    "MST|MST|70|0||",
                    "MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600",
                    "Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3",
                    "Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4",
                    "Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3",
                    "Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3",
                    "Pacific/Enderbury|-00 -12 -11 +13|0 c0 b0 -d0|0123|-1iIo0 1GsA0 B7X0|1",
                    "Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483",
                    "Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|01212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 4q00 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4",
                    "Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3",
                    "Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125",
                    "Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4",
                    "Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4",
                    "Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4",
                    "Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2",
                    "Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2",
                    "Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3",
                    "Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2",
                    "Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2",
                    "Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3",
                    "Pacific/Niue|LMT -1120 -11|bj.E bk b0|012|-FScE.k suo0.k|12e2",
                    "Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4",
                    "Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3",
                    "Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56",
                    "Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3",
                    "Pacific/Rarotonga|LMT -1030 -0930 -10|aD.4 au 9u a0|0123232323232323232323232323|-FSdk.U 13tbO.U IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3",
                    "Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4",
                    "Pacific/Tongatapu|LMT +1220 +13 +14|-cj.c -ck -d0 -e0|01232323232|-XbMj.c BgLX.c 1yndk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3",
                    "PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|"
                ],
                links: [
                    "Africa/Abidjan|Africa/Accra",
                    "Africa/Abidjan|Africa/Bamako",
                    "Africa/Abidjan|Africa/Banjul",
                    "Africa/Abidjan|Africa/Conakry",
                    "Africa/Abidjan|Africa/Dakar",
                    "Africa/Abidjan|Africa/Freetown",
                    "Africa/Abidjan|Africa/Lome",
                    "Africa/Abidjan|Africa/Nouakchott",
                    "Africa/Abidjan|Africa/Ouagadougou",
                    "Africa/Abidjan|Africa/Timbuktu",
                    "Africa/Abidjan|Atlantic/St_Helena",
                    "Africa/Cairo|Egypt",
                    "Africa/Johannesburg|Africa/Maseru",
                    "Africa/Johannesburg|Africa/Mbabane",
                    "Africa/Lagos|Africa/Bangui",
                    "Africa/Lagos|Africa/Brazzaville",
                    "Africa/Lagos|Africa/Douala",
                    "Africa/Lagos|Africa/Kinshasa",
                    "Africa/Lagos|Africa/Libreville",
                    "Africa/Lagos|Africa/Luanda",
                    "Africa/Lagos|Africa/Malabo",
                    "Africa/Lagos|Africa/Niamey",
                    "Africa/Lagos|Africa/Porto-Novo",
                    "Africa/Maputo|Africa/Blantyre",
                    "Africa/Maputo|Africa/Bujumbura",
                    "Africa/Maputo|Africa/Gaborone",
                    "Africa/Maputo|Africa/Harare",
                    "Africa/Maputo|Africa/Kigali",
                    "Africa/Maputo|Africa/Lubumbashi",
                    "Africa/Maputo|Africa/Lusaka",
                    "Africa/Nairobi|Africa/Addis_Ababa",
                    "Africa/Nairobi|Africa/Asmara",
                    "Africa/Nairobi|Africa/Asmera",
                    "Africa/Nairobi|Africa/Dar_es_Salaam",
                    "Africa/Nairobi|Africa/Djibouti",
                    "Africa/Nairobi|Africa/Kampala",
                    "Africa/Nairobi|Africa/Mogadishu",
                    "Africa/Nairobi|Indian/Antananarivo",
                    "Africa/Nairobi|Indian/Comoro",
                    "Africa/Nairobi|Indian/Mayotte",
                    "Africa/Tripoli|Libya",
                    "America/Adak|America/Atka",
                    "America/Adak|US/Aleutian",
                    "America/Anchorage|US/Alaska",
                    "America/Argentina/Buenos_Aires|America/Buenos_Aires",
                    "America/Argentina/Catamarca|America/Argentina/ComodRivadavia",
                    "America/Argentina/Catamarca|America/Catamarca",
                    "America/Argentina/Cordoba|America/Cordoba",
                    "America/Argentina/Cordoba|America/Rosario",
                    "America/Argentina/Jujuy|America/Jujuy",
                    "America/Argentina/Mendoza|America/Mendoza",
                    "America/Chicago|US/Central",
                    "America/Denver|America/Shiprock",
                    "America/Denver|Navajo",
                    "America/Denver|US/Mountain",
                    "America/Detroit|US/Michigan",
                    "America/Edmonton|Canada/Mountain",
                    "America/Fort_Wayne|America/Indiana/Indianapolis",
                    "America/Fort_Wayne|America/Indianapolis",
                    "America/Fort_Wayne|US/East-Indiana",
                    "America/Godthab|America/Nuuk",
                    "America/Halifax|Canada/Atlantic",
                    "America/Havana|Cuba",
                    "America/Indiana/Knox|America/Knox_IN",
                    "America/Indiana/Knox|US/Indiana-Starke",
                    "America/Jamaica|Jamaica",
                    "America/Kentucky/Louisville|America/Louisville",
                    "America/Los_Angeles|US/Pacific",
                    "America/Manaus|Brazil/West",
                    "America/Mazatlan|Mexico/BajaSur",
                    "America/Mexico_City|Mexico/General",
                    "America/New_York|US/Eastern",
                    "America/Noronha|Brazil/DeNoronha",
                    "America/Panama|America/Atikokan",
                    "America/Panama|America/Cayman",
                    "America/Panama|America/Coral_Harbour",
                    "America/Phoenix|America/Creston",
                    "America/Phoenix|US/Arizona",
                    "America/Puerto_Rico|America/Anguilla",
                    "America/Puerto_Rico|America/Antigua",
                    "America/Puerto_Rico|America/Aruba",
                    "America/Puerto_Rico|America/Blanc-Sablon",
                    "America/Puerto_Rico|America/Curacao",
                    "America/Puerto_Rico|America/Dominica",
                    "America/Puerto_Rico|America/Grenada",
                    "America/Puerto_Rico|America/Guadeloupe",
                    "America/Puerto_Rico|America/Kralendijk",
                    "America/Puerto_Rico|America/Lower_Princes",
                    "America/Puerto_Rico|America/Marigot",
                    "America/Puerto_Rico|America/Montserrat",
                    "America/Puerto_Rico|America/Port_of_Spain",
                    "America/Puerto_Rico|America/St_Barthelemy",
                    "America/Puerto_Rico|America/St_Kitts",
                    "America/Puerto_Rico|America/St_Lucia",
                    "America/Puerto_Rico|America/St_Thomas",
                    "America/Puerto_Rico|America/St_Vincent",
                    "America/Puerto_Rico|America/Tortola",
                    "America/Puerto_Rico|America/Virgin",
                    "America/Regina|Canada/Saskatchewan",
                    "America/Rio_Branco|America/Porto_Acre",
                    "America/Rio_Branco|Brazil/Acre",
                    "America/Santiago|Chile/Continental",
                    "America/Sao_Paulo|Brazil/East",
                    "America/St_Johns|Canada/Newfoundland",
                    "America/Tijuana|America/Ensenada",
                    "America/Tijuana|America/Santa_Isabel",
                    "America/Tijuana|Mexico/BajaNorte",
                    "America/Toronto|America/Montreal",
                    "America/Toronto|America/Nassau",
                    "America/Toronto|Canada/Eastern",
                    "America/Vancouver|Canada/Pacific",
                    "America/Whitehorse|Canada/Yukon",
                    "America/Winnipeg|Canada/Central",
                    "Asia/Ashgabat|Asia/Ashkhabad",
                    "Asia/Bangkok|Asia/Phnom_Penh",
                    "Asia/Bangkok|Asia/Vientiane",
                    "Asia/Dhaka|Asia/Dacca",
                    "Asia/Dubai|Asia/Muscat",
                    "Asia/Ho_Chi_Minh|Asia/Saigon",
                    "Asia/Hong_Kong|Hongkong",
                    "Asia/Jerusalem|Asia/Tel_Aviv",
                    "Asia/Jerusalem|Israel",
                    "Asia/Kathmandu|Asia/Katmandu",
                    "Asia/Kolkata|Asia/Calcutta",
                    "Asia/Kuala_Lumpur|Asia/Singapore",
                    "Asia/Kuala_Lumpur|Singapore",
                    "Asia/Macau|Asia/Macao",
                    "Asia/Makassar|Asia/Ujung_Pandang",
                    "Asia/Nicosia|Europe/Nicosia",
                    "Asia/Qatar|Asia/Bahrain",
                    "Asia/Rangoon|Asia/Yangon",
                    "Asia/Riyadh|Antarctica/Syowa",
                    "Asia/Riyadh|Asia/Aden",
                    "Asia/Riyadh|Asia/Kuwait",
                    "Asia/Seoul|ROK",
                    "Asia/Shanghai|Asia/Chongqing",
                    "Asia/Shanghai|Asia/Chungking",
                    "Asia/Shanghai|Asia/Harbin",
                    "Asia/Shanghai|PRC",
                    "Asia/Taipei|ROC",
                    "Asia/Tehran|Iran",
                    "Asia/Thimphu|Asia/Thimbu",
                    "Asia/Tokyo|Japan",
                    "Asia/Ulaanbaatar|Asia/Ulan_Bator",
                    "Asia/Urumqi|Asia/Kashgar",
                    "Atlantic/Faroe|Atlantic/Faeroe",
                    "Atlantic/Reykjavik|Iceland",
                    "Atlantic/South_Georgia|Etc/GMT+2",
                    "Australia/Adelaide|Australia/South",
                    "Australia/Brisbane|Australia/Queensland",
                    "Australia/Broken_Hill|Australia/Yancowinna",
                    "Australia/Darwin|Australia/North",
                    "Australia/Hobart|Australia/Currie",
                    "Australia/Hobart|Australia/Tasmania",
                    "Australia/Lord_Howe|Australia/LHI",
                    "Australia/Melbourne|Australia/Victoria",
                    "Australia/Perth|Australia/West",
                    "Australia/Sydney|Australia/ACT",
                    "Australia/Sydney|Australia/Canberra",
                    "Australia/Sydney|Australia/NSW",
                    "Etc/GMT-0|Etc/GMT",
                    "Etc/GMT-0|Etc/GMT+0",
                    "Etc/GMT-0|Etc/GMT0",
                    "Etc/GMT-0|Etc/Greenwich",
                    "Etc/GMT-0|GMT",
                    "Etc/GMT-0|GMT+0",
                    "Etc/GMT-0|GMT-0",
                    "Etc/GMT-0|GMT0",
                    "Etc/GMT-0|Greenwich",
                    "Etc/UTC|Etc/UCT",
                    "Etc/UTC|Etc/Universal",
                    "Etc/UTC|Etc/Zulu",
                    "Etc/UTC|UCT",
                    "Etc/UTC|UTC",
                    "Etc/UTC|Universal",
                    "Etc/UTC|Zulu",
                    "Europe/Belgrade|Europe/Ljubljana",
                    "Europe/Belgrade|Europe/Podgorica",
                    "Europe/Belgrade|Europe/Sarajevo",
                    "Europe/Belgrade|Europe/Skopje",
                    "Europe/Belgrade|Europe/Zagreb",
                    "Europe/Chisinau|Europe/Tiraspol",
                    "Europe/Dublin|Eire",
                    "Europe/Helsinki|Europe/Mariehamn",
                    "Europe/Istanbul|Asia/Istanbul",
                    "Europe/Istanbul|Turkey",
                    "Europe/Lisbon|Portugal",
                    "Europe/London|Europe/Belfast",
                    "Europe/London|Europe/Guernsey",
                    "Europe/London|Europe/Isle_of_Man",
                    "Europe/London|Europe/Jersey",
                    "Europe/London|GB",
                    "Europe/London|GB-Eire",
                    "Europe/Moscow|W-SU",
                    "Europe/Oslo|Arctic/Longyearbyen",
                    "Europe/Oslo|Atlantic/Jan_Mayen",
                    "Europe/Prague|Europe/Bratislava",
                    "Europe/Rome|Europe/San_Marino",
                    "Europe/Rome|Europe/Vatican",
                    "Europe/Warsaw|Poland",
                    "Europe/Zurich|Europe/Busingen",
                    "Europe/Zurich|Europe/Vaduz",
                    "Indian/Christmas|Etc/GMT-7",
                    "Pacific/Auckland|Antarctica/McMurdo",
                    "Pacific/Auckland|Antarctica/South_Pole",
                    "Pacific/Auckland|NZ",
                    "Pacific/Chatham|NZ-CHAT",
                    "Pacific/Chuuk|Pacific/Truk",
                    "Pacific/Chuuk|Pacific/Yap",
                    "Pacific/Easter|Chile/EasterIsland",
                    "Pacific/Enderbury|Pacific/Kanton",
                    "Pacific/Guam|Pacific/Saipan",
                    "Pacific/Honolulu|Pacific/Johnston",
                    "Pacific/Honolulu|US/Hawaii",
                    "Pacific/Kwajalein|Kwajalein",
                    "Pacific/Pago_Pago|Pacific/Midway",
                    "Pacific/Pago_Pago|Pacific/Samoa",
                    "Pacific/Pago_Pago|US/Samoa",
                    "Pacific/Palau|Etc/GMT-9",
                    "Pacific/Pohnpei|Pacific/Ponape",
                    "Pacific/Port_Moresby|Antarctica/DumontDUrville",
                    "Pacific/Port_Moresby|Etc/GMT-10",
                    "Pacific/Tarawa|Etc/GMT-12",
                    "Pacific/Tarawa|Pacific/Funafuti",
                    "Pacific/Tarawa|Pacific/Wake",
                    "Pacific/Tarawa|Pacific/Wallis"
                ],
                countries: [
                    "AD|Europe/Andorra",
                    "AE|Asia/Dubai",
                    "AF|Asia/Kabul",
                    "AG|America/Port_of_Spain America/Antigua",
                    "AI|America/Port_of_Spain America/Anguilla",
                    "AL|Europe/Tirane",
                    "AM|Asia/Yerevan",
                    "AO|Africa/Lagos Africa/Luanda",
                    "AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo",
                    "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia",
                    "AS|Pacific/Pago_Pago",
                    "AT|Europe/Vienna",
                    "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla",
                    "AW|America/Curacao America/Aruba",
                    "AX|Europe/Helsinki Europe/Mariehamn",
                    "AZ|Asia/Baku",
                    "BA|Europe/Belgrade Europe/Sarajevo",
                    "BB|America/Barbados",
                    "BD|Asia/Dhaka",
                    "BE|Europe/Brussels",
                    "BF|Africa/Abidjan Africa/Ouagadougou",
                    "BG|Europe/Sofia",
                    "BH|Asia/Qatar Asia/Bahrain",
                    "BI|Africa/Maputo Africa/Bujumbura",
                    "BJ|Africa/Lagos Africa/Porto-Novo",
                    "BL|America/Port_of_Spain America/St_Barthelemy",
                    "BM|Atlantic/Bermuda",
                    "BN|Asia/Brunei",
                    "BO|America/La_Paz",
                    "BQ|America/Curacao America/Kralendijk",
                    "BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco",
                    "BS|America/Nassau",
                    "BT|Asia/Thimphu",
                    "BW|Africa/Maputo Africa/Gaborone",
                    "BY|Europe/Minsk",
                    "BZ|America/Belize",
                    "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver",
                    "CC|Indian/Cocos",
                    "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi",
                    "CF|Africa/Lagos Africa/Bangui",
                    "CG|Africa/Lagos Africa/Brazzaville",
                    "CH|Europe/Zurich",
                    "CI|Africa/Abidjan",
                    "CK|Pacific/Rarotonga",
                    "CL|America/Santiago America/Punta_Arenas Pacific/Easter",
                    "CM|Africa/Lagos Africa/Douala",
                    "CN|Asia/Shanghai Asia/Urumqi",
                    "CO|America/Bogota",
                    "CR|America/Costa_Rica",
                    "CU|America/Havana",
                    "CV|Atlantic/Cape_Verde",
                    "CW|America/Curacao",
                    "CX|Indian/Christmas",
                    "CY|Asia/Nicosia Asia/Famagusta",
                    "CZ|Europe/Prague",
                    "DE|Europe/Zurich Europe/Berlin Europe/Busingen",
                    "DJ|Africa/Nairobi Africa/Djibouti",
                    "DK|Europe/Copenhagen",
                    "DM|America/Port_of_Spain America/Dominica",
                    "DO|America/Santo_Domingo",
                    "DZ|Africa/Algiers",
                    "EC|America/Guayaquil Pacific/Galapagos",
                    "EE|Europe/Tallinn",
                    "EG|Africa/Cairo",
                    "EH|Africa/El_Aaiun",
                    "ER|Africa/Nairobi Africa/Asmara",
                    "ES|Europe/Madrid Africa/Ceuta Atlantic/Canary",
                    "ET|Africa/Nairobi Africa/Addis_Ababa",
                    "FI|Europe/Helsinki",
                    "FJ|Pacific/Fiji",
                    "FK|Atlantic/Stanley",
                    "FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae",
                    "FO|Atlantic/Faroe",
                    "FR|Europe/Paris",
                    "GA|Africa/Lagos Africa/Libreville",
                    "GB|Europe/London",
                    "GD|America/Port_of_Spain America/Grenada",
                    "GE|Asia/Tbilisi",
                    "GF|America/Cayenne",
                    "GG|Europe/London Europe/Guernsey",
                    "GH|Africa/Accra",
                    "GI|Europe/Gibraltar",
                    "GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule",
                    "GM|Africa/Abidjan Africa/Banjul",
                    "GN|Africa/Abidjan Africa/Conakry",
                    "GP|America/Port_of_Spain America/Guadeloupe",
                    "GQ|Africa/Lagos Africa/Malabo",
                    "GR|Europe/Athens",
                    "GS|Atlantic/South_Georgia",
                    "GT|America/Guatemala",
                    "GU|Pacific/Guam",
                    "GW|Africa/Bissau",
                    "GY|America/Guyana",
                    "HK|Asia/Hong_Kong",
                    "HN|America/Tegucigalpa",
                    "HR|Europe/Belgrade Europe/Zagreb",
                    "HT|America/Port-au-Prince",
                    "HU|Europe/Budapest",
                    "ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura",
                    "IE|Europe/Dublin",
                    "IL|Asia/Jerusalem",
                    "IM|Europe/London Europe/Isle_of_Man",
                    "IN|Asia/Kolkata",
                    "IO|Indian/Chagos",
                    "IQ|Asia/Baghdad",
                    "IR|Asia/Tehran",
                    "IS|Atlantic/Reykjavik",
                    "IT|Europe/Rome",
                    "JE|Europe/London Europe/Jersey",
                    "JM|America/Jamaica",
                    "JO|Asia/Amman",
                    "JP|Asia/Tokyo",
                    "KE|Africa/Nairobi",
                    "KG|Asia/Bishkek",
                    "KH|Asia/Bangkok Asia/Phnom_Penh",
                    "KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati",
                    "KM|Africa/Nairobi Indian/Comoro",
                    "KN|America/Port_of_Spain America/St_Kitts",
                    "KP|Asia/Pyongyang",
                    "KR|Asia/Seoul",
                    "KW|Asia/Riyadh Asia/Kuwait",
                    "KY|America/Panama America/Cayman",
                    "KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral",
                    "LA|Asia/Bangkok Asia/Vientiane",
                    "LB|Asia/Beirut",
                    "LC|America/Port_of_Spain America/St_Lucia",
                    "LI|Europe/Zurich Europe/Vaduz",
                    "LK|Asia/Colombo",
                    "LR|Africa/Monrovia",
                    "LS|Africa/Johannesburg Africa/Maseru",
                    "LT|Europe/Vilnius",
                    "LU|Europe/Luxembourg",
                    "LV|Europe/Riga",
                    "LY|Africa/Tripoli",
                    "MA|Africa/Casablanca",
                    "MC|Europe/Monaco",
                    "MD|Europe/Chisinau",
                    "ME|Europe/Belgrade Europe/Podgorica",
                    "MF|America/Port_of_Spain America/Marigot",
                    "MG|Africa/Nairobi Indian/Antananarivo",
                    "MH|Pacific/Majuro Pacific/Kwajalein",
                    "MK|Europe/Belgrade Europe/Skopje",
                    "ML|Africa/Abidjan Africa/Bamako",
                    "MM|Asia/Yangon",
                    "MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan",
                    "MO|Asia/Macau",
                    "MP|Pacific/Guam Pacific/Saipan",
                    "MQ|America/Martinique",
                    "MR|Africa/Abidjan Africa/Nouakchott",
                    "MS|America/Port_of_Spain America/Montserrat",
                    "MT|Europe/Malta",
                    "MU|Indian/Mauritius",
                    "MV|Indian/Maldives",
                    "MW|Africa/Maputo Africa/Blantyre",
                    "MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas",
                    "MY|Asia/Kuala_Lumpur Asia/Kuching",
                    "MZ|Africa/Maputo",
                    "NA|Africa/Windhoek",
                    "NC|Pacific/Noumea",
                    "NE|Africa/Lagos Africa/Niamey",
                    "NF|Pacific/Norfolk",
                    "NG|Africa/Lagos",
                    "NI|America/Managua",
                    "NL|Europe/Amsterdam",
                    "NO|Europe/Oslo",
                    "NP|Asia/Kathmandu",
                    "NR|Pacific/Nauru",
                    "NU|Pacific/Niue",
                    "NZ|Pacific/Auckland Pacific/Chatham",
                    "OM|Asia/Dubai Asia/Muscat",
                    "PA|America/Panama",
                    "PE|America/Lima",
                    "PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier",
                    "PG|Pacific/Port_Moresby Pacific/Bougainville",
                    "PH|Asia/Manila",
                    "PK|Asia/Karachi",
                    "PL|Europe/Warsaw",
                    "PM|America/Miquelon",
                    "PN|Pacific/Pitcairn",
                    "PR|America/Puerto_Rico",
                    "PS|Asia/Gaza Asia/Hebron",
                    "PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores",
                    "PW|Pacific/Palau",
                    "PY|America/Asuncion",
                    "QA|Asia/Qatar",
                    "RE|Indian/Reunion",
                    "RO|Europe/Bucharest",
                    "RS|Europe/Belgrade",
                    "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr",
                    "RW|Africa/Maputo Africa/Kigali",
                    "SA|Asia/Riyadh",
                    "SB|Pacific/Guadalcanal",
                    "SC|Indian/Mahe",
                    "SD|Africa/Khartoum",
                    "SE|Europe/Stockholm",
                    "SG|Asia/Singapore",
                    "SH|Africa/Abidjan Atlantic/St_Helena",
                    "SI|Europe/Belgrade Europe/Ljubljana",
                    "SJ|Europe/Oslo Arctic/Longyearbyen",
                    "SK|Europe/Prague Europe/Bratislava",
                    "SL|Africa/Abidjan Africa/Freetown",
                    "SM|Europe/Rome Europe/San_Marino",
                    "SN|Africa/Abidjan Africa/Dakar",
                    "SO|Africa/Nairobi Africa/Mogadishu",
                    "SR|America/Paramaribo",
                    "SS|Africa/Juba",
                    "ST|Africa/Sao_Tome",
                    "SV|America/El_Salvador",
                    "SX|America/Curacao America/Lower_Princes",
                    "SY|Asia/Damascus",
                    "SZ|Africa/Johannesburg Africa/Mbabane",
                    "TC|America/Grand_Turk",
                    "TD|Africa/Ndjamena",
                    "TF|Indian/Reunion Indian/Kerguelen",
                    "TG|Africa/Abidjan Africa/Lome",
                    "TH|Asia/Bangkok",
                    "TJ|Asia/Dushanbe",
                    "TK|Pacific/Fakaofo",
                    "TL|Asia/Dili",
                    "TM|Asia/Ashgabat",
                    "TN|Africa/Tunis",
                    "TO|Pacific/Tongatapu",
                    "TR|Europe/Istanbul",
                    "TT|America/Port_of_Spain",
                    "TV|Pacific/Funafuti",
                    "TW|Asia/Taipei",
                    "TZ|Africa/Nairobi Africa/Dar_es_Salaam",
                    "UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye",
                    "UG|Africa/Nairobi Africa/Kampala",
                    "UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway",
                    "US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu",
                    "UY|America/Montevideo",
                    "UZ|Asia/Samarkand Asia/Tashkent",
                    "VA|Europe/Rome Europe/Vatican",
                    "VC|America/Port_of_Spain America/St_Vincent",
                    "VE|America/Caracas",
                    "VG|America/Port_of_Spain America/Tortola",
                    "VI|America/Port_of_Spain America/St_Thomas",
                    "VN|Asia/Bangkok Asia/Ho_Chi_Minh",
                    "VU|Pacific/Efate",
                    "WF|Pacific/Wallis",
                    "WS|Pacific/Apia",
                    "YE|Asia/Riyadh Asia/Aden",
                    "YT|Africa/Nairobi Indian/Mayotte",
                    "ZA|Africa/Johannesburg",
                    "ZM|Africa/Maputo Africa/Lusaka",
                    "ZW|Africa/Maputo Africa/Harare"
                ]
            };
        }
    });
    // node_modules/moment-timezone/index.js
    var require_moment_timezone6 = __commonJS({
        "node_modules/moment-timezone/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var moment4 = module.exports = require_moment_timezone5();
            moment4.tz.load(require_latest3());
        }
    });
    // node_modules/@signageos/lib-bundler/dist/alias/noop.cjs
    var require_noop = __commonJS({
        "node_modules/@signageos/lib-bundler/dist/alias/noop.cjs": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __defProp2 = Object.defineProperty;
            var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
            var __getOwnPropNames2 = Object.getOwnPropertyNames;
            var __hasOwnProp2 = Object.prototype.hasOwnProperty;
            var __export2 = function(target, all2) {
                for(var name in all2)__defProp2(target, name, {
                    get: all2[name],
                    enumerable: true
                });
            };
            var __copyProps2 = function(to, from, except, desc) {
                if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        var _loop = function() {
                            var key = _step.value;
                            if (!__hasOwnProp2.call(to, key) && key !== except) __defProp2(to, key, {
                                get: function() {
                                    return from[key];
                                },
                                enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable
                            });
                        };
                        for(var _iterator = __getOwnPropNames2(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                }
                return to;
            };
            var __toCommonJS2 = function(mod) {
                return __copyProps2(__defProp2({}, "__esModule", {
                    value: true
                }), mod);
            };
            var noop_exports = {};
            __export2(noop_exports, {
                "default": function() {
                    return noop_default;
                }
            });
            module.exports = __toCommonJS2(noop_exports);
            var noop_default = void 0;
        }
    });
    // node_modules/cron/lib/cron.js
    var require_cron = __commonJS({
        "node_modules/cron/lib/cron.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root, factory) {
                if (typeof define === "function" && define.amd) {
                    define([
                        "moment-timezone"
                    ], factory);
                } else if ((typeof exports === "undefined" ? "undefined" : _type_of(exports)) === "object") {
                    module.exports = factory(require_moment_timezone6(), require_noop());
                } else {
                    root.Cron = factory(root.moment);
                }
            })(exports, function(moment4, child_process) {
                var exports2 = {}, timeUnits = [
                    "second",
                    "minute",
                    "hour",
                    "dayOfMonth",
                    "month",
                    "dayOfWeek"
                ], spawn2 = child_process && child_process.spawn;
                function CronTime(source, zone, utcOffset) {
                    this.source = source;
                    if (zone) {
                        if (moment4.tz.names().indexOf(zone) === -1) {
                            throw new Error("Invalid timezone.");
                        }
                        this.zone = zone;
                    }
                    if (utcOffset) this.utcOffset = utcOffset;
                    var that = this;
                    timeUnits.map(function(timeUnit) {
                        that[timeUnit] = {};
                    });
                    if (this.source instanceof Date) {
                        this.source = moment4(this.source);
                        this.realDate = true;
                    } else {
                        this._parse();
                        this._verifyParse();
                    }
                }
                CronTime.constraints = [
                    [
                        0,
                        59
                    ],
                    [
                        0,
                        59
                    ],
                    [
                        0,
                        23
                    ],
                    [
                        1,
                        31
                    ],
                    [
                        0,
                        11
                    ],
                    [
                        0,
                        6
                    ]
                ];
                CronTime.monthConstraints = [
                    31,
                    29,
                    //support leap year...not perfect
                    31,
                    30,
                    31,
                    30,
                    31,
                    31,
                    30,
                    31,
                    30,
                    31
                ];
                CronTime.parseDefaults = [
                    "0",
                    "*",
                    "*",
                    "*",
                    "*",
                    "*"
                ];
                CronTime.aliases = {
                    jan: 0,
                    feb: 1,
                    mar: 2,
                    apr: 3,
                    may: 4,
                    jun: 5,
                    jul: 6,
                    aug: 7,
                    sep: 8,
                    oct: 9,
                    nov: 10,
                    dec: 11,
                    sun: 0,
                    mon: 1,
                    tue: 2,
                    wed: 3,
                    thu: 4,
                    fri: 5,
                    sat: 6
                };
                CronTime.prototype = {
                    _verifyParse: function _verifyParse() {
                        var months = Object.keys(this.month);
                        for(var i = 0; i < months.length; i++){
                            var m = months[i];
                            var con = CronTime.monthConstraints[parseInt(m, 10)];
                            var ok = false;
                            var dsom = Object.keys(this.dayOfMonth);
                            for(var j = 0; j < dsom.length; j++){
                                var dom = dsom[j];
                                if (dom <= con) ok = true;
                            }
                            if (!ok) {
                                console.warn("Month '" + m + "' is limited to '" + con + "' days.");
                            }
                        }
                    },
                    /**
           * calculates the next send time
           */ sendAt: function sendAt(i) {
                        var date = this.realDate ? this.source : moment4();
                        if (this.zone) date = date.tz(this.zone);
                        if (this.utcOffset) date = date.utcOffset(this.utcOffset);
                        if (this.realDate) return date;
                        var now2 = /* @__PURE__ */ new Date();
                        var targetSecond = date.seconds();
                        var diff = Math.abs(targetSecond - now2.getSeconds());
                        if (diff == 0 || diff == 1 && now2.getMilliseconds() <= date.milliseconds()) {
                            date = date.add(1, "s");
                        }
                        if (isNaN(i) || i < 0) {
                            date = this._getNextDateFrom(date);
                            return date;
                        } else {
                            var dates = [];
                            for(; i > 0; i--){
                                date = this._getNextDateFrom(date);
                                dates.push(moment4(date));
                                if (i > 1) date.add(1, "s");
                            }
                            return dates;
                        }
                    },
                    /**
           * Get the number of milliseconds in the future at which to fire our callbacks.
           */ getTimeout: function getTimeout() {
                        return Math.max(-1, this.sendAt() - moment4());
                    },
                    /**
           * writes out a cron string
           */ toString: function toString() {
                        return this.toJSON().join(" ");
                    },
                    /**
           * Json representation of the parsed cron syntax.
           */ toJSON: function toJSON() {
                        var self2 = this;
                        return timeUnits.map(function(timeName) {
                            return self2._wcOrAll(timeName);
                        });
                    },
                    /**
           * get next date that matches parsed cron time
           */ _getNextDateFrom: function _getNextDateFrom(start2) {
                        var date = moment4(start2);
                        if (date.toString() == "Invalid date") {
                            console.log("ERROR: You specified an invalid date.");
                            return date;
                        }
                        if (this.realDate && start2 < /* @__PURE__ */ new Date()) console.log("WARNING: Date in past. Will never be fired.");
                        if (this.realDate) return date;
                        while(true){
                            var diff = date - start2, origDate = new Date(date);
                            if (!(date.month() in this.month)) {
                                date.add(1, "M");
                                date.date(1);
                                date.hours(0);
                                date.minutes(0);
                                date.seconds(0);
                                continue;
                            }
                            if (!(date.date() in this.dayOfMonth)) {
                                date.add(1, "d");
                                date.hours(0);
                                date.minutes(0);
                                date.seconds(0);
                                continue;
                            }
                            if (!(date.day() in this.dayOfWeek)) {
                                date.add(1, "d");
                                date.hours(0);
                                date.minutes(0);
                                date.seconds(0);
                                if (date <= origDate) {
                                    date = this._findDST(origDate);
                                }
                                continue;
                            }
                            if (!(date.hours() in this.hour)) {
                                origDate = moment4(date);
                                date.hours(date.hours() == 23 && diff > 864e5 ? 0 : date.hours() + 1);
                                date.minutes(0);
                                date.seconds(0);
                                if (date <= origDate) {
                                    date = this._findDST(origDate);
                                }
                                continue;
                            }
                            if (!(date.minutes() in this.minute)) {
                                origDate = moment4(date);
                                date.minutes(date.minutes() == 59 && diff > 60 * 60 * 1e3 ? 0 : date.minutes() + 1);
                                date.seconds(0);
                                if (date <= origDate) {
                                    date = this._findDST(origDate);
                                }
                                continue;
                            }
                            if (!(date.seconds() in this.second)) {
                                origDate = moment4(date);
                                date.seconds(date.seconds() == 59 && diff > 60 * 1e3 ? 0 : date.seconds() + 1);
                                if (date <= origDate) {
                                    date = this._findDST(origDate);
                                }
                                continue;
                            }
                            break;
                        }
                        return date;
                    },
                    /**
           * get next date that is a valid DST date
           */ _findDST: function _findDST(date) {
                        var newDate = moment4(date);
                        while(newDate <= date)newDate.add(1, "s");
                        return newDate;
                    },
                    /**
           * wildcard, or all params in array (for to string)
           */ _wcOrAll: function _wcOrAll(type) {
                        if (this._hasAll(type)) return "*";
                        var all2 = [];
                        for(var time in this[type]){
                            all2.push(time);
                        }
                        return all2.join(",");
                    },
                    _hasAll: function _hasAll(type) {
                        var constrain = CronTime.constraints[timeUnits.indexOf(type)];
                        for(var i = constrain[0], n = constrain[1]; i < n; i++){
                            if (!(i in this[type])) return false;
                        }
                        return true;
                    },
                    _parse: function _parse() {
                        var aliases = CronTime.aliases, source = this.source.replace(/[a-z]{1,3}/ig, function(alias) {
                            alias = alias.toLowerCase();
                            if (alias in aliases) {
                                return aliases[alias];
                            }
                            throw new Error("Unknown alias: " + alias);
                        }), split = source.replace(/^\s\s*|\s\s*$/g, "").split(/\s+/), cur, i = 0, len = timeUnits.length;
                        for(; i < timeUnits.length; i++){
                            cur = split[i - (len - split.length)] || CronTime.parseDefaults[i];
                            this._parseField(cur, timeUnits[i], CronTime.constraints[i]);
                        }
                    },
                    _parseField: function _parseField(field, type, constraints) {
                        var rangePattern = /^(\d+)(?:-(\d+))?(?:\/(\d+))?$/g, typeObj = this[type], pointer, low = constraints[0], high = constraints[1];
                        field = field.replace(/\*/g, low + "-" + high);
                        var allRanges = field.split(",");
                        for(var i = 0; i < allRanges.length; i++){
                            if (allRanges[i].match(rangePattern)) {
                                allRanges[i].replace(rangePattern, function($0, lower, upper, step) {
                                    step = parseInt(step) || 1;
                                    lower = Math.min(Math.max(low, ~~Math.abs(lower)), high);
                                    upper = upper ? Math.min(high, ~~Math.abs(upper)) : lower;
                                    pointer = lower;
                                    do {
                                        typeObj[pointer] = true;
                                        pointer += step;
                                    }while (pointer <= upper);
                                });
                            } else {
                                throw new Error("Field (" + field + ") cannot be parsed");
                            }
                        }
                    }
                };
                function command2function(cmd) {
                    var command, args;
                    switch(typeof cmd === "undefined" ? "undefined" : _type_of(cmd)){
                        case "string":
                            args = cmd.split(" ");
                            command = args.shift();
                            cmd = spawn2.bind(void 0, command, args);
                            break;
                        case "object":
                            command = cmd && cmd.command;
                            if (command) {
                                args = cmd.args;
                                var options = cmd.options;
                                cmd = spawn2.bind(void 0, command, args, options);
                            }
                            break;
                    }
                    return cmd;
                }
                function CronJob(cronTime, onTick, onComplete, startNow, timeZone, context, runOnInit, utcOffset) {
                    var _cronTime = cronTime;
                    if (typeof cronTime != "string" && arguments.length == 1) {
                        onTick = cronTime.onTick;
                        onComplete = cronTime.onComplete;
                        context = cronTime.context;
                        startNow = cronTime.start || cronTime.startNow || cronTime.startJob;
                        timeZone = cronTime.timeZone;
                        runOnInit = cronTime.runOnInit;
                        _cronTime = cronTime.cronTime;
                        utcOffset = cronTime.utcOffset;
                    }
                    this.context = context || this;
                    this._callbacks = [];
                    this.onComplete = command2function(onComplete);
                    this.cronTime = new CronTime(_cronTime, timeZone, utcOffset);
                    addCallback.call(this, command2function(onTick));
                    if (runOnInit) fireOnTick.call(this);
                    if (startNow) start.call(this);
                    return this;
                }
                var addCallback = function addCallback(callback) {
                    if (typeof callback == "function") this._callbacks.push(callback);
                };
                CronJob.prototype.addCallback = addCallback;
                CronJob.prototype.setTime = function(time) {
                    if (!(time instanceof CronTime)) throw new Error("'time' must be an instance of CronTime.");
                    this.stop();
                    this.cronTime = time;
                };
                CronJob.prototype.nextDate = function() {
                    return this.cronTime.sendAt();
                };
                var fireOnTick = function fireOnTick() {
                    for(var i = this._callbacks.length - 1; i >= 0; i--)this._callbacks[i].call(this.context, this.onComplete);
                };
                CronJob.prototype.fireOnTick = fireOnTick;
                CronJob.prototype.nextDates = function(i) {
                    return this.cronTime.sendAt(i);
                };
                var start = function start() {
                    if (this.running) return;
                    var MAXDELAY = 2147483647;
                    var self2 = this;
                    var timeout = this.cronTime.getTimeout();
                    var remaining = 0;
                    var startTime;
                    if (this.cronTime.realDate) this.runOnce = true;
                    function _setTimeout(timeout2) {
                        startTime = Date.now();
                        self2._timeout = setTimeout(callbackWrapper, timeout2);
                    }
                    function callbackWrapper() {
                        var diff = startTime + timeout - Date.now();
                        if (diff > 0) {
                            var newTimeout = self2.cronTime.getTimeout();
                            if (newTimeout > diff) {
                                newTimeout = diff;
                            }
                            remaining += newTimeout;
                        }
                        self2.lastExecution = /* @__PURE__ */ new Date();
                        if (remaining) {
                            if (remaining > MAXDELAY) {
                                remaining -= MAXDELAY;
                                timeout = MAXDELAY;
                            } else {
                                timeout = remaining;
                                remaining = 0;
                            }
                            _setTimeout(timeout);
                        } else {
                            self2.running = false;
                            if (!self2.runOnce) self2.start();
                            self2.fireOnTick();
                        }
                    }
                    if (timeout >= 0) {
                        this.running = true;
                        if (timeout > MAXDELAY) {
                            remaining = timeout - MAXDELAY;
                            timeout = MAXDELAY;
                        }
                        _setTimeout(timeout);
                    } else {
                        this.stop();
                    }
                };
                CronJob.prototype.start = start;
                CronJob.prototype.lastDate = function() {
                    return this.lastExecution;
                };
                CronJob.prototype.stop = function() {
                    if (this._timeout) clearTimeout(this._timeout);
                    this.running = false;
                    if (typeof this.onComplete == "function") this.onComplete();
                };
                exports2.job = function(cronTime, onTick, onComplete, startNow, timeZone, context, runOnInit) {
                    return new CronJob(cronTime, onTick, onComplete, startNow, timeZone, context, runOnInit);
                };
                exports2.time = function(cronTime, timeZone) {
                    return new CronTime(cronTime, timeZone);
                };
                exports2.sendAt = function(cronTime) {
                    return exports2.time(cronTime).sendAt();
                };
                exports2.timeout = function(cronTime) {
                    return exports2.time(cronTime).getTimeout();
                };
                exports2.CronJob = CronJob;
                exports2.CronTime = CronTime;
                return exports2;
            });
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Power/CronPowerActionScheduler.js
    var require_CronPowerActionScheduler = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Power/CronPowerActionScheduler.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var cron_1 = require_cron();
            var events_1 = require_events();
            var CronPowerActionScheduler = /*#__PURE__*/ function() {
                function CronPowerActionScheduler() {
                    _class_call_check(this, CronPowerActionScheduler);
                    this.cronJobs = {};
                    this.events = new events_1.EventEmitter();
                    this.events.setMaxListeners(1);
                }
                _create_class(CronPowerActionScheduler, [
                    {
                        key: "addListener",
                        value: function addListener(listener) {
                            this.events.addListener("power", listener);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(listener) {
                            this.events.removeListener("power", listener);
                        }
                    },
                    {
                        key: "reschedule",
                        value: function reschedule(rules) {
                            this.unschedule();
                            this.schedule(rules);
                        }
                    },
                    {
                        key: "unschedule",
                        value: function unschedule() {
                            var _this = this;
                            Object.keys(this.cronJobs).forEach(function(uid) {
                                _this.cronJobs[uid].stop();
                                delete _this.cronJobs[uid];
                            });
                        }
                    },
                    {
                        key: "schedule",
                        value: function schedule(rules) {
                            var _this = this;
                            Object.keys(rules).forEach(function(uid) {
                                var _rules_uid = rules[uid], powerType = _rules_uid.powerType, weekdays = _rules_uid.weekdays, time = _rules_uid.time;
                                var cronJob = createCronJob(weekdays, time, function() {
                                    _this.events.emit("power", powerType);
                                });
                                _this.cronJobs[uid] = cronJob;
                            });
                            Object.keys(this.cronJobs).forEach(function(uid) {
                                _this.cronJobs[uid].start();
                            });
                        }
                    }
                ]);
                return CronPowerActionScheduler;
            }();
            exports["default"] = CronPowerActionScheduler;
            function createCronJob(weekdays, time, onTick) {
                var weekdaysString = weekdays.join(",");
                var _ref = _sliced_to_array(time.match(/^([0-9]{2}):([0-9]{2})(?::([0-9]{2}))?$/) || [], 4), hours = _ref[1], minutes = _ref[2], seconds = _ref[3];
                return new cron_1.CronJob("".concat(seconds !== null && seconds !== void 0 ? seconds : "00", " ").concat(minutes, " ").concat(hours, " * * ").concat(weekdaysString), onTick);
            }
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Power/DefaultPowerActionTimer.js
    var require_DefaultPowerActionTimer = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Power/DefaultPowerActionTimer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var DefaultPowerActionTimer = /*#__PURE__*/ function() {
                function DefaultPowerActionTimer(storage, scheduler, executor) {
                    var _this = this;
                    _class_call_check(this, DefaultPowerActionTimer);
                    this.storage = storage;
                    this.scheduler = scheduler;
                    this.executor = executor;
                    this.started = false;
                    this.listener = function(event) {
                        _this.executor.execute(event);
                    };
                }
                _create_class(DefaultPowerActionTimer, [
                    {
                        key: "set",
                        value: function set(uid, rule) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.storage.put(uid, rule)
                                            ];
                                        case 1:
                                            _state.sent();
                                            if (!this.started) return [
                                                3,
                                                3
                                            ];
                                            _1 = (_ = this.scheduler).reschedule;
                                            return [
                                                4,
                                                this.rules()
                                            ];
                                        case 2:
                                            _1.apply(_, [
                                                _state.sent()
                                            ]);
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "unset",
                        value: function unset() {
                            for(var _len = arguments.length, uid = new Array(_len), _key = 0; _key < _len; _key++){
                                uid[_key] = arguments[_key];
                            }
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, changed, _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            changed = false;
                                            return [
                                                4,
                                                Promise.all(uid.map(function(u) {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var _tmp;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _tmp = changed;
                                                                    if (_tmp) return [
                                                                        3,
                                                                        2
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        this.storage.remove(u)
                                                                    ];
                                                                case 1:
                                                                    _tmp = _state.sent();
                                                                    _state.label = 2;
                                                                case 2:
                                                                    changed = _tmp;
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                }))
                                            ];
                                        case 1:
                                            _state.sent();
                                            if (!(this.started && changed)) return [
                                                3,
                                                3
                                            ];
                                            _1 = (_ = this.scheduler).reschedule;
                                            return [
                                                4,
                                                this.rules()
                                            ];
                                        case 2:
                                            _1.apply(_, [
                                                _state.sent()
                                            ]);
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "reset",
                        value: function reset() {
                            return __awaiter(this, void 0, void 0, function() {
                                var changed, _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.storage.clear()
                                            ];
                                        case 1:
                                            changed = _state.sent();
                                            if (!(this.started && changed)) return [
                                                3,
                                                3
                                            ];
                                            _1 = (_ = this.scheduler).reschedule;
                                            return [
                                                4,
                                                this.rules()
                                            ];
                                        case 2:
                                            _1.apply(_, [
                                                _state.sent()
                                            ]);
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "rules",
                        value: function rules() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.storage.content()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "notifyStart",
                        value: function notifyStart() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.started = true;
                                            this.scheduler.addListener(this.listener);
                                            _1 = (_ = this.scheduler).reschedule;
                                            return [
                                                4,
                                                this.rules()
                                            ];
                                        case 1:
                                            _1.apply(_, [
                                                _state.sent()
                                            ]);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "notifyEnd",
                        value: function notifyEnd() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    this.started = false;
                                    this.scheduler.removeListener(this.listener);
                                    this.scheduler.unschedule();
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return DefaultPowerActionTimer;
            }();
            exports["default"] = DefaultPowerActionTimer;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Power/MigratingPowerActionTimerPropertyStorage.js
    var require_MigratingPowerActionTimerPropertyStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Power/MigratingPowerActionTimerPropertyStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var MigratingPowerActionTimerPropertyStorage = /*#__PURE__*/ function() {
                function MigratingPowerActionTimerPropertyStorage(oldStorage, newStorage) {
                    _class_call_check(this, MigratingPowerActionTimerPropertyStorage);
                    this.oldStorage = oldStorage;
                    this.newStorage = newStorage;
                    this.migration = this.performMigration();
                }
                _create_class(MigratingPowerActionTimerPropertyStorage, [
                    {
                        key: "put",
                        value: function put(uid, rule) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.migration
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.newStorage.put(uid, rule)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "remove",
                        value: function remove(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.migration
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.newStorage.remove(uid)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clear",
                        value: function clear() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.migration
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.newStorage.clear()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "content",
                        value: function content() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.migration
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.newStorage.content()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "performMigration",
                        value: function performMigration() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.newStorage.hasPersistedData()
                                            ];
                                        case 1:
                                            if (!!_state.sent()) return [
                                                3,
                                                4
                                            ];
                                            _1 = (_ = this.newStorage).putAll;
                                            return [
                                                4,
                                                this.oldStorage().content()
                                            ];
                                        case 2:
                                            return [
                                                4,
                                                _1.apply(_, [
                                                    _state.sent()
                                                ])
                                            ];
                                        case 3:
                                            _state.sent();
                                            console.debug("Power Action Timer storage migration complete.");
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return MigratingPowerActionTimerPropertyStorage;
            }();
            exports["default"] = MigratingPowerActionTimerPropertyStorage;
        }
    });
    // node_modules/@signageos/actions/dist/Misc/Weekday.js
    var require_Weekday2 = __commonJS({
        "node_modules/@signageos/actions/dist/Misc/Weekday.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Weekday;
            (function(Weekday2) {
                Weekday2[Weekday2["SUNDAY"] = 0] = "SUNDAY";
                Weekday2[Weekday2["MONDAY"] = 1] = "MONDAY";
                Weekday2[Weekday2["TUESDAY"] = 2] = "TUESDAY";
                Weekday2[Weekday2["WEDNESDAY"] = 3] = "WEDNESDAY";
                Weekday2[Weekday2["THURSDAY"] = 4] = "THURSDAY";
                Weekday2[Weekday2["FRIDAY"] = 5] = "FRIDAY";
                Weekday2[Weekday2["SATURDAY"] = 6] = "SATURDAY";
            })(Weekday || (Weekday = {}));
            exports["default"] = Weekday;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Power/PowerActionTimerPropertyStorage.js
    var require_PowerActionTimerPropertyStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Power/PowerActionTimerPropertyStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var Weekday_1 = __importDefault(require_Weekday2());
            var PowerActionTimerPropertyStorage = /*#__PURE__*/ function() {
                function PowerActionTimerPropertyStorage(propertyStorage, property) {
                    _class_call_check(this, PowerActionTimerPropertyStorage);
                    this.propertyStorage = propertyStorage;
                    this.property = property;
                }
                _create_class(PowerActionTimerPropertyStorage, [
                    {
                        key: "content",
                        value: function content() {
                            return __awaiter(this, void 0, void 0, function() {
                                var currentSettings;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.loadSettings()
                                            ];
                                        case 1:
                                            currentSettings = _state.sent();
                                            return [
                                                2,
                                                Object.keys(currentSettings).reduce(function(result17, uid) {
                                                    return Object.assign(Object.assign({}, result17), _define_property({}, uid, {
                                                        powerType: PowerActionType_1["default"][currentSettings[uid].powerType],
                                                        weekdays: currentSettings[uid].weekdays.map(function(weekday) {
                                                            return Weekday_1["default"][weekday];
                                                        }),
                                                        time: currentSettings[uid].time
                                                    }));
                                                }, {})
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "put",
                        value: function put(uid, rule) {
                            return __awaiter(this, void 0, void 0, function() {
                                var powerType, weekdays, time, currentSettings;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            powerType = rule.powerType, weekdays = rule.weekdays, time = rule.time;
                                            return [
                                                4,
                                                this.loadSettings()
                                            ];
                                        case 1:
                                            currentSettings = _state.sent();
                                            if (currentSettings[uid]) {
                                                console.warn("Scheduled power action with uid already exists: " + uid);
                                            }
                                            return [
                                                4,
                                                this.saveSettings(Object.assign(Object.assign({}, currentSettings), _define_property({}, uid, {
                                                    powerType: PowerActionType_1["default"][powerType],
                                                    weekdays: weekdays.map(function(weekday) {
                                                        return Weekday_1["default"][weekday];
                                                    }),
                                                    time: time
                                                })))
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "remove",
                        value: function remove(uid) {
                            return __awaiter(this, void 0, void 0, function() {
                                var currentSettings;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.loadSettings()
                                            ];
                                        case 1:
                                            currentSettings = _state.sent();
                                            if (!currentSettings[uid]) {
                                                return [
                                                    2,
                                                    false
                                                ];
                                            }
                                            delete currentSettings[uid];
                                            return [
                                                4,
                                                this.saveSettings(currentSettings)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clear",
                        value: function clear() {
                            return __awaiter(this, void 0, void 0, function() {
                                var currentSettings;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.loadSettings()
                                            ];
                                        case 1:
                                            currentSettings = _state.sent();
                                            if (Object.keys(currentSettings).length === 0) {
                                                return [
                                                    2,
                                                    false
                                                ];
                                            }
                                            return [
                                                4,
                                                this.saveSettings({})
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "putAll",
                        value: function putAll(rules) {
                            return __awaiter(this, void 0, void 0, function() {
                                var currentSettings, storedRules;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.loadSettings()
                                            ];
                                        case 1:
                                            currentSettings = _state.sent();
                                            storedRules = Object.keys(rules).reduce(function(result17, uid) {
                                                return Object.assign(Object.assign({}, result17), _define_property({}, uid, {
                                                    powerType: PowerActionType_1["default"][rules[uid].powerType],
                                                    weekdays: rules[uid].weekdays.map(function(weekday) {
                                                        return Weekday_1["default"][weekday];
                                                    }),
                                                    time: rules[uid].time
                                                }));
                                            }, {});
                                            return [
                                                4,
                                                this.saveSettings(Object.assign(Object.assign({}, currentSettings), storedRules))
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /**
         * @returns Whether this storage has ever persisted any data.
         */ key: "hasPersistedData",
                        value: function hasPersistedData() {
                            return __awaiter(this, void 0, void 0, function() {
                                var currentSettings;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(this.property, void 0)
                                            ];
                                        case 1:
                                            currentSettings = _state.sent();
                                            return [
                                                2,
                                                typeof currentSettings !== "undefined"
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "loadSettings",
                        value: function loadSettings() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(this.property, {})
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "saveSettings",
                        value: function saveSettings(rules) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.setValue(this.property, rules)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return PowerActionTimerPropertyStorage;
            }();
            exports["default"] = PowerActionTimerPropertyStorage;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Power/powerActionTimerStorages.js
    var require_powerActionTimerStorages = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Power/powerActionTimerStorages.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createPowerActionTimerPropertyStorage = void 0;
            var Property_1 = __importDefault(require_Property());
            var MigratingPowerActionTimerPropertyStorage_1 = __importDefault(require_MigratingPowerActionTimerPropertyStorage());
            var PowerActionTimerPropertyStorage_1 = __importDefault(require_PowerActionTimerPropertyStorage());
            function createPowerActionTimerPropertyStorage(propertyStorage, property) {
                var oldStorage = function() {
                    return new PowerActionTimerPropertyStorage_1["default"](propertyStorage, Property_1["default"].POWER_ACTIONS_SCHEDULE_SETTINGS);
                };
                var newStorage = new PowerActionTimerPropertyStorage_1["default"](propertyStorage, property);
                return new MigratingPowerActionTimerPropertyStorage_1["default"](oldStorage, newStorage);
            }
            exports.createPowerActionTimerPropertyStorage = createPowerActionTimerPropertyStorage;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Power/powerActionTimers.js
    var require_powerActionTimers2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Power/powerActionTimers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createFrontPowerActionTimer = void 0;
            var CronPowerActionScheduler_1 = __importDefault(require_CronPowerActionScheduler());
            var DefaultPowerActionTimer_1 = __importDefault(require_DefaultPowerActionTimer());
            var powerActionTimerStorages_1 = require_powerActionTimerStorages();
            var Property_1 = __importDefault(require_Property());
            function createFrontPowerActionTimer(propertyStorage, executor) {
                var storage = (0, powerActionTimerStorages_1.createPowerActionTimerPropertyStorage)(propertyStorage, Property_1["default"].POWER_ACTIONS_SCHEDULE_SETTINGS_FRONT);
                var scheduler = new CronPowerActionScheduler_1["default"]();
                return new DefaultPowerActionTimer_1["default"](storage, scheduler, executor);
            }
            exports.createFrontPowerActionTimer = createFrontPowerActionTimer;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Power/FrontPowerActionExecutor.js
    var require_FrontPowerActionExecutor = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Power/FrontPowerActionExecutor.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var FrontPowerActionExecutor = /*#__PURE__*/ function() {
                function FrontPowerActionExecutor() {
                    _class_call_check(this, FrontPowerActionExecutor);
                    this.channel = (0, redux_saga_1.channel)(redux_saga_1.buffers.none());
                }
                _create_class(FrontPowerActionExecutor, [
                    {
                        key: "execute",
                        value: function execute(powerAction) {
                            this.channel.put(powerAction);
                        }
                    },
                    {
                        key: "takeEveryAction",
                        value: function takeEveryAction() {
                            return (0, effects_1.takeEvery)(this.channel, function(powerType) {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                (0, effects_1.put)({
                                                    type: devicePowerActionActions_1.PerformScheduledPowerAction,
                                                    powerType: powerType
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return FrontPowerActionExecutor;
            }();
            exports["default"] = FrontPowerActionExecutor;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Power/deviceSchedulePowerActionSagas.js
    var require_deviceSchedulePowerActionSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Power/deviceSchedulePowerActionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceSchedulePowerAction = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var devicePowerActions_1 = require_devicePowerActions();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var deviceSchedulePowerActionSagas_1 = require_deviceSchedulePowerActionSagas();
            var powerActionTimers_1 = require_powerActionTimers2();
            var FrontPowerActionExecutor_1 = __importDefault(require_FrontPowerActionExecutor());
            function deviceSchedulePowerAction(propertyStorage) {
                var powerActionExecutor, powerActionTimer;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)([
                                    devicePowerActions_1.SchedulePowerAction,
                                    devicePowerActions_1.CancelScheduledPowerAction
                                ])
                            ];
                        case 1:
                            _state.sent();
                            powerActionExecutor = new FrontPowerActionExecutor_1["default"]();
                            powerActionTimer = (0, powerActionTimers_1.createFrontPowerActionTimer)(propertyStorage, powerActionExecutor);
                            return [
                                4,
                                powerActionExecutor.takeEveryAction()
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, deviceSchedulePowerActionSagas_1.deviceSchedulePowerActionCommon)(powerActionTimer, function(powerType) {
                                    return powerType === PowerActionType_1["default"].APPLET_REFRESH || powerType === PowerActionType_1["default"].APPLET_RELOAD || powerType === PowerActionType_1["default"].APPLET_ENABLE || powerType === PowerActionType_1["default"].APPLET_DISABLE;
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceSchedulePowerAction = deviceSchedulePowerAction;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/RemoteControl/deviceRemoteControlSagas.js
    var require_deviceRemoteControlSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/RemoteControl/deviceRemoteControlSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.startupDeviceRemoteControlSettingsSaga = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var applicationActions_1 = require_applicationActions2();
            var authenticationActions_1 = require_authenticationActions();
            var deviceRemoteControlActions_1 = require_deviceRemoteControlActions();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Device:RemoteControl:deviceRemoteControlSagas");
            function startupDeviceRemoteControlSettingsSaga(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, startupDeviceRemoteControlSettings, getNativeDriver)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, startupDeviceRemoteControlSettings, getNativeDriver)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.startupDeviceRemoteControlSettingsSaga = startupDeviceRemoteControlSettingsSaga;
            function startupDeviceRemoteControlSettings(getNativeDriver) {
                var nativeDriver, enabled, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                3,
                                ,
                                4
                            ]);
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                nativeDriver.remoteControlIsEnabled()
                            ];
                        case 1:
                            enabled = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceRemoteControlActions_1.DeviceRemoteControlSet,
                                    enabled: enabled
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                4
                            ];
                        case 3:
                            error = _state.sent();
                            debug4("Couldn't determine if the remote control is enabled during startup", error);
                            return [
                                3,
                                4
                            ];
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Screen/eyeClosedIcon.js
    var require_eyeClosedIcon = __commonJS({
        "node_modules/@signageos/front-display/es6/Screen/eyeClosedIcon.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.EYE_CLOSED_ICON_DATA_URI = void 0;
            exports.EYE_CLOSED_ICON_DATA_URI = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI4NDgiIHZpZXdCb3g9IjAgMCAxMDI0IDg0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMjEyIiB5PSIxMjQiIHdpZHRoPSI2MDAiIGhlaWdodD0iNjAwIiByeD0iMzAwIiBmaWxsPSIjRDVFN0VEIi8+CjxwYXRoIGQ9Ik01NjIuMjU4IDQzMy40MjRMNTUwLjY0NiA0MjEuODEyQzU1Mi44MzMgNDA5LjA4MSA1NDkuMjI1IDM5OC4wNiA1MzkuODIxIDM4OC43NDhDNTMwLjQxNyAzNzkuNDM3IDUxOS40NDIgMzc1Ljg3NSA1MDYuODk2IDM3OC4wNjJMNDk1LjI4NCAzNjYuNDVDNDk3LjczNCAzNjUuNDQyIDUwMC4yOTEgMzY0LjY4NSA1MDIuOTU1IDM2NC4xNzlDNTA1LjYxOSAzNjMuNjc2IDUwOC42MzQgMzYzLjQyNCA1MTIgMzYzLjQyNEM1MjYuODYzIDM2My40MjQgNTM5LjQ1OSAzNjguNTg5IDU0OS43ODkgMzc4LjkxOUM1NjAuMTE5IDM4OS4yNDkgNTY1LjI4NCA0MDEuODQ1IDU2NS4yODQgNDE2LjcwOEM1NjUuMjg0IDQyMC4wNzUgNTY1LjAzMiA0MjMuMTgzIDU2NC41MjkgNDI2LjAzNEM1NjQuMDI0IDQyOC44ODUgNTYzLjI2NiA0MzEuMzQ5IDU2Mi4yNTggNDMzLjQyNFpNNjA4LjM2MyA0NzguMjM5TDU5Ny4zMTIgNDY4LjQ3OUM2MDYuNTQ5IDQ2MS40MyA2MTQuNzUyIDQ1My43MTMgNjIxLjkyMiA0NDUuMzI4QzYyOS4wOTIgNDM2Ljk0MyA2MzUuMjI5IDQyNy40MDMgNjQwLjMzMyA0MTYuNzA4QzYyOC4xODEgMzkyLjE2IDYxMC43NDEgMzcyLjY1NCA1ODguMDE2IDM1OC4xOTNDNTY1LjI5IDM0My43MzEgNTM5Ljk1MSAzMzYuNSA1MTIgMzM2LjVDNTA0Ljk1MSAzMzYuNSA0OTguMDI0IDMzNi45ODYgNDkxLjIxOSAzMzcuOTU4QzQ4NC40MTMgMzM4LjkzMSA0NzcuNzI5IDM0MC4zODkgNDcxLjE2NyAzNDIuMzMzTDQ1OS43ODEgMzMwLjk0N0M0NjguMjUxIDMyNy43NTEgNDc2Ljg3IDMyNS40NDcgNDg1LjYzNyAzMjQuMDM1QzQ5NC40MDYgMzIyLjYyMyA1MDMuMTk0IDMyMS45MTcgNTEyIDMyMS45MTdDNTQzLjY1MyAzMjEuOTE3IDU3Mi42MDUgMzMwLjYxNiA1OTguODU1IDM0OC4wMTNDNjI1LjEwNSAzNjUuNDA5IDY0NC4zOSAzODguMzA3IDY1Ni43MSA0MTYuNzA4QzY1MS40OTQgNDI4LjQzMSA2NDQuODkxIDQzOS40NDcgNjM2Ljg5OSA0NDkuNzU4QzYyOC45MDUgNDYwLjA3MSA2MTkuMzkzIDQ2OS41NjQgNjA4LjM2MyA0NzguMjM5Wk02MjQuNjI3IDU1Ny4yN0w1NjcuODY1IDUwMC42NzVDNTYxLjQxNCA1MDMuNTM2IDU1My40MDggNTA2LjA1NSA1NDMuODQ2IDUwOC4yMzNDNTM0LjI4MiA1MTAuNDExIDUyMy42NjcgNTExLjUgNTEyIDUxMS41QzQ4MC4xNiA1MTEuNSA0NTEuMjA4IDUwMi44MDEgNDI1LjE0NSA0ODUuNDAzQzM5OS4wODIgNDY4LjAwOCAzNzkuNzk3IDQ0NS4xMDkgMzY3LjI5IDQxNi43MDhDMzcyLjk1MyA0MDMuODI2IDM4MC40MjIgMzkxLjc2MiAzODkuNjk3IDM4MC41MTZDMzk4Ljk2OSAzNjkuMjcgNDA4Ljg2OSAzNTkuODMzIDQxOS4zOTYgMzUyLjIwNkwzNzguNzMgMzExLjM3M0wzODkuMDUyIDMwMS4wNTJMNjM0Ljk0OCA1NDYuOTQ4TDYyNC42MjcgNTU3LjI3Wk00MjkuNzE3IDM2Mi41MjRDNDIxLjM1OCAzNjguNDcxIDQxMi44MTQgMzc2LjI4NyA0MDQuMDgzIDM4NS45N0MzOTUuMzUzIDM5NS42NTYgMzg4LjU0NyA0MDUuOTAyIDM4My42NjcgNDE2LjcwOEMzOTUuODE5IDQ0MS4yNTcgNDEzLjI1OSA0NjAuNzYyIDQzNS45ODQgNDc1LjIyNEM0NTguNzEgNDg5LjY4NiA0ODQuMDQ5IDQ5Ni45MTcgNTEyIDQ5Ni45MTdDNTIwLjQxNSA0OTYuOTE3IDUyOC44OTQgNDk2LjA5OSA1MzcuNDM3IDQ5NC40NjNDNTQ1Ljk4IDQ5Mi44MjcgNTUyLjQwMyA0OTEuMTc3IDU1Ni43MDUgNDg5LjUxMkw1MzIuOTIgNDY1LjU2MkM1MzAuNjIgNDY2Ljg1MyA1MjcuNDE1IDQ2Ny45MTQgNTIzLjMwMiA0NjguNzQ1QzUxOS4xOSA0NjkuNTc3IDUxNS40MjIgNDY5Ljk5MiA1MTIgNDY5Ljk5MkM0OTcuMTM3IDQ2OS45OTIgNDg0LjU0MSA0NjQuODI3IDQ3NC4yMTEgNDU0LjQ5N0M0NjMuODgxIDQ0NC4xNjcgNDU4LjcxNiA0MzEuNTcxIDQ1OC43MTYgNDE2LjcwOEM0NTguNzE2IDQxMy40NzMgNDU5LjEzMiA0MDkuODQ2IDQ1OS45NjMgNDA1LjgyNUM0NjAuNzk0IDQwMS44MDggNDYxLjg1NSAzOTguNDYyIDQ2My4xNDYgMzk1Ljc4OEw0MjkuNzE3IDM2Mi41MjRaIiBmaWxsPSIjMjcyQTJEIi8+Cjwvc3ZnPgo=";
        }
    });
    // node_modules/@signageos/front-display/es6/Screen/overlayHelper.js
    var require_overlayHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Screen/overlayHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.updateOverlay = exports.hideAppletMutedOverlay = exports.showAppletMutedOverlay = exports.showOverlay = exports.hideOverlay = exports.isOverlayShown = void 0;
            var eyeClosedIcon_1 = require_eyeClosedIcon();
            var mutedMessage_1 = require_mutedMessage();
            var OVERLAY_SHOWN_KEY = "Screen.Overlay.Shown";
            var APPLET_MUTED_OVERLAY_ID = "applet-muted-overlay";
            var APPLET_MUTED_OVERLAY_TEXT_ID = "applet-muted-overlay-text";
            var APPLET_MUTED_BLUR = "blur(8px)";
            var MUTED_CONTENT_ELEMENT_IDS = [
                "body",
                "videos-wrapper-foreground",
                "videos-wrapper-background"
            ];
            function getAppletMutedOverlayText(nextPowerOn) {
                return (0, mutedMessage_1.formatTimerOffMessage)(nextPowerOn, {
                    playbackRunning: true
                });
            }
            function setMutedContentBlur(window2, blur) {
                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                try {
                    for(var _iterator = MUTED_CONTENT_ELEMENT_IDS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                        var id = _step.value;
                        var element = window2.document.getElementById(id);
                        if (!element) {
                            continue;
                        }
                        if (blur) {
                            element.style.filter = blur;
                            element.style.setProperty("-webkit-filter", blur);
                        } else {
                            element.style.removeProperty("filter");
                            element.style.removeProperty("-webkit-filter");
                        }
                    }
                } catch (err) {
                    _didIteratorError = true;
                    _iteratorError = err;
                } finally{
                    try {
                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                            _iterator["return"]();
                        }
                    } finally{
                        if (_didIteratorError) {
                            throw _iteratorError;
                        }
                    }
                }
            }
            function isOverlayShown(storage) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    storage.getItem(OVERLAY_SHOWN_KEY)
                                ];
                            case 1:
                                return [
                                    2,
                                    _state.sent() === "1"
                                ];
                        }
                    });
                });
            }
            exports.isOverlayShown = isOverlayShown;
            function hideOverlay(window2, storage) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    storage.removeItem(OVERLAY_SHOWN_KEY)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    updateOverlay(window2, storage)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.hideOverlay = hideOverlay;
            function showOverlay(window2, storage) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    storage.setItem(OVERLAY_SHOWN_KEY, "1")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    updateOverlay(window2, storage)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.showOverlay = showOverlay;
            function showAppletMutedOverlay(window2) {
                var nextPowerOn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
                setMutedContentBlur(window2, APPLET_MUTED_BLUR);
                var existing = window2.document.getElementById(APPLET_MUTED_OVERLAY_ID);
                if (existing) {
                    var existingText = window2.document.getElementById(APPLET_MUTED_OVERLAY_TEXT_ID);
                    if (existingText) {
                        existingText.textContent = getAppletMutedOverlayText(nextPowerOn);
                    }
                    return;
                }
                var overlay = window2.document.createElement("div");
                overlay.setAttribute("id", APPLET_MUTED_OVERLAY_ID);
                overlay.style.position = "fixed";
                overlay.style.left = "0";
                overlay.style.top = "0";
                overlay.style.width = "100%";
                overlay.style.height = "100%";
                overlay.style.zIndex = "99998";
                overlay.style.background = "linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%)";
                overlay.style.display = "flex";
                overlay.style.alignItems = "center";
                overlay.style.justifyContent = "center";
                overlay.style.color = "#ffffff";
                overlay.style.fontFamily = "sans-serif";
                overlay.style.fontSize = "2rem";
                overlay.style.textAlign = "center";
                overlay.style.padding = "1rem";
                overlay.style.textShadow = "0 2px 8px rgba(0, 0, 0, 0.6)";
                var icon = window2.document.createElement("img");
                icon.setAttribute("src", eyeClosedIcon_1.EYE_CLOSED_ICON_DATA_URI);
                icon.setAttribute("alt", "");
                icon.setAttribute("role", "presentation");
                icon.style.position = "fixed";
                icon.style.top = "0";
                icon.style.right = "0";
                icon.style.marginTop = "2em";
                icon.style.marginRight = "2em";
                icon.style.width = "200px";
                icon.style.height = "auto";
                overlay.appendChild(icon);
                var text = window2.document.createElement("div");
                text.setAttribute("id", APPLET_MUTED_OVERLAY_TEXT_ID);
                text.textContent = getAppletMutedOverlayText(nextPowerOn);
                overlay.appendChild(text);
                window2.document.body.appendChild(overlay);
            }
            exports.showAppletMutedOverlay = showAppletMutedOverlay;
            function hideAppletMutedOverlay(window2) {
                setMutedContentBlur(window2, "");
                var overlay = window2.document.getElementById(APPLET_MUTED_OVERLAY_ID);
                if (overlay && overlay.parentElement) {
                    overlay.parentElement.removeChild(overlay);
                }
            }
            exports.hideAppletMutedOverlay = hideAppletMutedOverlay;
            function updateOverlay(window2, storage) {
                return __awaiter(this, void 0, void 0, function() {
                    var overlayShown, overlayId, overlay, existingOverlay, overlay1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    storage.getItem(OVERLAY_SHOWN_KEY)
                                ];
                            case 1:
                                overlayShown = _state.sent();
                                overlayId = "screen-overlay";
                                if (!overlayShown) {
                                    overlay = window2.document.getElementById(overlayId);
                                    if (overlay && overlay.parentElement) {
                                        overlay.parentElement.removeChild(overlay);
                                    }
                                } else {
                                    existingOverlay = window2.document.getElementById(overlayId);
                                    if (!existingOverlay) {
                                        overlay1 = window2.document.createElement("div");
                                        overlay1.setAttribute("id", overlayId);
                                        overlay1.style.backgroundColor = "#000000";
                                        overlay1.style.position = "absolute";
                                        overlay1.style.left = "0";
                                        overlay1.style.top = "0";
                                        overlay1.style.width = "100%";
                                        overlay1.style.height = "100%";
                                        overlay1.style.zIndex = "99999";
                                        window2.document.body.appendChild(overlay1);
                                    }
                                }
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.updateOverlay = updateOverlay;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Timer/timerControllerSagas.js
    var require_timerControllerSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Timer/timerControllerSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.appletTimerChecking = exports.displayTimerChecking = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var debug_1 = __importDefault(require_browser2());
            var IProprietaryTimerResolver_1 = require_IProprietaryTimerResolver();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var overlayHelper_1 = require_overlayHelper();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Device:Timer:timerControllerSagas");
            var timerCheckingChannel = (0, redux_saga_1.channel)();
            var timerCheckingChannelApplet = (0, redux_saga_1.channel)();
            function displayTimerChecking(responsibilities, timersManager) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].TIMERS)) {
                                return [
                                    2
                                ];
                            }
                            debug4("timerChecking start");
                            timersManager.on(IProprietaryTimerResolver_1.DisplayEvent.POWER_ON, function() {
                                debug4("turning display on");
                                timerCheckingChannel.put({
                                    type: devicePowerActionActions_1.TriggerDisplayPowerOn
                                });
                            }).on(IProprietaryTimerResolver_1.DisplayEvent.POWER_OFF, function() {
                                debug4("turning display off");
                                timerCheckingChannel.put({
                                    type: devicePowerActionActions_1.TriggerDisplayPowerOff
                                });
                            });
                            return [
                                4,
                                (0, effects_1.takeEvery)(timerCheckingChannel, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)(action)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.displayTimerChecking = displayTimerChecking;
            function appletTimerChecking(responsibilities, timersManager, global2) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].TIMERS)) {
                                return [
                                    2
                                ];
                            }
                            timersManager.on(IProprietaryTimerResolver_1.TimerEvent.TIMER_ON, function() {
                                debug4("enabling applet");
                                timerCheckingChannelApplet.put({
                                    type: devicePowerActionActions_1.TriggerAppletOn
                                });
                            }).on(IProprietaryTimerResolver_1.TimerEvent.TIMER_OFF, function() {
                                debug4("disabling applet");
                                timerCheckingChannelApplet.put({
                                    type: devicePowerActionActions_1.TriggerAppletOff,
                                    nextPowerOn: timersManager.getNextTimerOnTime ? timersManager.getNextTimerOnTime() : null
                                });
                            }).on(IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_ON, function() {
                                debug4("muting applet (showing overlay)");
                                var nextPowerOn = timersManager.getNextTimerOnTime ? timersManager.getNextTimerOnTime() : null;
                                (0, overlayHelper_1.showAppletMutedOverlay)(global2, nextPowerOn);
                            }).on(IProprietaryTimerResolver_1.TimerEvent.APPLET_MUTE_OFF, function() {
                                debug4("unmuting applet (hiding overlay)");
                                (0, overlayHelper_1.hideAppletMutedOverlay)(global2);
                            });
                            return [
                                4,
                                (0, effects_1.takeEvery)(timerCheckingChannelApplet, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)(action)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.appletTimerChecking = appletTimerChecking;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Verification/deviceVerificationSagas.js
    var require_deviceVerificationSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Verification/deviceVerificationSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.dispatchVerificationHash = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var deviceVerificationActions_1 = require_deviceVerificationActions();
            function dispatchVerificationHash(window2) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceVerificationActions_1.VerificationHashCreated, function(verificationHashCreated) {
                                    var message2;
                                    return _ts_generator(this, function(_state) {
                                        message2 = {
                                            type: "verificationHash",
                                            verificationHash: verificationHashCreated.verificationHash
                                        };
                                        if (window2.opener) {
                                            window2.opener.postMessage(message2, "*");
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.dispatchVerificationHash = dispatchVerificationHash;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/deviceAuthenticationSagas.js
    var require_deviceAuthenticationSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/deviceAuthenticationSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.cacheDeviceAuthHash = exports.startupDeviceAuthHash = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var applicationActions_1 = require_applicationActions2();
            var deviceAuthenticationActions_1 = require_deviceAuthenticationActions();
            var Property_1 = __importDefault(require_Property());
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Device:deviceAuthenticationSagas");
            function startupDeviceAuthHash(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var lastDeviceAuthHash, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                return [
                                                    4,
                                                    propertyStorage.getValueOrDefault(Property_1["default"].LAST_DEVICE_AUTH_HASH, null)
                                                ];
                                            case 1:
                                                lastDeviceAuthHash = _state.sent();
                                                if (!lastDeviceAuthHash) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceAuthenticationActions_1.UpdateAuthentication,
                                                        authHash: lastDeviceAuthHash
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                debug4("No " + Property_1["default"].LAST_DEVICE_AUTH_HASH + " found", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.startupDeviceAuthHash = startupDeviceAuthHash;
            function cacheDeviceAuthHash(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceAuthenticationActions_1.UpdateAuthentication, function(action) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    propertyStorage.setValue(Property_1["default"].LAST_DEVICE_AUTH_HASH, action.authHash)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                debug4("cacheDeviceAuthHash failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.cacheDeviceAuthHash = cacheDeviceAuthHash;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Input/keySagas.js
    var require_keySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Input/keySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.keySequenceSaga = exports.keyUpSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var channels_1 = require_channels();
            var applicationActions_1 = require_applicationActions2();
            var keyActions_1 = require_keyActions();
            var KeyCode_1 = require_KeyCode();
            function keyUpSaga(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var nativeDriver, keyUpChannel, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                nativeDriver = getNativeDriver();
                                                keyUpChannel = (0, channels_1.createChannel)(function(putHere) {
                                                    return nativeDriver.bindKeyUp(function(keyUpEvent) {
                                                        return putHere(keyUpEvent);
                                                    });
                                                });
                                                return [
                                                    4,
                                                    (0, channels_1.takeEvery)(keyUpChannel, function(keyUpEvent) {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: keyActions_1.HandleKeyUp,
                                                                            keyCode: KeyCode_1.KeyCode[keyUpEvent.keyCode]
                                                                        })
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("keyUpSaga", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.keyUpSaga = keyUpSaga;
            function keySequenceSaga(window2) {
                var cleanSequenceTimeout, pressedSequence;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            pressedSequence = [];
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeyUp, function(handleKeyUp) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                window2.clearTimeout(cleanSequenceTimeout);
                                                return [
                                                    4,
                                                    (0, effects_1.fork)(function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve) {
                                                                            cleanSequenceTimeout = window2.setTimeout(function() {
                                                                                return resolve();
                                                                            }, 4 * 1e3);
                                                                        })
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    pressedSequence = [];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: keyActions_1.HandleKeySequence,
                                                                            sequence: _to_consumable_array(pressedSequence)
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                if (!(handleKeyUp.keyCode !== void 0)) return [
                                                    3,
                                                    3
                                                ];
                                                pressedSequence.push(handleKeyUp.keyCode);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: keyActions_1.HandleKeySequence,
                                                        sequence: _to_consumable_array(pressedSequence)
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("keySequenceSaga", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.keySequenceSaga = keySequenceSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Input/motionSagas.js
    var require_motionSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Input/motionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.motionSequenceSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var motionActions_1 = require_motionActions();
            function motionSequenceSaga(window2) {
                var cleanSequenceTimeout, pressedSequence;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            pressedSequence = [];
                            return [
                                4,
                                (0, effects_1.takeEvery)(motionActions_1.HandleMotion, function(handleMotion) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                window2.clearTimeout(cleanSequenceTimeout);
                                                return [
                                                    4,
                                                    (0, effects_1.fork)(function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve) {
                                                                            cleanSequenceTimeout = window2.setTimeout(function() {
                                                                                return resolve();
                                                                            }, 4 * 1e3);
                                                                        })
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    pressedSequence = [];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: motionActions_1.HandleMotionSequence,
                                                                            sequence: _to_consumable_array(pressedSequence)
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                pressedSequence.push(handleMotion.gestureAction);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: motionActions_1.HandleMotionSequence,
                                                        sequence: _to_consumable_array(pressedSequence)
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("motionSequenceSaga", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.motionSequenceSaga = motionSequenceSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Input/softwareKeyboardSagas.js
    var require_softwareKeyboardSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Input/softwareKeyboardSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.bindNumericKeyboardSaga = void 0;
            var lodash_1 = require_lodash();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var keyActions_1 = require_keyActions();
            var motionActions_1 = require_motionActions();
            var keyboardActions_1 = require_keyboardActions();
            var GestureAction_1 = __importDefault(require_GestureAction());
            var KeyCode_1 = require_KeyCode();
            var wait_1 = __importDefault(require_wait());
            var constants_1 = require_constants();
            var SHOW_KEYBOARD_SEQUENCE = [
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP],
                GestureAction_1["default"][GestureAction_1["default"].DOUBLE_TAP]
            ];
            function bindNumericKeyboardSaga() {
                var lastMotionSequence;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            lastMotionSequence = [];
                            return [
                                4,
                                (0, effects_1.takeEvery)(motionActions_1.HandleMotionSequence, function(motionSequence) {
                                    return _ts_generator(this, function(_state) {
                                        try {
                                            lastMotionSequence = (0, lodash_1.takeRight)(motionSequence.sequence.filter(function(gestureAction) {
                                                return SHOW_KEYBOARD_SEQUENCE.indexOf(gestureAction) !== -1;
                                            }), SHOW_KEYBOARD_SEQUENCE.length);
                                        } catch (error) {
                                            console.error("bindPinKeyboardSaga motion sequence", error);
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(keyActions_1.HandleKeyUp, function(handleKeyUp) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                if (!(handleKeyUp.keyCode === KeyCode_1.KeyCode[KeyCode_1.KeyCode.VOLUME_UP] && lastMotionSequence.join() === SHOW_KEYBOARD_SEQUENCE.join())) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: keyboardActions_1.ShowNumericKeyboard
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.SLOWLY)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: keyboardActions_1.HideNumericKeyboard
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("bindPinKeyboardSaga confirm key", error);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.bindNumericKeyboardSaga = bindNumericKeyboardSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Network/networkSagas.js
    var require_networkSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Network/networkSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkingStatusChange = exports.networkConnection = void 0;
            var applicationActions_1 = require_applicationActions2();
            var networkActions_1 = require_networkActions2();
            var wait_1 = __importDefault(require_wait());
            var lodash_1 = __importDefault(require_lodash());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var networkActions_2 = require_networkActions();
            var WIFI_STRENGTH_THRESHOLD = 10;
            function isSignificantChange(lastStatus, newStatus) {
                if (lastStatus.length !== newStatus.length) {
                    return true;
                }
                for(var i = 0; i < newStatus.length; i++){
                    var lastIface = lastStatus[i];
                    var newIface = newStatus[i];
                    if (lastIface.type === "wifi" && newIface.type === "wifi") {
                        var lastStrength = lastIface.wifiStrength, lastRest = __rest(lastIface, [
                            "wifiStrength"
                        ]);
                        var newStrength = newIface.wifiStrength, newRest = __rest(newIface, [
                            "wifiStrength"
                        ]);
                        if (!lodash_1["default"].isEqual(lastRest, newRest)) {
                            return true;
                        }
                        if (lastStrength !== void 0 && newStrength !== void 0) {
                            if (Math.abs(lastStrength - newStrength) >= WIFI_STRENGTH_THRESHOLD) {
                                return true;
                            }
                        } else if (lastStrength !== newStrength) {
                            return true;
                        }
                    } else if (!lodash_1["default"].isEqual(lastIface, newIface)) {
                        return true;
                    }
                }
                return false;
            }
            function networkConnection(getState, getNativeDriver, getManagementDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, checkingConnection, getState, getNativeDriver)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, checkingStatusChange, getManagementDriver)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.networkConnection = networkConnection;
            function checkingConnection(getState, getNativeDriver) {
                var isNowConnected, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                7,
                                ,
                                8
                            ]);
                            _state.label = 1;
                        case 1:
                            if (!true) return [
                                3,
                                6
                            ];
                            return [
                                4,
                                getNativeDriver().isConnected()
                            ];
                        case 2:
                            isNowConnected = _state.sent();
                            if (!(getState().network.connected !== isNowConnected)) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: isNowConnected ? networkActions_1.Connected : networkActions_1.Disconnected
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                4,
                                (0, effects_1.call)(wait_1["default"], 60 * 1e3)
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                1
                            ];
                        case 6:
                            return [
                                3,
                                8
                            ];
                        case 7:
                            error = _state.sent();
                            console.error("checkingConnection failed", error);
                            return [
                                3,
                                8
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            function checkingStatusChange(getManagementDriver) {
                var lastStatus, status, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            lastStatus = [];
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                8,
                                ,
                                9
                            ]);
                            _state.label = 2;
                        case 2:
                            if (!true) return [
                                3,
                                7
                            ];
                            return [
                                4,
                                getManagementDriver().network.listInterfaces()
                            ];
                        case 3:
                            status = _state.sent();
                            if (!isSignificantChange(lastStatus, status)) return [
                                3,
                                5
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: networkActions_2.NetworkStatusChanged,
                                    data: status
                                })
                            ];
                        case 4:
                            _state.sent();
                            lastStatus = status;
                            _state.label = 5;
                        case 5:
                            return [
                                4,
                                (0, effects_1.call)(wait_1["default"], 6e4)
                            ];
                        case 6:
                            _state.sent();
                            return [
                                3,
                                2
                            ];
                        case 7:
                            return [
                                3,
                                9
                            ];
                        case 8:
                            error = _state.sent();
                            console.error("checkingStatusChange failed", error);
                            return [
                                3,
                                9
                            ];
                        case 9:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.checkingStatusChange = checkingStatusChange;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/SystemLogs/systemLogsSagas.js
    var require_systemLogsSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/SystemLogs/systemLogsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.systemLogsSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var applicationActions_1 = require_applicationActions2();
            var networkActions_1 = require_networkActions();
            var systemLogActionFactory_1 = require_systemLogActionFactory();
            var activeAppletActions_1 = require_activeAppletActions();
            var systemLogs_1 = require_systemLogs();
            var dependencyInjection_1 = require_dependencyInjection();
            function systemLogsSaga(getManagementDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, dependencyInjection_1.withDependencies)([
                                    "featureFlags"
                                ], function(param) {
                                    var featureFlags, _a2;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                featureFlags = param.featureFlags;
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.systemLogs) !== null && _a2 !== void 0 ? _a2 : true)) return [
                                                    3,
                                                    4
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.ApplicationStarted,
                                                                            startedAt: /* @__PURE__ */ new Date()
                                                                        }))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(networkActions_1.NetworkStatusChanged, function() {
                                                        var networkStatus;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        getManagementDriver().network.listInterfaces()
                                                                    ];
                                                                case 1:
                                                                    networkStatus = _state.sent();
                                                                    if (!networkStatus) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.NetworkChanged,
                                                                            data: networkStatus
                                                                        }))
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(activeAppletActions_1.AppletPing, function(action) {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.AppletRunning,
                                                                            appletUid: action.appletUid
                                                                        }))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })()
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.systemLogsSaga = systemLogsSaga;
        }
    });
    // node_modules/should-type/cjs/should-type.js
    var require_should_type = __commonJS({
        "node_modules/should-type/cjs/should-type.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var types2 = {
                NUMBER: "number",
                UNDEFINED: "undefined",
                STRING: "string",
                BOOLEAN: "boolean",
                OBJECT: "object",
                FUNCTION: "function",
                NULL: "null",
                ARRAY: "array",
                REGEXP: "regexp",
                DATE: "date",
                ERROR: "error",
                ARGUMENTS: "arguments",
                SYMBOL: "symbol",
                ARRAY_BUFFER: "array-buffer",
                TYPED_ARRAY: "typed-array",
                DATA_VIEW: "data-view",
                MAP: "map",
                SET: "set",
                WEAK_SET: "weak-set",
                WEAK_MAP: "weak-map",
                PROMISE: "promise",
                // node buffer
                BUFFER: "buffer",
                // dom html element
                HTML_ELEMENT: "html-element",
                HTML_ELEMENT_TEXT: "html-element-text",
                DOCUMENT: "document",
                WINDOW: "window",
                FILE: "file",
                FILE_LIST: "file-list",
                BLOB: "blob",
                HOST: "host",
                XHR: "xhr",
                // simd
                SIMD: "simd"
            };
            function Type(type, cls, sub) {
                if (!type) {
                    throw new Error("Type class must be initialized at least with `type` information");
                }
                this.type = type;
                this.cls = cls;
                this.sub = sub;
            }
            Type.prototype = {
                toString: function toString(sep) {
                    sep = sep || ";";
                    var str = [
                        this.type
                    ];
                    if (this.cls) {
                        str.push(this.cls);
                    }
                    if (this.sub) {
                        str.push(this.sub);
                    }
                    return str.join(sep);
                },
                toTryTypes: function toTryTypes() {
                    var _types = [];
                    if (this.sub) {
                        _types.push(new Type(this.type, this.cls, this.sub));
                    }
                    if (this.cls) {
                        _types.push(new Type(this.type, this.cls));
                    }
                    _types.push(new Type(this.type));
                    return _types;
                }
            };
            var toString3 = Object.prototype.toString;
            function TypeChecker() {
                this.checks = [];
            }
            TypeChecker.prototype = {
                add: function add(func3) {
                    this.checks.push(func3);
                    return this;
                },
                addBeforeFirstMatch: function addBeforeFirstMatch(obj, func3) {
                    var match = this.getFirstMatch(obj);
                    if (match) {
                        this.checks.splice(match.index, 0, func3);
                    } else {
                        this.add(func3);
                    }
                },
                addTypeOf: function addTypeOf(type, res) {
                    return this.add(function(obj, tpeOf) {
                        if (tpeOf === type) {
                            return new Type(res);
                        }
                    });
                },
                addClass: function addClass(cls, res, sub) {
                    return this.add(function(obj, tpeOf, objCls) {
                        if (objCls === cls) {
                            return new Type(types2.OBJECT, res, sub);
                        }
                    });
                },
                getFirstMatch: function getFirstMatch(obj) {
                    var typeOf = typeof obj === "undefined" ? "undefined" : _type_of(obj);
                    var cls = toString3.call(obj);
                    for(var i = 0, l = this.checks.length; i < l; i++){
                        var res = this.checks[i].call(this, obj, typeOf, cls);
                        if (typeof res !== "undefined") {
                            return {
                                result: res,
                                func: this.checks[i],
                                index: i
                            };
                        }
                    }
                },
                getType: function getType(obj) {
                    var match = this.getFirstMatch(obj);
                    return match && match.result;
                }
            };
            var main = new TypeChecker();
            main.addTypeOf(types2.NUMBER, types2.NUMBER).addTypeOf(types2.UNDEFINED, types2.UNDEFINED).addTypeOf(types2.STRING, types2.STRING).addTypeOf(types2.BOOLEAN, types2.BOOLEAN).addTypeOf(types2.FUNCTION, types2.FUNCTION).addTypeOf(types2.SYMBOL, types2.SYMBOL).add(function(obj) {
                if (obj === null) {
                    return new Type(types2.NULL);
                }
            }).addClass("[object String]", types2.STRING).addClass("[object Boolean]", types2.BOOLEAN).addClass("[object Number]", types2.NUMBER).addClass("[object Array]", types2.ARRAY).addClass("[object RegExp]", types2.REGEXP).addClass("[object Error]", types2.ERROR).addClass("[object Date]", types2.DATE).addClass("[object Arguments]", types2.ARGUMENTS).addClass("[object ArrayBuffer]", types2.ARRAY_BUFFER).addClass("[object Int8Array]", types2.TYPED_ARRAY, "int8").addClass("[object Uint8Array]", types2.TYPED_ARRAY, "uint8").addClass("[object Uint8ClampedArray]", types2.TYPED_ARRAY, "uint8clamped").addClass("[object Int16Array]", types2.TYPED_ARRAY, "int16").addClass("[object Uint16Array]", types2.TYPED_ARRAY, "uint16").addClass("[object Int32Array]", types2.TYPED_ARRAY, "int32").addClass("[object Uint32Array]", types2.TYPED_ARRAY, "uint32").addClass("[object Float32Array]", types2.TYPED_ARRAY, "float32").addClass("[object Float64Array]", types2.TYPED_ARRAY, "float64").addClass("[object Bool16x8]", types2.SIMD, "bool16x8").addClass("[object Bool32x4]", types2.SIMD, "bool32x4").addClass("[object Bool8x16]", types2.SIMD, "bool8x16").addClass("[object Float32x4]", types2.SIMD, "float32x4").addClass("[object Int16x8]", types2.SIMD, "int16x8").addClass("[object Int32x4]", types2.SIMD, "int32x4").addClass("[object Int8x16]", types2.SIMD, "int8x16").addClass("[object Uint16x8]", types2.SIMD, "uint16x8").addClass("[object Uint32x4]", types2.SIMD, "uint32x4").addClass("[object Uint8x16]", types2.SIMD, "uint8x16").addClass("[object DataView]", types2.DATA_VIEW).addClass("[object Map]", types2.MAP).addClass("[object WeakMap]", types2.WEAK_MAP).addClass("[object Set]", types2.SET).addClass("[object WeakSet]", types2.WEAK_SET).addClass("[object Promise]", types2.PROMISE).addClass("[object Blob]", types2.BLOB).addClass("[object File]", types2.FILE).addClass("[object FileList]", types2.FILE_LIST).addClass("[object XMLHttpRequest]", types2.XHR).add(function(obj) {
                if ((typeof Promise === "undefined" ? "undefined" : _type_of(Promise)) === types2.FUNCTION && obj instanceof Promise || _type_of(obj.then) === types2.FUNCTION) {
                    return new Type(types2.OBJECT, types2.PROMISE);
                }
            }).add(function(obj) {
                if (typeof import_buffer.Buffer !== "undefined" && obj instanceof import_buffer.Buffer) {
                    return new Type(types2.OBJECT, types2.BUFFER);
                }
            }).add(function(obj) {
                if (typeof Node !== "undefined" && obj instanceof Node) {
                    return new Type(types2.OBJECT, types2.HTML_ELEMENT, obj.nodeName);
                }
            }).add(function(obj) {
                if (obj.Boolean === Boolean && obj.Number === Number && obj.String === String && obj.Date === Date) {
                    return new Type(types2.OBJECT, types2.HOST);
                }
            }).add(function() {
                return new Type(types2.OBJECT);
            });
            function getGlobalType(obj) {
                return main.getType(obj);
            }
            getGlobalType.checker = main;
            getGlobalType.TypeChecker = TypeChecker;
            getGlobalType.Type = Type;
            Object.keys(types2).forEach(function(typeName) {
                getGlobalType[typeName] = types2[typeName];
            });
            module.exports = getGlobalType;
        }
    });
    // node_modules/should-equal/cjs/should-equal.js
    var require_should_equal = __commonJS({
        "node_modules/should-equal/cjs/should-equal.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function _interopDefault(ex) {
                return ex && (typeof ex === "undefined" ? "undefined" : _type_of(ex)) === "object" && "default" in ex ? ex["default"] : ex;
            }
            var t = _interopDefault(require_should_type());
            function format(msg) {
                var args = arguments;
                for(var i = 1, l = args.length; i < l; i++){
                    msg = msg.replace(/%s/, args[i]);
                }
                return msg;
            }
            var hasOwnProperty = Object.prototype.hasOwnProperty;
            function EqualityFail(a, b, reason, path2) {
                this.a = a;
                this.b = b;
                this.reason = reason;
                this.path = path2;
            }
            function typeToString(tp) {
                return tp.type + (tp.cls ? "(" + tp.cls + (tp.sub ? " " + tp.sub : "") + ")" : "");
            }
            var PLUS_0_AND_MINUS_0 = "+0 is not equal to -0";
            var DIFFERENT_TYPES = "A has type %s and B has type %s";
            var EQUALITY = "A is not equal to B";
            var EQUALITY_PROTOTYPE = "A and B have different prototypes";
            var WRAPPED_VALUE = "A wrapped value is not equal to B wrapped value";
            var FUNCTION_SOURCES = "function A is not equal to B by source code value (via .toString call)";
            var MISSING_KEY = "%s has no key %s";
            var SET_MAP_MISSING_KEY = "Set/Map missing key %s";
            var DEFAULT_OPTIONS = {
                checkProtoEql: true,
                checkSubType: true,
                plusZeroAndMinusZeroEqual: true,
                collectAllFails: false
            };
            function setBooleanDefault(property, obj, opts, defaults) {
                obj[property] = typeof opts[property] !== "boolean" ? defaults[property] : opts[property];
            }
            var METHOD_PREFIX = "_check_";
            function EQ(opts, a, b, path2) {
                opts = opts || {};
                setBooleanDefault("checkProtoEql", this, opts, DEFAULT_OPTIONS);
                setBooleanDefault("plusZeroAndMinusZeroEqual", this, opts, DEFAULT_OPTIONS);
                setBooleanDefault("checkSubType", this, opts, DEFAULT_OPTIONS);
                setBooleanDefault("collectAllFails", this, opts, DEFAULT_OPTIONS);
                this.a = a;
                this.b = b;
                this._meet = opts._meet || [];
                this.fails = opts.fails || [];
                this.path = path2 || [];
            }
            function ShortcutError(fail) {
                this.name = "ShortcutError";
                this.message = "fail fast";
                this.fail = fail;
            }
            ShortcutError.prototype = Object.create(Error.prototype);
            EQ.checkStrictEquality = function(a, b) {
                this.collectFail(a !== b, EQUALITY);
            };
            EQ.add = function add(type, cls, sub, f) {
                var args = Array.prototype.slice.call(arguments);
                f = args.pop();
                EQ.prototype[METHOD_PREFIX + args.join("_")] = f;
            };
            EQ.prototype = {
                check: function check() {
                    try {
                        this.check0();
                    } catch (e) {
                        if (e instanceof ShortcutError) {
                            return [
                                e.fail
                            ];
                        }
                        throw e;
                    }
                    return this.fails;
                },
                check0: function check0() {
                    var a = this.a;
                    var b = this.b;
                    if (a === b) {
                        return this.collectFail(a === 0 && 1 / a !== 1 / b && !this.plusZeroAndMinusZeroEqual, PLUS_0_AND_MINUS_0);
                    }
                    var typeA = t(a);
                    var typeB = t(b);
                    if (typeA.type !== typeB.type || typeA.cls !== typeB.cls || typeA.sub !== typeB.sub) {
                        return this.collectFail(true, format(DIFFERENT_TYPES, typeToString(typeA), typeToString(typeB)));
                    }
                    var name1 = typeA.type, name2 = typeA.type;
                    if (typeA.cls) {
                        name1 += "_" + typeA.cls;
                        name2 += "_" + typeA.cls;
                    }
                    if (typeA.sub) {
                        name2 += "_" + typeA.sub;
                    }
                    var f = this[METHOD_PREFIX + name2] || this[METHOD_PREFIX + name1] || this[METHOD_PREFIX + typeA.type] || this.defaultCheck;
                    f.call(this, this.a, this.b);
                },
                collectFail: function collectFail(comparison, reason, showReason) {
                    if (comparison) {
                        var res = new EqualityFail(this.a, this.b, reason, this.path);
                        res.showReason = !!showReason;
                        this.fails.push(res);
                        if (!this.collectAllFails) {
                            throw new ShortcutError(res);
                        }
                    }
                },
                checkPlainObjectsEquality: function checkPlainObjectsEquality(a, b) {
                    var meet = this._meet;
                    var m = this._meet.length;
                    while(m--){
                        var st = meet[m];
                        if (st[0] === a && st[1] === b) {
                            return;
                        }
                    }
                    meet.push([
                        a,
                        b
                    ]);
                    var key;
                    for(key in b){
                        if (hasOwnProperty.call(b, key)) {
                            if (hasOwnProperty.call(a, key)) {
                                this.checkPropertyEquality(key);
                            } else {
                                this.collectFail(true, format(MISSING_KEY, "A", key));
                            }
                        }
                    }
                    for(key in a){
                        if (hasOwnProperty.call(a, key)) {
                            this.collectFail(!hasOwnProperty.call(b, key), format(MISSING_KEY, "B", key));
                        }
                    }
                    meet.pop();
                    if (this.checkProtoEql) {
                        this.collectFail(Object.getPrototypeOf(a) !== Object.getPrototypeOf(b), EQUALITY_PROTOTYPE, true);
                    }
                },
                checkPropertyEquality: function checkPropertyEquality(propertyName) {
                    var _eq = new EQ(this, this.a[propertyName], this.b[propertyName], this.path.concat([
                        propertyName
                    ]));
                    _eq.check0();
                },
                defaultCheck: EQ.checkStrictEquality
            };
            EQ.add(t.NUMBER, function(a, b) {
                this.collectFail(a !== a && b === b || b !== b && a === a || a !== b && a === a && b === b, EQUALITY);
            });
            [
                t.SYMBOL,
                t.BOOLEAN,
                t.STRING
            ].forEach(function(tp) {
                EQ.add(tp, EQ.checkStrictEquality);
            });
            EQ.add(t.FUNCTION, function(a, b) {
                this.collectFail(a.toString() !== b.toString(), FUNCTION_SOURCES);
                this.checkPlainObjectsEquality(a, b);
            });
            EQ.add(t.OBJECT, t.REGEXP, function(a, b) {
                var flags = [
                    "source",
                    "global",
                    "multiline",
                    "lastIndex",
                    "ignoreCase",
                    "sticky",
                    "unicode"
                ];
                while(flags.length){
                    this.checkPropertyEquality(flags.shift());
                }
                this.checkPlainObjectsEquality(a, b);
            });
            EQ.add(t.OBJECT, t.DATE, function(a, b) {
                this.collectFail(+a !== +b, EQUALITY);
                this.checkPlainObjectsEquality(a, b);
            });
            [
                t.NUMBER,
                t.BOOLEAN,
                t.STRING
            ].forEach(function(tp) {
                EQ.add(t.OBJECT, tp, function(a, b) {
                    this.collectFail(a.valueOf() !== b.valueOf(), WRAPPED_VALUE);
                    this.checkPlainObjectsEquality(a, b);
                });
            });
            EQ.add(t.OBJECT, function(a, b) {
                this.checkPlainObjectsEquality(a, b);
            });
            [
                t.ARRAY,
                t.ARGUMENTS,
                t.TYPED_ARRAY
            ].forEach(function(tp) {
                EQ.add(t.OBJECT, tp, function(a, b) {
                    this.checkPropertyEquality("length");
                    this.checkPlainObjectsEquality(a, b);
                });
            });
            EQ.add(t.OBJECT, t.ARRAY_BUFFER, function(a, b) {
                this.checkPropertyEquality("byteLength");
                this.checkPlainObjectsEquality(a, b);
            });
            EQ.add(t.OBJECT, t.ERROR, function(a, b) {
                this.checkPropertyEquality("name");
                this.checkPropertyEquality("message");
                this.checkPlainObjectsEquality(a, b);
            });
            EQ.add(t.OBJECT, t.BUFFER, function(a) {
                this.checkPropertyEquality("length");
                var l = a.length;
                while(l--){
                    this.checkPropertyEquality(l);
                }
            });
            function checkMapByKeys(a, b) {
                var iteratorA = a.keys();
                for(var nextA = iteratorA.next(); !nextA.done; nextA = iteratorA.next()){
                    var key = nextA.value;
                    var hasKey = b.has(key);
                    this.collectFail(!hasKey, format(SET_MAP_MISSING_KEY, key));
                    if (hasKey) {
                        var valueB = b.get(key);
                        var valueA = a.get(key);
                        eq(valueA, valueB, this);
                    }
                }
            }
            function checkSetByKeys(a, b) {
                var iteratorA = a.keys();
                for(var nextA = iteratorA.next(); !nextA.done; nextA = iteratorA.next()){
                    var key = nextA.value;
                    var hasKey = b.has(key);
                    this.collectFail(!hasKey, format(SET_MAP_MISSING_KEY, key));
                }
            }
            EQ.add(t.OBJECT, t.MAP, function(a, b) {
                this._meet.push([
                    a,
                    b
                ]);
                checkMapByKeys.call(this, a, b);
                checkMapByKeys.call(this, b, a);
                this._meet.pop();
                this.checkPlainObjectsEquality(a, b);
            });
            EQ.add(t.OBJECT, t.SET, function(a, b) {
                this._meet.push([
                    a,
                    b
                ]);
                checkSetByKeys.call(this, a, b);
                checkSetByKeys.call(this, b, a);
                this._meet.pop();
                this.checkPlainObjectsEquality(a, b);
            });
            function eq(a, b, opts) {
                return new EQ(opts, a, b).check();
            }
            eq.EQ = EQ;
            module.exports = eq;
        }
    });
    // node_modules/should-util/cjs/should-util.js
    var require_should_util = __commonJS({
        "node_modules/should-util/cjs/should-util.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var _hasOwnProperty = Object.prototype.hasOwnProperty;
            var _propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
            function hasOwnProperty(obj, key) {
                return _hasOwnProperty.call(obj, key);
            }
            function propertyIsEnumerable(obj, key) {
                return _propertyIsEnumerable.call(obj, key);
            }
            function merge(a, b) {
                if (a && b) {
                    for(var key in b){
                        a[key] = b[key];
                    }
                }
                return a;
            }
            function isIterator(obj) {
                if (!obj) {
                    return false;
                }
                if (obj.__shouldIterator__) {
                    return true;
                }
                return typeof obj.next === "function" && typeof Symbol === "function" && _type_of(Symbol.iterator) === "symbol" && typeof obj[Symbol.iterator] === "function" && obj[Symbol.iterator]() === obj;
            }
            function isGeneratorFunction(f) {
                return typeof f === "function" && /^function\s*\*\s*/.test(f.toString());
            }
            exports.hasOwnProperty = hasOwnProperty;
            exports.propertyIsEnumerable = propertyIsEnumerable;
            exports.merge = merge;
            exports.isIterator = isIterator;
            exports.isGeneratorFunction = isGeneratorFunction;
        }
    });
    // node_modules/should-type-adaptors/cjs/should-type-adaptors.js
    var require_should_type_adaptors = __commonJS({
        "node_modules/should-type-adaptors/cjs/should-type-adaptors.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            function _interopDefault(ex) {
                return ex && (typeof ex === "undefined" ? "undefined" : _type_of(ex)) === "object" && "default" in ex ? ex["default"] : ex;
            }
            var shouldUtil = require_should_util();
            var t = _interopDefault(require_should_type());
            function ObjectIterator(obj) {
                this._obj = obj;
            }
            ObjectIterator.prototype = {
                __shouldIterator__: true,
                // special marker
                next: function next() {
                    if (this._done) {
                        throw new Error("Iterator already reached the end");
                    }
                    if (!this._keys) {
                        this._keys = Object.keys(this._obj);
                        this._index = 0;
                    }
                    var key = this._keys[this._index];
                    this._done = this._index === this._keys.length;
                    this._index += 1;
                    return {
                        value: this._done ? void 0 : [
                            key,
                            this._obj[key]
                        ],
                        done: this._done
                    };
                }
            };
            if (typeof Symbol === "function" && _type_of(Symbol.iterator) === "symbol") {
                ObjectIterator.prototype[Symbol.iterator] = function() {
                    return this;
                };
            }
            function TypeAdaptorStorage() {
                this._typeAdaptors = [];
                this._iterableTypes = {};
            }
            TypeAdaptorStorage.prototype = {
                add: function add(type, cls, sub, adaptor) {
                    return this.addType(new t.Type(type, cls, sub), adaptor);
                },
                addType: function addType(type, adaptor) {
                    this._typeAdaptors[type.toString()] = adaptor;
                },
                getAdaptor: function getAdaptor(tp, funcName) {
                    var tries = tp.toTryTypes();
                    while(tries.length){
                        var toTry = tries.shift();
                        var ad = this._typeAdaptors[toTry];
                        if (ad && ad[funcName]) {
                            return ad[funcName];
                        }
                    }
                },
                requireAdaptor: function requireAdaptor(tp, funcName) {
                    var a = this.getAdaptor(tp, funcName);
                    if (!a) {
                        throw new Error("There is no type adaptor `" + funcName + "` for " + tp.toString());
                    }
                    return a;
                },
                addIterableType: function addIterableType(tp) {
                    this._iterableTypes[tp.toString()] = true;
                },
                isIterableType: function isIterableType(tp) {
                    return !!this._iterableTypes[tp.toString()];
                }
            };
            var defaultTypeAdaptorStorage = new TypeAdaptorStorage();
            var objectAdaptor = {
                forEach: function forEach(obj, f, context) {
                    for(var prop in obj){
                        if (shouldUtil.hasOwnProperty(obj, prop) && shouldUtil.propertyIsEnumerable(obj, prop)) {
                            if (f.call(context, obj[prop], prop, obj) === false) {
                                return;
                            }
                        }
                    }
                },
                has: function has(obj, prop) {
                    return shouldUtil.hasOwnProperty(obj, prop);
                },
                get: function get(obj, prop) {
                    return obj[prop];
                },
                iterator: function iterator(obj) {
                    return new ObjectIterator(obj);
                }
            };
            defaultTypeAdaptorStorage.addType(new t.Type(t.OBJECT), objectAdaptor);
            defaultTypeAdaptorStorage.addType(new t.Type(t.FUNCTION), objectAdaptor);
            var mapAdaptor = {
                has: function has(obj, key) {
                    return obj.has(key);
                },
                get: function get(obj, key) {
                    return obj.get(key);
                },
                forEach: function forEach1(obj, f, context) {
                    var iter = obj.entries();
                    forEach(iter, function(value) {
                        return f.call(context, value[1], value[0], obj);
                    });
                },
                size: function size(obj) {
                    return obj.size;
                },
                isEmpty: function isEmpty(obj) {
                    return obj.size === 0;
                },
                iterator: function iterator(obj) {
                    return obj.entries();
                }
            };
            var setAdaptor = shouldUtil.merge({}, mapAdaptor);
            setAdaptor.get = function(obj, key) {
                if (obj.has(key)) {
                    return key;
                }
            };
            setAdaptor.iterator = function(obj) {
                return obj.values();
            };
            defaultTypeAdaptorStorage.addType(new t.Type(t.OBJECT, t.MAP), mapAdaptor);
            defaultTypeAdaptorStorage.addType(new t.Type(t.OBJECT, t.SET), setAdaptor);
            defaultTypeAdaptorStorage.addType(new t.Type(t.OBJECT, t.WEAK_SET), setAdaptor);
            defaultTypeAdaptorStorage.addType(new t.Type(t.OBJECT, t.WEAK_MAP), mapAdaptor);
            defaultTypeAdaptorStorage.addType(new t.Type(t.STRING), {
                isEmpty: function isEmpty(obj) {
                    return obj === "";
                },
                size: function size(obj) {
                    return obj.length;
                }
            });
            defaultTypeAdaptorStorage.addIterableType(new t.Type(t.OBJECT, t.ARRAY));
            defaultTypeAdaptorStorage.addIterableType(new t.Type(t.OBJECT, t.ARGUMENTS));
            defaultTypeAdaptorStorage.addIterableType(new t.Type(t.OBJECT, t.SET));
            function forEach(obj, f, context) {
                if (shouldUtil.isGeneratorFunction(obj)) {
                    return forEach(obj(), f, context);
                } else if (shouldUtil.isIterator(obj)) {
                    var value = obj.next();
                    while(!value.done){
                        if (f.call(context, value.value, "value", obj) === false) {
                            return;
                        }
                        value = obj.next();
                    }
                } else {
                    var type = t(obj);
                    var func3 = defaultTypeAdaptorStorage.requireAdaptor(type, "forEach");
                    func3(obj, f, context);
                }
            }
            function size(obj) {
                var type = t(obj);
                var func3 = defaultTypeAdaptorStorage.getAdaptor(type, "size");
                if (func3) {
                    return func3(obj);
                } else {
                    var len = 0;
                    forEach(obj, function() {
                        len += 1;
                    });
                    return len;
                }
            }
            function isEmpty(obj) {
                var type = t(obj);
                var func3 = defaultTypeAdaptorStorage.getAdaptor(type, "isEmpty");
                if (func3) {
                    return func3(obj);
                } else {
                    var res = true;
                    forEach(obj, function() {
                        res = false;
                        return false;
                    });
                    return res;
                }
            }
            function has(obj, key) {
                var type = t(obj);
                var func3 = defaultTypeAdaptorStorage.requireAdaptor(type, "has");
                return func3(obj, key);
            }
            function get(obj, key) {
                var type = t(obj);
                var func3 = defaultTypeAdaptorStorage.requireAdaptor(type, "get");
                return func3(obj, key);
            }
            function reduce(obj, f, initialValue) {
                var res = initialValue;
                forEach(obj, function(value, key) {
                    res = f(res, value, key, obj);
                });
                return res;
            }
            function some(obj, f, context) {
                var res = false;
                forEach(obj, function(value, key) {
                    if (f.call(context, value, key, obj)) {
                        res = true;
                        return false;
                    }
                }, context);
                return res;
            }
            function every(obj, f, context) {
                var res = true;
                forEach(obj, function(value, key) {
                    if (!f.call(context, value, key, obj)) {
                        res = false;
                        return false;
                    }
                }, context);
                return res;
            }
            function isIterable(obj) {
                return defaultTypeAdaptorStorage.isIterableType(t(obj));
            }
            function iterator3(obj) {
                return defaultTypeAdaptorStorage.requireAdaptor(t(obj), "iterator")(obj);
            }
            exports.defaultTypeAdaptorStorage = defaultTypeAdaptorStorage;
            exports.forEach = forEach;
            exports.size = size;
            exports.isEmpty = isEmpty;
            exports.has = has;
            exports.get = get;
            exports.reduce = reduce;
            exports.some = some;
            exports.every = every;
            exports.isIterable = isIterable;
            exports.iterator = iterator3;
        }
    });
    // node_modules/should-format/cjs/should-format.js
    var require_should_format = __commonJS({
        "node_modules/should-format/cjs/should-format.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function _interopDefault(ex) {
                return ex && (typeof ex === "undefined" ? "undefined" : _type_of(ex)) === "object" && "default" in ex ? ex["default"] : ex;
            }
            var t = _interopDefault(require_should_type());
            var shouldTypeAdaptors = require_should_type_adaptors();
            function looksLikeANumber(n) {
                return !!n.match(/\d+/);
            }
            function keyCompare(a, b) {
                var aNum = looksLikeANumber(a);
                var bNum = looksLikeANumber(b);
                if (aNum && bNum) {
                    return 1 * a - 1 * b;
                } else if (aNum && !bNum) {
                    return -1;
                } else if (!aNum && bNum) {
                    return 1;
                } else {
                    return a.localeCompare(b);
                }
            }
            function genKeysFunc(f) {
                return function(value) {
                    var k = f(value);
                    k.sort(keyCompare);
                    return k;
                };
            }
            function Formatter(opts) {
                opts = opts || {};
                this.seen = [];
                var keysFunc;
                if (typeof opts.keysFunc === "function") {
                    keysFunc = opts.keysFunc;
                } else if (opts.keys === false) {
                    keysFunc = Object.getOwnPropertyNames;
                } else {
                    keysFunc = Object.keys;
                }
                this.getKeys = genKeysFunc(keysFunc);
                this.maxLineLength = typeof opts.maxLineLength === "number" ? opts.maxLineLength : 60;
                this.propSep = opts.propSep || ",";
                this.isUTCdate = !!opts.isUTCdate;
            }
            Formatter.prototype = {
                constructor: Formatter,
                format: function format(value) {
                    var tp = t(value);
                    if (this.alreadySeen(value)) {
                        return "[Circular]";
                    }
                    var tries = tp.toTryTypes();
                    var f = this.defaultFormat;
                    while(tries.length){
                        var toTry = tries.shift();
                        var name = Formatter.formatterFunctionName(toTry);
                        if (this[name]) {
                            f = this[name];
                            break;
                        }
                    }
                    return f.call(this, value).trim();
                },
                defaultFormat: function defaultFormat(obj) {
                    return String(obj);
                },
                alreadySeen: function alreadySeen(value) {
                    return this.seen.indexOf(value) >= 0;
                }
            };
            Formatter.addType = function addType(tp, f) {
                Formatter.prototype[Formatter.formatterFunctionName(tp)] = f;
            };
            Formatter.formatterFunctionName = function formatterFunctionName(tp) {
                return "_format_" + tp.toString("_");
            };
            var EOL = "\n";
            function indent(v, indentation) {
                return v.split(EOL).map(function(vv) {
                    return indentation + vv;
                }).join(EOL);
            }
            function pad(str, value, filler) {
                str = String(str);
                var isRight = false;
                if (value < 0) {
                    isRight = true;
                    value = -value;
                }
                if (str.length < value) {
                    var padding = new Array(value - str.length + 1).join(filler);
                    return isRight ? str + padding : padding + str;
                } else {
                    return str;
                }
            }
            function pad0(str, value) {
                return pad(str, value, "0");
            }
            var functionNameRE = /^\s*function\s*(\S*)\s*\(/;
            function functionName(f) {
                if (f.name) {
                    return f.name;
                }
                var matches = f.toString().match(functionNameRE);
                if (matches === null) {
                    return "";
                }
                var name = matches[1];
                return name;
            }
            function constructorName(obj) {
                while(obj){
                    var descriptor = Object.getOwnPropertyDescriptor(obj, "constructor");
                    if (descriptor !== void 0 && typeof descriptor.value === "function") {
                        var name = functionName(descriptor.value);
                        if (name !== "") {
                            return name;
                        }
                    }
                    obj = Object.getPrototypeOf(obj);
                }
            }
            var INDENT = "  ";
            function addSpaces(str) {
                return indent(str, INDENT);
            }
            function typeAdaptorForEachFormat(obj, opts) {
                opts = opts || {};
                var filterKey = opts.filterKey || function() {
                    return true;
                };
                var formatKey = opts.formatKey || this.format;
                var formatValue = opts.formatValue || this.format;
                var keyValueSep = typeof opts.keyValueSep !== "undefined" ? opts.keyValueSep : ": ";
                this.seen.push(obj);
                var formatLength = 0;
                var pairs = [];
                shouldTypeAdaptors.forEach(obj, function(value, key) {
                    if (!filterKey(key)) {
                        return;
                    }
                    var formattedKey = formatKey.call(this, key);
                    var formattedValue = formatValue.call(this, value, key);
                    var pair = formattedKey ? formattedKey + keyValueSep + formattedValue : formattedValue;
                    formatLength += pair.length;
                    pairs.push(pair);
                }, this);
                this.seen.pop();
                (opts.additionalKeys || []).forEach(function(keyValue) {
                    var pair = keyValue[0] + keyValueSep + this.format(keyValue[1]);
                    formatLength += pair.length;
                    pairs.push(pair);
                }, this);
                var prefix = opts.prefix || constructorName(obj) || "";
                if (prefix.length > 0) {
                    prefix += " ";
                }
                var lbracket, rbracket;
                if (Array.isArray(opts.brackets)) {
                    lbracket = opts.brackets[0];
                    rbracket = opts.brackets[1];
                } else {
                    lbracket = "{";
                    rbracket = "}";
                }
                var rootValue = opts.value || "";
                if (pairs.length === 0) {
                    return rootValue || prefix + lbracket + rbracket;
                }
                if (formatLength <= this.maxLineLength) {
                    return prefix + lbracket + " " + (rootValue ? rootValue + " " : "") + pairs.join(this.propSep + " ") + " " + rbracket;
                } else {
                    return prefix + lbracket + "\n" + (rootValue ? "  " + rootValue + "\n" : "") + pairs.map(addSpaces).join(this.propSep + "\n") + "\n" + rbracket;
                }
            }
            function formatPlainObjectKey(key) {
                return typeof key === "string" && key.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*$/) ? key : this.format(key);
            }
            function getPropertyDescriptor(obj, key) {
                var desc;
                try {
                    desc = Object.getOwnPropertyDescriptor(obj, key) || {
                        value: obj[key]
                    };
                } catch (e) {
                    desc = {
                        value: e
                    };
                }
                return desc;
            }
            function formatPlainObjectValue(obj, key) {
                var desc = getPropertyDescriptor(obj, key);
                if (desc.get && desc.set) {
                    return "[Getter/Setter]";
                }
                if (desc.get) {
                    return "[Getter]";
                }
                if (desc.set) {
                    return "[Setter]";
                }
                return this.format(desc.value);
            }
            function formatPlainObject(obj, opts) {
                opts = opts || {};
                opts.keyValueSep = ": ";
                opts.formatKey = opts.formatKey || formatPlainObjectKey;
                opts.formatValue = opts.formatValue || function(value, key) {
                    return formatPlainObjectValue.call(this, obj, key);
                };
                return typeAdaptorForEachFormat.call(this, obj, opts);
            }
            function formatWrapper1(value) {
                return formatPlainObject.call(this, value, {
                    additionalKeys: [
                        [
                            "[[PrimitiveValue]]",
                            value.valueOf()
                        ]
                    ]
                });
            }
            function formatWrapper2(value) {
                var realValue = value.valueOf();
                return formatPlainObject.call(this, value, {
                    filterKey: function filterKey(key) {
                        return !(key.match(/\d+/) && parseInt(key, 10) < realValue.length);
                    },
                    additionalKeys: [
                        [
                            "[[PrimitiveValue]]",
                            realValue
                        ]
                    ]
                });
            }
            function formatRegExp(value) {
                return formatPlainObject.call(this, value, {
                    value: String(value)
                });
            }
            function formatFunction(value) {
                return formatPlainObject.call(this, value, {
                    prefix: "Function",
                    additionalKeys: [
                        [
                            "name",
                            functionName(value)
                        ]
                    ]
                });
            }
            function formatArray(value) {
                return formatPlainObject.call(this, value, {
                    formatKey: function formatKey(key) {
                        if (!key.match(/\d+/)) {
                            return formatPlainObjectKey.call(this, key);
                        }
                    },
                    brackets: [
                        "[",
                        "]"
                    ]
                });
            }
            function formatArguments(value) {
                return formatPlainObject.call(this, value, {
                    formatKey: function formatKey(key) {
                        if (!key.match(/\d+/)) {
                            return formatPlainObjectKey.call(this, key);
                        }
                    },
                    brackets: [
                        "[",
                        "]"
                    ],
                    prefix: "Arguments"
                });
            }
            function _formatDate(value, isUTC) {
                var prefix = isUTC ? "UTC" : "";
                var date = value["get" + prefix + "FullYear"]() + "-" + pad0(value["get" + prefix + "Month"]() + 1, 2) + "-" + pad0(value["get" + prefix + "Date"](), 2);
                var time = pad0(value["get" + prefix + "Hours"](), 2) + ":" + pad0(value["get" + prefix + "Minutes"](), 2) + ":" + pad0(value["get" + prefix + "Seconds"](), 2) + "." + pad0(value["get" + prefix + "Milliseconds"](), 3);
                var to = value.getTimezoneOffset();
                var absTo = Math.abs(to);
                var hours = Math.floor(absTo / 60);
                var minutes = absTo - hours * 60;
                var tzFormat = (to < 0 ? "+" : "-") + pad0(hours, 2) + pad0(minutes, 2);
                return date + " " + time + (isUTC ? "" : " " + tzFormat);
            }
            function formatDate(value) {
                return formatPlainObject.call(this, value, {
                    value: _formatDate(value, this.isUTCdate)
                });
            }
            function formatError(value) {
                return formatPlainObject.call(this, value, {
                    prefix: value.name,
                    additionalKeys: [
                        [
                            "message",
                            value.message
                        ]
                    ]
                });
            }
            function generateFormatForNumberArray(lengthProp, name, padding) {
                return function(value) {
                    var max = this.byteArrayMaxLength || 50;
                    var length = value[lengthProp];
                    var formattedValues = [];
                    var len = 0;
                    for(var i = 0; i < max && i < length; i++){
                        var b = value[i] || 0;
                        var v = pad0(b.toString(16), padding);
                        len += v.length;
                        formattedValues.push(v);
                    }
                    var prefix = value.constructor.name || name || "";
                    if (prefix) {
                        prefix += " ";
                    }
                    if (formattedValues.length === 0) {
                        return prefix + "[]";
                    }
                    if (len <= this.maxLineLength) {
                        return prefix + "[ " + formattedValues.join(this.propSep + " ") + " ]";
                    } else {
                        return prefix + "[\n" + formattedValues.map(addSpaces).join(this.propSep + "\n") + "\n]";
                    }
                };
            }
            function formatMap(obj) {
                return typeAdaptorForEachFormat.call(this, obj, {
                    keyValueSep: " => "
                });
            }
            function formatSet(obj) {
                return typeAdaptorForEachFormat.call(this, obj, {
                    keyValueSep: "",
                    formatKey: function formatKey() {
                        return "";
                    }
                });
            }
            function genSimdVectorFormat(constructorName2, length) {
                return function(value) {
                    var Constructor = value.constructor;
                    var extractLane = Constructor.extractLane;
                    var len = 0;
                    var props = [];
                    for(var i = 0; i < length; i++){
                        var key = this.format(extractLane(value, i));
                        len += key.length;
                        props.push(key);
                    }
                    if (len <= this.maxLineLength) {
                        return constructorName2 + " [ " + props.join(this.propSep + " ") + " ]";
                    } else {
                        return constructorName2 + " [\n" + props.map(addSpaces).join(this.propSep + "\n") + "\n]";
                    }
                };
            }
            function defaultFormat(value, opts) {
                return new Formatter(opts).format(value);
            }
            defaultFormat.Formatter = Formatter;
            defaultFormat.addSpaces = addSpaces;
            defaultFormat.pad0 = pad0;
            defaultFormat.functionName = functionName;
            defaultFormat.constructorName = constructorName;
            defaultFormat.formatPlainObjectKey = formatPlainObjectKey;
            defaultFormat.formatPlainObject = formatPlainObject;
            defaultFormat.typeAdaptorForEachFormat = typeAdaptorForEachFormat;
            Formatter.addType(new t.Type(t.UNDEFINED), function() {
                return "undefined";
            });
            Formatter.addType(new t.Type(t.NULL), function() {
                return "null";
            });
            Formatter.addType(new t.Type(t.BOOLEAN), function(value) {
                return value ? "true" : "false";
            });
            Formatter.addType(new t.Type(t.SYMBOL), function(value) {
                return value.toString();
            });
            Formatter.addType(new t.Type(t.NUMBER), function(value) {
                if (value === 0 && 1 / value < 0) {
                    return "-0";
                }
                return String(value);
            });
            Formatter.addType(new t.Type(t.STRING), function(value) {
                return "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
            });
            Formatter.addType(new t.Type(t.FUNCTION), formatFunction);
            Formatter.addType(new t.Type(t.OBJECT), formatPlainObject);
            Formatter.addType(new t.Type(t.OBJECT, t.NUMBER), formatWrapper1);
            Formatter.addType(new t.Type(t.OBJECT, t.BOOLEAN), formatWrapper1);
            Formatter.addType(new t.Type(t.OBJECT, t.STRING), formatWrapper2);
            Formatter.addType(new t.Type(t.OBJECT, t.REGEXP), formatRegExp);
            Formatter.addType(new t.Type(t.OBJECT, t.ARRAY), formatArray);
            Formatter.addType(new t.Type(t.OBJECT, t.ARGUMENTS), formatArguments);
            Formatter.addType(new t.Type(t.OBJECT, t.DATE), formatDate);
            Formatter.addType(new t.Type(t.OBJECT, t.ERROR), formatError);
            Formatter.addType(new t.Type(t.OBJECT, t.SET), formatSet);
            Formatter.addType(new t.Type(t.OBJECT, t.MAP), formatMap);
            Formatter.addType(new t.Type(t.OBJECT, t.WEAK_MAP), formatMap);
            Formatter.addType(new t.Type(t.OBJECT, t.WEAK_SET), formatSet);
            Formatter.addType(new t.Type(t.OBJECT, t.BUFFER), generateFormatForNumberArray("length", "Buffer", 2));
            Formatter.addType(new t.Type(t.OBJECT, t.ARRAY_BUFFER), generateFormatForNumberArray("byteLength", "ArrayBuffer", 2));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "int8"), generateFormatForNumberArray("length", "Int8Array", 2));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "uint8"), generateFormatForNumberArray("length", "Uint8Array", 2));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "uint8clamped"), generateFormatForNumberArray("length", "Uint8ClampedArray", 2));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "int16"), generateFormatForNumberArray("length", "Int16Array", 4));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "uint16"), generateFormatForNumberArray("length", "Uint16Array", 4));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "int32"), generateFormatForNumberArray("length", "Int32Array", 8));
            Formatter.addType(new t.Type(t.OBJECT, t.TYPED_ARRAY, "uint32"), generateFormatForNumberArray("length", "Uint32Array", 8));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "bool16x8"), genSimdVectorFormat("Bool16x8", 8));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "bool32x4"), genSimdVectorFormat("Bool32x4", 4));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "bool8x16"), genSimdVectorFormat("Bool8x16", 16));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "float32x4"), genSimdVectorFormat("Float32x4", 4));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "int16x8"), genSimdVectorFormat("Int16x8", 8));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "int32x4"), genSimdVectorFormat("Int32x4", 4));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "int8x16"), genSimdVectorFormat("Int8x16", 16));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "uint16x8"), genSimdVectorFormat("Uint16x8", 8));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "uint32x4"), genSimdVectorFormat("Uint32x4", 4));
            Formatter.addType(new t.Type(t.OBJECT, t.SIMD, "uint8x16"), genSimdVectorFormat("Uint8x16", 16));
            Formatter.addType(new t.Type(t.OBJECT, t.PROMISE), function() {
                return "[Promise]";
            });
            Formatter.addType(new t.Type(t.OBJECT, t.XHR), function() {
                return "[XMLHttpRequest]";
            });
            Formatter.addType(new t.Type(t.OBJECT, t.HTML_ELEMENT), function(value) {
                return value.outerHTML;
            });
            Formatter.addType(new t.Type(t.OBJECT, t.HTML_ELEMENT, "#text"), function(value) {
                return value.nodeValue;
            });
            Formatter.addType(new t.Type(t.OBJECT, t.HTML_ELEMENT, "#document"), function(value) {
                return value.documentElement.outerHTML;
            });
            Formatter.addType(new t.Type(t.OBJECT, t.HOST), function() {
                return "[Host]";
            });
            module.exports = defaultFormat;
        }
    });
    // node_modules/should/cjs/should.js
    var require_should = __commonJS({
        "node_modules/should/cjs/should.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function _interopDefault(ex) {
                return ex && (typeof ex === "undefined" ? "undefined" : _type_of(ex)) === "object" && "default" in ex ? ex["default"] : ex;
            }
            var getType = _interopDefault(require_should_type());
            var eql = _interopDefault(require_should_equal());
            var sformat = _interopDefault(require_should_format());
            var shouldTypeAdaptors = require_should_type_adaptors();
            var shouldUtil = require_should_util();
            function isWrapperType(obj) {
                return obj instanceof Number || obj instanceof String || obj instanceof Boolean;
            }
            function convertPropertyName(name) {
                return (typeof name === "undefined" ? "undefined" : _type_of(name)) === "symbol" ? name : String(name);
            }
            var functionName = sformat.functionName;
            function isPlainObject(obj) {
                if ((typeof obj === "undefined" ? "undefined" : _type_of(obj)) == "object" && obj !== null) {
                    var proto = Object.getPrototypeOf(obj);
                    return proto === Object.prototype || proto === null;
                }
                return false;
            }
            var config = {
                typeAdaptors: shouldTypeAdaptors.defaultTypeAdaptorStorage,
                getFormatter: function getFormatter(opts) {
                    return new sformat.Formatter(opts || config);
                }
            };
            function format(value, opts) {
                return config.getFormatter(opts).format(value);
            }
            function formatProp(value) {
                var formatter = config.getFormatter();
                return sformat.formatPlainObjectKey.call(formatter, value);
            }
            function AssertionError(options) {
                shouldUtil.merge(this, options);
                if (!options.message) {
                    Object.defineProperty(this, "message", {
                        get: function get() {
                            if (!this._message) {
                                this._message = this.generateMessage();
                                this.generatedMessage = true;
                            }
                            return this._message;
                        },
                        configurable: true,
                        enumerable: false
                    });
                }
                if (Error.captureStackTrace) {
                    Error.captureStackTrace(this, this.stackStartFunction);
                } else {
                    var err = new Error();
                    if (err.stack) {
                        var out = err.stack;
                        if (this.stackStartFunction) {
                            var fn_name = functionName(this.stackStartFunction);
                            var idx = out.indexOf("\n" + fn_name);
                            if (idx >= 0) {
                                var next_line = out.indexOf("\n", idx + 1);
                                out = out.substring(next_line + 1);
                            }
                        }
                        this.stack = out;
                    }
                }
            }
            var indent = "    ";
            function prependIndent(line) {
                return indent + line;
            }
            function indentLines(text) {
                return text.split("\n").map(prependIndent).join("\n");
            }
            AssertionError.prototype = Object.create(Error.prototype, {
                name: {
                    value: "AssertionError"
                },
                generateMessage: {
                    value: function value() {
                        if (!this.operator && this.previous) {
                            return this.previous.message;
                        }
                        var actual = format(this.actual);
                        var expected = "expected" in this ? " " + format(this.expected) : "";
                        var details = "details" in this && this.details ? " (" + this.details + ")" : "";
                        var previous = this.previous ? "\n" + indentLines(this.previous.message) : "";
                        return "expected " + actual + (this.negate ? " not " : " ") + this.operator + expected + details + previous;
                    }
                }
            });
            function LightAssertionError(options) {
                shouldUtil.merge(this, options);
                if (!options.message) {
                    Object.defineProperty(this, "message", {
                        get: function get() {
                            if (!this._message) {
                                this._message = this.generateMessage();
                                this.generatedMessage = true;
                            }
                            return this._message;
                        }
                    });
                }
            }
            LightAssertionError.prototype = {
                generateMessage: AssertionError.prototype.generateMessage
            };
            function Assertion(obj) {
                this.obj = obj;
                this.anyOne = false;
                this.negate = false;
                this.params = {
                    actual: obj
                };
            }
            Assertion.prototype = {
                constructor: Assertion,
                /**
         * Base method for assertions.
         *
         * Before calling this method need to fill Assertion#params object. This method usually called from other assertion methods.
         * `Assertion#params` can contain such properties:
         * * `operator` - required string containing description of this assertion
         * * `obj` - optional replacement for this.obj, it is useful if you prepare more clear object then given
         * * `message` - if this property filled with string any others will be ignored and this one used as assertion message
         * * `expected` - any object used when you need to assert relation between given object and expected. Like given == expected (== is a relation)
         * * `details` - additional string with details to generated message
         *
         * @memberOf Assertion
         * @category assertion
         * @param {*} expr Any expression that will be used as a condition for asserting.
         * @example
         *
         * var a = new should.Assertion(42);
         *
         * a.params = {
         *  operator: 'to be magic number',
         * }
         *
         * a.assert(false);
         * //throws AssertionError: expected 42 to be magic number
         */ assert: function assert(expr) {
                    if (expr) {
                        return this;
                    }
                    var params = this.params;
                    if ("obj" in params && !("actual" in params)) {
                        params.actual = params.obj;
                    } else if (!("obj" in params) && !("actual" in params)) {
                        params.actual = this.obj;
                    }
                    params.stackStartFunction = params.stackStartFunction || this.assert;
                    params.negate = this.negate;
                    params.assertion = this;
                    if (this.light) {
                        throw new LightAssertionError(params);
                    } else {
                        throw new AssertionError(params);
                    }
                },
                /**
         * Shortcut for `Assertion#assert(false)`.
         *
         * @memberOf Assertion
         * @category assertion
         * @example
         *
         * var a = new should.Assertion(42);
         *
         * a.params = {
         *  operator: 'to be magic number',
         * }
         *
         * a.fail();
         * //throws AssertionError: expected 42 to be magic number
         */ fail: function fail() {
                    return this.assert(false);
                },
                assertZeroArguments: function assertZeroArguments(args) {
                    if (args.length !== 0) {
                        throw new TypeError("This assertion does not expect any arguments. You may need to check your code");
                    }
                }
            };
            function PromisedAssertion() {
                Assertion.apply(this, arguments);
            }
            PromisedAssertion.prototype.then = function(resolve, reject) {
                return this.obj.then(resolve, reject);
            };
            Assertion.add = function(name, func3) {
                Object.defineProperty(Assertion.prototype, name, {
                    enumerable: true,
                    configurable: true,
                    value: function value() {
                        var context = new Assertion(this.obj, this, name);
                        context.anyOne = this.anyOne;
                        context.onlyThis = this.onlyThis;
                        context.light = true;
                        try {
                            func3.apply(context, arguments);
                        } catch (e) {
                            if (e instanceof AssertionError || e instanceof LightAssertionError) {
                                if (this.negate) {
                                    this.obj = context.obj;
                                    this.negate = false;
                                    return this;
                                }
                                if (context !== e.assertion) {
                                    context.params.previous = e;
                                }
                                context.negate = false;
                                context.light = false;
                                context.fail();
                            }
                            throw e;
                        }
                        if (this.negate) {
                            context.negate = true;
                            context.params.details = "false negative fail";
                            context.light = false;
                            context.fail();
                        }
                        if (!this.params.operator) {
                            this.params = context.params;
                        }
                        this.obj = context.obj;
                        this.negate = false;
                        return this;
                    }
                });
                Object.defineProperty(PromisedAssertion.prototype, name, {
                    enumerable: true,
                    configurable: true,
                    value: function value() {
                        var args = arguments;
                        this.obj = this.obj.then(function(a) {
                            return a[name].apply(a, args);
                        });
                        return this;
                    }
                });
            };
            Assertion.addChain = function(name, onCall) {
                onCall = onCall || function() {};
                Object.defineProperty(Assertion.prototype, name, {
                    get: function get() {
                        onCall.call(this);
                        return this;
                    },
                    enumerable: true
                });
                Object.defineProperty(PromisedAssertion.prototype, name, {
                    enumerable: true,
                    configurable: true,
                    get: function get() {
                        this.obj = this.obj.then(function(a) {
                            return a[name];
                        });
                        return this;
                    }
                });
            };
            Assertion.alias = function(from, to) {
                var desc = Object.getOwnPropertyDescriptor(Assertion.prototype, from);
                if (!desc) {
                    throw new Error("Alias " + from + " -> " + to + " could not be created as " + from + " not defined");
                }
                Object.defineProperty(Assertion.prototype, to, desc);
                var desc2 = Object.getOwnPropertyDescriptor(PromisedAssertion.prototype, from);
                if (desc2) {
                    Object.defineProperty(PromisedAssertion.prototype, to, desc2);
                }
            };
            Assertion.addChain("not", function() {
                this.negate = !this.negate;
            });
            Assertion.addChain("any", function() {
                this.anyOne = true;
            });
            Assertion.addChain("only", function() {
                this.onlyThis = true;
            });
            var pSlice = Array.prototype.slice;
            var assert = ok;
            function fail(actual, expected, message2, operator, stackStartFunction) {
                var a = new Assertion(actual);
                a.params = {
                    operator: operator,
                    expected: expected,
                    message: message2,
                    stackStartFunction: stackStartFunction || fail
                };
                a.fail();
            }
            assert.fail = fail;
            function ok(value, message2) {
                if (!value) {
                    fail(value, true, message2, "==", assert.ok);
                }
            }
            assert.ok = ok;
            assert.equal = function equal(actual, expected, message2) {
                if (actual != expected) {
                    fail(actual, expected, message2, "==", assert.equal);
                }
            };
            assert.notEqual = function notEqual(actual, expected, message2) {
                if (actual == expected) {
                    fail(actual, expected, message2, "!=", assert.notEqual);
                }
            };
            assert.deepEqual = function deepEqual(actual, expected, message2) {
                if (eql(actual, expected).length !== 0) {
                    fail(actual, expected, message2, "deepEqual", assert.deepEqual);
                }
            };
            assert.notDeepEqual = function notDeepEqual(actual, expected, message2) {
                if (eql(actual, expected).result) {
                    fail(actual, expected, message2, "notDeepEqual", assert.notDeepEqual);
                }
            };
            assert.strictEqual = function strictEqual(actual, expected, message2) {
                if (actual !== expected) {
                    fail(actual, expected, message2, "===", assert.strictEqual);
                }
            };
            assert.notStrictEqual = function notStrictEqual(actual, expected, message2) {
                if (actual === expected) {
                    fail(actual, expected, message2, "!==", assert.notStrictEqual);
                }
            };
            function expectedException(actual, expected) {
                if (!actual || !expected) {
                    return false;
                }
                if (Object.prototype.toString.call(expected) == "[object RegExp]") {
                    return expected.test(actual);
                } else if (actual instanceof expected) {
                    return true;
                } else if (expected.call({}, actual) === true) {
                    return true;
                }
                return false;
            }
            function _throws(shouldThrow, block, expected, message2) {
                var actual;
                if (typeof expected == "string") {
                    message2 = expected;
                    expected = null;
                }
                try {
                    block();
                } catch (e) {
                    actual = e;
                }
                message2 = (expected && expected.name ? " (" + expected.name + ")" : ".") + (message2 ? " " + message2 : ".");
                if (shouldThrow && !actual) {
                    fail(actual, expected, "Missing expected exception" + message2);
                }
                if (!shouldThrow && expectedException(actual, expected)) {
                    fail(actual, expected, "Got unwanted exception" + message2);
                }
                if (shouldThrow && actual && expected && !expectedException(actual, expected) || !shouldThrow && actual) {
                    throw actual;
                }
            }
            assert["throws"] = function() {
                _throws.apply(this, [
                    true
                ].concat(pSlice.call(arguments)));
            };
            assert.doesNotThrow = function() {
                _throws.apply(this, [
                    false
                ].concat(pSlice.call(arguments)));
            };
            assert.ifError = function(err) {
                if (err) {
                    throw err;
                }
            };
            function assertExtensions(should) {
                var i = should.format;
                shouldUtil.merge(should, assert);
                should.exist = should.exists = function(obj, msg) {
                    if (null == obj) {
                        throw new AssertionError({
                            message: msg || "expected " + i(obj) + " to exist",
                            stackStartFunction: should.exist
                        });
                    }
                };
                should.not = {};
                should.not.exist = should.not.exists = function(obj, msg) {
                    if (null != obj) {
                        throw new AssertionError({
                            message: msg || "expected " + i(obj) + " to not exist",
                            stackStartFunction: should.not.exist
                        });
                    }
                };
            }
            function chainAssertions(should, Assertion2) {
                [
                    "an",
                    "of",
                    "a",
                    "and",
                    "be",
                    "been",
                    "has",
                    "have",
                    "with",
                    "is",
                    "which",
                    "the",
                    "it"
                ].forEach(function(name) {
                    Assertion2.addChain(name);
                });
            }
            function booleanAssertions(should, Assertion2) {
                Assertion2.add("true", function(message2) {
                    this.is.exactly(true, message2);
                });
                Assertion2.alias("true", "True");
                Assertion2.add("false", function(message2) {
                    this.is.exactly(false, message2);
                });
                Assertion2.alias("false", "False");
                Assertion2.add("ok", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be truthy"
                    };
                    this.assert(this.obj);
                });
            }
            function numberAssertions(should, Assertion2) {
                Assertion2.add("NaN", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be NaN"
                    };
                    this.assert(this.obj !== this.obj);
                });
                Assertion2.add("Infinity", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be Infinity"
                    };
                    this.is.a.Number().and.not.a.NaN().and.assert(!isFinite(this.obj));
                });
                Assertion2.add("within", function(start, finish, description) {
                    this.params = {
                        operator: "to be within " + start + ".." + finish,
                        message: description
                    };
                    this.assert(this.obj >= start && this.obj <= finish);
                });
                Assertion2.add("approximately", function(value, delta, description) {
                    this.params = {
                        operator: "to be approximately " + value + " \xB1" + delta,
                        message: description
                    };
                    this.assert(Math.abs(this.obj - value) <= delta);
                });
                Assertion2.add("above", function(n, description) {
                    this.params = {
                        operator: "to be above " + n,
                        message: description
                    };
                    this.assert(this.obj > n);
                });
                Assertion2.add("below", function(n, description) {
                    this.params = {
                        operator: "to be below " + n,
                        message: description
                    };
                    this.assert(this.obj < n);
                });
                Assertion2.alias("above", "greaterThan");
                Assertion2.alias("below", "lessThan");
                Assertion2.add("aboveOrEqual", function(n, description) {
                    this.params = {
                        operator: "to be above or equal " + n,
                        message: description
                    };
                    this.assert(this.obj >= n);
                });
                Assertion2.add("belowOrEqual", function(n, description) {
                    this.params = {
                        operator: "to be below or equal " + n,
                        message: description
                    };
                    this.assert(this.obj <= n);
                });
                Assertion2.alias("aboveOrEqual", "greaterThanOrEqual");
                Assertion2.alias("belowOrEqual", "lessThanOrEqual");
            }
            function typeAssertions(should, Assertion2) {
                Assertion2.add("Number", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be a number"
                    };
                    this.have.type("number");
                });
                Assertion2.add("arguments", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be arguments"
                    };
                    this.have["class"]("Arguments");
                });
                Assertion2.alias("arguments", "Arguments");
                Assertion2.add("type", function(type, description) {
                    this.params = {
                        operator: "to have type " + type,
                        message: description
                    };
                    should(_type_of(this.obj)).be.exactly(type);
                });
                Assertion2.add("instanceof", function(constructor, description) {
                    this.params = {
                        operator: "to be an instance of " + functionName(constructor),
                        message: description
                    };
                    this.assert(Object(this.obj) instanceof constructor);
                });
                Assertion2.alias("instanceof", "instanceOf");
                Assertion2.add("Function", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be a function"
                    };
                    this.have.type("function");
                });
                Assertion2.add("Object", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be an object"
                    };
                    this.is.not["null"]().and.have.type("object");
                });
                Assertion2.add("String", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be a string"
                    };
                    this.have.type("string");
                });
                Assertion2.add("Array", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be an array"
                    };
                    this.have["class"]("Array");
                });
                Assertion2.add("Boolean", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be a boolean"
                    };
                    this.have.type("boolean");
                });
                Assertion2.add("Error", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be an error"
                    };
                    this.have.instanceOf(Error);
                });
                Assertion2.add("Date", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be a date"
                    };
                    this.have.instanceOf(Date);
                });
                Assertion2.add("null", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be null"
                    };
                    this.assert(this.obj === null);
                });
                Assertion2.alias("null", "Null");
                Assertion2.add("class", function(cls) {
                    this.params = {
                        operator: "to have [[Class]] " + cls
                    };
                    this.assert(Object.prototype.toString.call(this.obj) === "[object " + cls + "]");
                });
                Assertion2.alias("class", "Class");
                Assertion2.add("undefined", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be undefined"
                    };
                    this.assert(this.obj === void 0);
                });
                Assertion2.alias("undefined", "Undefined");
                Assertion2.add("iterable", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be iterable"
                    };
                    should(this.obj).have.property(Symbol.iterator).which.is.a.Function();
                });
                Assertion2.add("iterator", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be iterator"
                    };
                    should(this.obj).have.property("next").which.is.a.Function();
                });
                Assertion2.add("generator", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be generator"
                    };
                    should(this.obj).be.iterable.and.iterator.and.it.is.equal(this.obj[Symbol.iterator]());
                });
            }
            function formatEqlResult(r, a, b) {
                return ((r.path.length > 0 ? "at " + r.path.map(formatProp).join(" -> ") : "") + (r.a === a ? "" : ", A has " + format(r.a)) + (r.b === b ? "" : " and B has " + format(r.b)) + (r.showReason ? " because " + r.reason : "")).trim();
            }
            function equalityAssertions(should, Assertion2) {
                Assertion2.add("eql", function(val, description) {
                    this.params = {
                        operator: "to equal",
                        expected: val,
                        message: description
                    };
                    var obj = this.obj;
                    var fails = eql(this.obj, val, should.config);
                    this.params.details = fails.map(function(fail2) {
                        return formatEqlResult(fail2, obj, val);
                    }).join(", ");
                    this.params.showDiff = eql(getType(obj), getType(val)).length === 0;
                    this.assert(fails.length === 0);
                });
                Assertion2.add("equal", function(val, description) {
                    this.params = {
                        operator: "to be",
                        expected: val,
                        message: description
                    };
                    this.params.showDiff = eql(getType(this.obj), getType(val)).length === 0;
                    this.assert(val === this.obj);
                });
                Assertion2.alias("equal", "equals");
                Assertion2.alias("equal", "exactly");
                Assertion2.alias("eql", "eqls");
                Assertion2.alias("eql", "deepEqual");
                function addOneOf(name, message2, method) {
                    Assertion2.add(name, function(vals) {
                        if (arguments.length !== 1) {
                            vals = Array.prototype.slice.call(arguments);
                        } else {
                            should(vals).be.Array();
                        }
                        this.params = {
                            operator: message2,
                            expected: vals
                        };
                        var obj = this.obj;
                        var found = false;
                        shouldTypeAdaptors.forEach(vals, function(val) {
                            try {
                                should(val)[method](obj);
                                found = true;
                                return false;
                            } catch (e) {
                                if (e instanceof should.AssertionError) {
                                    return;
                                }
                                throw e;
                            }
                        });
                        this.assert(found);
                    });
                }
                addOneOf("equalOneOf", "to be equals one of", "equal");
                addOneOf("oneOf", "to be one of", "eql");
            }
            function promiseAssertions(should, Assertion$$1) {
                Assertion$$1.add("Promise", function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be promise"
                    };
                    var obj = this.obj;
                    should(obj).have.property("then").which.is.a.Function();
                });
                Assertion$$1.prototype.fulfilled = function Assertion$fulfilled() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be fulfilled"
                    };
                    should(this.obj).be.a.Promise();
                    var that = this;
                    return this.obj.then(function next$onResolve(value) {
                        if (that.negate) {
                            that.fail();
                        }
                        return value;
                    }, function next$onReject(err) {
                        if (!that.negate) {
                            that.params.operator += ", but it was rejected with " + should.format(err);
                            that.fail();
                        }
                        return err;
                    });
                };
                Assertion$$1.prototype.resolved = Assertion$$1.prototype.fulfilled;
                Assertion$$1.prototype.rejected = function() {
                    this.assertZeroArguments(arguments);
                    this.params = {
                        operator: "to be rejected"
                    };
                    should(this.obj).be.a.Promise();
                    var that = this;
                    return this.obj.then(function(value) {
                        if (!that.negate) {
                            that.params.operator += ", but it was fulfilled";
                            if (arguments.length != 0) {
                                that.params.operator += " with " + should.format(value);
                            }
                            that.fail();
                        }
                        return value;
                    }, function next$onError(err) {
                        if (that.negate) {
                            that.fail();
                        }
                        return err;
                    });
                };
                Assertion$$1.prototype.fulfilledWith = function(expectedValue) {
                    this.params = {
                        operator: "to be fulfilled with " + should.format(expectedValue)
                    };
                    should(this.obj).be.a.Promise();
                    var that = this;
                    return this.obj.then(function(value) {
                        if (that.negate) {
                            that.fail();
                        }
                        should(value).eql(expectedValue);
                        return value;
                    }, function next$onError(err) {
                        if (!that.negate) {
                            that.params.operator += ", but it was rejected with " + should.format(err);
                            that.fail();
                        }
                        return err;
                    });
                };
                Assertion$$1.prototype.resolvedWith = Assertion$$1.prototype.fulfilledWith;
                Assertion$$1.prototype.rejectedWith = function(message2, properties) {
                    this.params = {
                        operator: "to be rejected"
                    };
                    should(this.obj).be.a.Promise();
                    var that = this;
                    return this.obj.then(function(value) {
                        if (!that.negate) {
                            that.fail();
                        }
                        return value;
                    }, function next$onError(err) {
                        if (that.negate) {
                            that.fail();
                        }
                        var errorMatched = true;
                        var errorInfo = "";
                        if ("string" === typeof message2) {
                            errorMatched = message2 === err.message;
                        } else if (message2 instanceof RegExp) {
                            errorMatched = message2.test(err.message);
                        } else if ("function" === typeof message2) {
                            errorMatched = err instanceof message2;
                        } else if (message2 !== null && (typeof message2 === "undefined" ? "undefined" : _type_of(message2)) === "object") {
                            try {
                                should(err).match(message2);
                            } catch (e) {
                                if (e instanceof should.AssertionError) {
                                    errorInfo = ": " + e.message;
                                    errorMatched = false;
                                } else {
                                    throw e;
                                }
                            }
                        }
                        if (!errorMatched) {
                            if (typeof message2 === "string" || message2 instanceof RegExp) {
                                errorInfo = " with a message matching " + should.format(message2) + ", but got '" + err.message + "'";
                            } else if ("function" === typeof message2) {
                                errorInfo = " of type " + functionName(message2) + ", but got " + functionName(err.constructor);
                            }
                        } else if ("function" === typeof message2 && properties) {
                            try {
                                should(err).match(properties);
                            } catch (e) {
                                if (e instanceof should.AssertionError) {
                                    errorInfo = ": " + e.message;
                                    errorMatched = false;
                                } else {
                                    throw e;
                                }
                            }
                        }
                        that.params.operator += errorInfo;
                        that.assert(errorMatched);
                        return err;
                    });
                };
                Object.defineProperty(Assertion$$1.prototype, "finally", {
                    get: function get() {
                        should(this.obj).be.a.Promise();
                        var that = this;
                        return new PromisedAssertion(this.obj.then(function(obj) {
                            var a = should(obj);
                            a.negate = that.negate;
                            a.anyOne = that.anyOne;
                            return a;
                        }));
                    }
                });
                Assertion$$1.alias("finally", "eventually");
            }
            function stringAssertions(should, Assertion2) {
                Assertion2.add("startWith", function(str, description) {
                    this.params = {
                        operator: "to start with " + should.format(str),
                        message: description
                    };
                    this.assert(0 === this.obj.indexOf(str));
                });
                Assertion2.add("endWith", function(str, description) {
                    this.params = {
                        operator: "to end with " + should.format(str),
                        message: description
                    };
                    this.assert(this.obj.indexOf(str, this.obj.length - str.length) >= 0);
                });
            }
            function containAssertions(should, Assertion2) {
                var i = should.format;
                Assertion2.add("containEql", function(other) {
                    this.params = {
                        operator: "to contain " + i(other)
                    };
                    this.is.not["null"]().and.not.undefined();
                    var obj = this.obj;
                    if (typeof obj == "string") {
                        this.assert(obj.indexOf(String(other)) >= 0);
                    } else if (shouldTypeAdaptors.isIterable(obj)) {
                        this.assert(shouldTypeAdaptors.some(obj, function(v) {
                            return eql(v, other).length === 0;
                        }));
                    } else {
                        shouldTypeAdaptors.forEach(other, function(value, key) {
                            should(obj).have.value(key, value);
                        }, this);
                    }
                });
                Assertion2.add("containDeepOrdered", function(other) {
                    this.params = {
                        operator: "to contain " + i(other)
                    };
                    var obj = this.obj;
                    if (typeof obj == "string") {
                        this.is.equal(String(other));
                    } else if (shouldTypeAdaptors.isIterable(obj) && shouldTypeAdaptors.isIterable(other)) {
                        var objIterator = shouldTypeAdaptors.iterator(obj);
                        var otherIterator = shouldTypeAdaptors.iterator(other);
                        var nextObj = objIterator.next();
                        var nextOther = otherIterator.next();
                        while(!nextObj.done && !nextOther.done){
                            try {
                                should(nextObj.value[1]).containDeepOrdered(nextOther.value[1]);
                                nextOther = otherIterator.next();
                            } catch (e) {
                                if (!(e instanceof should.AssertionError)) {
                                    throw e;
                                }
                            }
                            nextObj = objIterator.next();
                        }
                        this.assert(nextOther.done);
                    } else if (obj != null && (typeof obj === "undefined" ? "undefined" : _type_of(obj)) == "object" && other != null && (typeof other === "undefined" ? "undefined" : _type_of(other)) == "object") {
                        shouldTypeAdaptors.forEach(other, function(value, key) {
                            should(obj[key]).containDeepOrdered(value);
                        });
                        if (shouldTypeAdaptors.isEmpty(other)) {
                            this.eql(other);
                        }
                    } else {
                        this.eql(other);
                    }
                });
                Assertion2.add("containDeep", function(other) {
                    this.params = {
                        operator: "to contain " + i(other)
                    };
                    var obj = this.obj;
                    if (typeof obj === "string" && typeof other === "string") {
                        this.is.equal(String(other));
                    } else if (shouldTypeAdaptors.isIterable(obj) && shouldTypeAdaptors.isIterable(other)) {
                        var usedKeys = {};
                        shouldTypeAdaptors.forEach(other, function(otherItem) {
                            this.assert(shouldTypeAdaptors.some(obj, function(item, index) {
                                if (index in usedKeys) {
                                    return false;
                                }
                                try {
                                    should(item).containDeep(otherItem);
                                    usedKeys[index] = true;
                                    return true;
                                } catch (e) {
                                    if (e instanceof should.AssertionError) {
                                        return false;
                                    }
                                    throw e;
                                }
                            }));
                        }, this);
                    } else if (obj != null && other != null && (typeof obj === "undefined" ? "undefined" : _type_of(obj)) == "object" && (typeof other === "undefined" ? "undefined" : _type_of(other)) == "object") {
                        shouldTypeAdaptors.forEach(other, function(value, key) {
                            should(obj[key]).containDeep(value);
                        });
                        if (shouldTypeAdaptors.isEmpty(other)) {
                            this.eql(other);
                        }
                    } else {
                        this.eql(other);
                    }
                });
            }
            var aSlice = Array.prototype.slice;
            function propertyAssertions(should, Assertion2) {
                var i = should.format;
                Assertion2.add("propertyWithDescriptor", function(name, desc) {
                    this.params = {
                        actual: this.obj,
                        operator: "to have own property with descriptor " + i(desc)
                    };
                    var obj = this.obj;
                    this.have.ownProperty(name);
                    should(Object.getOwnPropertyDescriptor(Object(obj), name)).have.properties(desc);
                });
                Assertion2.add("property", function(name, val) {
                    name = convertPropertyName(name);
                    if (arguments.length > 1) {
                        var p = {};
                        p[name] = val;
                        this.have.properties(p);
                    } else {
                        this.have.properties(name);
                    }
                    this.obj = this.obj[name];
                });
                Assertion2.add("properties", function(names) {
                    var values = {};
                    if (arguments.length > 1) {
                        names = aSlice.call(arguments);
                    } else if (!Array.isArray(names)) {
                        if (typeof names == "string" || (typeof names === "undefined" ? "undefined" : _type_of(names)) == "symbol") {
                            names = [
                                names
                            ];
                        } else {
                            values = names;
                            names = Object.keys(names);
                        }
                    }
                    var obj = Object(this.obj), missingProperties = [];
                    names.forEach(function(name) {
                        if (!(name in obj)) {
                            missingProperties.push(formatProp(name));
                        }
                    });
                    var props = missingProperties;
                    if (props.length === 0) {
                        props = names.map(formatProp);
                    } else if (this.anyOne) {
                        props = names.filter(function(name) {
                            return missingProperties.indexOf(formatProp(name)) < 0;
                        }).map(formatProp);
                    }
                    var operator = (props.length === 1 ? "to have property " : "to have " + (this.anyOne ? "any of " : "") + "properties ") + props.join(", ");
                    this.params = {
                        obj: this.obj,
                        operator: operator
                    };
                    this.assert(missingProperties.length === 0 || this.anyOne && missingProperties.length != names.length);
                    var valueCheckNames = Object.keys(values);
                    if (valueCheckNames.length) {
                        var wrongValues = [];
                        props = [];
                        valueCheckNames.forEach(function(name) {
                            var value = values[name];
                            if (eql(obj[name], value).length !== 0) {
                                wrongValues.push(formatProp(name) + " of " + i(value) + " (got " + i(obj[name]) + ")");
                            } else {
                                props.push(formatProp(name) + " of " + i(value));
                            }
                        });
                        if (wrongValues.length !== 0 && !this.anyOne || this.anyOne && props.length === 0) {
                            props = wrongValues;
                        }
                        operator = (props.length === 1 ? "to have property " : "to have " + (this.anyOne ? "any of " : "") + "properties ") + props.join(", ");
                        this.params = {
                            obj: this.obj,
                            operator: operator
                        };
                        this.assert(wrongValues.length === 0 || this.anyOne && wrongValues.length != valueCheckNames.length);
                    }
                });
                Assertion2.add("length", function(n, description) {
                    this.have.property("length", n, description);
                });
                Assertion2.alias("length", "lengthOf");
                Assertion2.add("ownProperty", function(name, description) {
                    name = convertPropertyName(name);
                    this.params = {
                        actual: this.obj,
                        operator: "to have own property " + formatProp(name),
                        message: description
                    };
                    this.assert(shouldUtil.hasOwnProperty(this.obj, name));
                    this.obj = this.obj[name];
                });
                Assertion2.alias("ownProperty", "hasOwnProperty");
                Assertion2.add("empty", function() {
                    this.params = {
                        operator: "to be empty"
                    };
                    this.assert(shouldTypeAdaptors.isEmpty(this.obj));
                }, true);
                Assertion2.add("keys", function(keys) {
                    keys = aSlice.call(arguments);
                    var obj = Object(this.obj);
                    var missingKeys = keys.filter(function(key) {
                        return !shouldTypeAdaptors.has(obj, key);
                    });
                    var verb = "to have " + (this.onlyThis ? "only " : "") + (keys.length === 1 ? "key " : "keys ");
                    this.params = {
                        operator: verb + keys.join(", ")
                    };
                    if (missingKeys.length > 0) {
                        this.params.operator += "\n	missing keys: " + missingKeys.join(", ");
                    }
                    this.assert(missingKeys.length === 0);
                    if (this.onlyThis) {
                        should(obj).have.size(keys.length);
                    }
                });
                Assertion2.add("key", function(key) {
                    this.have.keys(key);
                    this.obj = shouldTypeAdaptors.get(this.obj, key);
                });
                Assertion2.add("value", function(key, value) {
                    this.have.key(key).which.is.eql(value);
                });
                Assertion2.add("size", function(s) {
                    this.params = {
                        operator: "to have size " + s
                    };
                    should(shouldTypeAdaptors.size(this.obj)).be.exactly(s);
                });
                Assertion2.add("propertyByPath", function(properties) {
                    properties = aSlice.call(arguments);
                    var allProps = properties.map(formatProp);
                    properties = properties.map(convertPropertyName);
                    var obj = should(Object(this.obj));
                    var foundProperties = [];
                    var currentProperty;
                    while(properties.length){
                        currentProperty = properties.shift();
                        this.params = {
                            operator: "to have property by path " + allProps.join(", ") + " - failed on " + formatProp(currentProperty)
                        };
                        obj = obj.have.property(currentProperty);
                        foundProperties.push(currentProperty);
                    }
                    this.params = {
                        obj: this.obj,
                        operator: "to have property by path " + allProps.join(", ")
                    };
                    this.obj = obj.obj;
                });
            }
            function errorAssertions(should, Assertion2) {
                var i = should.format;
                Assertion2.add("throw", function(message2, properties) {
                    var fn = this.obj;
                    var err = {};
                    var errorInfo = "";
                    var thrown = false;
                    if (shouldUtil.isGeneratorFunction(fn)) {
                        return should(fn())["throw"](message2, properties);
                    } else if (shouldUtil.isIterator(fn)) {
                        return should(fn.next.bind(fn))["throw"](message2, properties);
                    }
                    this.is.a.Function();
                    var errorMatched = true;
                    try {
                        fn();
                    } catch (e) {
                        thrown = true;
                        err = e;
                    }
                    if (thrown) {
                        if (message2) {
                            if ("string" == typeof message2) {
                                errorMatched = message2 == err.message;
                            } else if (message2 instanceof RegExp) {
                                errorMatched = message2.test(err.message);
                            } else if ("function" == typeof message2) {
                                errorMatched = err instanceof message2;
                            } else if (null != message2) {
                                try {
                                    should(err).match(message2);
                                } catch (e) {
                                    if (e instanceof should.AssertionError) {
                                        errorInfo = ": " + e.message;
                                        errorMatched = false;
                                    } else {
                                        throw e;
                                    }
                                }
                            }
                            if (!errorMatched) {
                                if ("string" == typeof message2 || message2 instanceof RegExp) {
                                    errorInfo = " with a message matching " + i(message2) + ", but got '" + err.message + "'";
                                } else if ("function" == typeof message2) {
                                    errorInfo = " of type " + functionName(message2) + ", but got " + functionName(err.constructor);
                                }
                            } else if ("function" == typeof message2 && properties) {
                                try {
                                    should(err).match(properties);
                                } catch (e) {
                                    if (e instanceof should.AssertionError) {
                                        errorInfo = ": " + e.message;
                                        errorMatched = false;
                                    } else {
                                        throw e;
                                    }
                                }
                            }
                        } else {
                            errorInfo = " (got " + i(err) + ")";
                        }
                    }
                    this.params = {
                        operator: "to throw exception" + errorInfo
                    };
                    this.assert(thrown);
                    this.assert(errorMatched);
                });
                Assertion2.alias("throw", "throwError");
            }
            function matchingAssertions(should, Assertion2) {
                var i = should.format;
                Assertion2.add("match", function(other, description) {
                    this.params = {
                        operator: "to match " + i(other),
                        message: description
                    };
                    if (eql(this.obj, other).length !== 0) {
                        if (other instanceof RegExp) {
                            if (typeof this.obj == "string") {
                                this.assert(other.exec(this.obj));
                            } else if (null != this.obj && _type_of(this.obj) == "object") {
                                var notMatchedProps = [], matchedProps = [];
                                shouldTypeAdaptors.forEach(this.obj, function(value, name) {
                                    if (other.exec(value)) {
                                        matchedProps.push(formatProp(name));
                                    } else {
                                        notMatchedProps.push(formatProp(name) + " (" + i(value) + ")");
                                    }
                                }, this);
                                if (notMatchedProps.length) {
                                    this.params.operator += "\n    not matched properties: " + notMatchedProps.join(", ");
                                }
                                if (matchedProps.length) {
                                    this.params.operator += "\n    matched properties: " + matchedProps.join(", ");
                                }
                                this.assert(notMatchedProps.length === 0);
                            } else {
                                this.assert(false);
                            }
                        } else if (typeof other == "function") {
                            var res;
                            res = other(this.obj);
                            if (typeof res == "boolean") {
                                this.assert(res);
                            }
                        } else if (_type_of(this.obj) == "object" && this.obj != null && (isPlainObject(other) || Array.isArray(other))) {
                            notMatchedProps = [];
                            matchedProps = [];
                            shouldTypeAdaptors.forEach(other, function(value, key) {
                                try {
                                    should(this.obj).have.property(key).which.match(value);
                                    matchedProps.push(formatProp(key));
                                } catch (e) {
                                    if (e instanceof should.AssertionError) {
                                        notMatchedProps.push(formatProp(key) + " (" + i(this.obj[key]) + ")");
                                    } else {
                                        throw e;
                                    }
                                }
                            }, this);
                            if (notMatchedProps.length) {
                                this.params.operator += "\n    not matched properties: " + notMatchedProps.join(", ");
                            }
                            if (matchedProps.length) {
                                this.params.operator += "\n    matched properties: " + matchedProps.join(", ");
                            }
                            this.assert(notMatchedProps.length === 0);
                        } else {
                            this.assert(false);
                        }
                    }
                });
                Assertion2.add("matchEach", function(other, description) {
                    this.params = {
                        operator: "to match each " + i(other),
                        message: description
                    };
                    shouldTypeAdaptors.forEach(this.obj, function(value) {
                        should(value).match(other);
                    }, this);
                });
                Assertion2.add("matchAny", function(other, description) {
                    this.params = {
                        operator: "to match any " + i(other),
                        message: description
                    };
                    this.assert(shouldTypeAdaptors.some(this.obj, function(value) {
                        try {
                            should(value).match(other);
                            return true;
                        } catch (e) {
                            if (e instanceof should.AssertionError) {
                                return false;
                            }
                            throw e;
                        }
                    }));
                });
                Assertion2.alias("matchAny", "matchSome");
                Assertion2.alias("matchEach", "matchEvery");
            }
            function should$1(obj) {
                return new Assertion(obj);
            }
            should$1.AssertionError = AssertionError;
            should$1.Assertion = Assertion;
            should$1.modules = {
                format: sformat,
                type: getType,
                equal: eql
            };
            should$1.format = format;
            should$1.config = config;
            should$1.extend = function(propertyName, proto) {
                propertyName = propertyName || "should";
                proto = proto || Object.prototype;
                var prevDescriptor = Object.getOwnPropertyDescriptor(proto, propertyName);
                Object.defineProperty(proto, propertyName, {
                    set: function set() {},
                    get: function get() {
                        return should$1(isWrapperType(this) ? this.valueOf() : this);
                    },
                    configurable: true
                });
                return {
                    name: propertyName,
                    descriptor: prevDescriptor,
                    proto: proto
                };
            };
            should$1.noConflict = function(desc) {
                desc = desc || should$1._prevShould;
                if (desc) {
                    delete desc.proto[desc.name];
                    if (desc.descriptor) {
                        Object.defineProperty(desc.proto, desc.name, desc.descriptor);
                    }
                }
                return should$1;
            };
            should$1.use = function(f) {
                f(should$1, should$1.Assertion);
                return this;
            };
            should$1.use(assertExtensions).use(chainAssertions).use(booleanAssertions).use(numberAssertions).use(equalityAssertions).use(typeAssertions).use(stringAssertions).use(propertyAssertions).use(errorAssertions).use(matchingAssertions).use(containAssertions).use(promiseAssertions);
            var defaultProto = Object.prototype;
            var defaultProperty = "should";
            var freeGlobal = (typeof globalThis === "undefined" ? "undefined" : _type_of(globalThis)) == "object" && globalThis && globalThis.Object === Object && globalThis;
            var freeSelf = (typeof self === "undefined" ? "undefined" : _type_of(self)) == "object" && self && self.Object === Object && self;
            var root = freeGlobal || freeSelf || Function("return this")();
            try {
                prevShould = should$1.extend(defaultProperty, defaultProto);
                should$1._prevShould = prevShould;
                Object.defineProperty(root, "should", {
                    enumerable: false,
                    configurable: true,
                    value: should$1
                });
            } catch (e) {}
            var prevShould;
            module.exports = should$1;
        }
    });
    // node_modules/@signageos/front-display/es6/Test/should.js
    var require_should2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Test/should.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var should_1 = __importDefault(require_should());
            exports["default"] = should_1["default"];
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Tests/CacheTest.js
    var require_CacheTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Tests/CacheTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var should_1 = __importDefault(require_should2());
            var t = __importStar(require_TestFramework());
            var deviceTestActions_1 = require_deviceTestActions();
            exports["default"] = function(nativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.CACHE, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("should test cacheGet, cacheGetAll, cacheDelete", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var TEST_UID, TEST_CONTENT, loadedValue, allLoadedContentsWith, allLoadedContentsWithout, e;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    TEST_UID = "Front.Cache.Test.Key";
                                                                    TEST_CONTENT = "Front.Cache.Test.Value";
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheSave(TEST_UID, TEST_CONTENT)
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheGet(TEST_UID)
                                                                    ];
                                                                case 2:
                                                                    loadedValue = _state.sent();
                                                                    (0, should_1["default"])(loadedValue).equal(TEST_CONTENT);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheGetAll()
                                                                    ];
                                                                case 3:
                                                                    allLoadedContentsWith = _state.sent();
                                                                    (0, should_1["default"])(Object.keys(allLoadedContentsWith)).containEql(TEST_UID);
                                                                    (0, should_1["default"])(allLoadedContentsWith[TEST_UID]).equal(TEST_CONTENT);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheDelete(TEST_UID)
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheGetAll()
                                                                    ];
                                                                case 5:
                                                                    allLoadedContentsWithout = _state.sent();
                                                                    (0, should_1["default"])(Object.keys(allLoadedContentsWithout)).not.containEql(TEST_UID);
                                                                    _state.label = 6;
                                                                case 6:
                                                                    _state.trys.push([
                                                                        6,
                                                                        8,
                                                                        ,
                                                                        9
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheGet(TEST_UID)
                                                                    ];
                                                                case 7:
                                                                    _state.sent();
                                                                    (0, should_1["default"])(true).be["false"]();
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 8:
                                                                    e = _state.sent();
                                                                    (0, should_1["default"])(true).be["true"]();
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 9:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("should test cacheGetStorageInfo", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var _ref, totalSizeBytes, availableBytes, usedBytes;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.cacheGetStorageInfo()
                                                                    ];
                                                                case 1:
                                                                    _ref = _state.sent(), totalSizeBytes = _ref.totalSizeBytes, availableBytes = _ref.availableBytes, usedBytes = _ref.usedBytes;
                                                                    (0, should_1["default"])(typeof totalSizeBytes === "undefined" ? "undefined" : _type_of(totalSizeBytes)).equal("number");
                                                                    (0, should_1["default"])(typeof availableBytes === "undefined" ? "undefined" : _type_of(availableBytes)).equal("number");
                                                                    (0, should_1["default"])(typeof usedBytes === "undefined" ? "undefined" : _type_of(usedBytes)).equal("number");
                                                                    (0, should_1["default"])(totalSizeBytes).greaterThanOrEqual(availableBytes);
                                                                    (0, should_1["default"])(availableBytes).greaterThanOrEqual(0);
                                                                    (0, should_1["default"])(availableBytes + usedBytes).be.approximately(totalSizeBytes, totalSizeBytes / 50);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Tests/FileSystemTest.js
    var require_FileSystemTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Tests/FileSystemTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve2) {
                        resolve2(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve2, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve2(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var should_1 = __importDefault(require_should2());
            var HashAlgorithm_1 = __importDefault(require_HashAlgorithm());
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            var t = __importStar(require_TestFramework());
            var deviceTestActions_1 = require_deviceTestActions();
            var basicErrors_1 = require_basicErrors();
            var TEST_DIRECTORY_PATH = "test";
            var UPLOAD_URI = "https://upload.signageos.io/upload/file?prefix=feature-tests/";
            var IMAGE_URI = "https://signageostest.blob.core.windows.net/front-display/signageos-logo_f87b2be019aa1cf704680b8984aaa5b9.png";
            var TEXT_URI = "https://signageostest.blob.core.windows.net/front-display/my-file1_c31399fd1affe0acef380c5820821af4.txt";
            var TEXT2_URI = "https://signageostest.blob.core.windows.net/front-display/my-file2_c35be2b65e97e065a4b4700106933ea7.txt";
            var ARCHIVE_URI = "https://signageostest.blob.core.windows.net/front-display/test_542d76e5d64d81483dfa9b1ef9c4a4f8.zip";
            var BLUE_BACK_IMAGE_URI = "https://2.signageos.io/assets/cars/back-black.jpg";
            var CAR_ORANGE_IMAGE_URI = "https://2.signageos.io/assets/cars/semifront-orange.jpg";
            var CAR_BLACK_IMAGE_URI = "https://2.signageos.io/assets/cars/semiside-black.jpg";
            var CAR_BLUE_IMAGE_URI = "https://2.signageos.io/assets/cars/semifront-blue.jpg";
            exports["default"] = function(nativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    var fileSystem, internalStorageUnit, _tmp, externalStorageUnit, _tmp1, supportsFileChecksum, supportsLink, supportsArchiveInfo;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fileSystem = nativeDriver.fileSystem;
                                return [
                                    4,
                                    nativeDriver.frontSupports(FrontCapability_1["default"].FILE_SYSTEM_INTERNAL_STORAGE)
                                ];
                            case 1:
                                if (!_state.sent()) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    getInternalStorageUnit(fileSystem)
                                ];
                            case 2:
                                _tmp = _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                _tmp = void 0;
                                _state.label = 4;
                            case 4:
                                internalStorageUnit = _tmp;
                                return [
                                    4,
                                    nativeDriver.frontSupports(FrontCapability_1["default"].FILE_SYSTEM_EXTERNAL_STORAGE)
                                ];
                            case 5:
                                if (!_state.sent()) return [
                                    3,
                                    7
                                ];
                                return [
                                    4,
                                    getFirstExternalStorageUnit(fileSystem)
                                ];
                            case 6:
                                _tmp1 = _state.sent();
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                _tmp1 = void 0;
                                _state.label = 8;
                            case 8:
                                externalStorageUnit = _tmp1;
                                supportsFileChecksum = function() {
                                    return __awaiter(void 0, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        nativeDriver.frontSupports(FrontCapability_1["default"].FILE_SYSTEM_FILE_CHECKSUM)
                                                    ];
                                                case 1:
                                                    return [
                                                        2,
                                                        _state.sent()
                                                    ];
                                            }
                                        });
                                    });
                                };
                                supportsLink = function() {
                                    return __awaiter(void 0, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        nativeDriver.frontSupports(FrontCapability_1["default"].FILE_SYSTEM_LINK)
                                                    ];
                                                case 1:
                                                    return [
                                                        2,
                                                        _state.sent()
                                                    ];
                                            }
                                        });
                                    });
                                };
                                supportsArchiveInfo = function() {
                                    return __awaiter(void 0, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        nativeDriver.frontSupports(FrontCapability_1["default"].FILE_SYSTEM_ARCHIVE_EXTRACT_INFO)
                                                    ];
                                                case 1:
                                                    return [
                                                        2,
                                                        _state.sent()
                                                    ];
                                            }
                                        });
                                    });
                                };
                                return [
                                    2,
                                    t.describe(deviceTestActions_1.TestCase.FILE_SYSTEM, function() {
                                        var _this;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _this = this;
                                                    return [
                                                        4,
                                                        t.before("Has internal *or* external storage unit?", function() {
                                                            return __awaiter(_this, void 0, void 0, function() {
                                                                return _ts_generator(this, function(_state) {
                                                                    if (!internalStorageUnit && !externalStorageUnit) {
                                                                        t.skip("No.");
                                                                    }
                                                                    return [
                                                                        2
                                                                    ];
                                                                });
                                                            });
                                                        })
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        4,
                                                        t.describe("testing with internalStorageUnit", function() {
                                                            var _this, internalTestDirectory;
                                                            return _ts_generator(this, function(_state) {
                                                                switch(_state.label){
                                                                    case 0:
                                                                        _this = this;
                                                                        return [
                                                                            4,
                                                                            t.before("Has internal storage unit?", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        if (!internalStorageUnit) {
                                                                                            t.skip("No.");
                                                                                        }
                                                                                        return [
                                                                                            2
                                                                                        ];
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 1:
                                                                        _state.sent();
                                                                        internalTestDirectory = {
                                                                            storageUnit: internalStorageUnit,
                                                                            filePath: TEST_DIRECTORY_PATH
                                                                        };
                                                                        return [
                                                                            5,
                                                                            _ts_values(__yieldStar(manageTestDirectories(fileSystem, internalTestDirectory)))
                                                                        ];
                                                                    case 2:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 3:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileNotExistsFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 4:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test WriteFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testWriteFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 5:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test WriteFileAlreadyExistsOverrides", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testWriteFileAlreadyExistsOverrides(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 6:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test AppendFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testAppendFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 7:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test AppendFileAlreadyExistsAppends", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testAppendFileAlreadyExistsAppends(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 8:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test IsDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testIsDirectory(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 9:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test IsDirectoryIfNotExistingFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testIsDirectoryIfNotExistingFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 10:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 11:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteDirectory(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 12:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteDirectoryRecursively", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteDirectoryRecursively(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 13:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteDirectoryNotRecursivelyFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteDirectoryNotRecursivelyFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 14:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteFileNotExistingFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteFileNotExistingFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 15:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CreateDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCreateDirectory(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 16:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CreateDirectoryFailIfAlreadyExists", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCreateDirectoryFailIfAlreadyExists(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 17:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CreateDirectoryFailIfCreatingNested", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCreateDirectoryFailIfCreatingNested(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 18:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 19:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadTextFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadTextFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 20:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadOverridesOriginalFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadOverridesOriginalFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 21:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadToNotExistingContainingDirectoryFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadToNotExistingContainingDirectoryFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 22:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadToExistingDirectoryPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadToExistingDirectoryPathFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 23:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test UploadFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testUploadFile(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 24:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ListFiles", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testListFiles(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 25:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ListFilesOfNotExistingDirectoryFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testListFilesOfNotExistingDirectoryFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 26:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ListFilesOfFileFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testListFilesOfFileFail(fileSystem, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 27:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFile(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 28:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectory(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 29:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileOverwriteExistingPath(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 30:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectoryOverwriteExistingPath(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 31:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToAlreadyExistingPathFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 32:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToNotExistingContainingPathFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 33:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileFromNotExistingPathFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 34:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFile(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 35:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectory(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 36:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToAlreadyExistingPathFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 37:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileOverwrite(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 38:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectoryOverwrite(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 39:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToNotExistingContainingPathFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 40:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileFromNotExistingPathFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 41:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test LinkFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testLinkFile(fileSystem, internalTestDirectory, internalTestDirectory, supportsLink)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 42:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test testLinkFileToExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testLinkFileToExistingPathFail(fileSystem, internalTestDirectory, internalTestDirectory, supportsLink)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 43:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksum", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksum(fileSystem, internalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 44:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksum on problematic files", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksumOnPictures(fileSystem, internalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 45:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksumOfNotExistingFileFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksumOfNotExistingFileFail(fileSystem, internalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 46:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksumOfDirectoryFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksumOfDirectoryFail(fileSystem, internalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 47:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZip", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZip(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 48:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipOverridesExisting", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipOverridesExisting(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 49:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfArchiveNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfArchiveNotExistsFail(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 50:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfTargetNotExists", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfTargetNotExists(fileSystem, internalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 51:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetArchiveSize", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetArchiveSize(fileSystem, internalTestDirectory, supportsArchiveInfo)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 52:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetArchiveSizeIfArchiveNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetArchiveSizeIfArchiveNotExistsFail(fileSystem, internalTestDirectory, supportsArchiveInfo)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 53:
                                                                        _state.sent();
                                                                        return [
                                                                            2
                                                                        ];
                                                                }
                                                            });
                                                        })
                                                    ];
                                                case 2:
                                                    _state.sent();
                                                    return [
                                                        4,
                                                        t.describe("testing with externalStorageUnit", function() {
                                                            var _this, externalTestDirectory;
                                                            return _ts_generator(this, function(_state) {
                                                                switch(_state.label){
                                                                    case 0:
                                                                        _this = this;
                                                                        return [
                                                                            4,
                                                                            t.before("Has external storage unit?", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        if (!externalStorageUnit) {
                                                                                            t.skip("No.");
                                                                                        }
                                                                                        return [
                                                                                            2
                                                                                        ];
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 1:
                                                                        _state.sent();
                                                                        externalTestDirectory = {
                                                                            storageUnit: externalStorageUnit,
                                                                            filePath: TEST_DIRECTORY_PATH
                                                                        };
                                                                        return [
                                                                            5,
                                                                            _ts_values(__yieldStar(manageTestDirectories(fileSystem, externalTestDirectory)))
                                                                        ];
                                                                    case 2:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 3:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileNotExistsFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 4:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test WriteFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testWriteFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 5:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test WriteFileAlreadyExistsOverrides", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testWriteFileAlreadyExistsOverrides(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 6:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test AppendFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testAppendFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 7:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test AppendFileAlreadyExistsAppends", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testAppendFileAlreadyExistsAppends(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 8:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test IsDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testIsDirectory(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 9:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test IsDirectoryIfNotExistingFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testIsDirectoryIfNotExistingFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 10:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 11:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteDirectory(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 12:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteDirectoryRecursively", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteDirectoryRecursively(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 13:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteDirectoryNotRecursivelyFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteDirectoryNotRecursivelyFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 14:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DeleteFileNotExistingFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDeleteFileNotExistingFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 15:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CreateDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCreateDirectory(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 16:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CreateDirectoryFailIfAlreadyExists", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCreateDirectoryFailIfAlreadyExists(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 17:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CreateDirectoryFailIfCreatingNested", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCreateDirectoryFailIfCreatingNested(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 18:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 19:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadTextFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadTextFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 20:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadOverridesOriginalFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadOverridesOriginalFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 21:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadToNotExistingContainingDirectoryFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadToNotExistingContainingDirectoryFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 22:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test DownloadToExistingDirectoryPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testDownloadToExistingDirectoryPathFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 23:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test UploadFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testUploadFile(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 24:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ListFiles", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testListFiles(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 25:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ListFilesOfNotExistingDirectoryFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testListFilesOfNotExistingDirectoryFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 26:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ListFilesOfFileFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testListFilesOfFileFail(fileSystem, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 27:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksum", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksum(fileSystem, externalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 28:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksum on problematic files", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksumOnPictures(fileSystem, externalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 29:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksumOfNotExistingFileFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksumOfNotExistingFileFail(fileSystem, externalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 30:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetFileChecksumOfDirectoryFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetFileChecksumOfDirectoryFail(fileSystem, externalTestDirectory, supportsFileChecksum)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 31:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFile(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 32:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectory(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 33:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileOverwriteExistingPath(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 34:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectoryOverwriteExistingPath(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 35:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToAlreadyExistingPathFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 36:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToNotExistingContainingPathFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 37:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileFromNotExistingPathFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 38:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFile(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 39:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectory(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 40:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToAlreadyExistingPathFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 41:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileOverwrite(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 42:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectoryOverwrite(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 43:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToNotExistingContainingPathFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 44:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileFromNotExistingPathFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 45:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZip", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZip(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 46:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipOverridesExisting", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipOverridesExisting(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 47:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfArchiveNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfArchiveNotExistsFail(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 48:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfTargetNotExists", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfTargetNotExists(fileSystem, externalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 49:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetArchiveSize", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetArchiveSize(fileSystem, externalTestDirectory, supportsArchiveInfo)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 50:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test GetArchiveSizeIfArchiveNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testGetArchiveSizeIfArchiveNotExistsFail(fileSystem, externalTestDirectory, supportsArchiveInfo)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 51:
                                                                        _state.sent();
                                                                        return [
                                                                            2
                                                                        ];
                                                                }
                                                            });
                                                        })
                                                    ];
                                                case 3:
                                                    _state.sent();
                                                    return [
                                                        4,
                                                        t.describe("testing from externalStorageUnit to internalStorageUnit", function() {
                                                            var _this, internalTestDirectory, externalTestDirectory;
                                                            return _ts_generator(this, function(_state) {
                                                                switch(_state.label){
                                                                    case 0:
                                                                        _this = this;
                                                                        return [
                                                                            4,
                                                                            t.before("Has internal *and* external storage units?", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        if (!internalStorageUnit || !externalStorageUnit) {
                                                                                            t.skip("No.");
                                                                                        }
                                                                                        return [
                                                                                            2
                                                                                        ];
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 1:
                                                                        _state.sent();
                                                                        internalTestDirectory = {
                                                                            storageUnit: internalStorageUnit,
                                                                            filePath: TEST_DIRECTORY_PATH
                                                                        };
                                                                        externalTestDirectory = {
                                                                            storageUnit: externalStorageUnit,
                                                                            filePath: TEST_DIRECTORY_PATH
                                                                        };
                                                                        return [
                                                                            5,
                                                                            _ts_values(__yieldStar(manageTestDirectories(fileSystem, internalTestDirectory, externalTestDirectory)))
                                                                        ];
                                                                    case 2:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFile(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 3:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectory(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 4:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileOverwriteExistingPath(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 5:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectoryOverwriteExistingPath(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 6:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToAlreadyExistingPathFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 7:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToNotExistingContainingPathFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 8:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileFromNotExistingPathFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 9:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFile(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 10:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectory(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 11:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToAlreadyExistingPathFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 12:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileOverwrite(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 13:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectoryOverwrite(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 14:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToNotExistingContainingPathFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 15:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileFromNotExistingPathFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 16:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZip", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZip(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 17:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipOverridesExisting", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipOverridesExisting(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 18:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfArchiveNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfArchiveNotExistsFail(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 19:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfTargetNotExists", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfTargetNotExists(fileSystem, externalTestDirectory, internalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 20:
                                                                        _state.sent();
                                                                        return [
                                                                            2
                                                                        ];
                                                                }
                                                            });
                                                        })
                                                    ];
                                                case 4:
                                                    _state.sent();
                                                    return [
                                                        4,
                                                        t.describe("testing from internalStorageUnit to externalStorageUnit", function() {
                                                            var _this, internalTestDirectory, externalTestDirectory;
                                                            return _ts_generator(this, function(_state) {
                                                                switch(_state.label){
                                                                    case 0:
                                                                        _this = this;
                                                                        return [
                                                                            4,
                                                                            t.before("Has internal *and* external storage units?", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        if (!internalStorageUnit || !externalStorageUnit) {
                                                                                            t.skip("No.");
                                                                                        }
                                                                                        return [
                                                                                            2
                                                                                        ];
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 1:
                                                                        _state.sent();
                                                                        internalTestDirectory = {
                                                                            storageUnit: internalStorageUnit,
                                                                            filePath: TEST_DIRECTORY_PATH
                                                                        };
                                                                        externalTestDirectory = {
                                                                            storageUnit: externalStorageUnit,
                                                                            filePath: TEST_DIRECTORY_PATH
                                                                        };
                                                                        return [
                                                                            5,
                                                                            _ts_values(__yieldStar(manageTestDirectories(fileSystem, internalTestDirectory, externalTestDirectory)))
                                                                        ];
                                                                    case 2:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFile(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 3:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectory(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 4:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileOverwriteExistingPath(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 5:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyDirectoryOverwriteExistingPath(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 6:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToAlreadyExistingPathFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 7:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileToNotExistingContainingPathFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 8:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test CopyFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testCopyFileFromNotExistingPathFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 9:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFile", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFile(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 10:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectory", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectory(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 11:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToAlreadyExistingPathFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 12:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileOverwrite(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 13:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveDirectoryToAlreadyExistingPathOverwrite", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveDirectoryOverwrite(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 14:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileToNotExistingContainingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileToNotExistingContainingPathFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 15:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test MoveFileFromNotExistingPathFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testMoveFileFromNotExistingPathFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 16:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZip", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZip(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 17:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipOverridesExisting", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipOverridesExisting(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 18:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfArchiveNotExistsFail", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfArchiveNotExistsFail(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 19:
                                                                        _state.sent();
                                                                        return [
                                                                            4,
                                                                            t.it("should test ExtractFileZipIfTargetNotExists", function() {
                                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                                    return _ts_generator(this, function(_state) {
                                                                                        switch(_state.label){
                                                                                            case 0:
                                                                                                return [
                                                                                                    4,
                                                                                                    testExtractFileZipIfTargetNotExists(fileSystem, internalTestDirectory, externalTestDirectory)
                                                                                                ];
                                                                                            case 1:
                                                                                                _state.sent();
                                                                                                return [
                                                                                                    2
                                                                                                ];
                                                                                        }
                                                                                    });
                                                                                });
                                                                            })
                                                                        ];
                                                                    case 20:
                                                                        _state.sent();
                                                                        return [
                                                                            2
                                                                        ];
                                                                }
                                                            });
                                                        })
                                                    ];
                                                case 5:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                        }
                    });
                });
            };
            function testGetFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, file;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(downloadFilePath)
                                ];
                            case 2:
                                file = _state.sent();
                                (0, should_1["default"])(file.localUri).ok();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetFileNotExistsFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, file;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.getFile(downloadFilePath)
                                ];
                            case 1:
                                file = _state.sent();
                                (0, should_1["default"])(file)["null"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testWriteFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var writeFilePath, file, textResponse, textContent;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                writeFilePath = resolve(testDirectory, "written.png");
                                return [
                                    4,
                                    fileSystem.writeFile(writeFilePath, "Some text content to write")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(writeFilePath)
                                ];
                            case 2:
                                file = _state.sent();
                                (0, should_1["default"])(file.localUri).ok();
                                return [
                                    4,
                                    fetch(file.localUri)
                                ];
                            case 3:
                                textResponse = _state.sent();
                                return [
                                    4,
                                    textResponse.text()
                                ];
                            case 4:
                                textContent = _state.sent();
                                (0, should_1["default"])(textContent).equal("Some text content to write");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testWriteFileAlreadyExistsOverrides(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var writeFilePath, file1, textResponse1, textContent1, file2, textResponse2, textContent2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                writeFilePath = resolve(testDirectory, "written.png");
                                return [
                                    4,
                                    fileSystem.writeFile(writeFilePath, "Some text content to write")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(writeFilePath)
                                ];
                            case 2:
                                file1 = _state.sent();
                                return [
                                    4,
                                    fetch(file1.localUri)
                                ];
                            case 3:
                                textResponse1 = _state.sent();
                                return [
                                    4,
                                    textResponse1.text()
                                ];
                            case 4:
                                textContent1 = _state.sent();
                                (0, should_1["default"])(textContent1).equal("Some text content to write");
                                return [
                                    4,
                                    fileSystem.writeFile(writeFilePath, "Rewrite with other contents")
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(writeFilePath)
                                ];
                            case 6:
                                file2 = _state.sent();
                                return [
                                    4,
                                    fetch(file2.localUri)
                                ];
                            case 7:
                                textResponse2 = _state.sent();
                                return [
                                    4,
                                    textResponse2.text()
                                ];
                            case 8:
                                textContent2 = _state.sent();
                                (0, should_1["default"])(textContent2).equal("Rewrite with other contents");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testAppendFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var appendFilePath, file, textResponse, textContent;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                appendFilePath = resolve(testDirectory, "written.png");
                                return [
                                    4,
                                    fileSystem.appendFile(appendFilePath, "Some text content to write")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(appendFilePath)
                                ];
                            case 2:
                                file = _state.sent();
                                (0, should_1["default"])(file.localUri).ok();
                                return [
                                    4,
                                    fetch(file.localUri)
                                ];
                            case 3:
                                textResponse = _state.sent();
                                return [
                                    4,
                                    textResponse.text()
                                ];
                            case 4:
                                textContent = _state.sent();
                                (0, should_1["default"])(textContent).equal("Some text content to write");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testAppendFileAlreadyExistsAppends(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var appendFilePath, file1, textResponse1, textContent1, file2, textResponse2, textContent2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                appendFilePath = resolve(testDirectory, "written.png");
                                return [
                                    4,
                                    fileSystem.appendFile(appendFilePath, "Some text content to write")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(appendFilePath)
                                ];
                            case 2:
                                file1 = _state.sent();
                                return [
                                    4,
                                    fetch(file1.localUri)
                                ];
                            case 3:
                                textResponse1 = _state.sent();
                                return [
                                    4,
                                    textResponse1.text()
                                ];
                            case 4:
                                textContent1 = _state.sent();
                                (0, should_1["default"])(textContent1).equal("Some text content to write");
                                return [
                                    4,
                                    fileSystem.appendFile(appendFilePath, "\nAppend with other contents")
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(appendFilePath)
                                ];
                            case 6:
                                file2 = _state.sent();
                                return [
                                    4,
                                    fetch(file2.localUri)
                                ];
                            case 7:
                                textResponse2 = _state.sent();
                                return [
                                    4,
                                    textResponse2.text()
                                ];
                            case 8:
                                textContent2 = _state.sent();
                                (0, should_1["default"])(textContent2).equal("Some text content to write\nAppend with other contents");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testIsDirectory(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(testDirectory)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(downloadFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testIsDirectoryIfNotExistingFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var testSubDirectoryFilePath, _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                testSubDirectoryFilePath = resolve(testDirectory, "sub-dir");
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testSubDirectoryFilePath)
                                ];
                            case 1:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.isDirectory(testSubDirectoryFilePath)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDeleteFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.deleteFile(downloadFilePath, false)
                                ];
                            case 3:
                                _state.sent();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDeleteDirectory(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var _, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testDirectory)
                                ];
                            case 1:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.deleteFile(testDirectory, false)
                                ];
                            case 2:
                                _state.sent();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testDirectory)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDeleteDirectoryRecursively(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _, _1, _2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testDirectory)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.deleteFile(testDirectory, true)
                                ];
                            case 3:
                                _state.sent();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testDirectory)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDeleteDirectoryNotRecursivelyFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _, _1, _2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testDirectory)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.deleteFile(testDirectory, false)).rejected()
                                ];
                            case 3:
                                _state.sent();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(testDirectory)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDeleteFileNotExistingFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 1:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.deleteFile(downloadFilePath, false)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.deleteFile(downloadFilePath, true)).rejected()
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCreateDirectory(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var newDirectory, _, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                newDirectory = resolve(testDirectory, "new-directory");
                                return [
                                    4,
                                    fileSystem.createDirectory(newDirectory)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(newDirectory)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(newDirectory)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCreateDirectoryFailIfAlreadyExists(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.createDirectory(testDirectory)).rejected()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCreateDirectoryFailIfCreatingNested(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var newDirectory;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                newDirectory = resolve(testDirectory, "absent/nested");
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.createDirectory(newDirectory)).rejected()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDownloadFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(downloadFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDownloadTextFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, _, _1, textFile, textResponse, textContent;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, TEXT_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(downloadFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(downloadFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.getFile(downloadFilePath)
                                ];
                            case 4:
                                textFile = _state.sent();
                                return [
                                    4,
                                    fetch(textFile.localUri)
                                ];
                            case 5:
                                textResponse = _state.sent();
                                return [
                                    4,
                                    textResponse.text()
                                ];
                            case 6:
                                textContent = _state.sent();
                                (0, should_1["default"])(textContent).equal("content-1\n");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDownloadOverridesOriginalFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath, firstFile, firstResponse, firstContent, secondFile, secondResponse, secondContent;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, TEXT_URI)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(downloadFilePath)
                                ];
                            case 2:
                                firstFile = _state.sent();
                                return [
                                    4,
                                    fetch(firstFile.localUri)
                                ];
                            case 3:
                                firstResponse = _state.sent();
                                return [
                                    4,
                                    firstResponse.text()
                                ];
                            case 4:
                                firstContent = _state.sent();
                                (0, should_1["default"])(firstContent).equal("content-1\n");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, TEXT2_URI)
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getFile(downloadFilePath)
                                ];
                            case 6:
                                secondFile = _state.sent();
                                return [
                                    4,
                                    fetch(secondFile.localUri)
                                ];
                            case 7:
                                secondResponse = _state.sent();
                                return [
                                    4,
                                    secondResponse.text()
                                ];
                            case 8:
                                secondContent = _state.sent();
                                (0, should_1["default"])(secondContent).equal("content-2\n");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDownloadToNotExistingContainingDirectoryFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "sub-directory/download.png");
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.downloadFile(downloadFilePath, TEXT_URI)).rejected()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testDownloadToExistingDirectoryPathFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var folder;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                folder = resolve(testDirectory, "folder");
                                return [
                                    4,
                                    fileSystem.createDirectory(folder)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.downloadFile(folder, TEXT_URI)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testUploadFile(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var uploadFilePath, response, remoteFileUri, remoteResponse, remoteContent;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                uploadFilePath = resolve(testDirectory, "upload.txt");
                                return [
                                    4,
                                    fileSystem.writeFile(uploadFilePath, "test")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.uploadFile(uploadFilePath, UPLOAD_URI, "file")
                                ];
                            case 2:
                                response = _state.sent();
                                remoteFileUri = response && JSON.parse(response).uri;
                                (0, should_1["default"])(remoteFileUri).String();
                                return [
                                    4,
                                    fetch(remoteFileUri)
                                ];
                            case 3:
                                remoteResponse = _state.sent();
                                return [
                                    4,
                                    remoteResponse.text()
                                ];
                            case 4:
                                remoteContent = _state.sent();
                                (0, should_1["default"])(remoteContent).equal("test");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testListFiles(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var file1, file2, folder, file3, testFilePaths, filePathSortFunction, testFolderFilePaths;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                file1 = resolve(testDirectory, "file1");
                                file2 = resolve(testDirectory, "file2");
                                folder = resolve(testDirectory, "folder");
                                file3 = resolve(folder, "file3");
                                return [
                                    4,
                                    fileSystem.createDirectory(folder)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    Promise.all([
                                        fileSystem.downloadFile(file1, IMAGE_URI),
                                        fileSystem.downloadFile(file2, TEXT_URI),
                                        fileSystem.downloadFile(file3, ARCHIVE_URI)
                                    ])
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.listFiles(testDirectory)
                                ];
                            case 3:
                                testFilePaths = _state.sent();
                                filePathSortFunction = function(a, b) {
                                    return a.filePath.localeCompare(b.filePath);
                                };
                                (0, should_1["default"])(testFilePaths.sort(filePathSortFunction)).eql([
                                    file1,
                                    file2,
                                    folder
                                ]);
                                return [
                                    4,
                                    fileSystem.listFiles(folder)
                                ];
                            case 4:
                                testFolderFilePaths = _state.sent();
                                (0, should_1["default"])(testFolderFilePaths).eql([
                                    file3
                                ]);
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testListFilesOfNotExistingDirectoryFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var absentDirectory;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                absentDirectory = resolve(testDirectory, "absent");
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.listFiles(absentDirectory)).rejected()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testListFilesOfFileFail(fileSystem, testDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var downloadFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                downloadFilePath = resolve(testDirectory, "download.png");
                                return [
                                    4,
                                    fileSystem.downloadFile(downloadFilePath, TEXT_URI)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.listFiles(downloadFilePath)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyFile(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.copyFile(fromFilePath, toFilePath)
                                ];
                            case 4:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 6:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyDirectory(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromSubDirectoryPath, fromFilePath, toFilePath, toSubFilePath, _, _1, _2, _3, _4, _5, _6, _7;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromSubDirectoryPath = resolve(fromTestDirectory, "dir");
                                fromFilePath = resolve(fromSubDirectoryPath, "file1");
                                toFilePath = resolve(toTestDirectory, "dir2");
                                toSubFilePath = resolve(toFilePath, "file1");
                                return [
                                    4,
                                    fileSystem.createDirectory(fromSubDirectoryPath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.copyFile(fromSubDirectoryPath, toFilePath)
                                ];
                            case 6:
                                _state.sent();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 8:
                                _4.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _5 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toFilePath)
                                ];
                            case 9:
                                _5.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _6 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 10:
                                _6.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _7 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toSubFilePath)
                                ];
                            case 11:
                                _7.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyFileOverwriteExistingPath(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3, _4;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.writeFile(fromFilePath, "source")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(toFilePath, "destination")
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.copyFile(fromFilePath, toFilePath, {
                                        overwrite: true
                                    })
                                ];
                            case 5:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 6:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.readFile(toFilePath)
                                ];
                            case 8:
                                _4.apply(void 0, [
                                    _state.sent()
                                ]).equal("source");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyDirectoryOverwriteExistingPath(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromSubDirectoryPath, fromFilePath, toFilePath, toSubFilePath, _, _1, _2, _3, _4, _5, _6, _7, _8;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromSubDirectoryPath = resolve(fromTestDirectory, "dir");
                                fromFilePath = resolve(fromSubDirectoryPath, "file1");
                                toFilePath = resolve(toTestDirectory, "dir2");
                                toSubFilePath = resolve(toFilePath, "file1");
                                return [
                                    4,
                                    fileSystem.createDirectory(fromSubDirectoryPath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(fromFilePath, "source")
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.createDirectory(toFilePath)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(toSubFilePath, "destination")
                                ];
                            case 4:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 5:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 6:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 7:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.copyFile(fromSubDirectoryPath, toFilePath, {
                                        overwrite: true
                                    })
                                ];
                            case 8:
                                _state.sent();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 9:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 10:
                                _4.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _5 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toFilePath)
                                ];
                            case 11:
                                _5.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _6 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 12:
                                _6.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _7 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toSubFilePath)
                                ];
                            case 13:
                                _7.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _8 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.readFile(toSubFilePath)
                                ];
                            case 14:
                                _8.apply(void 0, [
                                    _state.sent()
                                ]).equal("source");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyFileToAlreadyExistingPathFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.downloadFile(toFilePath, TEXT_URI)
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.copyFile(fromFilePath, toFilePath)).rejected()
                                ];
                            case 5:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 6:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyFileToNotExistingContainingPathFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "absent/file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.copyFile(fromFilePath, toFilePath)).rejected()
                                ];
                            case 4:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 6:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testCopyFileFromNotExistingPathFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 1:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 2:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.copyFile(fromFilePath, toFilePath)).rejected()
                                ];
                            case 3:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 4:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 5:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveFile(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.moveFile(fromFilePath, toFilePath)
                                ];
                            case 4:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 6:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveDirectory(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromSubDirectoryPath, fromFilePath, toFilePath, toSubFilePath, _, _1, _2, _3, _4, _5, _6, _7;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromSubDirectoryPath = resolve(fromTestDirectory, "dir");
                                fromFilePath = resolve(fromSubDirectoryPath, "file1");
                                toFilePath = resolve(toTestDirectory, "dir2");
                                toSubFilePath = resolve(toFilePath, "file1");
                                return [
                                    4,
                                    fileSystem.createDirectory(fromSubDirectoryPath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.moveFile(fromSubDirectoryPath, toFilePath)
                                ];
                            case 6:
                                _state.sent();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 8:
                                _4.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _5 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toFilePath)
                                ];
                            case 9:
                                _5.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _6 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 10:
                                _6.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _7 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toSubFilePath)
                                ];
                            case 11:
                                _7.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveFileToAlreadyExistingPathFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.downloadFile(toFilePath, TEXT_URI)
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.moveFile(fromFilePath, toFilePath)).rejected()
                                ];
                            case 5:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 6:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveFileOverwrite(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3, _4;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.writeFile(fromFilePath, "source")
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(toFilePath, "destination")
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.moveFile(fromFilePath, toFilePath, {
                                        overwrite: true
                                    })
                                ];
                            case 5:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 6:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.readFile(toFilePath)
                                ];
                            case 8:
                                _4.apply(void 0, [
                                    _state.sent()
                                ]).equal("source");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveDirectoryOverwrite(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromSubDirectoryPath, fromFilePath, toFilePath, toSubFilePath, _, _1, _2, _3, _4, _5, _6, _7, _8;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromSubDirectoryPath = resolve(fromTestDirectory, "dir");
                                fromFilePath = resolve(fromSubDirectoryPath, "file1");
                                toFilePath = resolve(toTestDirectory, "dir2");
                                toSubFilePath = resolve(toFilePath, "file1");
                                return [
                                    4,
                                    fileSystem.createDirectory(fromSubDirectoryPath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.createDirectory(toFilePath)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(fromFilePath, "source")
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(toSubFilePath, "destination")
                                ];
                            case 4:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 5:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 6:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 7:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    4,
                                    fileSystem.moveFile(fromSubDirectoryPath, toFilePath, {
                                        overwrite: true
                                    })
                                ];
                            case 8:
                                _state.sent();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 9:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 10:
                                _4.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _5 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toFilePath)
                                ];
                            case 11:
                                _5.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _6 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toSubFilePath)
                                ];
                            case 12:
                                _6.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _7 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(toSubFilePath)
                                ];
                            case 13:
                                _7.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _8 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.readFile(toSubFilePath)
                                ];
                            case 14:
                                _8.apply(void 0, [
                                    _state.sent()
                                ]).equal("source");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveFileToNotExistingContainingPathFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "dir1/file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 1:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 2:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 3:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.moveFile(fromFilePath, toFilePath)).rejected()
                                ];
                            case 4:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 5:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 6:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testMoveFileFromNotExistingPathFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 1:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 2:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.moveFile(fromFilePath, toFilePath)).rejected()
                                ];
                            case 3:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 4:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 5:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testLinkFile(fileSystem, fromTestDirectory, toTestDirectory, supportsLink) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, _2, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsLink()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_LINK], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 4:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.link(fromFilePath, toFilePath)
                                ];
                            case 5:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 6:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 7:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testLinkFileToExistingPathFail(fileSystem, fromTestDirectory, toTestDirectory, supportsLink) {
                return __awaiter(this, void 0, void 0, function() {
                    var fromFilePath, toFilePath, _, _1, rejected, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsLink()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_LINK], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                fromFilePath = resolve(fromTestDirectory, "file1");
                                toFilePath = resolve(toTestDirectory, "file2");
                                return [
                                    4,
                                    fileSystem.downloadFile(fromFilePath, IMAGE_URI)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.downloadFile(toFilePath, TEXT_URI)
                                ];
                            case 3:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(fromFilePath)
                                ];
                            case 4:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(toFilePath)
                                ];
                            case 5:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                rejected = false;
                                _state.label = 6;
                            case 6:
                                _state.trys.push([
                                    6,
                                    8,
                                    ,
                                    9
                                ]);
                                return [
                                    4,
                                    fileSystem.link(fromFilePath, toFilePath)
                                ];
                            case 7:
                                _state.sent();
                                return [
                                    3,
                                    9
                                ];
                            case 8:
                                error = _state.sent();
                                if (error instanceof basicErrors_1.NotSupportedMethodError) {
                                    throw error;
                                }
                                rejected = true;
                                return [
                                    3,
                                    9
                                ];
                            case 9:
                                if (!rejected) {
                                    throw new Error("link was expected to be rejected but it resolved");
                                }
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetFileChecksum(fileSystem, testDirectory, supportsFileChecksum) {
                return __awaiter(this, void 0, void 0, function() {
                    var checksumFilePath, _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsFileChecksum()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_FILE_CHECKSUM], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                checksumFilePath = resolve(testDirectory, "checksum-file");
                                return [
                                    4,
                                    fileSystem.downloadFile(checksumFilePath, IMAGE_URI)
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.getFileChecksum(checksumFilePath, HashAlgorithm_1["default"].MD5)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ]).equal("f87b2be019aa1cf704680b8984aaa5b9");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetFileChecksumOnPictures(fileSystem, testDirectory, supportsFileChecksum) {
                return __awaiter(this, void 0, void 0, function() {
                    var checksumFilePathBlack, _, checksumFilePathBlue, _1, checksumFilePathOrange, _2, checksumFilePathBlueBack, _3;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsFileChecksum()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_FILE_CHECKSUM], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                checksumFilePathBlack = resolve(testDirectory, "checksum-file-CAR_BLACK_IMAGE_URI");
                                return [
                                    4,
                                    fileSystem.downloadFile(checksumFilePathBlack, CAR_BLACK_IMAGE_URI, {
                                        "checksum-crc32": "enabled"
                                    })
                                ];
                            case 2:
                                _state.sent();
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.getFileChecksum(checksumFilePathBlack, HashAlgorithm_1["default"].CRC32)
                                ];
                            case 3:
                                _.apply(void 0, [
                                    _state.sent()
                                ]).equal("056fa2ca");
                                checksumFilePathBlue = resolve(testDirectory, "checksum-file-CAR_BLUE_IMAGE_URI");
                                return [
                                    4,
                                    fileSystem.downloadFile(checksumFilePathBlue, CAR_BLUE_IMAGE_URI, {
                                        "checksum-crc32": "enabled"
                                    })
                                ];
                            case 4:
                                _state.sent();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.getFileChecksum(checksumFilePathBlue, HashAlgorithm_1["default"].CRC32)
                                ];
                            case 5:
                                _1.apply(void 0, [
                                    _state.sent()
                                ]).equal("9a648a53");
                                checksumFilePathOrange = resolve(testDirectory, "checksum-file-CAR_ORANGE_IMAGE_URI");
                                return [
                                    4,
                                    fileSystem.downloadFile(checksumFilePathOrange, CAR_ORANGE_IMAGE_URI, {
                                        "checksum-crc32": "enabled"
                                    })
                                ];
                            case 6:
                                _state.sent();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.getFileChecksum(checksumFilePathOrange, HashAlgorithm_1["default"].CRC32)
                                ];
                            case 7:
                                _2.apply(void 0, [
                                    _state.sent()
                                ]).equal("7d7911ee");
                                checksumFilePathBlueBack = resolve(testDirectory, "checksum-file-BLUE_BACK_IMAGE_URI");
                                return [
                                    4,
                                    fileSystem.downloadFile(checksumFilePathBlueBack, BLUE_BACK_IMAGE_URI, {
                                        "checksum-crc32": "enabled"
                                    })
                                ];
                            case 8:
                                _state.sent();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.getFileChecksum(checksumFilePathBlueBack, HashAlgorithm_1["default"].CRC32)
                                ];
                            case 9:
                                _3.apply(void 0, [
                                    _state.sent()
                                ]).equal("4d60de84");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetFileChecksumOfNotExistingFileFail(fileSystem, testDirectory, supportsFileChecksum) {
                return __awaiter(this, void 0, void 0, function() {
                    var checksumFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsFileChecksum()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_FILE_CHECKSUM], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                checksumFilePath = resolve(testDirectory, "unknown-checksum-file");
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.getFileChecksum(checksumFilePath, HashAlgorithm_1["default"].MD5)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetFileChecksumOfDirectoryFail(fileSystem, testDirectory, supportsFileChecksum) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsFileChecksum()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_FILE_CHECKSUM], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.getFileChecksum(testDirectory, HashAlgorithm_1["default"].MD5)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testExtractFileZip(fileSystem, fromTestDirectory, toTestDirectory) {
                var createOutputDirectory = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
                return __awaiter(this, void 0, void 0, function() {
                    var archiveFilePath, extractDirectoryFilePath, file1FilePath, file2FilePath, folderFilePath, file3FilePath, subFolderFilePath, file4FilePath, _, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, file1, text1Response, text1Content, file2, text2Response, text2Content, file3, text3Response, text3Content, file4, text4Response, text4Content;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                archiveFilePath = resolve(fromTestDirectory, "archive.zip");
                                extractDirectoryFilePath = resolve(toTestDirectory, "extracted");
                                if (!createOutputDirectory) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    fileSystem.createDirectory(extractDirectoryFilePath)
                                ];
                            case 1:
                                _state.sent();
                                _state.label = 2;
                            case 2:
                                return [
                                    4,
                                    fileSystem.downloadFile(archiveFilePath, ARCHIVE_URI)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.extractFile(archiveFilePath, extractDirectoryFilePath, "zip")
                                ];
                            case 4:
                                _state.sent();
                                file1FilePath = resolve(extractDirectoryFilePath, "my-file1");
                                file2FilePath = resolve(extractDirectoryFilePath, "my-file2");
                                folderFilePath = resolve(extractDirectoryFilePath, "my-folder");
                                file3FilePath = resolve(folderFilePath, "my-file3");
                                subFolderFilePath = resolve(folderFilePath, "sub-folder");
                                file4FilePath = resolve(subFolderFilePath, "my-file4");
                                _ = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(file1FilePath)
                                ];
                            case 5:
                                _.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _1 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(file1FilePath)
                                ];
                            case 6:
                                _1.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _2 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(file2FilePath)
                                ];
                            case 7:
                                _2.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _3 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(file2FilePath)
                                ];
                            case 8:
                                _3.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _4 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(folderFilePath)
                                ];
                            case 9:
                                _4.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _5 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(folderFilePath)
                                ];
                            case 10:
                                _5.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _6 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(file3FilePath)
                                ];
                            case 11:
                                _6.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _7 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(file3FilePath)
                                ];
                            case 12:
                                _7.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                _8 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(subFolderFilePath)
                                ];
                            case 13:
                                _8.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _9 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(subFolderFilePath)
                                ];
                            case 14:
                                _9.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _10 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.exists(file4FilePath)
                                ];
                            case 15:
                                _10.apply(void 0, [
                                    _state.sent()
                                ])["true"]();
                                _11 = (0, should_1["default"]);
                                return [
                                    4,
                                    fileSystem.isDirectory(file4FilePath)
                                ];
                            case 16:
                                _11.apply(void 0, [
                                    _state.sent()
                                ])["false"]();
                                return [
                                    4,
                                    fileSystem.getFile(file1FilePath)
                                ];
                            case 17:
                                file1 = _state.sent();
                                return [
                                    4,
                                    fetch(file1.localUri)
                                ];
                            case 18:
                                text1Response = _state.sent();
                                return [
                                    4,
                                    text1Response.text()
                                ];
                            case 19:
                                text1Content = _state.sent();
                                (0, should_1["default"])(text1Content).equal("content-1\n");
                                return [
                                    4,
                                    fileSystem.getFile(file2FilePath)
                                ];
                            case 20:
                                file2 = _state.sent();
                                return [
                                    4,
                                    fetch(file2.localUri)
                                ];
                            case 21:
                                text2Response = _state.sent();
                                return [
                                    4,
                                    text2Response.text()
                                ];
                            case 22:
                                text2Content = _state.sent();
                                (0, should_1["default"])(text2Content).equal("content-2\n");
                                return [
                                    4,
                                    fileSystem.getFile(file3FilePath)
                                ];
                            case 23:
                                file3 = _state.sent();
                                return [
                                    4,
                                    fetch(file3.localUri)
                                ];
                            case 24:
                                text3Response = _state.sent();
                                return [
                                    4,
                                    text3Response.text()
                                ];
                            case 25:
                                text3Content = _state.sent();
                                (0, should_1["default"])(text3Content).equal("content-3\n");
                                return [
                                    4,
                                    fileSystem.getFile(file4FilePath)
                                ];
                            case 26:
                                file4 = _state.sent();
                                return [
                                    4,
                                    fetch(file4.localUri)
                                ];
                            case 27:
                                text4Response = _state.sent();
                                return [
                                    4,
                                    text4Response.text()
                                ];
                            case 28:
                                text4Content = _state.sent();
                                (0, should_1["default"])(text4Content).equal("content-4\n");
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testExtractFileZipOverridesExisting(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var extractDirectoryFilePath, file1FilePath, file2FilePath, folderFilePath, file3FilePath, subFolderFilePath, file4FilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                extractDirectoryFilePath = resolve(toTestDirectory, "extracted");
                                file1FilePath = resolve(extractDirectoryFilePath, "my-file1");
                                file2FilePath = resolve(extractDirectoryFilePath, "my-file2");
                                folderFilePath = resolve(extractDirectoryFilePath, "my-folder");
                                file3FilePath = resolve(folderFilePath, "my-file3");
                                subFolderFilePath = resolve(folderFilePath, "sub-folder");
                                file4FilePath = resolve(subFolderFilePath, "my-file4");
                                return [
                                    4,
                                    fileSystem.createDirectory(extractDirectoryFilePath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(file1FilePath, "bad")
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(file2FilePath, "bad")
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.createDirectory(folderFilePath)
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(file3FilePath, "bad")
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.createDirectory(subFolderFilePath)
                                ];
                            case 6:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.writeFile(file4FilePath, "bad")
                                ];
                            case 7:
                                _state.sent();
                                return [
                                    4,
                                    testExtractFileZip(fileSystem, fromTestDirectory, toTestDirectory, false)
                                ];
                            case 8:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testExtractFileZipIfArchiveNotExistsFail(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var archiveFilePath, extractDirectoryFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                archiveFilePath = resolve(fromTestDirectory, "archive.zip");
                                extractDirectoryFilePath = resolve(toTestDirectory, "extracted");
                                return [
                                    4,
                                    fileSystem.createDirectory(extractDirectoryFilePath)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.extractFile(archiveFilePath, extractDirectoryFilePath, "zip")).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testExtractFileZipIfTargetNotExists(fileSystem, fromTestDirectory, toTestDirectory) {
                return __awaiter(this, void 0, void 0, function() {
                    var archiveFilePath, extractDirectoryFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                archiveFilePath = resolve(fromTestDirectory, "archive.zip");
                                extractDirectoryFilePath = resolve(toTestDirectory, "extracted");
                                return [
                                    4,
                                    fileSystem.downloadFile(archiveFilePath, ARCHIVE_URI)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.extractFile(archiveFilePath, extractDirectoryFilePath, "zip")
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetArchiveSize(fileSystem, testDirectory, supportsArchiveInfo) {
                return __awaiter(this, void 0, void 0, function() {
                    var archiveFilePath, uncompressedSize;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsArchiveInfo()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_ARCHIVE_EXTRACT_INFO], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                archiveFilePath = resolve(testDirectory, "archive.zip");
                                return [
                                    4,
                                    fileSystem.downloadFile(archiveFilePath, ARCHIVE_URI)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    fileSystem.getArchiveInfo(archiveFilePath)
                                ];
                            case 3:
                                uncompressedSize = _state.sent().uncompressedSize;
                                (0, should_1["default"])(uncompressedSize).be.eql(40);
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function testGetArchiveSizeIfArchiveNotExistsFail(fileSystem, testDirectory, supportsArchiveInfo) {
                return __awaiter(this, void 0, void 0, function() {
                    var archiveFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    supportsArchiveInfo()
                                ];
                            case 1:
                                if (!_state.sent()) {
                                    t.skip("Device doesn't provide ".concat(FrontCapability_1["default"][FrontCapability_1["default"].FILE_SYSTEM_ARCHIVE_EXTRACT_INFO], " capability"));
                                    return [
                                        2
                                    ];
                                }
                                archiveFilePath = resolve(testDirectory, "unknown_archive.zip");
                                return [
                                    4,
                                    (0, should_1["default"])(fileSystem.getArchiveInfo(archiveFilePath)).rejected()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function getInternalStorageUnit(fileSystem) {
                return __awaiter(this, void 0, void 0, function() {
                    var storageUnits, storageUnit;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    fileSystem.listStorageUnits()
                                ];
                            case 1:
                                storageUnits = _state.sent();
                                storageUnit = storageUnits.find(function(su) {
                                    return !su.removable;
                                });
                                return [
                                    2,
                                    storageUnit
                                ];
                        }
                    });
                });
            }
            function getFirstExternalStorageUnit(fileSystem) {
                return __awaiter(this, void 0, void 0, function() {
                    var storageUnits, storageUnit;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    fileSystem.listStorageUnits()
                                ];
                            case 1:
                                storageUnits = _state.sent();
                                storageUnit = storageUnits.find(function(su) {
                                    return su.removable;
                                });
                                return [
                                    2,
                                    storageUnit
                                ];
                        }
                    });
                });
            }
            function createDirectories(fileSystem) {
                for(var _len = arguments.length, filePaths = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                    filePaths[_key - 1] = arguments[_key];
                }
                return __awaiter(this, void 0, void 0, function() {
                    var _this;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                return [
                                    4,
                                    Promise.all(filePaths.map(function(filePath) {
                                        return __awaiter(_this, void 0, void 0, function() {
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        return [
                                                            4,
                                                            fileSystem.createDirectory(filePath)
                                                        ];
                                                    case 1:
                                                        _state.sent();
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }))
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function deleteRecursivelyIfExists(fileSystem) {
                for(var _len = arguments.length, filePaths = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                    filePaths[_key - 1] = arguments[_key];
                }
                return __awaiter(this, void 0, void 0, function() {
                    var _this;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                return [
                                    4,
                                    Promise.all(filePaths.map(function(filePath) {
                                        return __awaiter(_this, void 0, void 0, function() {
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        return [
                                                            4,
                                                            fileSystem.exists(filePath)
                                                        ];
                                                    case 1:
                                                        if (!_state.sent()) return [
                                                            3,
                                                            3
                                                        ];
                                                        return [
                                                            4,
                                                            fileSystem.deleteFile(filePath, true)
                                                        ];
                                                    case 2:
                                                        _state.sent();
                                                        _state.label = 3;
                                                    case 3:
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }))
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function manageTestDirectories(fileSystem) {
                var _this, _len, filePaths, _key;
                var _arguments = arguments;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _this = this;
                            for(_len = _arguments.length, filePaths = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                                filePaths[_key - 1] = _arguments[_key];
                            }
                            return [
                                4,
                                t.beforeEach("clear test directory", function() {
                                    return __awaiter(_this, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        deleteRecursivelyIfExists.apply(void 0, [
                                                            fileSystem
                                                        ].concat(_to_consumable_array(filePaths)))
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        4,
                                                        createDirectories.apply(void 0, [
                                                            fileSystem
                                                        ].concat(_to_consumable_array(filePaths)))
                                                    ];
                                                case 2:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                t.afterEach("clear test directory", function() {
                                    return __awaiter(_this, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        deleteRecursivelyIfExists.apply(void 0, [
                                                            fileSystem
                                                        ].concat(_to_consumable_array(filePaths)))
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            function resolve(base, filePath) {
                if (filePath.startsWith("/")) {
                    return Object.assign(Object.assign({}, base), {
                        filePath: filePath
                    });
                } else if (filePath.startsWith(".")) {
                    throw new Error("Not implemented");
                } else {
                    return Object.assign(Object.assign({}, base), {
                        filePath: base.filePath + "/" + filePath
                    });
                }
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Tests/HTML5Test.js
    var require_HTML5Test = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Tests/HTML5Test.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.runHtml5Test = void 0;
            var deviceTestActions_1 = require_deviceTestActions();
            var t = __importStar(require_TestFramework());
            var DEFAULT_TIMEOUT = 3e5;
            exports["default"] = function(dispatch) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.HTML5, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("Run HTML test", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var testResult;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        (0, exports.runHtml5Test)()
                                                                    ];
                                                                case 1:
                                                                    testResult = _state.sent();
                                                                    dispatch({
                                                                        type: deviceTestActions_1.SaveHTML5TestResult,
                                                                        testResult: testResult
                                                                    });
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                }, DEFAULT_TIMEOUT)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
            var runHtml5Test = function() {
                return new Promise(function(resolve) {
                    var script = document.createElement("script");
                    window.__SOS_HTML5TEST_RESOLVE = resolve;
                    script.innerHTML = "function _instanceof(left, right) {\n    if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n        return !!right[Symbol.hasInstance](left);\n    } else {\n        return left instanceof right;\n    }\n}\n(function() {\n    var resolve = window.__SOS_HTML5TEST_RESOLVE;\n    delete window.__SOS_HTML5TEST_RESOLVE;\n    if (typeof resolve === \"function\") {\n        var loadWhichBrowser = function loadWhichBrowser(cb) {\n            var callback = cb;\n            var p = [], w = window, d = document, e = f = 0;\n            p.push(\"ua=\" + encodeURIComponent(navigator.userAgent));\n            e |= w.ActiveXObject ? 1 : 0;\n            e |= w.opera ? 2 : 0;\n            e |= w.chrome ? 4 : 0;\n            e |= \"getBoxObjectFor\" in d || \"mozInnerScreenX\" in w ? 8 : 0;\n            e |= \"WebKitCSSMatrix\" in w || \"WebKitPoint\" in w || \"webkitStorageInfo\" in w || \"webkitURL\" in w ? 16 : 0;\n            e |= e & 16 && ({}).toString.toString().indexOf(\"\\n\") === -1 ? 32 : 0;\n            p.push(\"e=\" + e);\n            f |= \"sandbox\" in d.createElement(\"iframe\") ? 1 : 0;\n            f |= \"WebSocket\" in w ? 2 : 0;\n            f |= w.Worker ? 4 : 0;\n            f |= w.applicationCache ? 8 : 0;\n            f |= w.history && history.pushState ? 16 : 0;\n            f |= d.documentElement.webkitRequestFullScreen ? 32 : 0;\n            f |= \"FileReader\" in w ? 64 : 0;\n            p.push(\"f=\" + f);\n            p.push(\"r=\" + Math.random().toString(36).substring(7));\n            p.push(\"w=\" + screen.width);\n            p.push(\"h=\" + screen.height);\n            var servers = [\n                \"api.whichbrowser.net\",\n                \"backup.whichbrowser.net\"\n            ];\n            var timeout = null;\n            function load() {\n                if (typeof WhichBrowser != \"undefined\") {\n                    return;\n                }\n                var server = servers.shift();\n                if (server) {\n                    var script = document.createElement(\"script\");\n                    script.src = \"https://\" + server + \"/rel/detect.js?\" + p.join(\"&\");\n                    document.getElementsByTagName(\"head\")[0].appendChild(script);\n                    wait();\n                }\n            }\n            function wait() {\n                if (!timeout) {\n                    timeout = window.setTimeout(load, 3e3);\n                }\n                if (typeof WhichBrowser == \"undefined\") {\n                    window.setTimeout(wait, 100);\n                } else {\n                    window.clearTimeout(timeout);\n                    callback();\n                }\n            }\n            load();\n        };\n        var f, Test, Test9, passed;\n        Test = Test9 = function() {\n            var release = 9;\n            var NO = 0, YES = 1, OLD = 2, BUGGY = 4, PREFIX = 8, BLOCKED = 16, DISABLED = 32, UNCONFIRMED = 64, UNKNOWN = 128, EXPERIMENTAL = 256;\n            var blacklists = [];\n            var testsuite = [\n                /* doctype */ function(results) {\n                    results.addItem({\n                        key: 'parsing.doctype',\n                        passed: document.compatMode == 'CSS1Compat'\n                    });\n                },\n                /* tokenizer */ function(results) {\n                    var result = true;\n                    var e = document.createElement('div');\n                    try {\n                        e.innerHTML = \"<div<div>\";\n                        result &= e.firstChild && e.firstChild.nodeName == \"DIV<DIV\";\n                        e.innerHTML = \"<div foo<bar=''>\";\n                        result &= e.firstChild.attributes[0].nodeName == \"foo<bar\" || e.firstChild.attributes[0].name == \"foo<bar\";\n                        e.innerHTML = \"<div foo=`bar`>\";\n                        result &= e.firstChild.getAttribute(\"foo\") == \"`bar`\";\n                        e.innerHTML = \"<div \\\"foo=''>\";\n                        result &= e.firstChild && (e.firstChild.attributes[0].nodeName == \"\\\"foo\" || e.firstChild.attributes[0].name == \"\\\"foo\");\n                        e.innerHTML = \"<a href='\\nbar'></a>\";\n                        result &= e.firstChild && e.firstChild.getAttribute(\"href\") == \"\\nbar\";\n                        e.innerHTML = \"<!DOCTYPE html>\";\n                        result &= e.firstChild == null;\n                        e.innerHTML = \"\\u000D\";\n                        result &= e.firstChild && e.firstChild.nodeValue == \"\\u000A\";\n                        e.innerHTML = \"&lang;&rang;\";\n                        result &= e.firstChild.nodeValue == \"\\u27E8\\u27E9\";\n                        e.innerHTML = \"&apos;\";\n                        result &= e.firstChild.nodeValue == \"'\";\n                        e.innerHTML = \"&ImaginaryI;\";\n                        result &= e.firstChild.nodeValue == \"\\u2148\";\n                        e.innerHTML = \"&Kopf;\";\n                        result &= e.firstChild.nodeValue == \"\uD835\uDD42\";\n                        e.innerHTML = \"&notinva;\";\n                        result &= e.firstChild.nodeValue == \"\\u2209\";\n                        e.innerHTML = '<?import namespace=\"foo\" implementation=\"#bar\">';\n                        result &= e.firstChild && e.firstChild.nodeType == 8 && e.firstChild.nodeValue == '?import namespace=\"foo\" implementation=\"#bar\"';\n                        e.innerHTML = '<!--foo--bar-->';\n                        result &= e.firstChild && e.firstChild.nodeType == 8 && e.firstChild.nodeValue == 'foo--bar';\n                        e.innerHTML = '<![CDATA[x]]>';\n                        result &= e.firstChild && e.firstChild.nodeType == 8 && e.firstChild.nodeValue == '[CDATA[x]]';\n                        e.innerHTML = \"<textarea><!--</textarea>--></textarea>\";\n                        result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == \"<!--\";\n                        e.innerHTML = \"<textarea><!--</textarea>-->\";\n                        result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == \"<!--\";\n                        e.innerHTML = \"<style><!--</style>--></style>\";\n                        result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == \"<!--\";\n                        e.innerHTML = \"<style><!--</style>-->\";\n                        result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == \"<!--\";\n                    } catch (e) {\n                        result = false;\n                    }\n                    results.addItem({\n                        key: 'parsing.tokenizer',\n                        passed: result\n                    });\n                },\n                /* tree builder */ function(results) {\n                    var result = true;\n                    var e = document.createElement('div');\n                    try {\n                        var h = document.createElement(\"html\");\n                        h.innerHTML = \"\";\n                        result &= h.firstChild && h.firstChild.nodeName == \"HEAD\" && h.lastChild.nodeName == \"BODY\" && h.firstChild.nextSibling == h.lastChild;\n                    } catch (e) {\n                        result = false;\n                    }\n                    try {\n                        var t = document.createElement(\"table\");\n                        t.innerHTML = \"<col>\";\n                        result &= t.firstChild && t.firstChild.nodeName == \"COLGROUP\";\n                    } catch (e) {\n                        result = false;\n                    }\n                    e.innerHTML = \"<ul><li>A </li> <li>B</li></ul>\";\n                    result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.firstChild && e.firstChild.firstChild.firstChild.nodeValue == \"A \";\n                    e.innerHTML = \"<table><form><input type=hidden><input></form><div></div></table>\";\n                    result &= e.firstChild && e.firstChild.nodeName == \"INPUT\" && e.firstChild.nextSibling && e.firstChild.nextSibling.nodeName == \"DIV\" && e.lastChild.nodeName == \"TABLE\" && e.firstChild.nextSibling.nextSibling == e.lastChild && e.lastChild.firstChild && e.lastChild.firstChild.nodeName == \"FORM\" && e.lastChild.firstChild.firstChild == null && e.lastChild.lastChild.nodeName == \"INPUT\" && e.lastChild.firstChild.nextSibling == e.lastChild.lastChild;\n                    e.innerHTML = \"<i>A<b>B<p></i>C</b>D\";\n                    result &= e.firstChild && e.childNodes.length == 3 && e.childNodes[0].nodeName == \"I\" && e.childNodes[0].childNodes.length == 2 && e.childNodes[0].childNodes[0].nodeValue == \"A\" && e.childNodes[0].childNodes[1].nodeName == \"B\" && e.childNodes[0].childNodes[1].childNodes.length == 1 && e.childNodes[0].childNodes[1].childNodes[0].nodeValue == \"B\" && e.childNodes[1].nodeName == \"B\" && e.childNodes[1].firstChild == null && e.childNodes[2].nodeName == \"P\" && e.childNodes[2].childNodes.length == 2 && e.childNodes[2].childNodes[0].nodeName == \"B\" && e.childNodes[2].childNodes[0].childNodes.length == 2 && e.childNodes[2].childNodes[0].childNodes[0].nodeName == \"I\" && e.childNodes[2].childNodes[0].childNodes[0].firstChild == null && e.childNodes[2].childNodes[0].childNodes[1].nodeValue == \"C\" && e.childNodes[2].childNodes[1].nodeValue == \"D\";\n                    e.innerHTML = \"<div></div>\";\n                    result &= e.firstChild && \"namespaceURI\" in e.firstChild && e.firstChild.namespaceURI == \"http://www.w3.org/1999/xhtml\";\n                    results.addItem({\n                        key: 'parsing.tree',\n                        passed: result\n                    });\n                },\n                /* svg in html */ function(results) {\n                    var e = document.createElement('div');\n                    e.innerHTML = '<svg></svg>';\n                    var passed = e.firstChild && \"namespaceURI\" in e.firstChild && e.firstChild.namespaceURI == 'http://www.w3.org/2000/svg';\n                    results.addItem({\n                        key: 'parsing.svg',\n                        passed: passed\n                    });\n                },\n                /* svg in html */ function(results) {\n                    var e = document.createElement('div');\n                    e.innerHTML = '<math></math>';\n                    var passed = e.firstChild && \"namespaceURI\" in e.firstChild && e.firstChild.namespaceURI == 'http://www.w3.org/1998/Math/MathML';\n                    results.addItem({\n                        key: 'parsing.mathml',\n                        passed: passed\n                    });\n                },\n                /* dataset */ function(results) {\n                    var element = document.createElement('div');\n                    element.setAttribute('data-test', 'test');\n                    results.addItem({\n                        key: 'elements.dataset',\n                        passed: 'dataset' in element\n                    });\n                },\n                /* section, nav, article, header and footer */ function(results) {\n                    var elements = 'section nav article aside header footer'.split(' ');\n                    for(var e = 0; e < elements.length; e++){\n                        var passed = false;\n                        try {\n                            var element = document.createElement(elements[e]);\n                            document.body.appendChild(element);\n                            try {\n                                passed = _instanceof(element, HTMLElement) && !_instanceof(element, HTMLUnknownElement) && isBlock(element) && closesImplicitly(elements[e]);\n                            } catch (error) {}\n                            document.body.removeChild(element);\n                        } catch (error) {}\n                        results.addItem({\n                            key: 'elements.section.' + elements[e],\n                            passed: passed,\n                            value: 1\n                        });\n                    }\n                },\n                /* main, figure and figcaption */ function(results) {\n                    var elements = 'main figure figcaption'.split(' ');\n                    for(var e = 0; e < elements.length; e++){\n                        var passed = false;\n                        try {\n                            var element = document.createElement(elements[e]);\n                            document.body.appendChild(element);\n                            try {\n                                passed = _instanceof(element, HTMLElement) && !_instanceof(element, HTMLUnknownElement) && isBlock(element) && (elements[e] != 'figure' || closesImplicitly(elements[e]));\n                            } catch (error) {}\n                            document.body.removeChild(element);\n                        } catch (error) {}\n                        results.addItem({\n                            key: 'elements.grouping.' + elements[e],\n                            passed: passed\n                        });\n                    }\n                },\n                /* ol grouping */ function(results) {\n                    results.addItem({\n                        key: 'elements.grouping.ol',\n                        passed: 'reversed' in document.createElement('ol')\n                    });\n                },\n                /* a download */ function(results) {\n                    results.addItem({\n                        key: 'elements.semantic.download',\n                        passed: 'download' in document.createElement('a')\n                    });\n                },\n                /* a ping */ function(results) {\n                    results.addItem({\n                        key: 'elements.semantic.ping',\n                        passed: 'ping' in document.createElement('a')\n                    });\n                },\n                /* mark element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('mark');\n                        document.body.appendChild(element);\n                        try {\n                            passed = _instanceof(element, HTMLElement) && !_instanceof(element, HTMLUnknownElement) && (color = getStyle(element, 'background-color')) && color != 'transparent';\n                        } catch (error) {}\n                        document.body.removeChild(element);\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.semantic.mark',\n                        passed: passed\n                    });\n                },\n                /* ruby, rt, rp element */ function(results) {\n                    var container = document.createElement('div');\n                    document.body.appendChild(container);\n                    container.innerHTML = \"<ruby id='ruby'><rp id='rp'></rp><rt id='rt'></rt></ruby>\";\n                    var rubyElement = document.getElementById('ruby');\n                    var rtElement = document.getElementById('rt');\n                    var rpElement = document.getElementById('rp');\n                    var rubySupport = false;\n                    var rtSupport = false;\n                    var rpSupport = false;\n                    try {\n                        rubySupport = rubyElement && _instanceof(rubyElement, HTMLElement) && !_instanceof(rubyElement, HTMLUnknownElement);\n                        rtSupport = rtElement && _instanceof(rtElement, HTMLElement) && !_instanceof(rtElement, HTMLUnknownElement);\n                        rpSupport = rpElement && _instanceof(rpElement, HTMLElement) && !_instanceof(rpElement, HTMLUnknownElement) && isHidden(rpElement);\n                    } catch (error) {}\n                    document.body.removeChild(container);\n                    results.addItem({\n                        key: 'elements.semantic.ruby',\n                        passed: rubySupport && rtSupport && rpSupport\n                    });\n                },\n                /* time element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('time');\n                        try {\n                            passed = typeof HTMLTimeElement != 'undefined' && _instanceof(element, HTMLTimeElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.semantic.time',\n                        passed: passed\n                    });\n                },\n                /* data element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('data');\n                        try {\n                            passed = typeof HTMLDataElement != 'undefined' && _instanceof(element, HTMLDataElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.semantic.data',\n                        passed: passed\n                    });\n                },\n                /* wbr element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('wbr');\n                        try {\n                            passed = _instanceof(element, HTMLElement) && !_instanceof(element, HTMLUnknownElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.semantic.wbr',\n                        passed: passed\n                    });\n                },\n                /* details element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('details');\n                        element.innerHTML = '<summary>a</summary>b';\n                        document.body.appendChild(element);\n                        var height = element.offsetHeight;\n                        element.open = true;\n                        passed = height != element.offsetHeight;\n                        document.body.removeChild(element);\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.interactive.details',\n                        passed: passed\n                    });\n                },\n                /* summary element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('summary');\n                        document.body.appendChild(element);\n                        try {\n                            passed = _instanceof(element, HTMLElement) && !_instanceof(element, HTMLUnknownElement);\n                        } catch (error) {}\n                        document.body.removeChild(element);\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.interactive.summary',\n                        passed: passed\n                    });\n                },\n                /* dialog element */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('dialog');\n                        try {\n                            passed = typeof HTMLDialogElement != 'undefined' && _instanceof(element, HTMLDialogElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'elements.interactive.dialog',\n                        passed: passed\n                    });\n                },\n                /* hidden attribute */ function(results) {\n                    results.addItem({\n                        key: 'elements.hidden',\n                        passed: 'hidden' in document.createElement('div')\n                    });\n                },\n                /* outerHTML property */ function(results) {\n                    results.addItem({\n                        key: 'elements.dynamic.outerHTML',\n                        passed: 'outerHTML' in document.createElement('div')\n                    });\n                },\n                /* insertAdjacentHTML property */ function(results) {\n                    results.addItem({\n                        key: 'elements.dynamic.insertAdjacentHTML',\n                        passed: 'insertAdjacentHTML' in document.createElement('div')\n                    });\n                },\n                /* input type=text */ function(results) {\n                    var element = createInput('text');\n                    results.addItem({\n                        key: 'form.text.element',\n                        passed: element.type == 'text'\n                    });\n                    results.addItem({\n                        key: 'form.text.selection',\n                        passed: 'selectionDirection' in element\n                    });\n                },\n                /* input type=search */ function(results) {\n                    var element = createInput('search');\n                    results.addItem({\n                        key: 'form.search.element',\n                        passed: element.type == 'search'\n                    });\n                },\n                /* input type=tel */ function(results) {\n                    var element = createInput('tel');\n                    results.addItem({\n                        key: 'form.tel.element',\n                        passed: element.type == 'tel'\n                    });\n                },\n                /* input type=url */ function(results) {\n                    var element = createInput('url');\n                    var validation = false;\n                    if ('validity' in element) {\n                        validation = true;\n                        element.value = \"foo\";\n                        validation &= !element.validity.valid;\n                        element.value = \"http://foo.org\";\n                        validation &= element.validity.valid;\n                    }\n                    results.addItem({\n                        key: 'form.url.element',\n                        passed: element.type == 'url'\n                    });\n                    results.addItem({\n                        key: 'form.url.validation',\n                        passed: validation\n                    });\n                },\n                /* input type=email */ function(results) {\n                    var element = createInput('email');\n                    var validation = false;\n                    if ('validity' in element) {\n                        validation = true;\n                        element.value = \"foo\";\n                        validation &= !element.validity.valid;\n                        element.value = \"foo@bar.org\";\n                        validation &= element.validity.valid;\n                    }\n                    results.addItem({\n                        key: 'form.email.element',\n                        passed: element.type == 'email'\n                    });\n                    results.addItem({\n                        key: 'form.email.validation',\n                        passed: validation\n                    });\n                },\n                /* input type=date, month, week, time, datetime and datetime-local */ function(results) {\n                    var types = [\n                        'date',\n                        'month',\n                        'week',\n                        'time',\n                        'datetime',\n                        'datetime-local'\n                    ];\n                    for(var t = 0; t < types.length; t++){\n                        var element = createInput(types[t]);\n                        element.value = \"foobar\";\n                        var sanitization = element.value == '';\n                        var minimal = element.type == types[t];\n                        results.addItem({\n                            key: 'form.' + types[t] + '.element',\n                            passed: minimal\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.ui',\n                            passed: minimal && sanitization // Testing UI reliably is not possible, so we assume if sanitization is support we also have a UI and use the blacklist to make corrections\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.sanitization',\n                            passed: minimal && sanitization\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.min',\n                            passed: minimal && 'min' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.max',\n                            passed: minimal && 'max' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.step',\n                            passed: minimal && 'step' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.stepDown',\n                            passed: minimal && 'stepDown' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.stepUp',\n                            passed: minimal && 'stepUp' in element\n                        });\n                        if (types[t] != 'datetime-local' && types[t] != 'datetime') {\n                            results.addItem({\n                                key: 'form.' + types[t] + '.valueAsDate',\n                                passed: minimal && 'valueAsDate' in element\n                            });\n                        }\n                        results.addItem({\n                            key: 'form.' + types[t] + '.valueAsNumber',\n                            passed: minimal && 'valueAsNumber' in element\n                        });\n                    }\n                },\n                /* input type=number, range */ function(results) {\n                    var types = [\n                        'number',\n                        'range'\n                    ];\n                    for(var t = 0; t < types.length; t++){\n                        var element = createInput(types[t]);\n                        element.value = \"foobar\";\n                        var sanitization = element.value != 'foobar';\n                        var validation = false;\n                        if ('validity' in element) {\n                            validation = true;\n                            element.min = 40;\n                            element.max = 50;\n                            element.value = 100;\n                            validation &= !element.validity.valid;\n                            element.value = 42;\n                            validation &= element.validity.valid;\n                        }\n                        var minimal = element.type == types[t];\n                        results.addItem({\n                            key: 'form.' + types[t] + '.element',\n                            passed: minimal\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.ui',\n                            passed: minimal && sanitization // Testing UI reliably is not possible, so we assume if sanitization is support we also have a UI and use the blacklist to make corrections\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.sanitization',\n                            passed: minimal && sanitization\n                        });\n                        if (types[t] != 'range') {\n                            results.addItem({\n                                key: 'form.' + types[t] + '.validation',\n                                passed: minimal && validation\n                            });\n                        }\n                        results.addItem({\n                            key: 'form.' + types[t] + '.min',\n                            passed: minimal && 'min' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.max',\n                            passed: minimal && 'max' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.step',\n                            passed: minimal && 'step' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.stepDown',\n                            passed: minimal && 'stepDown' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.stepUp',\n                            passed: minimal && 'stepUp' in element\n                        });\n                        results.addItem({\n                            key: 'form.' + types[t] + '.valueAsNumber',\n                            passed: minimal && 'valueAsNumber' in element\n                        });\n                    }\n                },\n                /* input type=color */ function(results) {\n                    var element = createInput('color');\n                    element.value = \"foobar\";\n                    var sanitization = element.value != 'foobar';\n                    results.addItem({\n                        key: 'form.color.element',\n                        passed: element.type == 'color'\n                    });\n                    results.addItem({\n                        key: 'form.color.ui',\n                        passed: sanitization // Testing UI reliably is not possible, so we assume if sanitization is support we also have a UI and use the blacklist to make corrections\n                    });\n                    results.addItem({\n                        key: 'form.color.sanitization',\n                        passed: sanitization\n                    });\n                },\n                /* input type=checkbox */ function(results) {\n                    var element = createInput('checkbox');\n                    results.addItem({\n                        key: 'form.checkbox.element',\n                        passed: element.type == 'checkbox'\n                    });\n                    results.addItem({\n                        key: 'form.checkbox.indeterminate',\n                        passed: 'indeterminate' in element\n                    });\n                },\n                /* input type=image */ function(results) {\n                    var element = createInput('image');\n                    element.style.display = 'inline-block';\n                    document.body.appendChild(element);\n                    var supportsWidth = 'width' in element;\n                    var supportsHeight = 'height' in element;\n                    element.setAttribute('width', '100');\n                    element.setAttribute('height', '100');\n                    results.addItem({\n                        key: 'form.image.element',\n                        passed: element.type == 'image'\n                    });\n                    results.addItem({\n                        key: 'form.image.width',\n                        passed: supportsWidth && element.offsetWidth == 100\n                    });\n                    results.addItem({\n                        key: 'form.image.height',\n                        passed: supportsHeight && element.offsetHeight == 100\n                    });\n                    document.body.removeChild(element);\n                },\n                /* input type=file */ function(results) {\n                    var element = createInput('file');\n                    results.addItem({\n                        key: 'form.file.element',\n                        passed: element.type == 'file'\n                    });\n                    results.addItem({\n                        key: 'form.file.files',\n                        passed: element.files && _instanceof(element.files, FileList)\n                    });\n                },\n                /* textarea */ function(results) {\n                    var element = document.createElement('textarea');\n                    var passed = false;\n                    try {\n                        passed = typeof HTMLTextAreaElement != 'undefined' && _instanceof(element, HTMLTextAreaElement);\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.textarea.element',\n                        passed: passed\n                    });\n                    results.addItem({\n                        key: 'form.textarea.maxlength',\n                        passed: 'maxLength' in element\n                    });\n                    results.addItem({\n                        key: 'form.textarea.wrap',\n                        passed: 'wrap' in element\n                    });\n                },\n                /* select */ function(results) {\n                    var element = document.createElement('select');\n                    var passed = false;\n                    try {\n                        passed = typeof HTMLSelectElement != 'undefined' && _instanceof(element, HTMLSelectElement);\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.select.element',\n                        passed: passed\n                    });\n                    results.addItem({\n                        key: 'form.select.required',\n                        passed: 'required' in element\n                    });\n                },\n                /* fieldset */ function(results) {\n                    var element = document.createElement('fieldset');\n                    var passed = false;\n                    try {\n                        passed = typeof HTMLFieldSetElement != 'undefined' && _instanceof(element, HTMLFieldSetElement);\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.fieldset.element',\n                        passed: passed\n                    });\n                    results.addItem({\n                        key: 'form.fieldset.elements',\n                        passed: 'elements' in element\n                    });\n                    results.addItem({\n                        key: 'form.fieldset.disabled',\n                        passed: 'disabled' in element\n                    });\n                },\n                /* datalist */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('datalist');\n                        try {\n                            passed = typeof HTMLDataListElement != 'undefined' && _instanceof(element, HTMLDataListElement) || element.childNodes.length;\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.datalist.element',\n                        passed: passed\n                    });\n                    var element = document.createElement('input');\n                    results.addItem({\n                        key: 'form.datalist.list',\n                        passed: !!(\"list\" in element)\n                    });\n                },\n                /* keygen */ function(results) {\n                    var element = document.createElement('div');\n                    element.innerHTML = '<keygen>';\n                    var passed = false;\n                    try {\n                        passed = typeof HTMLKeygenElement != 'undefined' && _instanceof(element.firstChild, HTMLKeygenElement) && 'challenge' in element.firstChild && 'keytype' in element.firstChild;\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.keygen.element',\n                        passed: passed\n                    });\n                    results.addItem({\n                        key: 'form.keygen.challenge',\n                        passed: element.firstChild && 'challenge' in element.firstChild\n                    });\n                    results.addItem({\n                        key: 'form.keygen.keytype',\n                        passed: element.firstChild && 'keytype' in element.firstChild\n                    });\n                },\n                /* output */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('output');\n                        try {\n                            passed = typeof HTMLOutputElement != 'undefined' && _instanceof(element, HTMLOutputElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.output.element',\n                        passed: passed\n                    });\n                },\n                /* progress */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('progress');\n                        try {\n                            passed = typeof HTMLProgressElement != 'undefined' && _instanceof(element, HTMLProgressElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.progress.element',\n                        passed: passed\n                    });\n                },\n                /* meter */ function(results) {\n                    var passed = false;\n                    try {\n                        var element = document.createElement('meter');\n                        try {\n                            passed = typeof HTMLMeterElement != 'undefined' && _instanceof(element, HTMLMeterElement);\n                        } catch (error) {}\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'form.meter.element',\n                        passed: passed\n                    });\n                },\n                /* pattern and required properties */ function(results) {\n                    var element = document.createElement('input');\n                    var props = 'pattern required'.split(' ');\n                    for(var p = 0; p < props.length; p++){\n                        results.addItem({\n                            key: 'form.validation.' + props[p],\n                            passed: !!(props[p] in element)\n                        });\n                    }\n                },\n                /* control property on labels */ function(results) {\n                    var field = document.createElement('input');\n                    field.id = \"a\";\n                    document.body.appendChild(field);\n                    var label = document.createElement(\"label\");\n                    label.setAttribute('for', 'a');\n                    document.body.appendChild(label);\n                    results.addItem({\n                        key: 'form.association.control',\n                        passed: label.control == field\n                    });\n                    document.body.removeChild(field);\n                    document.body.removeChild(label);\n                },\n                /* form attribute on input */ function(results) {\n                    var element = document.createElement('div');\n                    document.body.appendChild(element);\n                    element.innerHTML = '<form id=\"form\"></form><input form=\"form\">';\n                    results.addItem({\n                        key: 'form.association.form',\n                        passed: element.lastChild.form == element.firstChild\n                    });\n                    document.body.removeChild(element);\n                },\n                /* formAction, formEnctype, formMethod, formNoValidate and formTarget properties */ function(results) {\n                    var props = 'formAction formEnctype formMethod formNoValidate formTarget'.split(' ');\n                    var element = document.createElement('input');\n                    for(var p = 0; p < props.length; p++){\n                        results.addItem({\n                            key: 'form.association.' + props[p],\n                            passed: !!(props[p] in element)\n                        });\n                    }\n                },\n                /* labels property on input */ function(results) {\n                    var element = document.createElement('input');\n                    document.body.appendChild(element);\n                    element.id = \"testFormInput\";\n                    var label = document.createElement(\"label\");\n                    label.setAttribute('for', 'testFormInput');\n                    document.body.appendChild(label);\n                    results.addItem({\n                        key: 'form.association.labels',\n                        passed: !!element.labels && element.labels.length == 1 && element.labels[0] == label\n                    });\n                    document.body.removeChild(label);\n                    document.body.removeChild(element);\n                },\n                /* autofocus */ function(results) {\n                    var element = document.createElement('input');\n                    results.addItem({\n                        key: 'form.other.autofocus',\n                        passed: !!('autofocus' in element)\n                    });\n                },\n                /* autocomplete, placeholder, multiple and dirName properties */ function(results) {\n                    var element = document.createElement('input');\n                    var props = 'autocomplete placeholder multiple dirName'.split(' ');\n                    for(var p = 0; p < props.length; p++){\n                        var prop = props[p].toLowerCase();\n                        results.addItem({\n                            key: 'form.other.' + prop,\n                            passed: !!(props[p] in element)\n                        });\n                    }\n                },\n                /* valid, invalid, optional, required, in-range, out-of-range, read-write and read-only css selectors */ function(results) {\n                    var selectors = \"valid invalid optional required in-range out-of-range read-write read-only\".split(\" \");\n                    var passed = [\n                        NO | UNKNOWN,\n                        NO | UNKNOWN,\n                        NO | UNKNOWN,\n                        NO | UNKNOWN,\n                        NO | UNKNOWN,\n                        NO | UNKNOWN,\n                        NO | UNKNOWN,\n                        NO | UNKNOWN\n                    ];\n                    /*  At this time we are not testing enabled, disabled, checked and indeterminate,\n				because these selectors are part of the CSS 3 Selector specification and\n				universally implemented, see http://www.css3.info/selectors-test/\n			*/ if ('querySelector' in document) {\n                        var element = document.createElement('input');\n                        element.id = 'testFormInput';\n                        element.setAttribute(\"type\", \"text\");\n                        document.body.appendChild(element);\n                        try {\n                            passed[0] = !!document.querySelector(\"#testFormInput:valid\");\n                        } catch (e) {\n                            passed[0] = NO;\n                        }\n                        try {\n                            passed[6] = !!document.querySelector(\"#testFormInput:read-write\");\n                        } catch (e) {\n                            passed[6] = NO;\n                            try {\n                                passed[6] = document.querySelector(\"#testFormInput:-moz-read-write\") ? YES | PREFIX : NO;\n                            } catch (e) {}\n                        }\n                        if (\"validity\" in element && \"setCustomValidity\" in element) {\n                            element.setCustomValidity(\"foo\");\n                            try {\n                                passed[1] = !!document.querySelector(\"#testFormInput:invalid\");\n                            } catch (e) {\n                                passed[1] = NO;\n                            }\n                        } else {\n                            passed[1] = NO;\n                        }\n                        try {\n                            passed[2] = !!document.querySelector(\"#testFormInput:optional\");\n                        } catch (e) {\n                            passed[2] = NO;\n                        }\n                        element.setAttribute(\"required\", \"true\");\n                        try {\n                            passed[3] = !!document.querySelector(\"#testFormInput:required\");\n                        } catch (e) {\n                            passed[3] = NO;\n                        }\n                        try {\n                            element.setAttribute(\"type\", \"number\");\n                            element.setAttribute(\"min\", \"10\");\n                            element.setAttribute(\"max\", \"20\");\n                            element.setAttribute(\"value\", \"15\");\n                            passed[4] = !!document.querySelector(\"#testFormInput:in-range\");\n                        } catch (e) {\n                            passed[4] = NO;\n                        }\n                        try {\n                            element.setAttribute(\"type\", \"number\");\n                            element.setAttribute(\"min\", \"10\");\n                            element.setAttribute(\"max\", \"20\");\n                            element.setAttribute(\"value\", \"25\");\n                            passed[5] = !!document.querySelector(\"#testFormInput:out-of-range\");\n                        } catch (e) {\n                            passed[5] = NO;\n                        }\n                        document.body.removeChild(element);\n                        var element = document.createElement('input');\n                        element.id = 'testFormInput';\n                        element.setAttribute(\"type\", \"text\");\n                        element.setAttribute(\"readonly\", \"readonly\");\n                        document.body.appendChild(element);\n                        try {\n                            passed[7] = !!document.querySelector(\"#testFormInput:read-only\");\n                        } catch (e) {\n                            passed[7] = NO;\n                            try {\n                                passed[7] = document.querySelector(\"#testFormInput:-moz-read-only\") ? YES | PREFIX : NO;\n                            } catch (e) {}\n                        }\n                        document.body.removeChild(element);\n                    }\n                    for(var i = 0; i < selectors.length; i++){\n                        results.addItem({\n                            key: 'form.selectors.' + selectors[i],\n                            passed: passed[i]\n                        });\n                    }\n                },\n                /* oninput, onchange and oninvalid events */ function(results) {\n                    var inputItem = results.addItem({\n                        key: 'form.events.oninput',\n                        passed: isEventSupported('input')\n                    });\n                    var changeItem = results.addItem({\n                        key: 'form.events.onchange',\n                        passed: isEventSupported('change')\n                    });\n                    var invalidItem = results.addItem({\n                        key: 'form.events.oninvalid',\n                        passed: isEventSupported('invalid')\n                    });\n                    try {\n                        inputItem.startBackground();\n                        changeItem.startBackground();\n                        var event = document.createEvent(\"KeyboardEvent\");\n                        if (event.initKeyEvent) {\n                            event.initKeyEvent(\"keypress\", false, true, null, false, false, false, false, null, 65);\n                            var input = document.createElement('input');\n                            input.style.position = 'fixed';\n                            input.style.left = '-500px';\n                            input.style.top = '0px';\n                            document.body.appendChild(input);\n                            input.addEventListener('input', function() {\n                                inputItem.update({\n                                    'passed': true\n                                });\n                                inputItem.stopBackground();\n                            }, true);\n                            input.addEventListener('change', function() {\n                                changeItem.update({\n                                    'passed': true\n                                });\n                                changeItem.stopBackground();\n                            }, true);\n                            input.focus();\n                            input.dispatchEvent(event);\n                            input.blur();\n                            window.setTimeout(function() {\n                                document.body.removeChild(input);\n                                inputItem.stopBackground();\n                                changeItem.stopBackground();\n                            }, 1000);\n                        } else {\n                            inputItem.stopBackground();\n                            changeItem.stopBackground();\n                        }\n                    } catch (e) {\n                        inputItem.stopBackground();\n                        changeItem.stopBackground();\n                    }\n                },\n                /* checkValidity property */ function(results) {\n                    results.addItem({\n                        key: 'form.formvalidation.checkValidity',\n                        passed: 'checkValidity' in document.createElement('form')\n                    });\n                },\n                /* noValidate property */ function(results) {\n                    results.addItem({\n                        key: 'form.formvalidation.noValidate',\n                        passed: 'noValidate' in document.createElement('form')\n                    });\n                },\n                /* microdata */ function(results) {\n                    var container = document.createElement('div');\n                    container.innerHTML = '<div id=\"microdataItem\" itemscope itemtype=\"http://example.net/user\"><p>My name is <span id=\"microdataProperty\" itemprop=\"name\">Elizabeth</span>.</p></div>';\n                    document.body.appendChild(container);\n                    var item = document.getElementById('microdataItem');\n                    var property = document.getElementById('microdataProperty');\n                    var passed = true;\n                    // Check the element that contains the property\n                    passed = passed && !!('itemValue' in property) && property.itemValue == 'Elizabeth';\n                    // Check the element that is the item\n                    passed = passed && !!('properties' in item) && item.properties['name'][0].itemValue == 'Elizabeth';\n                    // Check the getItems method\n                    if (!!document.getItems) {\n                        var user = document.getItems('http://example.net/user')[0];\n                        passed = passed && user.properties['name'][0].itemValue == 'Elizabeth';\n                    }\n                    document.body.removeChild(container);\n                    results.addItem({\n                        key: 'microdata',\n                        passed: passed\n                    });\n                },\n                /* geolocation */ function(results) {\n                    results.addItem({\n                        key: 'location.geolocation',\n                        passed: !!navigator.geolocation\n                    });\n                },\n                /* device orientation */ function(results) {\n                    results.addItem({\n                        key: 'location.orientation',\n                        passed: !!window.DeviceOrientationEvent\n                    });\n                },\n                /* device motion */ function(results) {\n                    results.addItem({\n                        key: 'location.motion',\n                        passed: !!window.DeviceMotionEvent\n                    });\n                },\n                /* generic sensor api */ function(results) {\n                    results.addItem({\n                        key: 'sensors.api',\n                        passed: \"Sensor\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.low.accelerometer',\n                        passed: \"Sensor\" in window && \"Accelerometer\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.low.gyroscope',\n                        passed: \"Sensor\" in window && \"Gyroscope\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.low.magnetometer',\n                        passed: \"Sensor\" in window && \"Magnetometer\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.high.linearacceleration',\n                        passed: \"Sensor\" in window && \"LinearAccelerationSensor\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.high.absoluteorientation',\n                        passed: \"Sensor\" in window && \"AbsoluteOrientationSensor\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.high.relativeorientation',\n                        passed: \"Sensor\" in window && \"RelativeOrientationSensor\" in window\n                    });\n                    results.addItem({\n                        key: 'sensors.high.ambientlight',\n                        passed: \"Sensor\" in window && \"AmbientLightSensor\" in window\n                    });\n                },\n                /* web bluetooth */ function(results) {\n                    results.addItem({\n                        key: 'hardware.bluetooth',\n                        passed: 'bluetooth' in navigator && \"BluetoothDevice\" in window\n                    });\n                },\n                /* web usb */ function(results) {\n                    results.addItem({\n                        key: 'hardware.usb',\n                        passed: 'usb' in navigator && \"USBDevice\" in window\n                    });\n                },\n                /* web nfc */ function(results) {\n                    results.addItem({\n                        key: 'hardware.nfc',\n                        passed: 'nfc' in navigator && \"NFCMessage\" in window\n                    });\n                },\n                /* fullscreen */ function(results) {\n                    results.addItem({\n                        key: 'output.requestFullScreen',\n                        passed: !!document.documentElement.requestFullscreen ? YES : !!document.documentElement.webkitRequestFullScreen || !!document.documentElement.mozRequestFullScreen || !!document.documentElement.msRequestFullscreen ? YES | PREFIX : NO\n                    });\n                },\n                /* notifications */ function(results) {\n                    results.addItem({\n                        key: 'output.notifications',\n                        passed: 'Notification' in window ? YES : 'webkitNotifications' in window || 'mozNotification' in window.navigator || 'oNotification' in window || 'msNotification' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* getUserMedia */ function(results) {\n                    results.addItem({\n                        key: 'media.getUserMedia',\n                        passed: !!navigator.mediaDevices && !!navigator.mediaDevices.getUserMedia ? YES : !!navigator.getUserMedia ? YES | OLD : !!navigator.webkitGetUserMedia || !!navigator.mozGetUserMedia || !!navigator.msGetUserMedia || !!navigator.oGetUserMedia ? YES | PREFIX : NO\n                    });\n                },\n                /* getDisplayMedia */ function(results) {\n                    results.addItem({\n                        key: 'media.getDisplayMedia',\n                        passed: !!navigator.getDisplayMedia || !!navigator.mediaDevices && !!navigator.mediaDevices.getDisplayMedia ? YES : NO\n                    });\n                },\n                /* enumerateDevices */ function(results) {\n                    results.addItem({\n                        key: 'media.enumerateDevices',\n                        passed: !!navigator.mediaDevices && !!navigator.mediaDevices.enumerateDevices ? YES : NO\n                    });\n                },\n                /* getGamepads */ function(results) {\n                    results.addItem({\n                        key: 'input.getGamepads',\n                        passed: !!navigator.getGamepads ? YES : !!navigator.webkitGetGamepads || !!navigator.mozGetGamepads || !!navigator.msGetGamepads || !!navigator.oGetGamepads ? YES | PREFIX : NO\n                    });\n                },\n                /* pointerLock */ function(results) {\n                    results.addItem({\n                        key: 'input.pointerLock',\n                        passed: 'pointerLockElement' in document ? YES : 'oPointerLockElement' in document || 'msPointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document ? YES | PREFIX : NO\n                    });\n                },\n                /* pointerevents */ function(results) {\n                    results.addItem({\n                        key: 'input.pointerevents',\n                        passed: !!window.PointerEvent ? YES : !!window.webkitPointerEvent || !!window.mozPointerEvent || !!window.msPointerEvent || !!window.oPointerEvent ? YES | PREFIX : NO\n                    });\n                },\n                /* beacon */ function(results) {\n                    results.addItem({\n                        key: 'communication.beacon',\n                        passed: 'sendBeacon' in navigator\n                    });\n                },\n                /* eventSource */ function(results) {\n                    results.addItem({\n                        key: 'communication.eventSource',\n                        passed: 'EventSource' in window\n                    });\n                },\n                /* fetch */ function(results) {\n                    results.addItem({\n                        key: 'communication.fetch',\n                        passed: 'Promise' in window && typeof window.fetch === 'function' && _instanceof(window.fetch(''), Promise)\n                    });\n                },\n                /* xmlhttprequest upload */ function(results) {\n                    results.addItem({\n                        key: 'communication.xmlhttprequest2.upload',\n                        passed: window.XMLHttpRequest && 'upload' in new XMLHttpRequest()\n                    });\n                },\n                /* xmlhttprequest response text */ function(results) {\n                    var item = results.addItem({\n                        key: 'communication.xmlhttprequest2.response.text',\n                        passed: false\n                    });\n                    if (!window.XMLHttpRequest) return;\n                    var xhr = new window.XMLHttpRequest();\n                    if (typeof xhr.responseType == 'undefined') return;\n                    var done = false;\n                    xhr.onreadystatechange = function() {\n                        if (this.readyState == 4 && !done) {\n                            done = true;\n                            passed = false;\n                            try {\n                                passed = !!this.responseText; // && this.responseText == '<title>&amp;&<</title>');\n                            } catch (e) {}\n                            item.stopBackground();\n                            item.update({\n                                'passed': passed\n                            });\n                        }\n                    };\n                    try {\n                        item.startBackground();\n                        xhr.open(\"GET\", \"/assets/detect.html?\" + Math.random().toString(36).substr(2, 5));\n                        xhr.responseType = \"text\";\n                        xhr.send();\n                    } catch (e) {\n                        item.stopBackground();\n                    }\n                },\n                /* xmlhttprequest response document */ function(results) {\n                    var item = results.addItem({\n                        key: 'communication.xmlhttprequest2.response.document',\n                        passed: false\n                    });\n                    if (!window.XMLHttpRequest) return;\n                    var xhr = new window.XMLHttpRequest();\n                    if (typeof xhr.responseType == 'undefined') return;\n                    var done = false;\n                    xhr.onreadystatechange = function() {\n                        if (this.readyState == 4 && !done) {\n                            done = true;\n                            passed = false;\n                            try {\n                                passed = !!(this.responseXML && this.responseXML.title && this.responseXML.title == \"&&<\");\n                            } catch (e) {}\n                            item.stopBackground();\n                            item.update({\n                                'passed': passed\n                            });\n                        }\n                    };\n                    try {\n                        item.startBackground();\n                        xhr.open(\"GET\", \"/assets/detect.html?\" + Math.random().toString(36).substr(2, 5));\n                        xhr.responseType = \"document\";\n                        xhr.send();\n                    } catch (e) {\n                        item.stopBackground();\n                    }\n                },\n                /* xmlhttprequest response array */ function(results) {\n                    var item = results.addItem({\n                        key: 'communication.xmlhttprequest2.response.array',\n                        passed: false\n                    });\n                    if (!window.XMLHttpRequest || !window.ArrayBuffer) return;\n                    var xhr = new window.XMLHttpRequest();\n                    if (typeof xhr.responseType == 'undefined') return;\n                    var done = false;\n                    xhr.onreadystatechange = function() {\n                        if (this.readyState == 4 && !done) {\n                            done = true;\n                            passed = false;\n                            try {\n                                passed = !!(this.response && _instanceof(this.response, ArrayBuffer));\n                            } catch (e) {}\n                            item.stopBackground();\n                            item.update({\n                                'passed': passed\n                            });\n                        }\n                    };\n                    try {\n                        item.startBackground();\n                        xhr.open(\"GET\", \"/assets/detect.html?\" + Math.random().toString(36).substr(2, 5));\n                        xhr.responseType = \"arraybuffer\";\n                        xhr.send();\n                    } catch (e) {\n                        item.stopBackground();\n                    }\n                },\n                /* xmlhttprequest response blob */ function(results) {\n                    var item = results.addItem({\n                        key: 'communication.xmlhttprequest2.response.blob',\n                        passed: false\n                    });\n                    if (!window.XMLHttpRequest || !window.Blob) return;\n                    var xhr = new window.XMLHttpRequest();\n                    if (typeof xhr.responseType == 'undefined') return;\n                    var done = false;\n                    xhr.onreadystatechange = function() {\n                        if (this.readyState == 4 && !done) {\n                            done = true;\n                            passed = false;\n                            try {\n                                passed = !!(this.response && _instanceof(this.response, Blob));\n                            } catch (e) {}\n                            item.stopBackground();\n                            item.update({\n                                'passed': passed\n                            });\n                        }\n                    };\n                    try {\n                        item.startBackground();\n                        xhr.open(\"GET\", \"/assets/detect.html?\" + Math.random().toString(36).substr(2, 5));\n                        xhr.responseType = \"blob\";\n                        xhr.send();\n                    } catch (e) {\n                        item.stopBackground();\n                    }\n                },\n                /* websockets */ function(results) {\n                    var websocket = window.WebSocket || window.MozWebSocket;\n                    var passed = 'WebSocket' in window ? YES : 'MozWebSocket' in window ? YES | PREFIX : NO;\n                    if (websocket && websocket.CLOSING !== 2) passed |= OLD;\n                    results.addItem({\n                        key: 'communication.websocket.basic',\n                        passed: passed\n                    });\n                },\n                /* binary websockets */ function(results) {\n                    var passed = false;\n                    var protocol = 'https:' == location.protocol ? 'wss' : 'ws';\n                    if (\"WebSocket\" in window) {\n                        if (\"binaryType\" in WebSocket.prototype) {\n                            passed = true;\n                        } else {\n                            try {\n                                passed = !!new WebSocket(protocol + '://.').binaryType;\n                            } catch (e) {}\n                        }\n                    }\n                    results.addItem({\n                        key: 'communication.websocket.binary',\n                        passed: passed\n                    });\n                },\n                /* WebRTC */ function(results) {\n                    results.addItem({\n                        key: 'rtc.webrtc',\n                        passed: !!window.RTCPeerConnection ? YES : !!window.webkitRTCPeerConnection || !!window.mozRTCPeerConnection || !!window.msRTCPeerConnection || !!window.oRTCPeerConnection ? YES | PREFIX : NO\n                    });\n                },\n                /* ObjectRTC */ function(results) {\n                    results.addItem({\n                        key: 'rtc.objectrtc',\n                        passed: !!window.RTCIceTransport ? YES : !!window.webkitRTCIceTransport || !!window.mozRTCIceTransport || !!window.msRTCIceTransport || !!window.oRTCIceTransport ? YES | PREFIX : NO\n                    });\n                },\n                /* Datachannel */ function(results) {\n                    var passed = false;\n                    try {\n                        o = new (window.RTCPeerConnection || window.msRTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection)(null);\n                        passed = 'createDataChannel' in o;\n                    } catch (e) {}\n                    results.addItem({\n                        key: 'rtc.datachannel',\n                        passed: passed ? window.RTCPeerConnection ? YES : YES | PREFIX : NO\n                    });\n                },\n                /* MediaRecorder */ function(results) {\n                    results.addItem({\n                        key: 'rtc.recorder',\n                        passed: 'MediaRecorder' in window\n                    });\n                },\n                /* Draggable */ function(results) {\n                    results.addItem({\n                        key: 'interaction.dragdrop.attributes.draggable',\n                        passed: 'draggable' in document.createElement('div')\n                    });\n                },\n                /* Dropzone */ function(results) {\n                    var element = document.createElement('div');\n                    results.addItem({\n                        key: 'interaction.dragdrop.attributes.dropzone',\n                        passed: 'dropzone' in element ? YES : 'webkitdropzone' in element || 'mozdropzone' in element || 'msdropzone' in element || 'odropzone' in element ? YES | PREFIX : NO\n                    });\n                },\n                /* Drag and drop events */ function(results) {\n                    var passed = 'draggable' in document.createElement('div');\n                    /* We need to check if the draggable attribute is supported, because older versions of IE do\n			   support the incompatible versions of the events below. IE 9 and up do support the HTML5\n			   events in combination with the draggable attribute */ results.addItem({\n                        key: 'interaction.dragdrop.events.ondrag',\n                        passed: isEventSupported('drag') && passed\n                    });\n                    results.addItem({\n                        key: 'interaction.dragdrop.events.ondragstart',\n                        passed: isEventSupported('dragstart') && passed\n                    });\n                    results.addItem({\n                        key: 'interaction.dragdrop.events.ondragenter',\n                        passed: isEventSupported('dragenter') && passed\n                    });\n                    results.addItem({\n                        key: 'interaction.dragdrop.events.ondragover',\n                        passed: isEventSupported('dragover') && passed\n                    });\n                    results.addItem({\n                        key: 'interaction.dragdrop.events.ondragleave',\n                        passed: isEventSupported('dragleave') && passed\n                    });\n                    results.addItem({\n                        key: 'interaction.dragdrop.events.ondragend',\n                        passed: isEventSupported('dragend') && passed\n                    });\n                    results.addItem({\n                        key: 'interaction.dragdrop.events.ondrop',\n                        passed: isEventSupported('drop') && passed\n                    });\n                },\n                /* contentEditable */ function(results) {\n                    results.addItem({\n                        key: 'interaction.editing.elements.contentEditable',\n                        passed: 'contentEditable' in document.createElement('div')\n                    });\n                },\n                /* isContentEditable */ function(results) {\n                    results.addItem({\n                        key: 'interaction.editing.elements.isContentEditable',\n                        passed: 'isContentEditable' in document.createElement('div')\n                    });\n                },\n                /* designMode */ function(results) {\n                    results.addItem({\n                        key: 'interaction.editing.documents.designMode',\n                        passed: 'designMode' in document\n                    });\n                },\n                /* execCommand and queryCommand API */ function(results) {\n                    results.addItem({\n                        key: 'interaction.editing.apis.execCommand',\n                        passed: 'execCommand' in document\n                    });\n                    results.addItem({\n                        key: 'interaction.editing.apis.queryCommandEnabled',\n                        passed: 'queryCommandEnabled' in document\n                    });\n                    results.addItem({\n                        key: 'interaction.editing.apis.queryCommandIndeterm',\n                        passed: 'queryCommandIndeterm' in document\n                    });\n                    results.addItem({\n                        key: 'interaction.editing.apis.queryCommandState',\n                        passed: 'queryCommandState' in document\n                    });\n                    results.addItem({\n                        key: 'interaction.editing.apis.queryCommandSupported',\n                        passed: 'queryCommandSupported' in document\n                    });\n                    results.addItem({\n                        key: 'interaction.editing.apis.queryCommandValue',\n                        passed: 'queryCommandValue' in document\n                    });\n                },\n                /* read-write and read-only selectors */ function(results) {\n                    var selectors = \"read-write read-only\".split(\" \");\n                    var passed = [\n                        NO | UNKNOWN,\n                        NO | UNKNOWN\n                    ];\n                    if ('querySelector' in document) {\n                        var element = document.createElement('div');\n                        element.id = 'testDivElement';\n                        element.contentEditable = true;\n                        document.body.appendChild(element);\n                        var nested = document.createElement('div');\n                        nested.id = 'testDivNested';\n                        nested.contentEditable = false;\n                        element.appendChild(nested);\n                        try {\n                            passed[0] = document.querySelector(\"#testDivElement:read-write\") == element;\n                        } catch (e) {\n                            passed[0] = NO;\n                            try {\n                                passed[0] = document.querySelector(\"#testDivElement:-moz-read-write\") == element ? YES | PREFIX : NO;\n                            } catch (e) {}\n                        }\n                        try {\n                            passed[1] = document.querySelector(\"#testDivNested:read-only\") == nested;\n                        } catch (e) {\n                            passed[1] = NO;\n                            try {\n                                passed[1] = document.querySelector(\"#testDivNested:-moz-read-only\") == nested ? YES | PREFIX : NO;\n                            } catch (e) {}\n                        }\n                        document.body.removeChild(element);\n                    }\n                    for(var i = 0; i < selectors.length; i++){\n                        results.addItem({\n                            key: 'interaction.editing.selectors.' + selectors[i],\n                            passed: passed[i]\n                        });\n                    }\n                },\n                /* ClipboardEvent */ function(results) {\n                    results.addItem({\n                        key: 'interaction.clipboard',\n                        passed: 'ClipboardEvent' in window\n                    });\n                },\n                /* spellcheck */ function(results) {\n                    results.addItem({\n                        key: 'interaction.spellcheck',\n                        passed: 'spellcheck' in document.createElement('div')\n                    });\n                },\n                /* link rel=dns-prefetch */ function(results) {\n                    var link = document.createElement('link');\n                    results.addItem({\n                        key: 'resource.dns-prefetch',\n                        passed: link.relList && link.relList.supports && link.relList.supports('dns-prefetch')\n                    });\n                },\n                /* link rel=prefetch */ function(results) {\n                    var link = document.createElement('link');\n                    results.addItem({\n                        key: 'resource.prefetch',\n                        passed: link.relList && link.relList.supports && link.relList.supports('prefetch')\n                    });\n                },\n                /* link rel=preconnect */ function(results) {\n                    var link = document.createElement('link');\n                    results.addItem({\n                        key: 'resource.preconnect',\n                        passed: link.relList && link.relList.supports && link.relList.supports('preconnect')\n                    });\n                },\n                /* link rel=preload */ function(results) {\n                    var link = document.createElement('link');\n                    results.addItem({\n                        key: 'resource.preload',\n                        passed: link.relList && link.relList.supports && link.relList.supports('preload')\n                    });\n                },\n                /* webassembly */ function(results) {\n                    results.addItem({\n                        key: 'native.webassembly',\n                        passed: 'WebAssembly' in window\n                    });\n                },\n                /* font loader */ function(results) {\n                    results.addItem({\n                        key: 'resource.fontloader',\n                        passed: document.fonts && 'FontFace' in window\n                    });\n                },\n                /* performance timing */ function(results) {\n                    results.addItem({\n                        key: 'resource.performance-timing',\n                        passed: 'performance' in window\n                    });\n                },\n                /* performance observer */ function(results) {\n                    results.addItem({\n                        key: 'resource.performance-observer',\n                        passed: 'PerformanceObserver' in window\n                    });\n                },\n                /* webworker */ function(results) {\n                    results.addItem({\n                        key: 'performance.worker',\n                        passed: !!window.Worker\n                    });\n                },\n                /* sharedworker */ function(results) {\n                    results.addItem({\n                        key: 'performance.sharedWorker',\n                        passed: !!window.SharedWorker\n                    });\n                },\n                /* requestIdleCallback */ function(results) {\n                    results.addItem({\n                        key: 'performance.requestIdleCallback',\n                        passed: 'requestIdleCallback' in window\n                    });\n                },\n                /* crypto */ function(results) {\n                    var passed = NO;\n                    try {\n                        var crypto = window.crypto || window.webkitCrypto || window.mozCrypto || window.msCrypto || window.oCrypto;\n                        var available = window.crypto ? YES : window.mozCrypto || window.msCrypto || window.oCrypto ? YES | PREFIX : NO;\n                        passed = !!crypto && 'subtle' in crypto ? available : !!crypto && 'webkitSubtle' in crypto ? YES | PREFIX : NO;\n                    } catch (e) {}\n                    results.addItem({\n                        key: 'security.crypto',\n                        passed: passed\n                    });\n                },\n                /* csp 1.0 */ function(results) {\n                    var passed = false;\n                    if (navigator.webdriver && Browsers.isBrowser('Firefox', '>', 22)) {\n                        passed = YES | DISABLED;\n                    }\n                    var item = results.addItem({\n                        key: 'security.csp10',\n                        passed: passed\n                    });\n                    window.addEventListener('message', function(e) {\n                        if (e.data === 'csp10:passed') {\n                            item.update({\n                                passed: true\n                            });\n                            item.stopBackground();\n                        }\n                        if (e.data === 'csp10:failed') {\n                            item.stopBackground();\n                        }\n                    }, false);\n                    item.startBackground();\n                    var iframe = document.createElement('iframe');\n                    iframe.src = '/assets/csp.html';\n                    iframe.style.visibility = 'hidden';\n                    document.body.appendChild(iframe);\n                    window.setTimeout(function() {\n                        item.stopBackground();\n                        document.body.removeChild(iframe);\n                    }, 1000);\n                },\n                /* csp 1.1 */ function(results) {\n                    results.addItem({\n                        key: 'security.csp11',\n                        passed: 'SecurityPolicyViolationEvent' in window\n                    });\n                },\n                /* cors */ function(results) {\n                    results.addItem({\n                        key: 'security.cors',\n                        passed: window.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest()\n                    });\n                },\n                /* subresource integrity */ function(results) {\n                    results.addItem({\n                        key: 'security.integrity',\n                        passed: 'integrity' in document.createElement('link')\n                    });\n                },\n                /* postMessage */ function(results) {\n                    results.addItem({\n                        key: 'security.postMessage',\n                        passed: !!window.postMessage\n                    });\n                },\n                /* web authentication */ function(results) {\n                    results.addItem({\n                        key: 'security.authentication',\n                        passed: 'webauthn' in window ? YES : 'msCredentials' in window ? YES | OLD : NO\n                    });\n                },\n                /* credential management */ function(results) {\n                    results.addItem({\n                        key: 'security.credential',\n                        passed: 'credentials' in navigator\n                    });\n                },\n                /* sandboxed iframe */ function(results) {\n                    results.addItem({\n                        key: 'security.sandbox',\n                        passed: 'sandbox' in document.createElement('iframe')\n                    });\n                },\n                /* srcdoc iframe */ function(results) {\n                    results.addItem({\n                        key: 'security.srcdoc',\n                        passed: 'srcdoc' in document.createElement('iframe')\n                    });\n                },\n                /* web payments */ function(results) {\n                    results.addItem({\n                        key: 'payments.payments',\n                        passed: 'PaymentRequest' in window\n                    });\n                },\n                /* history */ function(results) {\n                    results.addItem({\n                        key: 'other.history',\n                        passed: !!(window.history && history.pushState)\n                    });\n                },\n                /* video element */ function(results) {\n                    var element = document.createElement('video');\n                    results.addItem({\n                        key: 'video.element',\n                        passed: !!element.canPlayType\n                    });\n                    /* audioTracks property */ results.addItem({\n                        key: 'video.audiotracks',\n                        passed: 'audioTracks' in element\n                    });\n                    /* videoTracks property */ results.addItem({\n                        key: 'video.videotracks',\n                        passed: 'videoTracks' in element\n                    });\n                    /* subtitles */ results.addItem({\n                        key: 'video.subtitle',\n                        passed: 'track' in document.createElement('track')\n                    });\n                    /* poster */ results.addItem({\n                        key: 'video.poster',\n                        passed: 'poster' in element\n                    });\n                },\n                /* video codecs */ function(results) {\n                    var element = document.createElement('video');\n                    /* mpeg-4 codec */ results.addItem({\n                        key: 'video.codecs.mp4.mpeg4',\n                        passed: !!element.canPlayType && canPlayType(element, 'video/mp4; codecs=\"mp4v.20.8\"')\n                    });\n                    /* h.264 codec */ /* I added a workaround for IE9, which only detects H.264 if you also provide an audio codec. Bug filed @ connect.microsoft.com */ results.addItem({\n                        key: 'video.codecs.mp4.h264',\n                        passed: !!element.canPlayType && (canPlayType(element, 'video/mp4; codecs=\"avc1.42E01E\"') || canPlayType(element, 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'))\n                    });\n                    /* h.265 codec */ results.addItem({\n                        key: 'video.codecs.mp4.h265',\n                        passed: !!element.canPlayType && (canPlayType(element, 'video/mp4; codecs=\"hvc1.1.L0.0\"') || canPlayType(element, 'video/mp4; codecs=\"hev1.1.L0.0\"'))\n                    });\n                    /* theora codec */ results.addItem({\n                        key: 'video.codecs.ogg.theora',\n                        passed: !!element.canPlayType && canPlayType(element, 'video/ogg; codecs=\"theora\"')\n                    });\n                    /* vp8 in webm codec */ results.addItem({\n                        key: 'video.codecs.webm.vp8',\n                        passed: !!element.canPlayType && canPlayType(element, 'video/webm; codecs=\"vp8\"')\n                    });\n                    /* vp9 in webm codec */ results.addItem({\n                        key: 'video.codecs.webm.vp9',\n                        passed: !!element.canPlayType && canPlayType(element, 'video/webm; codecs=\"vp9\"')\n                    });\n                    /* av1 in webm codec */ results.addItem({\n                        key: 'video.codecs.webm.av1',\n                        passed: !!element.canPlayType && canPlayType(element, 'video/webm; codecs=\"av1.experimental.e87fb2378f01103d5d6e477a4ef6892dc714e614\"')\n                    });\n                    /* does codec detection work properly? */ var passed = true;\n                    if (!!element.canPlayType) {\n                        if (element.canPlayType('video/nonsense') == 'no') {\n                            passed = false;\n                            log('BUGGY: Codec detection bug in Firefox 3.5.0 - 3.5.1 and Safari 4.0.0 - 4.0.4 that answer \"no\" to unknown codecs instead of an empty string');\n                        }\n                        if (element.canPlayType('video/webm') == 'probably') {\n                            passed = false;\n                            log('BUGGY: Codec detection bug that Firefox 27 and earlier always says \"probably\" when asked about WebM, even when the codecs string is not present');\n                        }\n                        if (element.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') == 'maybe' && element.canPlayType('video/mp4') == 'probably') {\n                            passed = false;\n                            log('BUGGY: Codec detection bug in iOS 4.1 and earlier that switches \"maybe\" and \"probably\" around');\n                        }\n                        if (element.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') == 'maybe' && element.canPlayType('video/mp4') == 'maybe') {\n                            passed = false;\n                            log('BUGGY: Codec detection bug in Android where no better answer than \"maybe\" is given');\n                        }\n                        if (element.canPlayType('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"') == 'probably' && element.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') != 'probably') {\n                            passed = false;\n                            log('BUGGY: Codec detection bug in Internet Explorer 9 that requires both audio and video codec on test');\n                        }\n                    }\n                    results.addItem({\n                        key: 'video.canplaytype',\n                        passed: element.canPlayType ? passed ? YES : YES | BUGGY : NO\n                    });\n                },\n                /* audio element */ function(results) {\n                    var element = document.createElement('audio');\n                    results.addItem({\n                        key: 'audio.element',\n                        passed: !!element.canPlayType\n                    });\n                    /* loop property */ results.addItem({\n                        key: 'audio.loop',\n                        passed: 'loop' in element\n                    });\n                    /* preload property */ results.addItem({\n                        key: 'audio.preload',\n                        passed: 'preload' in element\n                    });\n                },\n                /* audio codecs */ function(results) {\n                    var element = document.createElement('audio');\n                    /* pcm codec */ results.addItem({\n                        key: 'audio.codecs.pcm',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/wav; codecs=\"1\"')\n                    });\n                    /* mp3 codec */ var r = false;\n                    if (element.canPlayType) {\n                        var t = element.canPlayType('audio/mpeg');\n                        if (t == 'maybe') {\n                            // We need to check if the browser really supports playing MP3s by loading one and seeing if the\n                            // loadedmetadata event is triggered... but for now assume it does support it...\n                            r = true;\n                        } else if (t == 'probably') {\n                            r = true;\n                        }\n                    }\n                    results.addItem({\n                        key: 'audio.codecs.mp3',\n                        passed: r\n                    });\n                    /* aac codec */ results.addItem({\n                        key: 'audio.codecs.mp4.aac',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/mp4; codecs=\"mp4a.40.2\"')\n                    });\n                    /* ac3 codec */ results.addItem({\n                        key: 'audio.codecs.mp4.ac3',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/mp4; codecs=\"ac-3\"')\n                    });\n                    /* enhanced ac3 codec */ results.addItem({\n                        key: 'audio.codecs.mp4.ec3',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/mp4; codecs=\"ec-3\"')\n                    });\n                    /* ogg vorbis codec */ results.addItem({\n                        key: 'audio.codecs.ogg.vorbis',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/ogg; codecs=\"vorbis\"')\n                    });\n                    /* ogg opus codec */ results.addItem({\n                        key: 'audio.codecs.ogg.opus',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/ogg; codecs=\"opus\"')\n                    });\n                    /* ogg flac codec */ results.addItem({\n                        key: 'audio.codecs.ogg.flac',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/ogg; codecs=\"flac\"')\n                    });\n                    /* webm vorbis codec */ results.addItem({\n                        key: 'audio.codecs.webm.vorbis',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/webm; codecs=\"vorbis\"')\n                    });\n                    /* webm opus codec */ results.addItem({\n                        key: 'audio.codecs.webm.opus',\n                        passed: !!element.canPlayType && canPlayType(element, 'audio/webm; codecs=\"opus\"')\n                    });\n                },\n                /* webaudio */ function(results) {\n                    results.addItem({\n                        key: 'audio.webaudio',\n                        passed: 'AudioContext' in window ? YES : 'webkitAudioContext' in window || 'mozAudioContext' in window || 'oAudioContext' in window || 'msAudioContext' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* speech recognition */ function(results) {\n                    results.addItem({\n                        key: 'audio.speechrecognition',\n                        passed: 'SpeechRecognition' in window ? YES : 'webkitSpeechRecognition' in window || 'mozSpeechRecognition' in window || 'oSpeechRecognition' in window || 'msSpeechRecognition' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* speech synthesis */ function(results) {\n                    var speechSynthesis = window.speechSynthesis || window.webkitSpeechSynthesis || window.mozSpeechSynthesis || window.oSpeechSynthesis || window.msSpeechSynthesis;\n                    var available = 'speechSynthesis' in window ? YES : 'webkitSpeechSynthesis' in window || 'mozSpeechSynthesis' in window || 'oSpeechSynthesis' in window || 'msSpeechSynthesis' in window ? YES | PREFIX : NO;\n                    var voices = speechSynthesis ? speechSynthesis.getVoices().length : 0;\n                    var speechItem = results.addItem({\n                        key: 'audio.speechsynthesis',\n                        passed: speechSynthesis && voices ? available : NO\n                    });\n                    if (speechSynthesis && !voices) {\n                        if (speechSynthesis.addEventListener) {\n                            speechItem.startBackground();\n                            speechSynthesis.addEventListener(\"voiceschanged\", function() {\n                                voices = speechSynthesis.getVoices().length;\n                                speechItem.update({\n                                    passed: voices ? available : NO\n                                });\n                                speechItem.stopBackground();\n                            });\n                            window.setTimeout(function() {\n                                speechItem.stopBackground();\n                            }, 1000);\n                        }\n                    }\n                },\n                /* streaming */ function(results) {\n                    var element = document.createElement('video');\n                    /* mediasource */ results.addItem({\n                        key: 'streaming.mediasource',\n                        passed: 'MediaSource' in window ? YES : 'WebKitMediaSource' in window || 'mozMediaSource' in window || 'msMediaSource' in window ? YES | PREFIX : NO\n                    });\n                    /* drm */ results.addItem({\n                        key: 'streaming.drm',\n                        passed: 'setMediaKeys' in element ? YES : 'webkitAddKey' in element || 'webkitSetMediaKeys' in element || 'mozSetMediaKeys' in element || 'msSetMediaKeys' in element ? YES | PREFIX : NO\n                    });\n                    /* dash streaming */ results.addItem({\n                        key: 'streaming.type.dash',\n                        passed: !!element.canPlayType && element.canPlayType('application/dash+xml') != ''\n                    });\n                    /* hls streaming */ results.addItem({\n                        key: 'streaming.type.hls',\n                        passed: !!element.canPlayType && (element.canPlayType('application/vnd.apple.mpegURL') != '' || element.canPlayType('audio/mpegurl') != '')\n                    });\n                },\n                /* streaming video codecs */ function(results) {\n                    /* mpeg-4 in mp4 codec */ results.addItem({\n                        key: 'streaming.video.codecs.mp4.mpeg4',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/mp4; codecs=\"mp4v.20.8\"')\n                    });\n                    /* h.264 in mp4 codec */ results.addItem({\n                        key: 'streaming.video.codecs.mp4.h264',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E\"')\n                    });\n                    /* h.265 in mp4 codec */ results.addItem({\n                        key: 'streaming.video.codecs.mp4.h265',\n                        passed: 'MediaSource' in window && (MediaSource.isTypeSupported('video/mp4; codecs=\"hvc1.1.L0.0\"') || MediaSource.isTypeSupported('video/mp4; codecs=\"hev1.1.L0.0\"'))\n                    });\n                    /* h.264 in ts codec */ results.addItem({\n                        key: 'streaming.video.codecs.ts.h264',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/mp2t; codecs=\"avc1.42E01E\"')\n                    });\n                    /* h.265 in ts codec */ results.addItem({\n                        key: 'streaming.video.codecs.ts.h265',\n                        passed: 'MediaSource' in window && (MediaSource.isTypeSupported('video/mp2t; codecs=\"hvc1.1.L0.0\"') || MediaSource.isTypeSupported('video/mp2t; codecs=\"hev1.1.L0.0\"'))\n                    });\n                    /* theora codec */ results.addItem({\n                        key: 'streaming.video.codecs.ogg.theora',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/ogg; codecs=\"theora\"')\n                    });\n                    /* vp8 in webm codec */ results.addItem({\n                        key: 'streaming.video.codecs.webm.vp8',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/webm; codecs=\"vp8\"')\n                    });\n                    /* vp9 in webm codec */ results.addItem({\n                        key: 'streaming.video.codecs.webm.vp9',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/webm; codecs=\"vp9\"')\n                    });\n                    results.addItem({\n                        key: 'streaming.video.codecs.webm.av1',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('video/webm; codecs=\"av1.experimental.e87fb2378f01103d5d6e477a4ef6892dc714e614\"')\n                    });\n                },\n                /* streaming audio codecs */ function(results) {\n                    /* aac codec in mp4 */ results.addItem({\n                        key: 'streaming.audio.codecs.mp4.aac',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/mp4; codecs=\"mp4a.40.2\"')\n                    });\n                    /* ac3 codec in mp4 */ results.addItem({\n                        key: 'streaming.audio.codecs.mp4.ac3',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/mp4; codecs=\"ac-3\"')\n                    });\n                    /* enhanced ac3 codec in mp4 */ results.addItem({\n                        key: 'streaming.audio.codecs.mp4.ec3',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/mp4; codecs=\"ec-3\"')\n                    });\n                    /* aac codec in mp4 */ results.addItem({\n                        key: 'streaming.audio.codecs.ts.aac',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/mp2t; codecs=\"mp4a.40.2\"')\n                    });\n                    /* ac3 codec in mp4 */ results.addItem({\n                        key: 'streaming.audio.codecs.ts.ac3',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/mp2t; codecs=\"ac-3\"')\n                    });\n                    /* enhanced ac3 codec in mp4 */ results.addItem({\n                        key: 'streaming.audio.codecs.ts.ec3',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/mp2t; codecs=\"ec-3\"')\n                    });\n                    /* vorbis in ogg codec */ results.addItem({\n                        key: 'streaming.audio.codecs.ogg.vorbis',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/ogg; codecs=\"vorbis\"')\n                    });\n                    /* opus in ogg codec */ results.addItem({\n                        key: 'streaming.audio.codecs.ogg.opus',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/ogg; codecs=\"opus\"')\n                    });\n                    /* flac in ogg codec */ results.addItem({\n                        key: 'streaming.audio.codecs.ogg.flac',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/ogg; codecs=\"flac\"')\n                    });\n                    /* vorbis in webm codec */ results.addItem({\n                        key: 'streaming.audio.codecs.webm.vorbis',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/webm; codecs=\"vorbis\"')\n                    });\n                    /* opus in webm codec */ results.addItem({\n                        key: 'streaming.audio.codecs.webm.opus',\n                        passed: 'MediaSource' in window && MediaSource.isTypeSupported('audio/webm; codecs=\"opus\"')\n                    });\n                },\n                /* picture element */ function(results) {\n                    results.addItem({\n                        key: 'responsive.picture',\n                        passed: 'HTMLPictureElement' in window\n                    });\n                },\n                /* srcset attribute */ function(results) {\n                    results.addItem({\n                        key: 'responsive.srcset',\n                        passed: 'srcset' in document.createElement('img')\n                    });\n                },\n                /* sizes attribute */ function(results) {\n                    results.addItem({\n                        key: 'responsive.sizes',\n                        passed: 'sizes' in document.createElement('img')\n                    });\n                },\n                /* svg as image */ function(results) {\n                    var item = results.addItem({\n                        key: 'svg.image',\n                        passed: false\n                    });\n                    var img = new Image();\n                    img.onerror = function() {\n                        item.stopBackground();\n                    };\n                    img.onload = function() {\n                        item.stopBackground();\n                        item.update({\n                            'passed': img.width == 42 && img.height == 42\n                        });\n                    };\n                    img.src = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+';\n                },\n                /* svg rendering */ function(results) {\n                    var element = document.createElement('div');\n                    element.innerHTML = '<svg width=\"42\" height=\"42\" xmlns=\"http://www.w3.org/2000/svg\"></svg>';\n                    document.body.appendChild(element);\n                    var box = element.firstChild ? element.firstChild.getBoundingClientRect() : null;\n                    results.addItem({\n                        key: 'svg.inline',\n                        passed: box && box.width == 42 && box.height == 42\n                    });\n                    document.body.removeChild(element);\n                },\n                /* svg foreign object */ function(results) {\n                    results.addItem({\n                        key: 'svg.foreignobject',\n                        passed: !!(document.createElementNS && typeof SVGForeignObjectElement != 'undefined' && _instanceof(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'), SVGForeignObjectElement))\n                    });\n                },\n                /* svg filters */ function(results) {\n                    results.addItem({\n                        key: 'svg.filters',\n                        passed: 'SVGFEColorMatrixElement' in window && SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE == 2\n                    });\n                },\n                /* canvas element and 2d context */ function(results) {\n                    var canvas = document.createElement('canvas');\n                    results.addItem({\n                        key: 'canvas.context',\n                        passed: !!(canvas.getContext && typeof CanvasRenderingContext2D != 'undefined' && _instanceof(canvas.getContext('2d'), CanvasRenderingContext2D))\n                    });\n                },\n                /* canvas drawing functions */ function(results) {\n                    var canvas = document.createElement('canvas');\n                    /* text support */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = typeof canvas.getContext('2d').fillText == 'function';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.text',\n                        passed: passed\n                    });\n                    /* ellipse support */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = typeof canvas.getContext('2d').ellipse != 'undefined';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.ellipse',\n                        passed: passed\n                    });\n                    /* dashed support */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = typeof canvas.getContext('2d').setLineDash != 'undefined';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.dashed',\n                        passed: passed\n                    });\n                    /* focusring support */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = typeof canvas.getContext('2d').drawFocusIfNeeded != 'undefined';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.focusring',\n                        passed: passed\n                    });\n                    /* hittest support */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = typeof canvas.getContext('2d').addHitRegion != 'undefined';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.hittest',\n                        passed: passed\n                    });\n                },\n                /* path support */ function(results) {\n                    results.addItem({\n                        key: 'canvas.path',\n                        passed: typeof Path2D != \"undefined\" ? YES : typeof Path != \"undefined\" ? YES | OLD : NO\n                    });\n                },\n                /* blending support */ function(results) {\n                    var canvas = document.createElement('canvas');\n                    var passed = false;\n                    if (canvas.getContext) {\n                        canvas.width = 1;\n                        canvas.height = 1;\n                        try {\n                            var ctx = canvas.getContext('2d');\n                            ctx.fillStyle = '#fff';\n                            ctx.fillRect(0, 0, 1, 1);\n                            ctx.globalCompositeOperation = 'screen';\n                            ctx.fillStyle = '#000';\n                            ctx.fillRect(0, 0, 1, 1);\n                            var data = ctx.getImageData(0, 0, 1, 1);\n                            passed = ctx.globalCompositeOperation == 'screen' && data.data[0] == 255;\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.blending',\n                        passed: passed\n                    });\n                },\n                /* export to image format */ function(results) {\n                    var canvas = document.createElement('canvas');\n                    /* export to png */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = canvas.toDataURL('image/png').substring(5, 14) == 'image/png';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.png',\n                        passed: passed\n                    });\n                    /* export to jpeg */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = canvas.toDataURL('image/jpeg').substring(5, 15) == 'image/jpeg';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.jpeg',\n                        passed: passed\n                    });\n                    /* export to jpeg xr */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = canvas.toDataURL('image/vnd.ms-photo').substring(5, 23) == 'image/vnd.ms-photo';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.jpegxr',\n                        passed: passed\n                    });\n                    /* export to webp */ var passed = false;\n                    if (canvas.getContext) {\n                        try {\n                            passed = canvas.toDataURL('image/webp').substring(5, 15) == 'image/webp';\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'canvas.webp',\n                        passed: passed\n                    });\n                },\n                /* offscreen */ function(results) {\n                    var canvas = document.createElement('canvas');\n                    /* bitmap */ results.addItem({\n                        key: 'offscreen.context',\n                        passed: !!(canvas.getContext && typeof ImageBitmapRenderingContext != 'undefined' && _instanceof(canvas.getContext('bitmaprenderer'), ImageBitmapRenderingContext))\n                    });\n                    results.addItem({\n                        key: 'offscreen.bitmap',\n                        passed: 'ImageBitmap' in window\n                    });\n                    /* offscreen canvas */ var passed;\n                    results.addItem({\n                        key: 'offscreen.canvas',\n                        passed: 'OffscreenCanvas' in window\n                    });\n                    passed = false;\n                    if ('OffscreenCanvas' in window) {\n                        try {\n                            var offscreen = new OffscreenCanvas(16, 16);\n                            var context = offscreen.getContext('webgl');\n                            passed = _instanceof(context, WebGLRenderingContext);\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'offscreen.webgl',\n                        passed: passed\n                    });\n                    passed = false;\n                    if ('OffscreenCanvas' in window) {\n                        try {\n                            var offscreen = new OffscreenCanvas(16, 16);\n                            var context = offscreen.getContext('2d');\n                            passed = _instanceof(context, CanvasRenderingContext2D);\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: 'offscreen.2d',\n                        passed: passed\n                    });\n                },\n                /* webgl */ function(results) {\n                    var element = document.createElement('canvas');\n                    var passed = 'WebGLRenderingContext' in window;\n                    var contexts = [\n                        'webgl',\n                        'experimental-webgl',\n                        'ms-webgl',\n                        'moz-webgl',\n                        'opera-3d',\n                        'webkit-3d',\n                        'ms-3d',\n                        '3d'\n                    ];\n                    var context = '';\n                    var enabled = false;\n                    for(var b = -1, len = contexts.length; ++b < len;){\n                        try {\n                            if (element.getContext(contexts[b])) {\n                                context = contexts[b];\n                                enabled = true;\n                                break;\n                            }\n                            ;\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: '3d.webgl',\n                        passed: enabled ? context == 'webgl' ? YES : context == 'experimental-webgl' ? YES | EXPERIMENTAL : YES | PREFIX : passed ? YES | DISABLED : NO\n                    });\n                },\n                /* webgl2 */ function(results) {\n                    var element = document.createElement('canvas');\n                    var contexts = [\n                        'webgl2',\n                        'experimental-webgl2'\n                    ];\n                    var context = '';\n                    var enabled = false;\n                    var passed = 'WebGL2RenderingContext' in window;\n                    for(var b = -1, len = contexts.length; ++b < len;){\n                        try {\n                            if (element.getContext(contexts[b])) {\n                                context = contexts[b];\n                                enabled = true;\n                                break;\n                            }\n                            ;\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: '3d.webgl2',\n                        passed: enabled ? context == 'webgl2' ? YES : context == 'experimental-webgl2' ? YES | EXPERIMENTAL : YES | PREFIX : passed ? YES | DISABLED : NO\n                    });\n                },\n                /* webgpu */ function(results) {\n                    var element = document.createElement('canvas');\n                    var contexts = [\n                        'webgpu',\n                        'experimental-webgpu'\n                    ];\n                    var context = '';\n                    var enabled = false;\n                    var passed = 'WebGPURenderingContext' in window;\n                    for(var b = -1, len = contexts.length; ++b < len;){\n                        try {\n                            if (element.getContext(contexts[b])) {\n                                context = contexts[b];\n                                enabled = true;\n                                break;\n                            }\n                            ;\n                        } catch (e) {}\n                    }\n                    results.addItem({\n                        key: '3d.webgpu',\n                        passed: enabled ? context == 'webgpu' ? YES : context == 'experimental-webgpu' ? YES | EXPERIMENTAL : YES | PREFIX : passed ? YES | DISABLED : NO\n                    });\n                },\n                /* webvr */ function(results) {\n                    results.addItem({\n                        key: '3d.webvr',\n                        passed: 'getVRDisplays' in navigator ? YES : 'mozGetVRDevices' in navigator ? YES | PREFIX : NO\n                    });\n                },\n                /* animation api */ function(results) {\n                    results.addItem({\n                        key: 'animation.webanimation',\n                        passed: 'animate' in document.createElement('div')\n                    });\n                },\n                /* requestAnimationFrame */ function(results) {\n                    results.addItem({\n                        key: 'animation.requestAnimationFrame',\n                        passed: !!window.requestAnimationFrame ? YES : !!window.webkitRequestAnimationFrame || !!window.mozRequestAnimationFrame || !!window.msRequestAnimationFrame || !!window.oRequestAnimationFrame ? YES | PREFIX : NO\n                    });\n                },\n                /* applicationCache */ function(results) {\n                    results.addItem({\n                        key: 'offline.applicationCache',\n                        passed: !!window.applicationCache\n                    });\n                },\n                /* serviceWorker */ function(results) {\n                    results.addItem({\n                        key: 'offline.serviceWorkers',\n                        passed: !!window.navigator.serviceWorker\n                    });\n                },\n                /* serviceWorker */ function(results) {\n                    results.addItem({\n                        key: 'offline.pushMessages',\n                        passed: 'PushManager' in window && 'PushSubscription' in window\n                    });\n                },\n                /* registerProtocolHandler */ function(results) {\n                    results.addItem({\n                        key: 'offline.registerProtocolHandler',\n                        passed: !!window.navigator.registerProtocolHandler\n                    });\n                },\n                /* session storage */ function(results) {\n                    results.addItem({\n                        key: 'storage.sessionStorage',\n                        passed: 'sessionStorage' in window && window.sessionStorage != null\n                    });\n                },\n                /* local storage */ function(results) {\n                    var passed = false;\n                    try {\n                        passed = 'localStorage' in window && window.localStorage != null;\n                    } catch (e) {\n                        /* If we get a security exception we know the feature exists, but cookies are disabled */ if (e.name == 'NS_ERROR_DOM_SECURITY_ERR' || e.name == 'SecurityError') {\n                            passed = YES | DISABLED;\n                        }\n                    }\n                    results.addItem({\n                        key: 'storage.localStorage',\n                        passed: passed\n                    });\n                },\n                /* indexeddb */ function(results) {\n                    var indexedDB;\n                    var passed = false;\n                    try {\n                        indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.moz_indexedDB || window.oIndexedDB || window.msIndexedDB;\n                        passed = !!window.indexedDB ? YES : !!window.webkitIndexedDB || !!window.mozIndexedDB || !!window.moz_indexedDB || !!window.oIndexedDB || !!window.msIndexedDB ? YES | PREFIX : NO;\n                        if (indexedDB && !'deleteDatabase' in indexedDB) {\n                            passed |= BUGGY;\n                            log('BUGGY: missing deleteDatabase function on indexedDB');\n                        }\n                    } catch (e) {\n                        /* If we get a security exception we know the feature exists, but cookies are disabled */ if (e.name == 'NS_ERROR_DOM_SECURITY_ERR' || e.name == 'SecurityError') {\n                            passed = YES | DISABLED;\n                        }\n                    }\n                    results.addItem({\n                        key: 'storage.indexedDB.basic',\n                        passed: passed\n                    });\n                    /* indexeddb blob and arraybuffer storage */ var blobitem = results.addItem({\n                        key: 'storage.indexedDB.blob',\n                        passed: passed & DISABLED || passed & BUGGY ? NO | UNKNOWN : NO\n                    });\n                    var arrayitem = results.addItem({\n                        key: 'storage.indexedDB.arraybuffer',\n                        passed: passed & DISABLED || passed & BUGGY ? NO | UNKNOWN : NO\n                    });\n                    if (indexedDB && 'deleteDatabase' in indexedDB) {\n                        try {\n                            blobitem.startBackground();\n                            arrayitem.startBackground();\n                            var request = indexedDB.deleteDatabase('html5test');\n                            request.onerror = function(e) {\n                                blobitem.stopBackground();\n                                arrayitem.stopBackground();\n                            };\n                            request.onsuccess = function() {\n                                var request = indexedDB.open('html5test', 1);\n                                request.onupgradeneeded = function() {\n                                    request.result.createObjectStore(\"store\");\n                                };\n                                request.onerror = function(event) {\n                                    blobitem.stopBackground();\n                                    arrayitem.stopBackground();\n                                };\n                                request.onsuccess = function() {\n                                    var db = request.result;\n                                    try {\n                                        db.transaction(\"store\", \"readwrite\").objectStore(\"store\").put(new Blob(), \"key\");\n                                        blobitem.update({\n                                            passed: true\n                                        });\n                                    } catch (e) {}\n                                    try {\n                                        db.transaction(\"store\", \"readwrite\").objectStore(\"store\").put(new ArrayBuffer(), \"key\");\n                                        arrayitem.update({\n                                            passed: true\n                                        });\n                                    } catch (e) {}\n                                    blobitem.stopBackground();\n                                    arrayitem.stopBackground();\n                                    db.close();\n                                    indexedDB.deleteDatabase('html5test');\n                                };\n                            };\n                        } catch (e) {\n                            blobitem.stopBackground();\n                            arrayitem.stopBackground();\n                        }\n                    }\n                },\n                /* websql */ function(results) {\n                    results.addItem({\n                        key: 'storage.sqlDatabase',\n                        passed: !!window.openDatabase\n                    });\n                },\n                /* file reader */ function(results) {\n                    results.addItem({\n                        key: 'files.fileReader',\n                        passed: 'FileReader' in window\n                    });\n                    /* file reader as blob */ results.addItem({\n                        key: 'files.fileReader.blob',\n                        passed: 'Blob' in window\n                    });\n                    /* file reader as data url */ results.addItem({\n                        key: 'files.fileReader.dataURL',\n                        passed: 'FileReader' in window && 'readAsDataURL' in new FileReader()\n                    });\n                    /* file reader as array buffer */ results.addItem({\n                        key: 'files.fileReader.arraybuffer',\n                        passed: 'FileReader' in window && 'readAsArrayBuffer' in new FileReader()\n                    });\n                    /* file reader as object url */ results.addItem({\n                        key: 'files.fileReader.objectURL',\n                        passed: 'URL' in window && 'createObjectURL' in URL\n                    });\n                },\n                /* request file system */ function(results) {\n                    results.addItem({\n                        key: 'files.fileSystem',\n                        passed: !!window.requestFileSystem ? YES : !!window.webkitRequestFileSystem || !!window.mozRequestFileSystem || !!window.oRequestFileSystem || !!window.msRequestFileSystem ? YES | PREFIX : NO\n                    });\n                },\n                /* get file system */ function(results) {\n                    results.addItem({\n                        key: 'files.getFileSystem',\n                        passed: !!navigator.getFileSystem ? YES : !!navigator.webkitGetFileSystem || !!navigator.mozGetFileSystem || !!window.msGetFileSystem ? YES | PREFIX : NO\n                    });\n                },\n                /* readable streams */ function(results) {\n                    results.addItem({\n                        key: 'streams.readable',\n                        passed: 'ReadableStream' in window\n                    });\n                },\n                /* writeable streams */ function(results) {\n                    results.addItem({\n                        key: 'streams.writeable',\n                        passed: 'WritableStream' in window\n                    });\n                },\n                /* custom elements */ function(results) {\n                    results.addItem({\n                        key: 'components.custom',\n                        passed: 'customElements' in window ? YES : 'registerElement' in document ? YES | OLD : NO\n                    });\n                },\n                /* shadow dom */ function(results) {\n                    results.addItem({\n                        key: 'components.shadowdom',\n                        passed: 'attachShadow' in document.createElement('div') ? YES : 'createShadowRoot' in document.createElement('div') || 'webkitCreateShadowRoot' in document.createElement('div') ? YES | OLD : NO\n                    });\n                },\n                /* templates */ function(results) {\n                    var passed = false;\n                    try {\n                        passed = 'content' in document.createElement('template');\n                    } catch (error) {}\n                    results.addItem({\n                        key: 'components.template',\n                        passed: passed\n                    });\n                },\n                /* html imports */ function(results) {\n                    results.addItem({\n                        key: 'components.imports',\n                        passed: 'import' in document.createElement('link')\n                    });\n                },\n                /* async scripts */ function(results) {\n                    results.addItem({\n                        key: 'scripting.async',\n                        passed: 'async' in document.createElement('script')\n                    });\n                },\n                /* deferred scripts */ function(results) {\n                    results.addItem({\n                        key: 'scripting.defer',\n                        passed: 'defer' in document.createElement('script')\n                    });\n                },\n                /* script error reporting */ function(results) {\n                    results.addItem({\n                        key: 'scripting.onerror',\n                        passed: isEventSupported('error')\n                    });\n                },\n                /* script execution events */ function(results) {\n                    var executionevents = results.addItem({\n                        key: 'scripting.executionevents',\n                        passed: false\n                    });\n                    executionevents.startBackground();\n                    var before = false;\n                    var s1 = document.createElement('script');\n                    s1.src = \"data:text/javascript;charset=utf-8,window\";\n                    s1.addEventListener('beforescriptexecute', function() {\n                        before = true;\n                    }, true);\n                    s1.addEventListener('afterscriptexecute', function() {\n                        if (before) {\n                            executionevents.update({\n                                passed: true\n                            });\n                        }\n                        executionevents.stopBackground();\n                    }, true);\n                    document.body.appendChild(s1);\n                    window.setTimeout(function() {\n                        executionevents.stopBackground();\n                    }, 500);\n                },\n                /* base64 encoding and decoding */ function(results) {\n                    results.addItem({\n                        key: 'scripting.base64',\n                        passed: 'btoa' in window && 'atob' in window\n                    });\n                },\n                /* mutation observer */ function(results) {\n                    results.addItem({\n                        key: 'scripting.mutationObserver',\n                        passed: 'MutationObserver' in window ? YES : 'WebKitMutationObserver' in window || 'MozMutationObserver' in window || 'oMutationObserver' in window || 'msMutationObserver' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* intersection observer */ function(results) {\n                    results.addItem({\n                        key: 'scripting.intersectionObserver',\n                        passed: 'IntersectionObserver' in window ? YES : 'WebKitIntersectionObserver' in window || 'MozIntersectionObserver' in window || 'msIntersectionObserver' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* resize observer */ function(results) {\n                    results.addItem({\n                        key: 'scripting.resizeObserver',\n                        passed: 'ResizeObserver' in window ? YES : 'WebKitResizeObserver' in window || 'MozResizeObserver' in window || 'msResizeObserver' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* url api */ function(results) {\n                    results.addItem({\n                        key: 'scripting.url',\n                        passed: 'URL' in window ? YES : 'WebKitURL' in window || 'MozURL' in window || 'oURL' in window || 'msURL' in window ? YES | PREFIX : NO\n                    });\n                },\n                /* text encoding api */ function(results) {\n                    results.addItem({\n                        key: 'scripting.encoding',\n                        passed: 'TextEncoder' in window && 'TextDecoder' in window ? YES : NO\n                    });\n                },\n                /* json encoding and decoding */ function(results) {\n                    results.addItem({\n                        key: 'scripting.es5.json',\n                        passed: 'JSON' in window && 'parse' in JSON\n                    });\n                },\n                /* array functions */ function(results) {\n                    var passed = !!(Array.prototype && Array.prototype.every && Array.prototype.filter && Array.prototype.forEach && Array.prototype.indexOf && Array.prototype.lastIndexOf && Array.prototype.map && Array.prototype.some && Array.prototype.reduce && Array.prototype.reduceRight && Array.isArray);\n                    results.addItem({\n                        key: 'scripting.es5.array',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* date functions */ function(results) {\n                    var canParseISODate = false;\n                    try {\n                        canParseISODate = !!Date.parse('2013-04-12T06:06:37.307Z');\n                    } catch (e) {}\n                    var passed = !!(Date.now && Date.prototype && Date.prototype.toISOString && Date.prototype.toJSON && canParseISODate);\n                    results.addItem({\n                        key: 'scripting.es5.date',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* function functions */ function(results) {\n                    var passed = !!(Function.prototype && Function.prototype.bind);\n                    results.addItem({\n                        key: 'scripting.es5.function',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* object functions */ function(results) {\n                    var passed = !!(Object.keys && Object.create && Object.getPrototypeOf && Object.getOwnPropertyNames && Object.isSealed && Object.isFrozen && Object.isExtensible && Object.getOwnPropertyDescriptor && Object.defineProperty && Object.defineProperties && Object.seal && Object.freeze && Object.preventExtensions);\n                    results.addItem({\n                        key: 'scripting.es5.object',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* strict */ function(results) {\n                    var passed = function() {\n                        'use strict';\n                        return !this;\n                    }();\n                    results.addItem({\n                        key: 'scripting.es5.strict',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* string functions */ function(results) {\n                    var passed = !!(String.prototype && String.prototype.trim);\n                    results.addItem({\n                        key: 'scripting.es5.string',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* internationalisation api */ function(results) {\n                    results.addItem({\n                        key: 'scripting.es6.i18n',\n                        passed: 'Intl' in window ? YES : NO\n                    });\n                },\n                /* promises */ function(results) {\n                    var passed = 'Promise' in window ? YES | OLD : NO;\n                    if ('Promise' in window && 'resolve' in window.Promise && 'reject' in window.Promise && 'all' in window.Promise && 'race' in window.Promise && function() {\n                        var resolve;\n                        new window.Promise(function(r) {\n                            resolve = r;\n                        });\n                        return typeof resolve === 'function';\n                    }()) {\n                        passed = YES;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.promises',\n                        passed: passed\n                    });\n                },\n                /* const */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('const a = 1');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.const',\n                        passed: passed\n                    });\n                },\n                /* let */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('let a = 1');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.let',\n                        passed: passed\n                    });\n                },\n                /* arrow functions */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('()=>{}');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.arrow',\n                        passed: passed\n                    });\n                },\n                /* classes */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('class Something {}');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.class',\n                        passed: passed\n                    });\n                },\n                /* generators */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('function* test() {}');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.generators',\n                        passed: passed\n                    });\n                },\n                /* template strings */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('var a = `a`');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.template',\n                        passed: passed\n                    });\n                },\n                /* destructuring */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('var { first: f, last: l } = { first: \"Jane\", last: \"Doe\" }');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.destructuring',\n                        passed: passed\n                    });\n                },\n                /* spread */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('Math.max(...[ 5, 10 ])');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.spread',\n                        passed: passed\n                    });\n                },\n                /* default params */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('function test (one = 1) {}');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es6.defaultparams',\n                        passed: passed\n                    });\n                },\n                /* symbols */ function(results) {\n                    results.addItem({\n                        key: 'scripting.es6.symbol',\n                        passed: typeof Symbol !== 'undefined' ? YES : NO\n                    });\n                },\n                /* collections */ function(results) {\n                    var passed = typeof Map !== 'undefined' && typeof WeakMap !== 'undefined' && typeof Set !== 'undefined' && typeof WeakSet !== 'undefined';\n                    results.addItem({\n                        key: 'scripting.es6.collections',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* array functions */ function(results) {\n                    var passed = typeof Array.prototype.find !== 'undefined' && typeof Array.prototype.findIndex !== 'undefined' && typeof Array.from !== 'undefined' && typeof Array.of !== 'undefined' && typeof Array.prototype.entries !== 'undefined' && typeof Array.prototype.keys !== 'undefined' && typeof Array.prototype.copyWithin !== 'undefined' && typeof Array.prototype.fill !== 'undefined';\n                    results.addItem({\n                        key: 'scripting.es6.array',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* string functions */ function(results) {\n                    var passed = typeof String.fromCodePoint !== 'undefined' && typeof String.raw !== 'undefined' && typeof String.prototype.codePointAt !== 'undefined' && typeof String.prototype.repeat !== 'undefined' && typeof String.prototype.startsWith !== 'undefined' && typeof String.prototype.endsWith !== 'undefined' && typeof String.prototype.includes !== 'undefined';\n                    results.addItem({\n                        key: 'scripting.es6.string',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* number functions */ function(results) {\n                    var passed = !!(Number.isFinite && Number.isInteger && Number.isSafeInteger && Number.isNaN && Number.parseInt && Number.parseFloat && Number.isInteger(Number.MAX_SAFE_INTEGER) && Number.isInteger(Number.MIN_SAFE_INTEGER) && Number.isFinite(Number.EPSILON));\n                    results.addItem({\n                        key: 'scripting.es6.number',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* object functions */ function(results) {\n                    var passed = !!(Object.assign && Object.is && Object.setPrototypeOf);\n                    results.addItem({\n                        key: 'scripting.es6.object',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* math functions */ function(results) {\n                    var passed = !!(Math && Math.clz32 && Math.cbrt && Math.imul && Math.sign && Math.log10 && Math.log2 && Math.log1p && Math.expm1 && Math.cosh && Math.sinh && Math.tanh && Math.acosh && Math.asinh && Math.atanh && Math.hypot && Math.trunc && Math.fround);\n                    results.addItem({\n                        key: 'scripting.es6.math',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* datatypes */ function(results) {\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.ArrayBuffer',\n                        passed: typeof ArrayBuffer != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Int8Array',\n                        passed: typeof Int8Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Uint8Array',\n                        passed: typeof Uint8Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Uint8ClampedArray',\n                        passed: typeof Uint8ClampedArray != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Int16Array',\n                        passed: typeof Int16Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Uint16Array',\n                        passed: typeof Uint16Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Int32Array',\n                        passed: typeof Int32Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Uint32Array',\n                        passed: typeof Uint32Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Float32Array',\n                        passed: typeof Float32Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.Float64Array',\n                        passed: typeof Float64Array != 'undefined'\n                    });\n                    results.addItem({\n                        key: 'scripting.es6.datatypes.DataView',\n                        passed: typeof DataView != 'undefined'\n                    });\n                    var passed = typeof ArrayBuffer != 'undefined' && typeof Int8Array != 'undefined' && typeof Uint8Array != 'undefined' && typeof Uint8ClampedArray != 'undefined' && typeof Int16Array != 'undefined' && typeof Uint16Array != 'undefined' && typeof Int32Array != 'undefined' && typeof Uint32Array != 'undefined' && typeof Float32Array != 'undefined' && typeof Float64Array != 'undefined' && typeof DataView != 'undefined';\n                    results.addItem({\n                        key: 'scripting.es6.datatypes',\n                        passed: passed ? YES : NO\n                    });\n                },\n                /* modules */ function(results) {\n                    var item = results.addItem({\n                        key: 'scripting.es6.modules',\n                        passed: false\n                    });\n                    item.startBackground();\n                    var callback = item.getGlobalCallback(\"es6_modules\", function(scoped) {\n                        item.update({\n                            passed: scoped ? YES : YES | BUGGY\n                        });\n                        if (!scoped) {\n                            log('BUGGY: Non-exported variables are not scoped to the ES6 module');\n                        }\n                        item.stopBackground();\n                    });\n                    var s1 = document.createElement('script');\n                    s1.type = 'module';\n                    s1.src = '/assets/modules.js';\n                    document.body.appendChild(s1);\n                    window.setTimeout(function() {\n                        item.stopBackground();\n                    }, 500);\n                },\n                /* async await api */ function(results) {\n                    var passed = YES;\n                    try {\n                        eval('async function a() { return await Promise.resolve() }');\n                    } catch (e) {\n                        passed = NO;\n                    }\n                    results.addItem({\n                        key: 'scripting.es7.async',\n                        passed: passed\n                    });\n                },\n                /* page visiblity */ function(results) {\n                    results.addItem({\n                        key: 'other.pagevisiblity',\n                        passed: 'visibilityState' in document ? YES : 'webkitVisibilityState' in document || 'mozVisibilityState' in document || 'oVisibilityState' in document || 'msVisibilityState' in document ? YES | PREFIX : NO\n                    });\n                },\n                /* selection */ function(results) {\n                    results.addItem({\n                        key: 'other.getSelection',\n                        passed: !!window.getSelection\n                    });\n                },\n                /* scrollIntoView */ function(results) {\n                    results.addItem({\n                        key: 'other.scrollIntoView',\n                        passed: 'scrollIntoView' in document.createElement('div')\n                    });\n                }\n            ];\n            /* Helper functions */ var isEventSupported = function() {\n                var TAGNAMES = {\n                    'select': 'input',\n                    'change': 'input',\n                    'input': 'input',\n                    'submit': 'form',\n                    'reset': 'form',\n                    'forminput': 'form',\n                    'formchange': 'form',\n                    'error': 'img',\n                    'load': 'img',\n                    'abort': 'img'\n                };\n                function isEventSupported(eventName, element) {\n                    element = element || document.createElement(TAGNAMES[eventName] || 'div');\n                    eventName = 'on' + eventName;\n                    var isSupported = eventName in element;\n                    if (!isSupported) {\n                        if (!element.setAttribute) {\n                            element = document.createElement('div');\n                        }\n                        if (element.setAttribute && element.removeAttribute) {\n                            element.setAttribute(eventName, '');\n                            isSupported = typeof element[eventName] == 'function';\n                            if (typeof element[eventName] != 'undefined') {\n                                element[eventName] = void 0;\n                            }\n                            element.removeAttribute(eventName);\n                        }\n                    }\n                    element = null;\n                    return isSupported;\n                }\n                return isEventSupported;\n            }();\n            var log = function log() {\n                if (typeof console != 'undefined') {\n                    console.log.apply(console, arguments);\n                }\n            };\n            var createInput = function createInput(type) {\n                var field = document.createElement('input');\n                try {\n                    field.setAttribute('type', type);\n                } catch (e) {}\n                return field;\n            };\n            var canPlayType = function canPlayType(element, type) {\n                /*\n			There is a bug in iOS 4.1 or earlier where probably and maybe are switched around.\n			This bug was reported and fixed in iOS 4.2\n		*/ if (Browsers.isOs('iOS', '<', '4.2')) return element.canPlayType(type) == 'probably' || element.canPlayType(type) == 'maybe';\n                else return element.canPlayType(type) == 'probably';\n            };\n            var closesImplicitly = function closesImplicitly(name) {\n                var foo = document.createElement('div');\n                foo.innerHTML = '<p><' + name + '></' + name + '>';\n                return foo.childNodes.length == 2;\n            };\n            var getStyle = function getStyle(element, name) {\n                function camelCase(str) {\n                    return str.replace(/-\\D/g, function(match) {\n                        return match.charAt(1).toUpperCase();\n                    });\n                }\n                if (element.style[name]) {\n                    return element.style[name];\n                } else if (element.currentStyle) {\n                    return element.currentStyle[camelCase(name)];\n                } else if (document.defaultView && document.defaultView.getComputedStyle) {\n                    s = document.defaultView.getComputedStyle(element, \"\");\n                    return s && s.getPropertyValue(name);\n                } else {\n                    return null;\n                }\n            };\n            var isBlock = function isBlock(element) {\n                return getStyle(element, 'display') == 'block';\n            };\n            var isHidden = function isHidden(element) {\n                return getStyle(element, 'display') == 'none';\n            };\n            /* Classes */ function List(parent) {\n                this.initialize(parent);\n            }\n            List.prototype = {\n                initialize: function initialize(parent) {\n                    this.parent = parent;\n                    this.items = [];\n                },\n                addItem: function addItem(data) {\n                    var i = new Item(this, data);\n                    this.items.push(i);\n                    return i;\n                },\n                toString: function toString() {\n                    var value = [];\n                    for(var i = 0; i < this.items.length; i++){\n                        if (typeof this.items[i].data.passed != 'undefined') value.push(this.items[i].data.key + '=' + +this.items[i].data.passed);\n                    }\n                    return value.join(',');\n                }\n            };\n            function Item(list, data) {\n                this.initialize(list, data);\n            }\n            Item.prototype = {\n                initialize: function initialize(list, data) {\n                    this.list = list;\n                    this.data = data;\n                    if (typeof this.data.passed == 'undefined') this.data.passed = false;\n                    if (this.data.passed) {\n                        var blacklist = this.isOnBlacklist();\n                        if (blacklist) {\n                            this.data.passed = blacklist;\n                        }\n                    }\n                },\n                update: function update(data) {\n                    for(var key in data){\n                        this.data[key] = data[key];\n                    }\n                    if (typeof this.data.passed == 'undefined') this.data.passed = false;\n                    if (this.data.passed) {\n                        var blacklist = this.isOnBlacklist();\n                        if (blacklist) {\n                            this.data.passed = blacklist;\n                        }\n                    }\n                },\n                isOnBlacklist: function isOnBlacklist() {\n                    var part = '';\n                    var parts = this.data.key.replace(/\\-/g, '.').split('.');\n                    for(var i = 0; i < parts.length; i++){\n                        part += (i == 0 ? '' : '.') + parts[i];\n                        for(var k = 0; k < blacklists.length; k++){\n                            if (typeof blacklists[k][1][part] != 'undefined') {\n                                if (blacklists[k][1][part]) {\n                                    log('BLOCKED: ' + part + ' is on the blacklist for this browser!');\n                                    return blacklists[k][0];\n                                }\n                            }\n                        }\n                    }\n                    return false;\n                },\n                startBackground: function startBackground() {\n                    this.list.parent.startBackground(this.data.key);\n                },\n                stopBackground: function stopBackground() {\n                    this.list.parent.stopBackground(this.data.key);\n                },\n                getGlobalCallback: function getGlobalCallback(uniqueid, callback) {\n                    if (typeof uniqueid == \"function\") {\n                        callback = uniqueid;\n                        uniqueid = ((1 + Math.random()) * 0x1000000 | 0).toString(16).substring(1);\n                    }\n                    var that = this;\n                    window['callback_' + uniqueid] = function() {\n                        callback.apply(that, arguments);\n                    };\n                    return 'callback_' + uniqueid;\n                }\n            };\n            function Runner(callback, error) {\n                this.initialize(callback, error);\n            }\n            Runner.prototype = {\n                initialize: function initialize(callback, error) {\n                    blacklists = [\n                        [\n                            BLOCKED,\n                            {\n                                'form.file': Browsers.isDevice('Xbox 360') || Browsers.isDevice('Xbox One') || Browsers.isDevice('Playstation 4') || Browsers.isOs('Windows Phone', '<', '8.1') || Browsers.isOs('iOS', '<', '6') || Browsers.isOs('Android', '<', '2.2'),\n                                'form.date.ui': Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('Maxthon', '<', '4.0.5') || Browsers.isBrowser('UC Browser', '<', '8.6') && Browsers.isType('mobile', 'tablet'),\n                                'form.month.ui': Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('Maxthon', '<', '4.0.5') || Browsers.isBrowser('UC Browser', '<', '8.6') && Browsers.isType('mobile', 'tablet'),\n                                'form.week.ui': Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('Maxthon', '<', '4.0.5') || Browsers.isBrowser('UC Browser', '<', '8.6') && Browsers.isType('mobile', 'tablet'),\n                                'form.time.ui': Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('Maxthon', '<', '4.0.5') || Browsers.isBrowser('UC Browser', '<', '8.6') && Browsers.isType('mobile', 'tablet'),\n                                'form.datetime-local.ui': Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('Maxthon', '<', '4.0.5') || Browsers.isBrowser('UC Browser', '<', '8.6') && Browsers.isType('mobile', 'tablet'),\n                                'form.color.ui': Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('UC Browser', '<', '9.8') && Browsers.isType('mobile', 'tablet'),\n                                'form.range.ui': Browsers.isBrowser('UC Browser', '<', '9.8') && Browsers.isType('mobile', 'tablet'),\n                                'form.progress.element': Browsers.isBrowser('Baidu Browser'),\n                                'files.fileSystem': Browsers.isOs('BlackBerry Tablet OS'),\n                                'input.getUserMedia': Browsers.isDevice('webOS TV') || Browsers.isBrowser('Baidu Browser') || Browsers.isBrowser('Sogou Explorer') || Browsers.isBrowser('UC Browser', '<', '9.8') && Browsers.isType('mobile', 'tablet') || Browsers.isBrowser('Dolphin') || Browsers.isBrowser('Safari', '=', '9'),\n                                'input.getGamepads': Browsers.isDevice('webOS TV') || Browsers.isDevice('Playstation 4') || Browsers.isDevice('Wii U'),\n                                'location.geolocation': Browsers.isDevice('webOS TV') || Browsers.isDevice('Xbox One') || Browsers.isBrowser('Baidu Browser') || Browsers.isOs('Google TV'),\n                                'location.orientation': Browsers.isBrowser('Baidu Browser'),\n                                'output.notifications': Browsers.isBrowser('Opera', '=', '18') || Browsers.isBrowser('Baidu Browser') || Browsers.isBrowser('Sogou Explorer'),\n                                'output.requestFullScreen': Browsers.isBrowser('Sogou Explorer') || Browsers.isOs('BlackBerry Tablet OS') || Browsers.isOs('BlackBerry OS'),\n                                'video.subtitle': Browsers.isBrowser('Baidu Browser') || Browsers.isBrowser('Sogou Explorer'),\n                                '3d.webgl': Browsers.isBrowser('Baidu Browser')\n                            }\n                        ],\n                        [\n                            DISABLED,\n                            {\n                                'elements.semantic.ping': Browsers.isBrowser('Firefox') || Browsers.isBrowser('Firefox Mobile')\n                            }\n                        ],\n                        [\n                            UNCONFIRMED,\n                            {\n                                'interaction.dragdrop': !(Browsers.isType('desktop') || Browsers.isType('mobile', 'tablet', 'media') && Browsers.isBrowser('Opera') && Browsers.isEngine('Presto') || Browsers.isType('television') && Browsers.isDevice('webOS TV')),\n                                'interaction.editing': !(Browsers.isType('desktop') || Browsers.isType('mobile', 'tablet', 'media') && (Browsers.isOs('iOS', '>=', '5') || Browsers.isOs('Android', '>=', '4') || Browsers.isOs('Windows Phone', '>=', '7.5') || Browsers.isOs('BlackBerry') || Browsers.isOs('BlackBerry OS') || Browsers.isOs('BlackBerry Tablet OS') || Browsers.isOs('Meego') || Browsers.isOs('Tizen') || Browsers.isEngine('Gecko') || Browsers.isEngine('Presto') || Browsers.isBrowser('Chrome') || Browsers.isBrowser('Polaris', '>=', '8')) || Browsers.isType('television') && (Browsers.isOs('Tizen') || Browsers.isDevice('webOS TV') || Browsers.isBrowser('Espial') || Browsers.isBrowser('MachBlue XT') || Browsers.isEngine('Presto', '>=', '2.9')) || Browsers.isType('gaming') && (Browsers.isDevice('Xbox 360') || Browsers.isDevice('Xbox One') || Browsers.isDevice('Playstation 4')))\n                            }\n                        ]\n                    ];\n                    try {\n                        this.backgroundTasks = [];\n                        this.backgroundIds = {};\n                        this.backgroundId = 0;\n                        this.callback = callback;\n                        this.list = new List(this);\n                        for(var s1 = 0; s1 < testsuite.length; s1++){\n                            testsuite[s1](this.list);\n                        }\n                        this.waitForBackground();\n                    } catch (e) {\n                        error(e);\n                    }\n                },\n                waitForBackground: function waitForBackground() {\n                    var that = this;\n                    window.setTimeout(function() {\n                        that.checkForBackground.call(that);\n                    }, 300);\n                },\n                checkForBackground: function checkForBackground() {\n                    var running = 0;\n                    for(var task = 0; task < this.backgroundTasks.length; task++){\n                        running += this.backgroundTasks[task];\n                    }\n                    if (running) {\n                        this.waitForBackground();\n                    } else {\n                        this.finished();\n                    }\n                },\n                startBackground: function startBackground(id) {\n                    var i = this.backgroundId++;\n                    this.backgroundIds[id] = i;\n                    this.backgroundTasks[i] = 1;\n                },\n                stopBackground: function stopBackground(id) {\n                    this.backgroundTasks[this.backgroundIds[id]] = 0;\n                },\n                finished: function finished() {\n                    var uniqueid = ((1 + Math.random()) * 0x1000000 | 0).toString(16).substring(1) + (\"0000000000\" + (new Date().getTime() - new Date(2010, 0, 1).getTime()).toString(16)).slice(-10);\n                    this.callback({\n                        release: release,\n                        uniqueid: uniqueid,\n                        results: this.list.toString()\n                    });\n                }\n            };\n            return Runner;\n        }();\n        loadWhichBrowser(function() {\n            window.Browsers = new window.WhichBrowser({\n                useFeatures: true,\n                detectCamouflage: true\n            });\n            new Test(function(result) {\n                resolve(result);\n            });\n        });\n    }\n})();\n";
                    document.body.appendChild(script);
                });
            };
            exports.runHtml5Test = runHtml5Test;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Tests/VideoTest.js
    var require_VideoTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Tests/VideoTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            var t = __importStar(require_TestFramework());
            var deviceTestActions_1 = require_deviceTestActions();
            var TEST_DIRECTORY_PATH = "test";
            var host = "https://2.signageos.io/assets";
            var VIDEO1_URI = "".concat(host, "/test-videos-03_AME/video-test-03_15s_1920x1080_2fe7b039750a134aeac1c0a515710007.mp4");
            var VIDEO2_URI = "".concat(host, "/test-videos-04_AME/video-test-04_15s_1920x1080_88f90af5fa281d7efb8eae17848e71d9.mp4");
            var VIDEO_4K_URI = "".concat(host, "/test-videos-02_AME/video-test-02_15s_3840x2160_09c01fa898c80160edde2a1218ac6043.mp4");
            var VIDEO_SMALL_URI = "".concat(host, "/test-videos-03_AME/video-test-03_15s_320x200_5ce761cc9739c9a2d4c55be9ca7a8763.mp4");
            var VIDEO1_FILENAME = "video1.mp4";
            var VIDEO2_FILENAME = "video2.mp4";
            var VIDEO_4K_FILENAME = "video_4k.mp4";
            var VIDEO_SMALL_FILENAME = "video_small.mp4";
            var nativeDriver;
            exports["default"] = function(loadNativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        nativeDriver = loadNativeDriver;
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.VIDEO, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.before("download video files", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var internalStorageUnit, testDirectoryFilePath;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        getInternalStorageUnit()
                                                                    ];
                                                                case 1:
                                                                    internalStorageUnit = _state.sent();
                                                                    testDirectoryFilePath = {
                                                                        storageUnit: internalStorageUnit,
                                                                        filePath: TEST_DIRECTORY_PATH
                                                                    };
                                                                    return [
                                                                        4,
                                                                        nativeDriver.fileSystem.exists(testDirectoryFilePath)
                                                                    ];
                                                                case 2:
                                                                    if (!_state.sent()) return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.fileSystem.deleteFile(testDirectoryFilePath, true)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    _state.label = 4;
                                                                case 4:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.fileSystem.createDirectory(testDirectoryFilePath)
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        Promise.all([
                                                                            downloadVideoFile(VIDEO1_FILENAME, VIDEO1_URI),
                                                                            downloadVideoFile(VIDEO2_FILENAME, VIDEO2_URI),
                                                                            downloadVideoFile(VIDEO_4K_FILENAME, VIDEO_4K_URI),
                                                                            downloadVideoFile(VIDEO_SMALL_FILENAME, VIDEO_SMALL_URI)
                                                                        ])
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                t.after("delete test files", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var internalStorageUnit, testDirectoryFilePath;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        getInternalStorageUnit()
                                                                    ];
                                                                case 1:
                                                                    internalStorageUnit = _state.sent();
                                                                    testDirectoryFilePath = {
                                                                        storageUnit: internalStorageUnit,
                                                                        filePath: TEST_DIRECTORY_PATH
                                                                    };
                                                                    return [
                                                                        4,
                                                                        nativeDriver.fileSystem.deleteFile(testDirectoryFilePath, true)
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                t.afterEach("clear nativeDriver.video", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPrepareVideo", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoFile;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO1_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    videoFile = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.prepare(videoFile.localUri, 0, 0, 1920, 1080)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPrepareMultipleVideos", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoMaxCount, videoFile, i;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    videoMaxCount = nativeDriver.video.getMaxVideoCount();
                                                                    if (videoMaxCount === 1) {
                                                                        t.skip("Only 1 video is supported");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    if (videoMaxCount === null) {
                                                                        t.skip("The max allowed videos is not specified");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_SMALL_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    videoFile = _state.sent();
                                                                    i = 0;
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!(i < videoMaxCount)) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.prepare(videoFile.localUri, i * 100, 0, 100, 100)
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    i++;
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 6:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPrepareVideoFailsWhenAllVideosArePlaying", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoMaxCount, videoFile, i;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    videoMaxCount = nativeDriver.video.getMaxVideoCount();
                                                                    if (videoMaxCount === null) {
                                                                        t.skip("Max video count is not defined");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_SMALL_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    videoFile = _state.sent();
                                                                    i = 0;
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!(i < videoMaxCount)) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(videoFile.localUri, i * 100, 0, 100, 100)
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    i++;
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 6:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.prepare(videoFile.localUri, videoMaxCount * 100, 0, 100, 100).then(function() {
                                                                            t.skip("prepare didn't fail");
                                                                        }, function(_expected) {})
                                                                    ];
                                                                case 7:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 6:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPlayVideo", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoFile, videoEventEmitter;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO1_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    videoFile = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(videoFile.localUri, 0, 0, 1920, 1080)
                                                                    ];
                                                                case 3:
                                                                    videoEventEmitter = _state.sent();
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve, reject) {
                                                                            videoEventEmitter.on("ended", resolve);
                                                                            videoEventEmitter.on("error", function() {
                                                                                return reject(new Error("test video play failed"));
                                                                            });
                                                                        })
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 7:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPrepareAndPlayVideo", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoFile, videoEventEmitter;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO1_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    videoFile = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.prepare(videoFile.localUri, 0, 0, 1920, 1080)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(videoFile.localUri, 0, 0, 1920, 1080)
                                                                    ];
                                                                case 4:
                                                                    videoEventEmitter = _state.sent();
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve, reject) {
                                                                            videoEventEmitter.on("ended", resolve);
                                                                            videoEventEmitter.on("error", function() {
                                                                                return reject(new Error("test video play failed"));
                                                                            });
                                                                        })
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 8:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPlay2Videos", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoMaxCount, video1File, video2File, video1EventEmitter, video2EventEmitter;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    videoMaxCount = nativeDriver.video.getMaxVideoCount();
                                                                    if (videoMaxCount === 1) {
                                                                        t.skip("Only 1 video is supported");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_SMALL_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    video1File = _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_SMALL_FILENAME)
                                                                    ];
                                                                case 3:
                                                                    video2File = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(video1File.localUri, 200, 200, 430, 270)
                                                                    ];
                                                                case 4:
                                                                    video1EventEmitter = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(video2File.localUri, 650, 400, 430, 270)
                                                                    ];
                                                                case 5:
                                                                    video2EventEmitter = _state.sent();
                                                                    return [
                                                                        4,
                                                                        Promise.all([
                                                                            new Promise(function(resolve, reject) {
                                                                                video1EventEmitter.on("ended", resolve);
                                                                                video1EventEmitter.on("error", function() {
                                                                                    return reject(new Error("test video play failed"));
                                                                                });
                                                                            }),
                                                                            new Promise(function(resolve, reject) {
                                                                                video2EventEmitter.on("ended", resolve);
                                                                                video2EventEmitter.on("error", function() {
                                                                                    return reject(new Error("test video play failed"));
                                                                                });
                                                                            })
                                                                        ])
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 9:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPlayTooManyPostponedPlay", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoMaxCount, videoFile, i, extraPlayPromise;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    videoMaxCount = nativeDriver.video.getMaxVideoCount();
                                                                    if (videoMaxCount === null) {
                                                                        t.skip("Max video count is not defined.");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_SMALL_FILENAME)
                                                                    ];
                                                                case 2:
                                                                    videoFile = _state.sent();
                                                                    i = 0;
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!(i < videoMaxCount)) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(videoFile.localUri, i * 100, 0, 100, 100)
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    i++;
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 6:
                                                                    extraPlayPromise = nativeDriver.video.play(videoFile.localUri, videoMaxCount * 100, 0, 100, 100);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.stop(videoFile.localUri, 0, 0, 100, 100)
                                                                    ];
                                                                case 7:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        extraPlayPromise
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 10:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPlay4KVideo", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoFile, videoEventEmitter;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.frontSupports(FrontCapability_1["default"].VIDEO_4K)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip("4K video not supported");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_4K_FILENAME)
                                                                    ];
                                                                case 3:
                                                                    videoFile = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.prepare(videoFile.localUri, 0, 0, 1920, 1080, {
                                                                            "4k": true
                                                                        })
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.play(videoFile.localUri, 0, 0, 1920, 1080)
                                                                    ];
                                                                case 5:
                                                                    videoEventEmitter = _state.sent();
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve, reject) {
                                                                            videoEventEmitter.on("ended", resolve);
                                                                            videoEventEmitter.on("error", function() {
                                                                                return reject(new Error("test video play failed"));
                                                                            });
                                                                        })
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 11:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("testPlay4KFailIfNotSupported", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var videoFile;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.frontSupports(FrontCapability_1["default"].VIDEO_4K)
                                                                    ];
                                                                case 1:
                                                                    if (_state.sent()) {
                                                                        t.skip("4K video is supported");
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.clearAll()
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        getVideoFile(VIDEO_4K_FILENAME)
                                                                    ];
                                                                case 3:
                                                                    videoFile = _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.video.prepare(videoFile.localUri, 0, 0, 1920, 1080, {
                                                                            "4k": true
                                                                        }).then(function() {
                                                                            t.skip("prepare didn't fail");
                                                                        }, function(_expected) {})
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 12:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
            function getInternalStorageUnit() {
                return __awaiter(this, void 0, void 0, function() {
                    var storageUnits, storageUnit;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.fileSystem.listStorageUnits()
                                ];
                            case 1:
                                storageUnits = _state.sent();
                                storageUnit = storageUnits.find(function(su) {
                                    return !su.removable;
                                });
                                return [
                                    2,
                                    storageUnit
                                ];
                        }
                    });
                });
            }
            function downloadVideoFile(filename, uri) {
                return __awaiter(this, void 0, void 0, function() {
                    var internalStorageUnit, downloadPath, downloadFilePath, videoFile;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getInternalStorageUnit()
                                ];
                            case 1:
                                internalStorageUnit = _state.sent();
                                downloadPath = "".concat(TEST_DIRECTORY_PATH, "/").concat(filename);
                                downloadFilePath = {
                                    storageUnit: internalStorageUnit,
                                    filePath: downloadPath
                                };
                                return [
                                    4,
                                    nativeDriver.fileSystem.downloadFile(downloadFilePath, uri)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    nativeDriver.fileSystem.getFile(downloadFilePath)
                                ];
                            case 3:
                                videoFile = _state.sent();
                                if (!videoFile) {
                                    throw new Error("Failed to download video file");
                                }
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function getVideoFile(filename) {
                return __awaiter(this, void 0, void 0, function() {
                    var internalStorageUnit, filePathString, filePath, videoFile;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getInternalStorageUnit()
                                ];
                            case 1:
                                internalStorageUnit = _state.sent();
                                filePathString = "".concat(TEST_DIRECTORY_PATH, "/").concat(filename);
                                filePath = {
                                    storageUnit: internalStorageUnit,
                                    filePath: filePathString
                                };
                                return [
                                    4,
                                    nativeDriver.fileSystem.getFile(filePath)
                                ];
                            case 2:
                                videoFile = _state.sent();
                                if (!videoFile) {
                                    throw new Error("Failed to download video file");
                                }
                                return [
                                    2,
                                    videoFile
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Tests/WeinreTest.js
    var require_WeinreTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Tests/WeinreTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var t = __importStar(require_TestFramework());
            var deviceTestActions_1 = require_deviceTestActions();
            var deviceDebugHelper_1 = require_deviceDebugHelper();
            exports["default"] = function(global2) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.WEINRE, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("should open connection to weinre server", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            (0, deviceDebugHelper_1.startWeinreDebug)(global2);
                                                            return [
                                                                2
                                                            ];
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Touch/touchSaga.js
    var require_touchSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Touch/touchSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.touchSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var sendAppletMessage_1 = require_sendAppletMessage();
            var motionActions_1 = require_motionActions();
            var channels_1 = require_channels();
            var GestureAction_1 = __importDefault(require_GestureAction());
            var touchGestureResolver_1 = require_touchGestureResolver();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Touch:touchSaga");
            function touchSaga(messageTypePrefix, getState, getNativeDriver, window2) {
                var touchEventChannel;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            touchEventChannel = createTouchEventChannel(window2);
                            return [
                                4,
                                (0, channels_1.takeEvery)(touchEventChannel, function(event) {
                                    var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, gesture, err, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    9,
                                                    ,
                                                    10
                                                ]);
                                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    6,
                                                    7,
                                                    8
                                                ]);
                                                _iterator = (0, touchGestureResolver_1.handleTouch)(event.type)[Symbol.iterator]();
                                                _state.label = 2;
                                            case 2:
                                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                    3,
                                                    5
                                                ];
                                                gesture = _step.value;
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: motionActions_1.HandleMotion,
                                                        gestureAction: GestureAction_1["default"][gesture]
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                _iteratorNormalCompletion = true;
                                                return [
                                                    3,
                                                    2
                                                ];
                                            case 5:
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 6:
                                                err = _state.sent();
                                                _didIteratorError = true;
                                                _iteratorError = err;
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 7:
                                                try {
                                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                        _iterator["return"]();
                                                    }
                                                } finally{
                                                    if (_didIteratorError) {
                                                        throw _iteratorError;
                                                    }
                                                }
                                                return [
                                                    7
                                                ];
                                            case 8:
                                                return [
                                                    3,
                                                    10
                                                ];
                                            case 9:
                                                error = _state.sent();
                                                debug4("event ignored", event);
                                                return [
                                                    3,
                                                    10
                                                ];
                                            case 10:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            getNativeDriver().forwardTouchEvents(function(data) {
                                debug4("Touch event received: ", data.x, data.y);
                                (0, sendAppletMessage_1.sendMessageToActiveAppletIfExists)(window2, getState, Object.assign(Object.assign({}, data), {
                                    type: messageTypePrefix + ".touch.propagate"
                                }));
                            });
                            return [
                                2
                            ];
                    }
                });
            }
            exports.touchSaga = touchSaga;
            function createTouchEventChannel(window2) {
                var messageChannel = (0, channels_1.createChannel)();
                window2.addEventListener("touchstart", function(event) {
                    return messageChannel.put(event);
                });
                window2.addEventListener("touchend", function(event) {
                    return messageChannel.put(event);
                });
                window2.addEventListener("touchcancel", function(event) {
                    return messageChannel.put(event);
                });
                window2.addEventListener("touchmove", function(event) {
                    return messageChannel.put(event);
                });
                return messageChannel;
            }
        }
    });
    // node_modules/@signageos/actions/dist/Supra/Screen/supraScreenActions.js
    var require_supraScreenActions = __commonJS({
        "node_modules/@signageos/actions/dist/Supra/Screen/supraScreenActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateSupraScreenConfig = exports.GetSupraScreenConfig = void 0;
            exports.GetSupraScreenConfig = "Supra.Screen.GetSupraScreenConfig";
            exports.UpdateSupraScreenConfig = "Supra.Screen.UpdateSupraScreenConfig";
        }
    });
    // node_modules/lodash/_listCacheClear.js
    var require_listCacheClear = __commonJS({
        "node_modules/lodash/_listCacheClear.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function listCacheClear() {
                this.__data__ = [];
                this.size = 0;
            }
            module.exports = listCacheClear;
        }
    });
    // node_modules/lodash/eq.js
    var require_eq = __commonJS({
        "node_modules/lodash/eq.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function eq(value, other) {
                return value === other || value !== value && other !== other;
            }
            module.exports = eq;
        }
    });
    // node_modules/lodash/_assocIndexOf.js
    var require_assocIndexOf = __commonJS({
        "node_modules/lodash/_assocIndexOf.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var eq = require_eq();
            function assocIndexOf(array4, key) {
                var length = array4.length;
                while(length--){
                    if (eq(array4[length][0], key)) {
                        return length;
                    }
                }
                return -1;
            }
            module.exports = assocIndexOf;
        }
    });
    // node_modules/lodash/_listCacheDelete.js
    var require_listCacheDelete = __commonJS({
        "node_modules/lodash/_listCacheDelete.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assocIndexOf = require_assocIndexOf();
            var arrayProto = Array.prototype;
            var splice = arrayProto.splice;
            function listCacheDelete(key) {
                var data = this.__data__, index = assocIndexOf(data, key);
                if (index < 0) {
                    return false;
                }
                var lastIndex = data.length - 1;
                if (index == lastIndex) {
                    data.pop();
                } else {
                    splice.call(data, index, 1);
                }
                --this.size;
                return true;
            }
            module.exports = listCacheDelete;
        }
    });
    // node_modules/lodash/_listCacheGet.js
    var require_listCacheGet = __commonJS({
        "node_modules/lodash/_listCacheGet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assocIndexOf = require_assocIndexOf();
            function listCacheGet(key) {
                var data = this.__data__, index = assocIndexOf(data, key);
                return index < 0 ? void 0 : data[index][1];
            }
            module.exports = listCacheGet;
        }
    });
    // node_modules/lodash/_listCacheHas.js
    var require_listCacheHas = __commonJS({
        "node_modules/lodash/_listCacheHas.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assocIndexOf = require_assocIndexOf();
            function listCacheHas(key) {
                return assocIndexOf(this.__data__, key) > -1;
            }
            module.exports = listCacheHas;
        }
    });
    // node_modules/lodash/_listCacheSet.js
    var require_listCacheSet = __commonJS({
        "node_modules/lodash/_listCacheSet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var assocIndexOf = require_assocIndexOf();
            function listCacheSet(key, value) {
                var data = this.__data__, index = assocIndexOf(data, key);
                if (index < 0) {
                    ++this.size;
                    data.push([
                        key,
                        value
                    ]);
                } else {
                    data[index][1] = value;
                }
                return this;
            }
            module.exports = listCacheSet;
        }
    });
    // node_modules/lodash/_ListCache.js
    var require_ListCache = __commonJS({
        "node_modules/lodash/_ListCache.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var listCacheClear = require_listCacheClear();
            var listCacheDelete = require_listCacheDelete();
            var listCacheGet = require_listCacheGet();
            var listCacheHas = require_listCacheHas();
            var listCacheSet = require_listCacheSet();
            function ListCache(entries) {
                var index = -1, length = entries == null ? 0 : entries.length;
                this.clear();
                while(++index < length){
                    var entry = entries[index];
                    this.set(entry[0], entry[1]);
                }
            }
            ListCache.prototype.clear = listCacheClear;
            ListCache.prototype["delete"] = listCacheDelete;
            ListCache.prototype.get = listCacheGet;
            ListCache.prototype.has = listCacheHas;
            ListCache.prototype.set = listCacheSet;
            module.exports = ListCache;
        }
    });
    // node_modules/lodash/_stackClear.js
    var require_stackClear = __commonJS({
        "node_modules/lodash/_stackClear.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ListCache = require_ListCache();
            function stackClear() {
                this.__data__ = new ListCache();
                this.size = 0;
            }
            module.exports = stackClear;
        }
    });
    // node_modules/lodash/_stackDelete.js
    var require_stackDelete = __commonJS({
        "node_modules/lodash/_stackDelete.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function stackDelete(key) {
                var data = this.__data__, result17 = data["delete"](key);
                this.size = data.size;
                return result17;
            }
            module.exports = stackDelete;
        }
    });
    // node_modules/lodash/_stackGet.js
    var require_stackGet = __commonJS({
        "node_modules/lodash/_stackGet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function stackGet(key) {
                return this.__data__.get(key);
            }
            module.exports = stackGet;
        }
    });
    // node_modules/lodash/_stackHas.js
    var require_stackHas = __commonJS({
        "node_modules/lodash/_stackHas.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function stackHas(key) {
                return this.__data__.has(key);
            }
            module.exports = stackHas;
        }
    });
    // node_modules/lodash/isObject.js
    var require_isObject = __commonJS({
        "node_modules/lodash/isObject.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function isObject2(value) {
                var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                return value != null && (type == "object" || type == "function");
            }
            module.exports = isObject2;
        }
    });
    // node_modules/lodash/isFunction.js
    var require_isFunction = __commonJS({
        "node_modules/lodash/isFunction.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseGetTag = require_baseGetTag();
            var isObject2 = require_isObject();
            var asyncTag = "[object AsyncFunction]";
            var funcTag = "[object Function]";
            var genTag = "[object GeneratorFunction]";
            var proxyTag = "[object Proxy]";
            function isFunction(value) {
                if (!isObject2(value)) {
                    return false;
                }
                var tag2 = baseGetTag(value);
                return tag2 == funcTag || tag2 == genTag || tag2 == asyncTag || tag2 == proxyTag;
            }
            module.exports = isFunction;
        }
    });
    // node_modules/lodash/_coreJsData.js
    var require_coreJsData = __commonJS({
        "node_modules/lodash/_coreJsData.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var root = require_root();
            var coreJsData = root["__core-js_shared__"];
            module.exports = coreJsData;
        }
    });
    // node_modules/lodash/_isMasked.js
    var require_isMasked = __commonJS({
        "node_modules/lodash/_isMasked.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var coreJsData = require_coreJsData();
            var maskSrcKey = function() {
                var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
                return uid ? "Symbol(src)_1." + uid : "";
            }();
            function isMasked(func3) {
                return !!maskSrcKey && maskSrcKey in func3;
            }
            module.exports = isMasked;
        }
    });
    // node_modules/lodash/_toSource.js
    var require_toSource = __commonJS({
        "node_modules/lodash/_toSource.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var funcProto = Function.prototype;
            var funcToString = funcProto.toString;
            function toSource(func3) {
                if (func3 != null) {
                    try {
                        return funcToString.call(func3);
                    } catch (e) {}
                    try {
                        return func3 + "";
                    } catch (e) {}
                }
                return "";
            }
            module.exports = toSource;
        }
    });
    // node_modules/lodash/_baseIsNative.js
    var require_baseIsNative = __commonJS({
        "node_modules/lodash/_baseIsNative.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isFunction = require_isFunction();
            var isMasked = require_isMasked();
            var isObject2 = require_isObject();
            var toSource = require_toSource();
            var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
            var reIsHostCtor = /^\[object .+?Constructor\]$/;
            var funcProto = Function.prototype;
            var objectProto = Object.prototype;
            var funcToString = funcProto.toString;
            var hasOwnProperty = objectProto.hasOwnProperty;
            var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
            function baseIsNative(value) {
                if (!isObject2(value) || isMasked(value)) {
                    return false;
                }
                var pattern2 = isFunction(value) ? reIsNative : reIsHostCtor;
                return pattern2.test(toSource(value));
            }
            module.exports = baseIsNative;
        }
    });
    // node_modules/lodash/_getValue.js
    var require_getValue = __commonJS({
        "node_modules/lodash/_getValue.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function getValue(object, key) {
                return object == null ? void 0 : object[key];
            }
            module.exports = getValue;
        }
    });
    // node_modules/lodash/_getNative.js
    var require_getNative = __commonJS({
        "node_modules/lodash/_getNative.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseIsNative = require_baseIsNative();
            var getValue = require_getValue();
            function getNative(object, key) {
                var value = getValue(object, key);
                return baseIsNative(value) ? value : void 0;
            }
            module.exports = getNative;
        }
    });
    // node_modules/lodash/_Map.js
    var require_Map = __commonJS({
        "node_modules/lodash/_Map.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getNative = require_getNative();
            var root = require_root();
            var Map2 = getNative(root, "Map");
            module.exports = Map2;
        }
    });
    // node_modules/lodash/_nativeCreate.js
    var require_nativeCreate = __commonJS({
        "node_modules/lodash/_nativeCreate.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getNative = require_getNative();
            var nativeCreate = getNative(Object, "create");
            module.exports = nativeCreate;
        }
    });
    // node_modules/lodash/_hashClear.js
    var require_hashClear = __commonJS({
        "node_modules/lodash/_hashClear.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var nativeCreate = require_nativeCreate();
            function hashClear() {
                this.__data__ = nativeCreate ? nativeCreate(null) : {};
                this.size = 0;
            }
            module.exports = hashClear;
        }
    });
    // node_modules/lodash/_hashDelete.js
    var require_hashDelete = __commonJS({
        "node_modules/lodash/_hashDelete.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function hashDelete(key) {
                var result17 = this.has(key) && delete this.__data__[key];
                this.size -= result17 ? 1 : 0;
                return result17;
            }
            module.exports = hashDelete;
        }
    });
    // node_modules/lodash/_hashGet.js
    var require_hashGet = __commonJS({
        "node_modules/lodash/_hashGet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var nativeCreate = require_nativeCreate();
            var HASH_UNDEFINED = "__lodash_hash_undefined__";
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            function hashGet(key) {
                var data = this.__data__;
                if (nativeCreate) {
                    var result17 = data[key];
                    return result17 === HASH_UNDEFINED ? void 0 : result17;
                }
                return hasOwnProperty.call(data, key) ? data[key] : void 0;
            }
            module.exports = hashGet;
        }
    });
    // node_modules/lodash/_hashHas.js
    var require_hashHas = __commonJS({
        "node_modules/lodash/_hashHas.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var nativeCreate = require_nativeCreate();
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            function hashHas(key) {
                var data = this.__data__;
                return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
            }
            module.exports = hashHas;
        }
    });
    // node_modules/lodash/_hashSet.js
    var require_hashSet = __commonJS({
        "node_modules/lodash/_hashSet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var nativeCreate = require_nativeCreate();
            var HASH_UNDEFINED = "__lodash_hash_undefined__";
            function hashSet(key, value) {
                var data = this.__data__;
                this.size += this.has(key) ? 0 : 1;
                data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
                return this;
            }
            module.exports = hashSet;
        }
    });
    // node_modules/lodash/_Hash.js
    var require_Hash = __commonJS({
        "node_modules/lodash/_Hash.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var hashClear = require_hashClear();
            var hashDelete = require_hashDelete();
            var hashGet = require_hashGet();
            var hashHas = require_hashHas();
            var hashSet = require_hashSet();
            function Hash(entries) {
                var index = -1, length = entries == null ? 0 : entries.length;
                this.clear();
                while(++index < length){
                    var entry = entries[index];
                    this.set(entry[0], entry[1]);
                }
            }
            Hash.prototype.clear = hashClear;
            Hash.prototype["delete"] = hashDelete;
            Hash.prototype.get = hashGet;
            Hash.prototype.has = hashHas;
            Hash.prototype.set = hashSet;
            module.exports = Hash;
        }
    });
    // node_modules/lodash/_mapCacheClear.js
    var require_mapCacheClear = __commonJS({
        "node_modules/lodash/_mapCacheClear.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Hash = require_Hash();
            var ListCache = require_ListCache();
            var Map2 = require_Map();
            function mapCacheClear() {
                this.size = 0;
                this.__data__ = {
                    hash: new Hash(),
                    map: new (Map2 || ListCache)(),
                    string: new Hash()
                };
            }
            module.exports = mapCacheClear;
        }
    });
    // node_modules/lodash/_isKeyable.js
    var require_isKeyable = __commonJS({
        "node_modules/lodash/_isKeyable.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function isKeyable(value) {
                var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
            }
            module.exports = isKeyable;
        }
    });
    // node_modules/lodash/_getMapData.js
    var require_getMapData = __commonJS({
        "node_modules/lodash/_getMapData.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isKeyable = require_isKeyable();
            function getMapData(map, key) {
                var data = map.__data__;
                return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
            }
            module.exports = getMapData;
        }
    });
    // node_modules/lodash/_mapCacheDelete.js
    var require_mapCacheDelete = __commonJS({
        "node_modules/lodash/_mapCacheDelete.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getMapData = require_getMapData();
            function mapCacheDelete(key) {
                var result17 = getMapData(this, key)["delete"](key);
                this.size -= result17 ? 1 : 0;
                return result17;
            }
            module.exports = mapCacheDelete;
        }
    });
    // node_modules/lodash/_mapCacheGet.js
    var require_mapCacheGet = __commonJS({
        "node_modules/lodash/_mapCacheGet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getMapData = require_getMapData();
            function mapCacheGet(key) {
                return getMapData(this, key).get(key);
            }
            module.exports = mapCacheGet;
        }
    });
    // node_modules/lodash/_mapCacheHas.js
    var require_mapCacheHas = __commonJS({
        "node_modules/lodash/_mapCacheHas.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getMapData = require_getMapData();
            function mapCacheHas(key) {
                return getMapData(this, key).has(key);
            }
            module.exports = mapCacheHas;
        }
    });
    // node_modules/lodash/_mapCacheSet.js
    var require_mapCacheSet = __commonJS({
        "node_modules/lodash/_mapCacheSet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getMapData = require_getMapData();
            function mapCacheSet(key, value) {
                var data = getMapData(this, key), size = data.size;
                data.set(key, value);
                this.size += data.size == size ? 0 : 1;
                return this;
            }
            module.exports = mapCacheSet;
        }
    });
    // node_modules/lodash/_MapCache.js
    var require_MapCache = __commonJS({
        "node_modules/lodash/_MapCache.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var mapCacheClear = require_mapCacheClear();
            var mapCacheDelete = require_mapCacheDelete();
            var mapCacheGet = require_mapCacheGet();
            var mapCacheHas = require_mapCacheHas();
            var mapCacheSet = require_mapCacheSet();
            function MapCache(entries) {
                var index = -1, length = entries == null ? 0 : entries.length;
                this.clear();
                while(++index < length){
                    var entry = entries[index];
                    this.set(entry[0], entry[1]);
                }
            }
            MapCache.prototype.clear = mapCacheClear;
            MapCache.prototype["delete"] = mapCacheDelete;
            MapCache.prototype.get = mapCacheGet;
            MapCache.prototype.has = mapCacheHas;
            MapCache.prototype.set = mapCacheSet;
            module.exports = MapCache;
        }
    });
    // node_modules/lodash/_stackSet.js
    var require_stackSet = __commonJS({
        "node_modules/lodash/_stackSet.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ListCache = require_ListCache();
            var Map2 = require_Map();
            var MapCache = require_MapCache();
            var LARGE_ARRAY_SIZE = 200;
            function stackSet(key, value) {
                var data = this.__data__;
                if (data instanceof ListCache) {
                    var pairs = data.__data__;
                    if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
                        pairs.push([
                            key,
                            value
                        ]);
                        this.size = ++data.size;
                        return this;
                    }
                    data = this.__data__ = new MapCache(pairs);
                }
                data.set(key, value);
                this.size = data.size;
                return this;
            }
            module.exports = stackSet;
        }
    });
    // node_modules/lodash/_Stack.js
    var require_Stack = __commonJS({
        "node_modules/lodash/_Stack.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var ListCache = require_ListCache();
            var stackClear = require_stackClear();
            var stackDelete = require_stackDelete();
            var stackGet = require_stackGet();
            var stackHas = require_stackHas();
            var stackSet = require_stackSet();
            function Stack(entries) {
                var data = this.__data__ = new ListCache(entries);
                this.size = data.size;
            }
            Stack.prototype.clear = stackClear;
            Stack.prototype["delete"] = stackDelete;
            Stack.prototype.get = stackGet;
            Stack.prototype.has = stackHas;
            Stack.prototype.set = stackSet;
            module.exports = Stack;
        }
    });
    // node_modules/lodash/_setCacheAdd.js
    var require_setCacheAdd = __commonJS({
        "node_modules/lodash/_setCacheAdd.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var HASH_UNDEFINED = "__lodash_hash_undefined__";
            function setCacheAdd(value) {
                this.__data__.set(value, HASH_UNDEFINED);
                return this;
            }
            module.exports = setCacheAdd;
        }
    });
    // node_modules/lodash/_setCacheHas.js
    var require_setCacheHas = __commonJS({
        "node_modules/lodash/_setCacheHas.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function setCacheHas(value) {
                return this.__data__.has(value);
            }
            module.exports = setCacheHas;
        }
    });
    // node_modules/lodash/_SetCache.js
    var require_SetCache = __commonJS({
        "node_modules/lodash/_SetCache.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var MapCache = require_MapCache();
            var setCacheAdd = require_setCacheAdd();
            var setCacheHas = require_setCacheHas();
            function SetCache(values) {
                var index = -1, length = values == null ? 0 : values.length;
                this.__data__ = new MapCache();
                while(++index < length){
                    this.add(values[index]);
                }
            }
            SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
            SetCache.prototype.has = setCacheHas;
            module.exports = SetCache;
        }
    });
    // node_modules/lodash/_arraySome.js
    var require_arraySome = __commonJS({
        "node_modules/lodash/_arraySome.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function arraySome(array4, predicate3) {
                var index = -1, length = array4 == null ? 0 : array4.length;
                while(++index < length){
                    if (predicate3(array4[index], index, array4)) {
                        return true;
                    }
                }
                return false;
            }
            module.exports = arraySome;
        }
    });
    // node_modules/lodash/_cacheHas.js
    var require_cacheHas = __commonJS({
        "node_modules/lodash/_cacheHas.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function cacheHas(cache, key) {
                return cache.has(key);
            }
            module.exports = cacheHas;
        }
    });
    // node_modules/lodash/_equalArrays.js
    var require_equalArrays = __commonJS({
        "node_modules/lodash/_equalArrays.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var SetCache = require_SetCache();
            var arraySome = require_arraySome();
            var cacheHas = require_cacheHas();
            var COMPARE_PARTIAL_FLAG = 1;
            var COMPARE_UNORDERED_FLAG = 2;
            function equalArrays(array4, other, bitmask, customizer, equalFunc, stack) {
                var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array4.length, othLength = other.length;
                if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
                    return false;
                }
                var arrStacked = stack.get(array4);
                var othStacked = stack.get(other);
                if (arrStacked && othStacked) {
                    return arrStacked == other && othStacked == array4;
                }
                var index = -1, result17 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0;
                stack.set(array4, other);
                stack.set(other, array4);
                while(++index < arrLength){
                    var arrValue = array4[index], othValue = other[index];
                    if (customizer) {
                        var compared = isPartial ? customizer(othValue, arrValue, index, other, array4, stack) : customizer(arrValue, othValue, index, array4, other, stack);
                    }
                    if (compared !== void 0) {
                        if (compared) {
                            continue;
                        }
                        result17 = false;
                        break;
                    }
                    if (seen) {
                        if (!arraySome(other, function(othValue2, othIndex) {
                            if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
                                return seen.push(othIndex);
                            }
                        })) {
                            result17 = false;
                            break;
                        }
                    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
                        result17 = false;
                        break;
                    }
                }
                stack["delete"](array4);
                stack["delete"](other);
                return result17;
            }
            module.exports = equalArrays;
        }
    });
    // node_modules/lodash/_Uint8Array.js
    var require_Uint8Array = __commonJS({
        "node_modules/lodash/_Uint8Array.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var root = require_root();
            var Uint8Array2 = root.Uint8Array;
            module.exports = Uint8Array2;
        }
    });
    // node_modules/lodash/_mapToArray.js
    var require_mapToArray = __commonJS({
        "node_modules/lodash/_mapToArray.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function mapToArray(map) {
                var index = -1, result17 = Array(map.size);
                map.forEach(function(value, key) {
                    result17[++index] = [
                        key,
                        value
                    ];
                });
                return result17;
            }
            module.exports = mapToArray;
        }
    });
    // node_modules/lodash/_setToArray.js
    var require_setToArray = __commonJS({
        "node_modules/lodash/_setToArray.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function setToArray(set) {
                var index = -1, result17 = Array(set.size);
                set.forEach(function(value) {
                    result17[++index] = value;
                });
                return result17;
            }
            module.exports = setToArray;
        }
    });
    // node_modules/lodash/_equalByTag.js
    var require_equalByTag = __commonJS({
        "node_modules/lodash/_equalByTag.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Symbol2 = require_Symbol();
            var Uint8Array2 = require_Uint8Array();
            var eq = require_eq();
            var equalArrays = require_equalArrays();
            var mapToArray = require_mapToArray();
            var setToArray = require_setToArray();
            var COMPARE_PARTIAL_FLAG = 1;
            var COMPARE_UNORDERED_FLAG = 2;
            var boolTag = "[object Boolean]";
            var dateTag = "[object Date]";
            var errorTag = "[object Error]";
            var mapTag = "[object Map]";
            var numberTag = "[object Number]";
            var regexpTag = "[object RegExp]";
            var setTag = "[object Set]";
            var stringTag = "[object String]";
            var symbolTag = "[object Symbol]";
            var arrayBufferTag = "[object ArrayBuffer]";
            var dataViewTag = "[object DataView]";
            var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
            var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
            function equalByTag(object, other, tag2, bitmask, customizer, equalFunc, stack) {
                switch(tag2){
                    case dataViewTag:
                        if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
                            return false;
                        }
                        object = object.buffer;
                        other = other.buffer;
                    case arrayBufferTag:
                        if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
                            return false;
                        }
                        return true;
                    case boolTag:
                    case dateTag:
                    case numberTag:
                        return eq(+object, +other);
                    case errorTag:
                        return object.name == other.name && object.message == other.message;
                    case regexpTag:
                    case stringTag:
                        return object == other + "";
                    case mapTag:
                        var convert = mapToArray;
                    case setTag:
                        var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
                        convert || (convert = setToArray);
                        if (object.size != other.size && !isPartial) {
                            return false;
                        }
                        var stacked = stack.get(object);
                        if (stacked) {
                            return stacked == other;
                        }
                        bitmask |= COMPARE_UNORDERED_FLAG;
                        stack.set(object, other);
                        var result17 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
                        stack["delete"](object);
                        return result17;
                    case symbolTag:
                        if (symbolValueOf) {
                            return symbolValueOf.call(object) == symbolValueOf.call(other);
                        }
                }
                return false;
            }
            module.exports = equalByTag;
        }
    });
    // node_modules/lodash/_arrayPush.js
    var require_arrayPush = __commonJS({
        "node_modules/lodash/_arrayPush.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function arrayPush(array4, values) {
                var index = -1, length = values.length, offset = array4.length;
                while(++index < length){
                    array4[offset + index] = values[index];
                }
                return array4;
            }
            module.exports = arrayPush;
        }
    });
    // node_modules/lodash/isArray.js
    var require_isArray = __commonJS({
        "node_modules/lodash/isArray.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isArray = Array.isArray;
            module.exports = isArray;
        }
    });
    // node_modules/lodash/_baseGetAllKeys.js
    var require_baseGetAllKeys = __commonJS({
        "node_modules/lodash/_baseGetAllKeys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var arrayPush = require_arrayPush();
            var isArray = require_isArray();
            function baseGetAllKeys(object, keysFunc, symbolsFunc) {
                var result17 = keysFunc(object);
                return isArray(object) ? result17 : arrayPush(result17, symbolsFunc(object));
            }
            module.exports = baseGetAllKeys;
        }
    });
    // node_modules/lodash/_arrayFilter.js
    var require_arrayFilter = __commonJS({
        "node_modules/lodash/_arrayFilter.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function arrayFilter(array4, predicate3) {
                var index = -1, length = array4 == null ? 0 : array4.length, resIndex = 0, result17 = [];
                while(++index < length){
                    var value = array4[index];
                    if (predicate3(value, index, array4)) {
                        result17[resIndex++] = value;
                    }
                }
                return result17;
            }
            module.exports = arrayFilter;
        }
    });
    // node_modules/lodash/stubArray.js
    var require_stubArray = __commonJS({
        "node_modules/lodash/stubArray.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function stubArray() {
                return [];
            }
            module.exports = stubArray;
        }
    });
    // node_modules/lodash/_getSymbols.js
    var require_getSymbols = __commonJS({
        "node_modules/lodash/_getSymbols.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var arrayFilter = require_arrayFilter();
            var stubArray = require_stubArray();
            var objectProto = Object.prototype;
            var propertyIsEnumerable = objectProto.propertyIsEnumerable;
            var nativeGetSymbols = Object.getOwnPropertySymbols;
            var getSymbols = !nativeGetSymbols ? stubArray : function getSymbols(object) {
                if (object == null) {
                    return [];
                }
                object = Object(object);
                return arrayFilter(nativeGetSymbols(object), function(symbol5) {
                    return propertyIsEnumerable.call(object, symbol5);
                });
            };
            module.exports = getSymbols;
        }
    });
    // node_modules/lodash/_baseTimes.js
    var require_baseTimes = __commonJS({
        "node_modules/lodash/_baseTimes.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function baseTimes(n, iteratee) {
                var index = -1, result17 = Array(n);
                while(++index < n){
                    result17[index] = iteratee(index);
                }
                return result17;
            }
            module.exports = baseTimes;
        }
    });
    // node_modules/lodash/_baseIsArguments.js
    var require_baseIsArguments = __commonJS({
        "node_modules/lodash/_baseIsArguments.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseGetTag = require_baseGetTag();
            var isObjectLike2 = require_isObjectLike();
            var argsTag = "[object Arguments]";
            function baseIsArguments(value) {
                return isObjectLike2(value) && baseGetTag(value) == argsTag;
            }
            module.exports = baseIsArguments;
        }
    });
    // node_modules/lodash/isArguments.js
    var require_isArguments = __commonJS({
        "node_modules/lodash/isArguments.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseIsArguments = require_baseIsArguments();
            var isObjectLike2 = require_isObjectLike();
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            var propertyIsEnumerable = objectProto.propertyIsEnumerable;
            var isArguments = baseIsArguments(/* @__PURE__ */ function() {
                return arguments;
            }()) ? baseIsArguments : function isArguments(value) {
                return isObjectLike2(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
            };
            module.exports = isArguments;
        }
    });
    // node_modules/lodash/stubFalse.js
    var require_stubFalse = __commonJS({
        "node_modules/lodash/stubFalse.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function stubFalse() {
                return false;
            }
            module.exports = stubFalse;
        }
    });
    // node_modules/lodash/isBuffer.js
    var require_isBuffer = __commonJS({
        "node_modules/lodash/isBuffer.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var root = require_root();
            var stubFalse = require_stubFalse();
            var freeExports = (typeof exports === "undefined" ? "undefined" : _type_of(exports)) == "object" && exports && !exports.nodeType && exports;
            var freeModule = freeExports && (typeof module === "undefined" ? "undefined" : _type_of(module)) == "object" && module && !module.nodeType && module;
            var moduleExports = freeModule && freeModule.exports === freeExports;
            var Buffer3 = moduleExports ? root.Buffer : void 0;
            var nativeIsBuffer = Buffer3 ? Buffer3.isBuffer : void 0;
            var isBuffer = nativeIsBuffer || stubFalse;
            module.exports = isBuffer;
        }
    });
    // node_modules/lodash/_isIndex.js
    var require_isIndex = __commonJS({
        "node_modules/lodash/_isIndex.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var MAX_SAFE_INTEGER = 9007199254740991;
            var reIsUint = /^(?:0|[1-9]\d*)$/;
            function isIndex(value, length) {
                var type = typeof value === "undefined" ? "undefined" : _type_of(value);
                length = length == null ? MAX_SAFE_INTEGER : length;
                return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
            }
            module.exports = isIndex;
        }
    });
    // node_modules/lodash/isLength.js
    var require_isLength = __commonJS({
        "node_modules/lodash/isLength.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var MAX_SAFE_INTEGER = 9007199254740991;
            function isLength(value) {
                return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
            }
            module.exports = isLength;
        }
    });
    // node_modules/lodash/_baseIsTypedArray.js
    var require_baseIsTypedArray = __commonJS({
        "node_modules/lodash/_baseIsTypedArray.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseGetTag = require_baseGetTag();
            var isLength = require_isLength();
            var isObjectLike2 = require_isObjectLike();
            var argsTag = "[object Arguments]";
            var arrayTag = "[object Array]";
            var boolTag = "[object Boolean]";
            var dateTag = "[object Date]";
            var errorTag = "[object Error]";
            var funcTag = "[object Function]";
            var mapTag = "[object Map]";
            var numberTag = "[object Number]";
            var objectTag = "[object Object]";
            var regexpTag = "[object RegExp]";
            var setTag = "[object Set]";
            var stringTag = "[object String]";
            var weakMapTag = "[object WeakMap]";
            var arrayBufferTag = "[object ArrayBuffer]";
            var dataViewTag = "[object DataView]";
            var float32Tag = "[object Float32Array]";
            var float64Tag = "[object Float64Array]";
            var int8Tag = "[object Int8Array]";
            var int16Tag = "[object Int16Array]";
            var int32Tag = "[object Int32Array]";
            var uint8Tag = "[object Uint8Array]";
            var uint8ClampedTag = "[object Uint8ClampedArray]";
            var uint16Tag = "[object Uint16Array]";
            var uint32Tag = "[object Uint32Array]";
            var typedArrayTags = {};
            typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
            typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
            function baseIsTypedArray(value) {
                return isObjectLike2(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
            }
            module.exports = baseIsTypedArray;
        }
    });
    // node_modules/lodash/_baseUnary.js
    var require_baseUnary = __commonJS({
        "node_modules/lodash/_baseUnary.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function baseUnary(func3) {
                return function(value) {
                    return func3(value);
                };
            }
            module.exports = baseUnary;
        }
    });
    // node_modules/lodash/_nodeUtil.js
    var require_nodeUtil = __commonJS({
        "node_modules/lodash/_nodeUtil.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var freeGlobal = require_freeGlobal();
            var freeExports = (typeof exports === "undefined" ? "undefined" : _type_of(exports)) == "object" && exports && !exports.nodeType && exports;
            var freeModule = freeExports && (typeof module === "undefined" ? "undefined" : _type_of(module)) == "object" && module && !module.nodeType && module;
            var moduleExports = freeModule && freeModule.exports === freeExports;
            var freeProcess = moduleExports && freeGlobal.process;
            var nodeUtil = function() {
                try {
                    var types2 = freeModule && freeModule.require && freeModule.require("util").types;
                    if (types2) {
                        return types2;
                    }
                    return freeProcess && freeProcess.binding && freeProcess.binding("util");
                } catch (e) {}
            }();
            module.exports = nodeUtil;
        }
    });
    // node_modules/lodash/isTypedArray.js
    var require_isTypedArray = __commonJS({
        "node_modules/lodash/isTypedArray.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseIsTypedArray = require_baseIsTypedArray();
            var baseUnary = require_baseUnary();
            var nodeUtil = require_nodeUtil();
            var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
            var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
            module.exports = isTypedArray;
        }
    });
    // node_modules/lodash/_arrayLikeKeys.js
    var require_arrayLikeKeys = __commonJS({
        "node_modules/lodash/_arrayLikeKeys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseTimes = require_baseTimes();
            var isArguments = require_isArguments();
            var isArray = require_isArray();
            var isBuffer = require_isBuffer();
            var isIndex = require_isIndex();
            var isTypedArray = require_isTypedArray();
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            function arrayLikeKeys(value, inherited) {
                var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result17 = skipIndexes ? baseTimes(value.length, String) : [], length = result17.length;
                for(var key in value){
                    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
                    (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
                    isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
                    isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
                    isIndex(key, length)))) {
                        result17.push(key);
                    }
                }
                return result17;
            }
            module.exports = arrayLikeKeys;
        }
    });
    // node_modules/lodash/_isPrototype.js
    var require_isPrototype = __commonJS({
        "node_modules/lodash/_isPrototype.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var objectProto = Object.prototype;
            function isPrototype(value) {
                var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
                return value === proto;
            }
            module.exports = isPrototype;
        }
    });
    // node_modules/lodash/_nativeKeys.js
    var require_nativeKeys = __commonJS({
        "node_modules/lodash/_nativeKeys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var overArg = require_overArg();
            var nativeKeys = overArg(Object.keys, Object);
            module.exports = nativeKeys;
        }
    });
    // node_modules/lodash/_baseKeys.js
    var require_baseKeys = __commonJS({
        "node_modules/lodash/_baseKeys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isPrototype = require_isPrototype();
            var nativeKeys = require_nativeKeys();
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            function baseKeys(object) {
                if (!isPrototype(object)) {
                    return nativeKeys(object);
                }
                var result17 = [];
                for(var key in Object(object)){
                    if (hasOwnProperty.call(object, key) && key != "constructor") {
                        result17.push(key);
                    }
                }
                return result17;
            }
            module.exports = baseKeys;
        }
    });
    // node_modules/lodash/isArrayLike.js
    var require_isArrayLike = __commonJS({
        "node_modules/lodash/isArrayLike.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var isFunction = require_isFunction();
            var isLength = require_isLength();
            function isArrayLike(value) {
                return value != null && isLength(value.length) && !isFunction(value);
            }
            module.exports = isArrayLike;
        }
    });
    // node_modules/lodash/keys.js
    var require_keys2 = __commonJS({
        "node_modules/lodash/keys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var arrayLikeKeys = require_arrayLikeKeys();
            var baseKeys = require_baseKeys();
            var isArrayLike = require_isArrayLike();
            function keys(object) {
                return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
            }
            module.exports = keys;
        }
    });
    // node_modules/lodash/_getAllKeys.js
    var require_getAllKeys = __commonJS({
        "node_modules/lodash/_getAllKeys.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseGetAllKeys = require_baseGetAllKeys();
            var getSymbols = require_getSymbols();
            var keys = require_keys2();
            function getAllKeys(object) {
                return baseGetAllKeys(object, keys, getSymbols);
            }
            module.exports = getAllKeys;
        }
    });
    // node_modules/lodash/_equalObjects.js
    var require_equalObjects = __commonJS({
        "node_modules/lodash/_equalObjects.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getAllKeys = require_getAllKeys();
            var COMPARE_PARTIAL_FLAG = 1;
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
                var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
                if (objLength != othLength && !isPartial) {
                    return false;
                }
                var index = objLength;
                while(index--){
                    var key = objProps[index];
                    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
                        return false;
                    }
                }
                var objStacked = stack.get(object);
                var othStacked = stack.get(other);
                if (objStacked && othStacked) {
                    return objStacked == other && othStacked == object;
                }
                var result17 = true;
                stack.set(object, other);
                stack.set(other, object);
                var skipCtor = isPartial;
                while(++index < objLength){
                    key = objProps[index];
                    var objValue = object[key], othValue = other[key];
                    if (customizer) {
                        var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
                    }
                    if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
                        result17 = false;
                        break;
                    }
                    skipCtor || (skipCtor = key == "constructor");
                }
                if (result17 && !skipCtor) {
                    var objCtor = object.constructor, othCtor = other.constructor;
                    if (objCtor != othCtor && "constructor" in object && "constructor" in other && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
                        result17 = false;
                    }
                }
                stack["delete"](object);
                stack["delete"](other);
                return result17;
            }
            module.exports = equalObjects;
        }
    });
    // node_modules/lodash/_DataView.js
    var require_DataView = __commonJS({
        "node_modules/lodash/_DataView.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getNative = require_getNative();
            var root = require_root();
            var DataView2 = getNative(root, "DataView");
            module.exports = DataView2;
        }
    });
    // node_modules/lodash/_Promise.js
    var require_Promise = __commonJS({
        "node_modules/lodash/_Promise.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getNative = require_getNative();
            var root = require_root();
            var Promise2 = getNative(root, "Promise");
            module.exports = Promise2;
        }
    });
    // node_modules/lodash/_Set.js
    var require_Set = __commonJS({
        "node_modules/lodash/_Set.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getNative = require_getNative();
            var root = require_root();
            var Set2 = getNative(root, "Set");
            module.exports = Set2;
        }
    });
    // node_modules/lodash/_WeakMap.js
    var require_WeakMap = __commonJS({
        "node_modules/lodash/_WeakMap.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var getNative = require_getNative();
            var root = require_root();
            var WeakMap2 = getNative(root, "WeakMap");
            module.exports = WeakMap2;
        }
    });
    // node_modules/lodash/_getTag.js
    var require_getTag = __commonJS({
        "node_modules/lodash/_getTag.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var DataView2 = require_DataView();
            var Map2 = require_Map();
            var Promise2 = require_Promise();
            var Set2 = require_Set();
            var WeakMap2 = require_WeakMap();
            var baseGetTag = require_baseGetTag();
            var toSource = require_toSource();
            var mapTag = "[object Map]";
            var objectTag = "[object Object]";
            var promiseTag = "[object Promise]";
            var setTag = "[object Set]";
            var weakMapTag = "[object WeakMap]";
            var dataViewTag = "[object DataView]";
            var dataViewCtorString = toSource(DataView2);
            var mapCtorString = toSource(Map2);
            var promiseCtorString = toSource(Promise2);
            var setCtorString = toSource(Set2);
            var weakMapCtorString = toSource(WeakMap2);
            var getTag = baseGetTag;
            if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
                getTag = function getTag(value) {
                    var result17 = baseGetTag(value), Ctor = result17 == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
                    if (ctorString) {
                        switch(ctorString){
                            case dataViewCtorString:
                                return dataViewTag;
                            case mapCtorString:
                                return mapTag;
                            case promiseCtorString:
                                return promiseTag;
                            case setCtorString:
                                return setTag;
                            case weakMapCtorString:
                                return weakMapTag;
                        }
                    }
                    return result17;
                };
            }
            module.exports = getTag;
        }
    });
    // node_modules/lodash/_baseIsEqualDeep.js
    var require_baseIsEqualDeep = __commonJS({
        "node_modules/lodash/_baseIsEqualDeep.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var Stack = require_Stack();
            var equalArrays = require_equalArrays();
            var equalByTag = require_equalByTag();
            var equalObjects = require_equalObjects();
            var getTag = require_getTag();
            var isArray = require_isArray();
            var isBuffer = require_isBuffer();
            var isTypedArray = require_isTypedArray();
            var COMPARE_PARTIAL_FLAG = 1;
            var argsTag = "[object Arguments]";
            var arrayTag = "[object Array]";
            var objectTag = "[object Object]";
            var objectProto = Object.prototype;
            var hasOwnProperty = objectProto.hasOwnProperty;
            function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
                var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
                objTag = objTag == argsTag ? objectTag : objTag;
                othTag = othTag == argsTag ? objectTag : othTag;
                var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
                if (isSameTag && isBuffer(object)) {
                    if (!isBuffer(other)) {
                        return false;
                    }
                    objIsArr = true;
                    objIsObj = false;
                }
                if (isSameTag && !objIsObj) {
                    stack || (stack = new Stack());
                    return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
                }
                if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
                    var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
                    if (objIsWrapped || othIsWrapped) {
                        var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
                        stack || (stack = new Stack());
                        return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
                    }
                }
                if (!isSameTag) {
                    return false;
                }
                stack || (stack = new Stack());
                return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
            }
            module.exports = baseIsEqualDeep;
        }
    });
    // node_modules/lodash/_baseIsEqual.js
    var require_baseIsEqual = __commonJS({
        "node_modules/lodash/_baseIsEqual.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseIsEqualDeep = require_baseIsEqualDeep();
            var isObjectLike2 = require_isObjectLike();
            function baseIsEqual(value, other, bitmask, customizer, stack) {
                if (value === other) {
                    return true;
                }
                if (value == null || other == null || !isObjectLike2(value) && !isObjectLike2(other)) {
                    return value !== value && other !== other;
                }
                return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
            }
            module.exports = baseIsEqual;
        }
    });
    // node_modules/lodash/isEqual.js
    var require_isEqual = __commonJS({
        "node_modules/lodash/isEqual.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var baseIsEqual = require_baseIsEqual();
            function isEqual(value, other) {
                return baseIsEqual(value, other);
            }
            module.exports = isEqual;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Supra/supraModeSagas.js
    var require_supraModeSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Supra/supraModeSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.supraModeSagas = void 0;
            var appletActions_1 = require_appletActions();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var socketActionCreator_1 = require_socketActionCreator();
            var supraScreenActions_1 = require_supraScreenActions();
            var dependencyInjection_1 = require_dependencyInjection();
            var supraConstants_1 = require_supraConstants();
            var authenticationActions_1 = require_authenticationActions();
            var Property_1 = __importDefault(require_Property());
            var isEqual_1 = __importDefault(require_isEqual());
            var appletTimingActions_1 = require_appletTimingActions();
            function supraModeSagas(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(dependencyInjection_1.injectDependencies, {
                                    supraRuntimeState: null
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: supraScreenActions_1.GetSupraScreenConfig
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(supraScreenActions_1.UpdateSupraScreenConfig, function(action) {
                                    var newConfig, oldConfig, configChanged, hasServers, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                newConfig = {
                                                    servers: action.servers
                                                };
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    6,
                                                    ,
                                                    8
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.call)(propertyStorage.getValueOrDefault, Property_1["default"].SUPRA_SCREEN_CONFIG, null)
                                                ];
                                            case 2:
                                                oldConfig = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.call)(propertyStorage.setValue, Property_1["default"].SUPRA_SCREEN_CONFIG, newConfig)
                                                ];
                                            case 3:
                                                _state.sent();
                                                configChanged = !(0, isEqual_1["default"])(oldConfig, newConfig);
                                                hasServers = action.servers.length > 0;
                                                if (!(configChanged && hasServers)) return [
                                                    3,
                                                    5
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: appletTimingActions_1.ReevaluateActiveAppletBinary
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                _state.label = 5;
                                            case 5:
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 6:
                                                error = _state.sent();
                                                console.error("Failed to evaluate supra config change", error);
                                                return [
                                                    4,
                                                    (0, effects_1.call)(propertyStorage.setValue, Property_1["default"].SUPRA_SCREEN_CONFIG, newConfig)
                                                ];
                                            case 7:
                                                _state.sent();
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 8:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletActions_1.UpdateActiveAppletBinary, function(action) {
                                    var _a2, config;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!(action.activeAppletUid === supraConstants_1.SUPRA_APPLET_UID)) return [
                                                    3,
                                                    2
                                                ];
                                                config = action.activeConfiguration;
                                                return [
                                                    4,
                                                    (0, effects_1.call)(dependencyInjection_1.injectDependencies, {
                                                        frontPowerActionsDisabled: true,
                                                        supraRuntimeState: {
                                                            isActive: true,
                                                            connection: {
                                                                hostname: (_a2 = config.hostname) !== null && _a2 !== void 0 ? _a2 : "",
                                                                secure: config.secure === 1,
                                                                appName: config.appName,
                                                                extraArgs: config.extraArgs,
                                                                clientID: config.clientID,
                                                                supraScreenAppletVersion: action.activeAppletVersion
                                                            }
                                                        }
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 2:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(dependencyInjection_1.injectDependencies, {
                                                        frontPowerActionsDisabled: false,
                                                        supraRuntimeState: {
                                                            isActive: false
                                                        }
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(appletActions_1.LastActiveAppletMissed, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(dependencyInjection_1.injectDependencies, {
                                                        frontPowerActionsDisabled: false,
                                                        supraRuntimeState: {
                                                            isActive: false
                                                        }
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.supraModeSagas = supraModeSagas;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Telemetry/deviceTelemetrySagas.js
    var require_deviceTelemetrySagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Telemetry/deviceTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createFrontDeviceTelemetrySaga = void 0;
            var deviceTelemetryActions_1 = require_deviceTelemetryActions();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var wait_1 = __importDefault(require_wait());
            var lodash_1 = __importDefault(require_lodash());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var telemetryIntervals_1 = require_telemetryIntervals();
            var dependencyInjection_1 = require_dependencyInjection();
            var Property_1 = __importDefault(require_Property());
            var socketActionDeliverHelper_1 = require_socketActionDeliverHelper();
            var constants_1 = require_constants();
            var appletActions_1 = require_appletActions();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Device:Telemetry:deviceTelemetrySagas");
            var createFrontDeviceTelemetrySaga = function(type, requiredCapabilities, getSettings) {
                return (0, dependencyInjection_1.withDependencies)([
                    "telemetryIntervals",
                    "frontDriver",
                    "propertyStorage"
                ], function(param) {
                    var telemetryIntervals, frontDriver, propertyStorage, _a2, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, capability, supported, err, succeedAction, telemetryIntervalType, periodMs;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                telemetryIntervals = param.telemetryIntervals, frontDriver = param.frontDriver, propertyStorage = param.propertyStorage;
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    6,
                                    7,
                                    8
                                ]);
                                _iterator = requiredCapabilities[Symbol.iterator]();
                                _state.label = 2;
                            case 2:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    5
                                ];
                                capability = _step.value;
                                return [
                                    4,
                                    frontDriver.frontSupports(capability)
                                ];
                            case 3:
                                supported = _state.sent();
                                if (!supported) {
                                    return [
                                        2
                                    ];
                                }
                                _state.label = 4;
                            case 4:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    2
                                ];
                            case 5:
                                return [
                                    3,
                                    8
                                ];
                            case 6:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    8
                                ];
                            case 7:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 8:
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(Property_1["default"].TELEMETRY_INVALIDATION, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    debug4("Received telemetry invalidation for ".concat(type, ", forcing telemetry update"));
                                                    return [
                                                        4,
                                                        forceTelemetryUpdate(type, getSettings, propertyStorage)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 9:
                                _state.sent();
                                succeedAction = convertTypeToAction(type);
                                if (!succeedAction) return [
                                    3,
                                    11
                                ];
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(succeedAction, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    debug4("Received ".concat(succeedAction, " action, forcing telemetry update for ").concat(type));
                                                    return [
                                                        4,
                                                        forceTelemetryUpdate(type, getSettings, propertyStorage)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 10:
                                _state.sent();
                                _state.label = 11;
                            case 11:
                                telemetryIntervalType = convertTelemetryTypeToIntervalType(type);
                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals[telemetryIntervalType]) !== null && _a2 !== void 0 ? _a2 : 0;
                                return [
                                    4,
                                    (0, deviceTelemetryHelper_1.registerTelemetry)(type, periodMs, function() {
                                        var error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        2,
                                                        ,
                                                        3
                                                    ]);
                                                    return [
                                                        5,
                                                        _ts_values(__yieldStar(getSettingsAndSendItWhenChanged(type, getSettings, propertyStorage)))
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 2:
                                                    error = _state.sent();
                                                    console.error("reporting device settings ".concat(type, " failed"), error);
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 3:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 12:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.createFrontDeviceTelemetrySaga = createFrontDeviceTelemetrySaga;
            function getSettingsAndSendItWhenChanged(type, getSettings, propertyStorage) {
                var property, cachedDeviceSettings, currentDeviceSettings, isDeviceSettingsChanged, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                6,
                                ,
                                7
                            ]);
                            property = getTelemetryPropertyName(type, "LATEST_REPORTED_SETTINGS");
                            return [
                                4,
                                propertyStorage.getValueOrDefault(property, void 0)
                            ];
                        case 1:
                            cachedDeviceSettings = _state.sent();
                            return [
                                4,
                                getSettings()
                            ];
                        case 2:
                            currentDeviceSettings = _state.sent();
                            isDeviceSettingsChanged = !lodash_1["default"].isEqual(cachedDeviceSettings, currentDeviceSettings);
                            if (!isDeviceSettingsChanged) return [
                                3,
                                5
                            ];
                            return [
                                4,
                                (0, socketActionDeliverHelper_1.deliver)({
                                    type: deviceTelemetryActions_1.UpdateDeviceTelemetryRecord,
                                    name: type,
                                    data: currentDeviceSettings
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                propertyStorage.setValue(property, currentDeviceSettings)
                            ];
                        case 4:
                            _state.sent();
                            _state.label = 5;
                        case 5:
                            return [
                                3,
                                7
                            ];
                        case 6:
                            error = _state.sent();
                            console.error("getSettingsAndSendItWhenChanged and sending device telemetry ".concat(type, " failed"), error);
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            function forceTelemetryUpdate(type, getSettings, propertyStorage) {
                var property, currentDeviceSettings, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            property = getTelemetryPropertyName(type, "LATEST_REPORTED_SETTINGS");
                            return [
                                4,
                                (0, wait_1["default"])(constants_1.DEBOUNCE)
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                6,
                                ,
                                7
                            ]);
                            return [
                                4,
                                getSettings()
                            ];
                        case 3:
                            currentDeviceSettings = _state.sent();
                            return [
                                4,
                                (0, socketActionDeliverHelper_1.deliver)({
                                    type: deviceTelemetryActions_1.UpdateDeviceTelemetryRecord,
                                    name: type,
                                    data: currentDeviceSettings
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                propertyStorage.setValue(property, currentDeviceSettings)
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 6:
                            error = _state.sent();
                            console.error("forceTelemetryUpdate failed", error);
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            function getTelemetryPropertyName(type, prefix) {
                if (typeof DeviceTelemetryType_1.DeviceTelemetryType[type] === "undefined") {
                    throw Error("Device settings type ".concat(type, " does not exist"));
                }
                var propertyKey = "".concat(prefix, "_").concat(DeviceTelemetryType_1.DeviceTelemetryType[type]);
                if (typeof Property_1["default"][propertyKey] === "undefined") {
                    throw Error("Property key is not valid ".concat(propertyKey));
                }
                return Property_1["default"][propertyKey];
            }
            function convertTelemetryTypeToIntervalType(type) {
                switch(type){
                    case DeviceTelemetryType_1.DeviceTelemetryType.SUPRA:
                        return telemetryIntervals_1.IntervalType.SUPRA;
                    default:
                        return telemetryIntervals_1.IntervalType.DEFAULT;
                }
            }
            function convertTypeToAction(type) {
                switch(type){
                    case DeviceTelemetryType_1.DeviceTelemetryType.SUPRA:
                        return appletActions_1.UpdateActiveAppletBinary;
                    default:
                        return;
                }
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Supra/supraConnectionTelemetrySagas.js
    var require_supraConnectionTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Supra/supraConnectionTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getSupraConnectionTelemetry = exports.telemetrySupraConnectionSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas2();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var supraConfig_1 = require_supraConfig();
            var Property_1 = __importDefault(require_Property());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var FrontCapability_1 = __importDefault(require_FrontCapability2());
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Front:Supra:supraConnectionTelemetrySagas");
            function telemetrySupraConnectionSaga() {
                var currentSupraRuntimeState, propertyStorage, telemetrySaga;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            currentSupraRuntimeState = null;
                            return [
                                4,
                                (0, effects_1.call)(dependencyInjection_1.awaitDependencies, [
                                    "propertyStorage"
                                ])
                            ];
                        case 1:
                            propertyStorage = _state.sent().propertyStorage;
                            return [
                                4,
                                (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                                    "supraRuntimeState"
                                ], function(param) {
                                    var supraRuntimeState;
                                    return _ts_generator(this, function(_state) {
                                        supraRuntimeState = param.supraRuntimeState;
                                        debug4("supraRuntimeState loaded", supraRuntimeState);
                                        currentSupraRuntimeState = supraRuntimeState !== null && supraRuntimeState !== void 0 ? supraRuntimeState : null;
                                        return [
                                            2
                                        ];
                                    });
                                }))
                            ];
                        case 2:
                            _state.sent();
                            telemetrySaga = (0, deviceTelemetrySagas_1.createFrontDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.SUPRA, [
                                FrontCapability_1["default"].SUPRA
                            ], getSupraConnectionTelemetry(propertyStorage, function() {
                                return currentSupraRuntimeState !== null && currentSupraRuntimeState !== void 0 ? currentSupraRuntimeState : null;
                            }));
                            return [
                                4,
                                (0, effects_1.call)(telemetrySaga)
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.telemetrySupraConnectionSaga = telemetrySupraConnectionSaga;
            function getSupraConnectionTelemetry(propertyStorage, getSupraRuntimeState) {
                var _this = this;
                debug4("getSupraConnectionTelemetry created", {
                    supraRuntimeState: getSupraRuntimeState()
                });
                return function() {
                    return __awaiter(_this, void 0, void 0, function() {
                        var _a2, _b2, config, runtimeState, defaults, connectionStatus, connection;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    return [
                                        4,
                                        propertyStorage.getValueOrDefault(Property_1["default"].SUPRA_SCREEN_CONFIG, null)
                                    ];
                                case 1:
                                    config = _state.sent();
                                    debug4("supraRuntimeState getSupraConnectionTelemetry", {
                                        config: config,
                                        supraRuntimeState: getSupraRuntimeState()
                                    });
                                    if (!config || !config.servers || config.servers.length === 0) {
                                        return [
                                            2,
                                            {
                                                enabled: false
                                            }
                                        ];
                                    }
                                    runtimeState = getSupraRuntimeState();
                                    defaults = (0, supraConfig_1.getSupraCoreAppDefaultConfig)();
                                    if (runtimeState === null) {
                                        connectionStatus = "searching";
                                    } else if (runtimeState.isActive) {
                                        connectionStatus = "connected";
                                    } else {
                                        connectionStatus = "disconnected";
                                    }
                                    connection = runtimeState === null || runtimeState === void 0 ? void 0 : runtimeState.connection;
                                    return [
                                        2,
                                        {
                                            enabled: true,
                                            hostname: connection === null || connection === void 0 ? void 0 : connection.hostname,
                                            secure: connection === null || connection === void 0 ? void 0 : connection.secure,
                                            appName: (_a2 = connection === null || connection === void 0 ? void 0 : connection.appName) !== null && _a2 !== void 0 ? _a2 : defaults.appName,
                                            extraArgs: connection === null || connection === void 0 ? void 0 : connection.extraArgs,
                                            supraCoreAppVersion: connection === null || connection === void 0 ? void 0 : connection.supraCoreAppVersion,
                                            supraScreenAppletVersion: (_b2 = connection === null || connection === void 0 ? void 0 : connection.supraScreenAppletVersion) !== null && _b2 !== void 0 ? _b2 : defaults.supraScreenAppletVersion,
                                            clientID: connection === null || connection === void 0 ? void 0 : connection.clientID,
                                            servers: config.servers.map(function(s) {
                                                return {
                                                    hostname: s.hostname,
                                                    secure: s.secure
                                                };
                                            }),
                                            connectionStatus: connectionStatus
                                        }
                                    ];
                            }
                        });
                    });
                };
            }
            exports.getSupraConnectionTelemetry = getSupraConnectionTelemetry;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/Device/Telemetry/deviceTelemetrySaga.js
    var require_deviceTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/Device/Telemetry/deviceTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.frontDeviceTelemetrySaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var supraConnectionTelemetrySagas_1 = require_supraConnectionTelemetrySagas();
            var frontDeviceTelemetrySaga = function() {
                return function frontDeviceTelemetrySaga() {
                    var telemetrySagas, telemetrySagaIterators;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                telemetrySagas = [
                                    supraConnectionTelemetrySagas_1.telemetrySupraConnectionSaga
                                ];
                                telemetrySagaIterators = telemetrySagas.map(function(saga) {
                                    return saga();
                                });
                                return [
                                    4,
                                    (0, effects_1.all)(telemetrySagaIterators)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                };
            };
            exports.frontDeviceTelemetrySaga = frontDeviceTelemetrySaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/frontSagas.js
    var require_frontSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/frontSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.frontSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var startApplicationSaga_1 = __importDefault(require_startApplicationSaga());
            var authenticationSagas_1 = require_authenticationSagas();
            var dependenciesSaga_1 = require_dependenciesSaga();
            var debugSagas_1 = require_debugSagas();
            var deviceConfigurationSagas_1 = require_deviceConfigurationSagas();
            var deviceConnectSagas_1 = require_deviceConnectSagas();
            var deviceAliveSaga_1 = require_deviceAliveSaga();
            var deviceProprietaryTimerSagas_1 = require_deviceProprietaryTimerSagas();
            var deviceVerificationSagas_1 = require_deviceVerificationSagas();
            var deviceSagas_1 = require_deviceSagas();
            var combinedDriver_1 = require_combinedDriver();
            var offlineActionsSagas_1 = require_offlineActionsSagas();
            var OfflineCache_1 = __importDefault(require_OfflineCache());
            var socketHealthCheckSagas_1 = require_socketHealthCheckSagas();
            var socketSagas_1 = require_socketSagas();
            var commonSystemLogsSagas_1 = require_commonSystemLogsSagas();
            var testSagas_1 = require_testSagas();
            var timerResolverFactory_1 = require_timerResolverFactory();
            var appletBrowserSagas_1 = require_appletBrowserSagas();
            var bundledAppletActions_1 = require_bundledAppletActions();
            var appletCommandDispatchSagas_1 = require_appletCommandDispatchSagas();
            var appletDateTimeSagas_1 = require_appletDateTimeSagas();
            var appletFileSystemSagas_1 = require_appletFileSystemSagas();
            var appletKeySagas_1 = require_appletKeySagas();
            var appletWifiSagas_1 = require_appletWifiSagas();
            var appletProximitySensorSagas_1 = require_appletProximitySensorSagas();
            var appletStreamSagas_1 = require_appletStreamSagas();
            var appletSyncSagas_1 = require_appletSyncSagas();
            var appletVideoSagas_1 = require_appletVideoSagas();
            var appletBinarySagas_1 = require_appletBinarySagas();
            var appletSagas_1 = require_appletSagas();
            var defaultApplet_1 = require_defaultApplet();
            var appletTimingCacheSagas_1 = require_appletTimingCacheSagas();
            var appletTimingControllerSagas_1 = require_appletTimingControllerSagas();
            var currentTimeSyncSagas_1 = require_currentTimeSyncSagas2();
            var deviceDebugSettingsSagas_1 = require_deviceDebugSettingsSagas();
            var deviceDeprovisionSagas_1 = require_deviceDeprovisionSagas();
            var devicePowerActionSagas_1 = require_devicePowerActionSagas();
            var deviceSchedulePowerActionSagas_1 = require_deviceSchedulePowerActionSagas2();
            var deviceRemoteControlSagas_1 = require_deviceRemoteControlSagas();
            var timerControllerSagas_1 = require_timerControllerSagas();
            var deviceVerificationSagas_2 = require_deviceVerificationSagas2();
            var deviceAuthenticationSagas_1 = require_deviceAuthenticationSagas();
            var deviceSagas_2 = require_deviceSagas2();
            var keySagas_1 = require_keySagas();
            var motionSagas_1 = require_motionSagas();
            var osdSagas_1 = require_osdSagas();
            var softwareKeyboardSagas_1 = require_softwareKeyboardSagas();
            var networkSagas_1 = require_networkSagas();
            var controlEnablingSagas_1 = require_controlEnablingSagas();
            var systemLogsSagas_1 = require_systemLogsSagas();
            var CacheTest_1 = __importDefault(require_CacheTest());
            var FileSystemTest_1 = __importDefault(require_FileSystemTest());
            var HTML5Test_1 = __importDefault(require_HTML5Test());
            var VideoTest_1 = __importDefault(require_VideoTest());
            var WeinreTest_1 = __importDefault(require_WeinreTest());
            var touchSaga_1 = require_touchSaga();
            var supraModeSagas_1 = require_supraModeSagas();
            var deviceTelemetrySaga_1 = require_deviceTelemetrySaga();
            function frontSaga(defaultConfig, param, getState, propertyStorage, dispatch) {
                var _param_socketName, socketName, publicKey, sessionIdKey, global2, nativeDriver, managementDriver, synchronizer, frontAppletPrefix, frontDisplayVersion, autoVerification, webWorkerFactory, applicationVersion, bundledApplet, responsibilities, frontExtraTests, shortAppletFilesUrl, _param_logOfflineActions, logOfflineActions, _ref, frontDriver, cacheDriver, offlineCache, getNativeDriver, getFrontDriver, getManagementDriver, getSynchronizer, defaultTiming, defaultTimingData, proprietaryTimerStorage, proprietaryTimerManager;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _param_socketName = param.socketName, socketName = _param_socketName === void 0 ? "front" : _param_socketName, publicKey = param.publicKey, sessionIdKey = param.sessionIdKey, global2 = param.global, nativeDriver = param.nativeDriver, managementDriver = param.managementDriver, synchronizer = param.synchronizer, frontAppletPrefix = param.frontAppletPrefix, frontDisplayVersion = param.frontDisplayVersion, autoVerification = param.autoVerification, webWorkerFactory = param.webWorkerFactory, applicationVersion = param.applicationVersion, bundledApplet = param.bundledApplet, responsibilities = param.responsibilities, frontExtraTests = param.frontExtraTests, shortAppletFilesUrl = param.shortAppletFilesUrl, _param_logOfflineActions = param.logOfflineActions, logOfflineActions = _param_logOfflineActions === void 0 ? true : _param_logOfflineActions;
                            _ref = (0, combinedDriver_1.normalizeFrontCacheDriver)(nativeDriver), frontDriver = _ref.frontDriver, cacheDriver = _ref.cacheDriver;
                            offlineCache = new OfflineCache_1["default"](frontDriver.fileSystem);
                            getNativeDriver = function() {
                                return nativeDriver;
                            };
                            getFrontDriver = function() {
                                return frontDriver;
                            };
                            getManagementDriver = function() {
                                return managementDriver;
                            };
                            getSynchronizer = function() {
                                return synchronizer;
                            };
                            defaultTiming = bundledApplet ? (0, defaultApplet_1.getDefaultAppletTimingDefinition)(bundledApplet.uid, bundledApplet.version, bundledApplet.frontAppletVersion, bundledApplet.checksum, bundledApplet.config) : void 0;
                            defaultTimingData = bundledApplet ? {
                                appletUid: bundledApplet.uid,
                                appletVersion: bundledApplet.version,
                                appletBinaryFile: bundledApplet.binaryFile,
                                appletFrontAppletJsFile: bundledApplet.frontAppletBinaryFile
                            } : void 0;
                            proprietaryTimerStorage = frontDriver.proprietaryTimerStorage;
                            proprietaryTimerManager = (0, timerResolverFactory_1.createProprietaryTimerManagerForFront)(responsibilities, proprietaryTimerStorage);
                            return [
                                4,
                                (0, effects_1.all)([
                                    // create DI container as first
                                    (0, dependenciesSaga_1.dependencyInjection)({
                                        applicationVersion: applicationVersion,
                                        managementDriver: managementDriver,
                                        frontDriver: frontDriver,
                                        propertyStorage: propertyStorage,
                                        responsibilities: responsibilities,
                                        proprietaryTimerStorage: proprietaryTimerStorage,
                                        frontPowerActionsDisabled: false
                                    }),
                                    // shared sagas
                                    (0, socketSagas_1.socketPlatformCreate)(getFrontDriver, socketName, function() {
                                        return managementDriver.timeManager.getEpochMillis();
                                    }, defaultConfig),
                                    // Must be first saga
                                    (0, socketHealthCheckSagas_1.healthChecking)(),
                                    (0, deviceConfigurationSagas_1.updatingConfiguration)(getFrontDriver, getManagementDriver, propertyStorage, defaultConfig, publicKey, socketName),
                                    (0, authenticationSagas_1.autoDeviceAuthentication)(sessionIdKey, getFrontDriver),
                                    (0, authenticationSagas_1.storeDeviceSession)(sessionIdKey, getFrontDriver),
                                    (0, authenticationSagas_1.fallbackDeviceUidAuthentication)(getFrontDriver),
                                    (0, authenticationSagas_1.afterRegistrationDeviceUidAuthentication)(getFrontDriver),
                                    (0, deviceSagas_1.fallbackDeviceRegistration)(getFrontDriver, autoVerification),
                                    // front sagas
                                    (0, currentTimeSyncSagas_1.startupDeviceDateTimeSettings)(),
                                    (0, deviceSagas_2.notifyDeviceSaga)(getManagementDriver),
                                    (0, deviceSagas_1.notifyDeviceFrontDisplayVersion)(frontDisplayVersion),
                                    (0, deviceSagas_2.notifyDeviceApplicationVersion)(getFrontDriver, applicationVersion),
                                    (0, appletTimingControllerSagas_1.controlActiveAppletTiming)(webWorkerFactory, defaultTiming ? [
                                        defaultTiming
                                    ] : void 0, frontDriver, propertyStorage),
                                    (0, appletSagas_1.bindAppletMessages)(frontAppletPrefix, global2, getState, getNativeDriver, getSynchronizer, offlineCache, shortAppletFilesUrl !== null && shortAppletFilesUrl !== void 0 ? shortAppletFilesUrl : false, proprietaryTimerStorage),
                                    (0, appletSagas_1.bindAppletIframe)(frontAppletPrefix, global2, getState, frontDisplayVersion, getManagementDriver),
                                    (0, appletSagas_1.updateAppletDeviceAuthHash)(frontAppletPrefix, global2, getState),
                                    (0, appletSagas_1.updateAppletUniqueHash)(),
                                    (0, appletVideoSagas_1.activeAppletRestore)(getFrontDriver, getSynchronizer),
                                    (0, appletVideoSagas_1.restoreOnAppletChange)(),
                                    (0, appletDateTimeSagas_1.currentTimestampEmiting)(global2, frontAppletPrefix, getState),
                                    (0, appletBrowserSagas_1.browserEventEmitting)(global2, frontAppletPrefix, getFrontDriver, getState),
                                    (0, appletVideoSagas_1.videoEventEmitting)(global2, frontAppletPrefix, getState),
                                    (0, appletStreamSagas_1.streamEventEmitting)(global2, frontAppletPrefix, getState),
                                    (0, appletWifiSagas_1.wifiEventEmitting)(global2, frontAppletPrefix, getManagementDriver, getState),
                                    (0, appletProximitySensorSagas_1.proximitySensorStatusChangeEmitting)(global2, frontAppletPrefix, getManagementDriver, getState),
                                    (0, appletSyncSagas_1.syncEventEmitting)(global2, frontAppletPrefix, getState, synchronizer),
                                    (0, appletKeySagas_1.inputKeysEmitting)(global2, frontAppletPrefix, getState),
                                    (0, appletFileSystemSagas_1.storageStatusChangeEmitting)(global2, frontAppletPrefix, getFrontDriver, getState),
                                    (0, deviceAuthenticationSagas_1.startupDeviceAuthHash)(propertyStorage),
                                    (0, deviceAuthenticationSagas_1.cacheDeviceAuthHash)(propertyStorage),
                                    (0, deviceVerificationSagas_1.deviceVerification)(getFrontDriver),
                                    (0, deviceVerificationSagas_2.dispatchVerificationHash)(global2),
                                    (0, deviceDeprovisionSagas_1.deviceDeprovision)(getFrontDriver, getManagementDriver, responsibilities, sessionIdKey),
                                    (0, devicePowerActionSagas_1.deviceAppletDisablingRestoresActiveApplet)(),
                                    (0, deviceSchedulePowerActionSagas_1.deviceSchedulePowerAction)(propertyStorage),
                                    (0, devicePowerActionSagas_1.devicePerformScheduledPowerAction)(getNativeDriver, propertyStorage, offlineCache),
                                    (0, timerControllerSagas_1.appletTimerChecking)(responsibilities, proprietaryTimerManager, global2),
                                    (0, deviceRemoteControlSagas_1.startupDeviceRemoteControlSettingsSaga)(getFrontDriver),
                                    (0, keySagas_1.keyUpSaga)(getFrontDriver),
                                    (0, keySagas_1.keySequenceSaga)(global2),
                                    (0, motionSagas_1.motionSequenceSaga)(global2),
                                    (0, softwareKeyboardSagas_1.bindNumericKeyboardSaga)(),
                                    (0, controlEnablingSagas_1.controlEnablingSaga)(),
                                    (0, controlEnablingSagas_1.generateControlPinSaga)(),
                                    (0, controlEnablingSagas_1.reportDevicePinChangedSaga)(),
                                    (0, deviceConnectSagas_1.deviceConnectSaga)(),
                                    (0, osdSagas_1.showOSDSaga)(getFrontDriver, propertyStorage),
                                    (0, networkSagas_1.networkConnection)(getState, getFrontDriver, getManagementDriver),
                                    (0, touchSaga_1.touchSaga)(frontAppletPrefix, getState, getFrontDriver, global2),
                                    (0, deviceSagas_2.updateTitle)(global2),
                                    (0, deviceSagas_2.updateDeviceLocation)(propertyStorage),
                                    (0, deviceSagas_2.updateOrganizationTags)(propertyStorage),
                                    (0, appletCommandDispatchSagas_1.dispatchAppletCommandToApplet)(frontAppletPrefix, global2, getState, bundledApplet),
                                    (0, deviceDebugSettingsSagas_1.devicePerformDebugSettings)(global2, getFrontDriver, propertyStorage, frontAppletPrefix, getState),
                                    (0, deviceDebugSettingsSagas_1.readSetDeviceDebugSettings)(global2, getFrontDriver, propertyStorage, frontAppletPrefix, getState),
                                    (0, devicePowerActionSagas_1.devicePerformPowerAction)(getNativeDriver, propertyStorage, offlineCache),
                                    (0, deviceProprietaryTimerSagas_1.syncProprietaryTimerSaga)(),
                                    (0, testSagas_1.runTestsSaga)([
                                        (0, CacheTest_1["default"])(cacheDriver),
                                        (0, FileSystemTest_1["default"])(frontDriver),
                                        (0, HTML5Test_1["default"])(dispatch),
                                        (0, VideoTest_1["default"])(frontDriver),
                                        (0, WeinreTest_1["default"])(global2)
                                    ].concat(_to_consumable_array(frontExtraTests !== null && frontExtraTests !== void 0 ? frontExtraTests : []))),
                                    (0, appletBinarySagas_1.activeAppletBinary)(getState, getFrontDriver),
                                    (0, appletTimingCacheSagas_1.loadAppletTimingsDefinition)(propertyStorage),
                                    (0, appletTimingCacheSagas_1.saveAppletTimingsDefinition)(propertyStorage),
                                    (0, appletTimingCacheSagas_1.deleteAppletTimingsDefinition)(propertyStorage, defaultTiming ? [
                                        defaultTiming
                                    ] : void 0),
                                    (0, appletTimingCacheSagas_1.saveAppletBinary)(),
                                    (0, appletBinarySagas_1.updateActiveAppletBinaryFile)(shortAppletFilesUrl !== null && shortAppletFilesUrl !== void 0 ? shortAppletFilesUrl : false, offlineCache, defaultTimingData)
                                ].concat(_to_consumable_array(logOfflineActions ? [
                                    (0, offlineActionsSagas_1.offlineActionsSaga)("front.", getFrontDriver, getManagementDriver)
                                ] : []), [
                                    (0, commonSystemLogsSagas_1.commonSystemLogsSaga)(socketName),
                                    (0, systemLogsSagas_1.systemLogsSaga)(getManagementDriver),
                                    (0, debugSagas_1.debugAllActions)()
                                ], _to_consumable_array(bundledApplet ? [
                                    (0, effects_1.put)({
                                        type: bundledAppletActions_1.NotifyBundledApplet,
                                        bundledApplet: bundledApplet
                                    })
                                ] : []), [
                                    (0, startApplicationSaga_1["default"])(),
                                    (0, deviceAliveSaga_1.notifyDeviceStatus)(),
                                    (0, deviceSagas_2.notifyFrontCapabilities)(propertyStorage, getFrontDriver),
                                    (0, appletSagas_1.notifyAppletTelemetry)(propertyStorage),
                                    (0, deviceSagas_2.getDeviceLocationAndTags)(),
                                    (0, deviceSagas_2.notifyDeviceTimeAndTimezoneChange)(),
                                    (0, supraModeSagas_1.supraModeSagas)(propertyStorage),
                                    (0, deviceTelemetrySaga_1.frontDeviceTelemetrySaga)()()
                                ]))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.frontSaga = frontSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Feature/Responsibilities.js
    var require_Responsibilities = __commonJS({
        "node_modules/@signageos/front-display/es6/Feature/Responsibilities.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createNoResponsibilities = exports.createAllResponsibilities = exports.createAbsentResponsibilities = exports.createPresentResponsibilities = void 0;
            function createPresentResponsibilities() {
                for(var _len = arguments.length, responsibilities = new Array(_len), _key = 0; _key < _len; _key++){
                    responsibilities[_key] = arguments[_key];
                }
                return {
                    has: function(responsibility) {
                        return responsibilities.includes(responsibility);
                    }
                };
            }
            exports.createPresentResponsibilities = createPresentResponsibilities;
            function createAbsentResponsibilities() {
                for(var _len = arguments.length, responsibilities = new Array(_len), _key = 0; _key < _len; _key++){
                    responsibilities[_key] = arguments[_key];
                }
                return {
                    has: function(responsibility) {
                        return !responsibilities.includes(responsibility);
                    }
                };
            }
            exports.createAbsentResponsibilities = createAbsentResponsibilities;
            function createAllResponsibilities() {
                return {
                    has: function() {
                        return true;
                    }
                };
            }
            exports.createAllResponsibilities = createAllResponsibilities;
            function createNoResponsibilities() {
                return {
                    has: function() {
                        return false;
                    }
                };
            }
            exports.createNoResponsibilities = createNoResponsibilities;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/front.js
    var require_front2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/front.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var lodash_1 = require_lodash();
            require_front();
            var React3 = __importStar(require_react());
            var ReactDOM = __importStar(require_react_dom());
            var Main_1 = __importDefault(require_Main());
            var applicationFactory_1 = require_applicationFactory();
            var frontReducers_1 = require_frontReducers();
            var frontSagas_1 = require_frontSagas();
            var propertyStorage_1 = __importDefault(require_propertyStorage());
            var Property_1 = __importDefault(require_Property());
            var deviceDebugHelper_1 = require_deviceDebugHelper();
            var Responsibilities_1 = require_Responsibilities();
            var combinedDriver_1 = require_combinedDriver();
            exports["default"] = function(options) {
                return __awaiter(void 0, void 0, void 0, function() {
                    var _ref, frontDriver, cacheDriver, propertyStorage, weinreServerUrl, _, weinreDebugEnabled, error, subscriptionType, _2, newOptions, _a2, configUrls, platformUri, staticBaseUrl, uploadBaseUrl, checkInterval, weinreUri, extendedManagementUrl, sagaOptions, config, lastSagaError, application;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _ref = (0, combinedDriver_1.normalizeFrontCacheDriver)(options.nativeDriver), frontDriver = _ref.frontDriver, cacheDriver = _ref.cacheDriver;
                                propertyStorage = (0, propertyStorage_1["default"])(function() {
                                    return cacheDriver;
                                });
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    5,
                                    ,
                                    6
                                ]);
                                return [
                                    4,
                                    propertyStorage.getValueOrDefault(Property_1["default"].DEBUG_WEINRE_SERVER_URL, options.weinreServerUrl)
                                ];
                            case 2:
                                weinreServerUrl = _state.sent();
                                options.global.WeinreServerURL = weinreServerUrl;
                                _ = options.global;
                                return [
                                    4,
                                    frontDriver.getDeviceUid()
                                ];
                            case 3:
                                _.WeinreServerId = _state.sent();
                                return [
                                    4,
                                    propertyStorage.getValueOrDefault(Property_1["default"].DEBUG_WEINRE_ENABLED, false)
                                ];
                            case 4:
                                weinreDebugEnabled = _state.sent();
                                if (weinreDebugEnabled) {
                                    (0, deviceDebugHelper_1.startWeinreDebug)(options.global);
                                }
                                return [
                                    3,
                                    6
                                ];
                            case 5:
                                error = _state.sent();
                                console.error(error);
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                subscriptionType = options.subscriptionType;
                                _2 = options.excludedResponsibilities, newOptions = __rest(options, [
                                    "excludedResponsibilities"
                                ]);
                                _a2 = Object.assign({
                                    responsibilities: (0, Responsibilities_1.createAbsentResponsibilities).apply(this, _to_consumable_array(options.excludedResponsibilities))
                                }, newOptions), configUrls = _a2.configUrls, platformUri = _a2.platformUri, staticBaseUrl = _a2.staticBaseUrl, uploadBaseUrl = _a2.uploadBaseUrl, checkInterval = _a2.checkInterval, weinreUri = _a2.weinreServerUrl, extendedManagementUrl = _a2.extendedManagementUrl, sagaOptions = __rest(_a2, [
                                    "configUrls",
                                    "platformUri",
                                    "staticBaseUrl",
                                    "uploadBaseUrl",
                                    "checkInterval",
                                    "weinreServerUrl",
                                    "extendedManagementUrl"
                                ]);
                                config = {
                                    configUrls: configUrls,
                                    platformUri: platformUri,
                                    staticBaseUrl: staticBaseUrl,
                                    uploadBaseUrl: uploadBaseUrl,
                                    weinreUri: weinreUri,
                                    extendedManagementUrl: extendedManagementUrl,
                                    subscriptionType: subscriptionType,
                                    checkInterval: checkInterval
                                };
                                return [
                                    4,
                                    (0, applicationFactory_1.createApplication)(frontReducers_1.frontReducer, function(store) {
                                        return (0, frontSagas_1.frontSaga)(config, sagaOptions, store.getState, propertyStorage, store.dispatch);
                                    }, function() {
                                        return frontDriver;
                                    }, function(e) {
                                        lastSagaError = (0, lodash_1.cloneDeep)(e);
                                        console.warn("Sagas broken", e);
                                    })
                                ];
                            case 7:
                                application = _state.sent();
                                ReactDOM.render(React3.createElement(Main_1["default"], {
                                    store: application.store
                                }), options.global.document.getElementById("body"));
                                options.global.__front = Object.assign(Object.assign({}, options), {
                                    store: application.store,
                                    storeEmitter: application.storeEmitter,
                                    onUnload: application.stop,
                                    stop: application.stop,
                                    lastSagaError: lastSagaError
                                });
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/managementReducers.js
    var require_managementReducers = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/managementReducers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.managementReducer = void 0;
            var redux_1 = require_lib2();
            var deviceVerificationReducers_1 = require_deviceVerificationReducers();
            exports.managementReducer = (0, redux_1.combineReducers)({
                deviceVerification: deviceVerificationReducers_1.deviceVerification
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/deviceSchedulePowerActionSagas.js
    var require_deviceSchedulePowerActionSagas3 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/deviceSchedulePowerActionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceSchedulePowerAction = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var devicePowerActions_1 = require_devicePowerActions();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceSchedulePowerActionSagas_1 = require_deviceSchedulePowerActionSagas();
            function deviceSchedulePowerAction(getNativeDriver, responsibilities, powerActionTimer) {
                var supportsSchedulePowerAction;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SCHEDULED_POWER)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)([
                                    devicePowerActions_1.SchedulePowerAction,
                                    devicePowerActions_1.CancelScheduledPowerAction
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].SCHEDULE_POWER_ACTION)
                            ];
                        case 2:
                            supportsSchedulePowerAction = _state.sent();
                            if (!supportsSchedulePowerAction) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, deviceSchedulePowerActionSagas_1.deviceSchedulePowerActionCommon)(powerActionTimer, function(powerType) {
                                    return powerType === PowerActionType_1["default"].SYSTEM_REBOOT || powerType === PowerActionType_1["default"].APP_RESTART || powerType === PowerActionType_1["default"].DISPLAY_POWER_ON || powerType === PowerActionType_1["default"].DISPLAY_POWER_OFF;
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceSchedulePowerAction = deviceSchedulePowerAction;
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/debug/src/common.js
    var require_common4 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/debug/src/common.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function setup(env) {
                createDebug.debug = createDebug;
                createDebug["default"] = createDebug;
                createDebug.coerce = coerce;
                createDebug.disable = disable;
                createDebug.enable = enable;
                createDebug.enabled = enabled;
                createDebug.humanize = require_ms();
                createDebug.destroy = destroy;
                Object.keys(env).forEach(function(key) {
                    createDebug[key] = env[key];
                });
                createDebug.names = [];
                createDebug.skips = [];
                createDebug.formatters = {};
                function selectColor(namespace) {
                    var hash = 0;
                    for(var i = 0; i < namespace.length; i++){
                        hash = (hash << 5) - hash + namespace.charCodeAt(i);
                        hash |= 0;
                    }
                    return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
                }
                createDebug.selectColor = selectColor;
                function createDebug(namespace) {
                    var prevTime;
                    var enableOverride = null;
                    var namespacesCache;
                    var enabledCache;
                    function debug4() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        if (!debug4.enabled) {
                            return;
                        }
                        var self2 = debug4;
                        var curr = Number(/* @__PURE__ */ new Date());
                        var ms = curr - (prevTime || curr);
                        self2.diff = ms;
                        self2.prev = prevTime;
                        self2.curr = curr;
                        prevTime = curr;
                        args[0] = createDebug.coerce(args[0]);
                        if (typeof args[0] !== "string") {
                            args.unshift("%O");
                        }
                        var index = 0;
                        args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
                            if (match === "%%") {
                                return "%";
                            }
                            index++;
                            var formatter = createDebug.formatters[format];
                            if (typeof formatter === "function") {
                                var val = args[index];
                                match = formatter.call(self2, val);
                                args.splice(index, 1);
                                index--;
                            }
                            return match;
                        });
                        createDebug.formatArgs.call(self2, args);
                        var logFn = self2.log || createDebug.log;
                        logFn.apply(self2, args);
                    }
                    debug4.namespace = namespace;
                    debug4.useColors = createDebug.useColors();
                    debug4.color = createDebug.selectColor(namespace);
                    debug4.extend = extend;
                    debug4.destroy = createDebug.destroy;
                    Object.defineProperty(debug4, "enabled", {
                        enumerable: true,
                        configurable: false,
                        get: function() {
                            if (enableOverride !== null) {
                                return enableOverride;
                            }
                            if (namespacesCache !== createDebug.namespaces) {
                                namespacesCache = createDebug.namespaces;
                                enabledCache = createDebug.enabled(namespace);
                            }
                            return enabledCache;
                        },
                        set: function(v) {
                            enableOverride = v;
                        }
                    });
                    if (typeof createDebug.init === "function") {
                        createDebug.init(debug4);
                    }
                    return debug4;
                }
                function extend(namespace, delimiter) {
                    var newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
                    newDebug.log = this.log;
                    return newDebug;
                }
                function enable(namespaces) {
                    createDebug.save(namespaces);
                    createDebug.namespaces = namespaces;
                    createDebug.names = [];
                    createDebug.skips = [];
                    var i;
                    var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
                    var len = split.length;
                    for(i = 0; i < len; i++){
                        if (!split[i]) {
                            continue;
                        }
                        namespaces = split[i].replace(/\*/g, ".*?");
                        if (namespaces[0] === "-") {
                            createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
                        } else {
                            createDebug.names.push(new RegExp("^" + namespaces + "$"));
                        }
                    }
                }
                function disable() {
                    var namespaces = _to_consumable_array(createDebug.names.map(toNamespace)).concat(_to_consumable_array(createDebug.skips.map(toNamespace).map(function(namespace) {
                        return "-" + namespace;
                    }))).join(",");
                    createDebug.enable("");
                    return namespaces;
                }
                function enabled(name) {
                    if (name[name.length - 1] === "*") {
                        return true;
                    }
                    var i;
                    var len;
                    for(i = 0, len = createDebug.skips.length; i < len; i++){
                        if (createDebug.skips[i].test(name)) {
                            return false;
                        }
                    }
                    for(i = 0, len = createDebug.names.length; i < len; i++){
                        if (createDebug.names[i].test(name)) {
                            return true;
                        }
                    }
                    return false;
                }
                function toNamespace(regexp) {
                    return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
                }
                function coerce(val) {
                    if (val instanceof Error) {
                        return val.stack || val.message;
                    }
                    return val;
                }
                function destroy() {
                    console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
                }
                createDebug.enable(createDebug.load());
                return createDebug;
            }
            module.exports = setup;
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/debug/src/browser.js
    var require_browser21 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/debug/src/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = localstorage();
            exports.destroy = /* @__PURE__ */ function() {
                var warned = false;
                return function() {
                    if (!warned) {
                        warned = true;
                        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
                    }
                };
            }();
            exports.colors = [
                "#0000CC",
                "#0000FF",
                "#0033CC",
                "#0033FF",
                "#0066CC",
                "#0066FF",
                "#0099CC",
                "#0099FF",
                "#00CC00",
                "#00CC33",
                "#00CC66",
                "#00CC99",
                "#00CCCC",
                "#00CCFF",
                "#3300CC",
                "#3300FF",
                "#3333CC",
                "#3333FF",
                "#3366CC",
                "#3366FF",
                "#3399CC",
                "#3399FF",
                "#33CC00",
                "#33CC33",
                "#33CC66",
                "#33CC99",
                "#33CCCC",
                "#33CCFF",
                "#6600CC",
                "#6600FF",
                "#6633CC",
                "#6633FF",
                "#66CC00",
                "#66CC33",
                "#9900CC",
                "#9900FF",
                "#9933CC",
                "#9933FF",
                "#99CC00",
                "#99CC33",
                "#CC0000",
                "#CC0033",
                "#CC0066",
                "#CC0099",
                "#CC00CC",
                "#CC00FF",
                "#CC3300",
                "#CC3333",
                "#CC3366",
                "#CC3399",
                "#CC33CC",
                "#CC33FF",
                "#CC6600",
                "#CC6633",
                "#CC9900",
                "#CC9933",
                "#CCCC00",
                "#CCCC33",
                "#FF0000",
                "#FF0033",
                "#FF0066",
                "#FF0099",
                "#FF00CC",
                "#FF00FF",
                "#FF3300",
                "#FF3333",
                "#FF3366",
                "#FF3399",
                "#FF33CC",
                "#FF33FF",
                "#FF6600",
                "#FF6633",
                "#FF9900",
                "#FF9933",
                "#FFCC00",
                "#FFCC33"
            ];
            function useColors() {
                if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
                    return true;
                }
                if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
                    return false;
                }
                var m;
                return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
                typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
                typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
            }
            function formatArgs(args) {
                args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
                if (!this.useColors) {
                    return;
                }
                var c = "color: " + this.color;
                args.splice(1, 0, c, "color: inherit");
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-zA-Z%]/g, function(match) {
                    if (match === "%%") {
                        return;
                    }
                    index++;
                    if (match === "%c") {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
            }
            exports.log = console.debug || console.log || function() {};
            function save(namespaces) {
                try {
                    if (namespaces) {
                        exports.storage.setItem("debug", namespaces);
                    } else {
                        exports.storage.removeItem("debug");
                    }
                } catch (error) {}
            }
            function load() {
                var r;
                try {
                    r = exports.storage.getItem("debug");
                } catch (error) {}
                if (!r && typeof process !== "undefined" && "env" in process) {
                    r = process.env.DEBUG;
                }
                return r;
            }
            function localstorage() {
                try {
                    return localStorage;
                } catch (error) {}
            }
            module.exports = require_common4()(exports);
            var formatters = module.exports.formatters;
            formatters.j = function(v) {
                try {
                    return JSON.stringify(v);
                } catch (error) {
                    return "[UnexpectedJSONParseError]: " + error.message;
                }
            };
        }
    });
    // node_modules/@signageos/remote-desktop/es6/RemoteDesktop/messages.js
    var require_messages = __commonJS({
        "node_modules/@signageos/remote-desktop/es6/RemoteDesktop/messages.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.KeyEventTypes = exports.ButtonEventTypes = exports.MouseEventTypes = exports.FromBrowserMessages = exports.FromDeviceMessages = exports.Message = void 0;
            var Message;
            (function(Message2) {
                Message2["ScreenshotRecorded"] = "ScreenshotRecorded";
                Message2["MouseEvent"] = "MouseEvent";
                Message2["KeyEvent"] = "KeyEvent";
                Message2["ButtonEvent"] = "ButtonEvent";
                Message2["BrowserConnected"] = "BrowserConnected";
                Message2["BrowserDisconnected"] = "BrowserDisconnected";
                Message2["DeviceConnected"] = "DeviceConnected";
                Message2["DeviceDisconnected"] = "DeviceDisconnected";
            })(Message || (exports.Message = Message = {}));
            exports.FromDeviceMessages = [
                Message.ScreenshotRecorded
            ];
            exports.FromBrowserMessages = [
                Message.MouseEvent,
                Message.KeyEvent,
                Message.ButtonEvent
            ];
            exports.MouseEventTypes = [
                "mousedown",
                "mouseup",
                "click",
                "dblclick",
                "mousemove",
                "cancel"
            ];
            exports.ButtonEventTypes = [
                "up",
                "down",
                "left",
                "right",
                "back",
                "home",
                "recentapps",
                "accept"
            ];
            exports.KeyEventTypes = [
                "down",
                "up"
            ];
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Timer/wait.js
    var require_wait3 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Timer/wait.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = wait6;
            function wait6(timeout, _a2) {
                var _b2 = _a2 === void 0 ? {} : _a2, signal = _b2.signal;
                var timer = void 0;
                var rejectCallback = null;
                var promise3 = new Promise(function(resolve, reject) {
                    rejectCallback = reject;
                    timer = setTimeout(function() {
                        rejectCallback = null;
                        resolve();
                    }, timeout);
                });
                promise3.cancel = function() {
                    if (timer) {
                        clearTimeout(timer);
                        timer = void 0;
                        if (rejectCallback) {
                            rejectCallback(new Error("Wait cancelled"));
                        }
                        rejectCallback = null;
                    }
                };
                signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", function() {
                    return promise3.cancel();
                });
                return promise3;
            }
        }
    });
    // node_modules/@signageos/remote-desktop/es6/RemoteDesktop/client.js
    var require_client = __commonJS({
        "node_modules/@signageos/remote-desktop/es6/RemoteDesktop/client.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createStartedClient = createStartedClient;
            var wait_1 = __importDefault(require_wait3());
            function createStartedClient(client, connectedPromise, options) {
                var _this = this;
                if (options.timeoutMs) {
                    var waitPromise = (0, wait_1["default"])(options.timeoutMs);
                    var connectedFinishedPromise = connectedPromise.then(function() {
                        return waitPromise.cancel();
                    });
                    var timeoutPromiseRejection = waitPromise.then(function() {
                        return __awaiter(_this, void 0, void 0, function() {
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        return [
                                            4,
                                            client.stop()
                                        ];
                                    case 1:
                                        _state.sent();
                                        throw new Error("Establishing connection timed out after ".concat(options.timeoutMs, " ms"));
                                }
                            });
                        });
                    });
                    connectedPromise = Promise.race([
                        connectedFinishedPromise,
                        timeoutPromiseRejection
                    ]);
                }
                return {
                    stop: function() {
                        return client.stop();
                    },
                    onceConnected: function() {
                        return __awaiter(_this, void 0, void 0, function() {
                            return _ts_generator(this, function(_state) {
                                return [
                                    2,
                                    connectedPromise
                                ];
                            });
                        });
                    }
                };
            }
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/WebSocket/Client/ISocket.js
    var require_ISocket2 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/WebSocket/Client/ISocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __extends = exports && exports.__extends || /* @__PURE__ */ function() {
                var extendStatics = function extendStatics1(d, b) {
                    extendStatics = Object.setPrototypeOf || ({
                        __proto__: []
                    }) instanceof Array && function(d2, b2) {
                        d2.__proto__ = b2;
                    } || function(d2, b2) {
                        for(var p in b2)if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                };
                return function(d, b) {
                    if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                        this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                };
            }();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UndeliveredEmitError = exports.UnconfirmedMessageError = void 0;
            var UnconfirmedMessageError = /** @class */ function(_super) {
                __extends(UnconfirmedMessageError2, _super);
                function UnconfirmedMessageError2(responseMessage, requestMessage, failedAt) {
                    var _this = _super.call(this, "Response on message cannot be sent because of invalid WS state") || this;
                    _this.responseMessage = responseMessage;
                    _this.requestMessage = requestMessage;
                    _this.failedAt = failedAt;
                    Object.setPrototypeOf(_this, UnconfirmedMessageError2.prototype);
                    return _this;
                }
                return UnconfirmedMessageError2;
            }(Error);
            exports.UnconfirmedMessageError = UnconfirmedMessageError;
            var UndeliveredEmitError = /** @class */ function(_super) {
                __extends(UndeliveredEmitError2, _super);
                function UndeliveredEmitError2(requestMessage, failedAt) {
                    var _this = _super.call(this, "Request message cannot be sent because of invalid WS state") || this;
                    _this.requestMessage = requestMessage;
                    _this.failedAt = failedAt;
                    Object.setPrototypeOf(_this, UndeliveredEmitError2.prototype);
                    return _this;
                }
                return UndeliveredEmitError2;
            }(Error);
            exports.UndeliveredEmitError = UndeliveredEmitError;
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Hash/generator.js
    var require_generator2 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Hash/generator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.generateUniqueHash = generateUniqueHash;
            exports.generateSalt = generateSalt;
            var crypto_1 = require_crypto_browserify();
            function generateUniqueHash(length) {
                if (length === void 0) {
                    length = 50;
                }
                var hash = (0, crypto_1.createHash)("sha256");
                hash.update("" + /* @__PURE__ */ new Date().valueOf() + Math.random());
                return hash.digest("hex").substring(0, length);
            }
            function generateSalt(length) {
                return (0, crypto_1.randomBytes)(length).toString("hex").substring(0, length);
            }
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Timer/progressiveWait.js
    var require_progressiveWait2 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Timer/progressiveWait.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __generator = exports && exports.__generator || function(thisArg, body) {
                var _2 = {
                    label: 0,
                    sent: function sent() {
                        if (t[0] & 1) throw t[1];
                        return t[1];
                    },
                    trys: [],
                    ops: []
                }, f, y, t, g;
                return g = {
                    next: verb(0),
                    "throw": verb(1),
                    "return": verb(2)
                }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                }), g;
                function verb(n) {
                    return function(v) {
                        return step([
                            n,
                            v
                        ]);
                    };
                }
                function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    while(g && (g = 0, op[0] && (_2 = 0)), _2)try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        if (y = 0, t) op = [
                            op[0] & 2,
                            t.value
                        ];
                        switch(op[0]){
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _2.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _2.label++;
                                y = op[1];
                                op = [
                                    0
                                ];
                                continue;
                            case 7:
                                op = _2.ops.pop();
                                _2.trys.pop();
                                continue;
                            default:
                                if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _2 = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                    _2.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _2.label < t[1]) {
                                    _2.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _2.label < t[2]) {
                                    _2.label = t[2];
                                    _2.ops.push(op);
                                    break;
                                }
                                if (t[2]) _2.ops.pop();
                                _2.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _2);
                    } catch (e) {
                        op = [
                            6,
                            e
                        ];
                        y = 0;
                    } finally{
                        f = t = 0;
                    }
                    if (op[0] & 5) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: true
                    };
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createProgressiveWait = void 0;
            var wait_1 = __importDefault(require_wait3());
            var createProgressiveWait = function createProgressiveWait(initialTimeoutMs, progressiveMultiplier, maxTimeoutMs) {
                if (progressiveMultiplier === void 0) {
                    progressiveMultiplier = 2;
                }
                if (maxTimeoutMs === void 0) {
                    maxTimeoutMs = initialTimeoutMs * 10;
                }
                var currentTimeoutMs = initialTimeoutMs;
                return {
                    wait: function wait() {
                        return __awaiter(this, arguments, void 0, function(options) {
                            if (options === void 0) {
                                options = {};
                            }
                            return __generator(this, function(_a2) {
                                switch(_a2.label){
                                    case 0:
                                        return [
                                            4,
                                            (0, wait_1["default"])(currentTimeoutMs, options)
                                        ];
                                    case 1:
                                        _a2.sent();
                                        currentTimeoutMs = this.getNextTimeoutMs();
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    },
                    reset: function reset() {
                        currentTimeoutMs = initialTimeoutMs;
                    },
                    getCurrentTimeoutMs: function getCurrentTimeoutMs() {
                        return currentTimeoutMs;
                    },
                    getNextTimeoutMs: function getNextTimeoutMs() {
                        return Math.min(currentTimeoutMs * progressiveMultiplier, maxTimeoutMs);
                    }
                };
            };
            exports.createProgressiveWait = createProgressiveWait;
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js
    var require_AutoReconnectingWSSocket2 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __generator = exports && exports.__generator || function(thisArg, body) {
                var _2 = {
                    label: 0,
                    sent: function sent() {
                        if (t[0] & 1) throw t[1];
                        return t[1];
                    },
                    trys: [],
                    ops: []
                }, f, y, t, g;
                return g = {
                    next: verb(0),
                    "throw": verb(1),
                    "return": verb(2)
                }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                }), g;
                function verb(n) {
                    return function(v) {
                        return step([
                            n,
                            v
                        ]);
                    };
                }
                function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    while(g && (g = 0, op[0] && (_2 = 0)), _2)try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        if (y = 0, t) op = [
                            op[0] & 2,
                            t.value
                        ];
                        switch(op[0]){
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _2.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _2.label++;
                                y = op[1];
                                op = [
                                    0
                                ];
                                continue;
                            case 7:
                                op = _2.ops.pop();
                                _2.trys.pop();
                                continue;
                            default:
                                if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _2 = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                    _2.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _2.label < t[1]) {
                                    _2.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _2.label < t[2]) {
                                    _2.label = t[2];
                                    _2.ops.push(op);
                                    break;
                                }
                                if (t[2]) _2.ops.pop();
                                _2.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _2);
                    } catch (e) {
                        op = [
                            6,
                            e
                        ];
                        y = 0;
                    } finally{
                        f = t = 0;
                    }
                    if (op[0] & 5) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: true
                    };
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var ISocket_1 = require_ISocket2();
            var progressiveWait_1 = require_progressiveWait2();
            var debug_1 = __importDefault(require_browser21());
            var debug4 = (0, debug_1["default"])("@signageos/lib:WebSocket:Client:WS:AutoReconnectingWSSocket");
            var DEFAULT_INITIAL_RECONNECT_TIMEOUT = 1e3;
            var DEFAULT_MAX_RECONNECT_TIMEOUT = 3e4;
            var AutoReconnectingWSSocket = /** @class */ function() {
                function AutoReconnectingWSSocket2(createSocket, initialReconnectTimeout, maxReconnectTimeout) {
                    if (initialReconnectTimeout === void 0) {
                        initialReconnectTimeout = DEFAULT_INITIAL_RECONNECT_TIMEOUT;
                    }
                    if (maxReconnectTimeout === void 0) {
                        maxReconnectTimeout = DEFAULT_MAX_RECONNECT_TIMEOUT;
                    }
                    this.createSocket = createSocket;
                    this.closed = false;
                    this.eventListeners = [];
                    this.emitsQueue = [];
                    this.progressiveWait = (0, progressiveWait_1.createProgressiveWait)(initialReconnectTimeout, 2, maxReconnectTimeout);
                    this.internalEventEmitter = new events_1.EventEmitter();
                    this.openNewSocket();
                }
                AutoReconnectingWSSocket2.prototype.on = function(event, listener) {
                    this.eventListeners.push({
                        type: "on",
                        event: event,
                        listener: listener
                    });
                    this.socket.on(event, listener);
                    debug4("Number of listeners after on", this.eventListeners.length);
                };
                AutoReconnectingWSSocket2.prototype.once = function(event, listener) {
                    this.eventListeners.push({
                        type: "once",
                        event: event,
                        listener: listener
                    });
                    this.registerOnceListenerOnCurrentSocket(event, listener);
                    debug4("Number of listeners after once", this.eventListeners.length);
                };
                AutoReconnectingWSSocket2.prototype.emit = function(event, message2, callback) {
                    try {
                        this.socket.emit(event, message2, callback);
                    } catch (error) {
                        if (error instanceof ISocket_1.UndeliveredEmitError) {
                            var emitData = {
                                event: event,
                                message: message2,
                                callback: callback
                            };
                            debug4("Emit message failed", emitData, error);
                            this.emitsQueue.push(emitData);
                            debug4("Number of emits in queue after fail", this.emitsQueue.length);
                        } else {
                            throw error;
                        }
                    }
                };
                AutoReconnectingWSSocket2.prototype.removeListener = function(event, listener) {
                    this.removeEventListenerFromList(event, listener);
                    this.socket.removeListener(event, listener);
                    debug4("Number of listeners after remove", this.eventListeners.length);
                };
                AutoReconnectingWSSocket2.prototype.removeAllListeners = function() {
                    this.eventListeners = [];
                    this.socket.removeAllListeners();
                };
                AutoReconnectingWSSocket2.prototype.close = function() {
                    this.closed = true;
                    this.socket.close();
                };
                AutoReconnectingWSSocket2.prototype.onConnected = function(callback) {
                    this.internalEventEmitter.on("connected", callback);
                };
                AutoReconnectingWSSocket2.prototype.onDisconnected = function(callback) {
                    this.internalEventEmitter.on("disconnected", callback);
                };
                AutoReconnectingWSSocket2.prototype.onError = function(callback) {
                    this.internalEventEmitter.on("error", callback);
                };
                AutoReconnectingWSSocket2.prototype.openNewSocket = function() {
                    var _this = this;
                    this.socket = this.createSocket(function() {
                        return _this.onSocketConnected();
                    }, function() {
                        return _this.onSocketDisconnected();
                    }, function(error) {
                        return _this.internalEventEmitter.emit("error", error);
                    });
                    for(var _i = 0, _a2 = this.eventListeners; _i < _a2.length; _i++){
                        var eventListener = _a2[_i];
                        if (eventListener.type === "on") {
                            this.socket.on(eventListener.event, eventListener.listener);
                        } else {
                            this.registerOnceListenerOnCurrentSocket(eventListener.event, eventListener.listener);
                        }
                    }
                };
                AutoReconnectingWSSocket2.prototype.onSocketConnected = function() {
                    debug4("Internal socket connected");
                    this.internalEventEmitter.emit("connected");
                    this.progressiveWait.reset();
                    var repeatCount = this.emitsQueue.length;
                    for(var i = 0; i < repeatCount; i++){
                        var emitData = this.emitsQueue.shift();
                        if (emitData) {
                            try {
                                this.emit(emitData.event, emitData.message, emitData.callback);
                            } catch (error) {
                                debug4("Could not repeat emit because of fatal failure", emitData, error);
                                console.error(error);
                            }
                        }
                    }
                    debug4("Number of emits in queue after repeat", this.emitsQueue.length);
                };
                AutoReconnectingWSSocket2.prototype.onSocketDisconnected = function() {
                    return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a2) {
                            switch(_a2.label){
                                case 0:
                                    debug4("Internal socket disconnected");
                                    this.internalEventEmitter.emit("disconnected");
                                    if (!!this.closed) return [
                                        3,
                                        2
                                    ];
                                    this.socket.removeAllListeners();
                                    return [
                                        4,
                                        this.progressiveWait.wait()
                                    ];
                                case 1:
                                    _a2.sent();
                                    this.openNewSocket();
                                    _a2.label = 2;
                                case 2:
                                    return [
                                        2
                                    ];
                            }
                        });
                    });
                };
                AutoReconnectingWSSocket2.prototype.registerOnceListenerOnCurrentSocket = function(event, listener) {
                    var _this = this;
                    this.socket.once(event, listener);
                    this.socket.once(event, function() {
                        return _this.removeEventListenerFromList(event, listener);
                    });
                };
                AutoReconnectingWSSocket2.prototype.removeEventListenerFromList = function(event, listener) {
                    this.eventListeners = this.eventListeners.filter(function(eventListener) {
                        return eventListener.event !== event || eventListener.listener !== listener;
                    });
                };
                return AutoReconnectingWSSocket2;
            }();
            exports["default"] = AutoReconnectingWSSocket;
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/WebSocket/Client/WS/createWSSocket.js
    var require_createWSSocket2 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/WebSocket/Client/WS/createWSSocket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __assign = exports && exports.__assign || function() {
                __assign = Object.assign || function(t) {
                    for(var s, i = 1, n = arguments.length; i < n; i++){
                        s = arguments[i];
                        for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
                    }
                    return t;
                };
                return __assign.apply(this, arguments);
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSocket = createSocket;
            exports.createAutoReconnectingSocket = createAutoReconnectingSocket;
            var url_1 = require_url();
            var ISocket_1 = require_ISocket2();
            var events_1 = require_events();
            var generator_1 = require_generator2();
            var AutoReconnectingWSSocket_1 = __importDefault(require_AutoReconnectingWSSocket2());
            var isomorphic_ws_1 = __importDefault(require_browser20());
            var debug_1 = __importDefault(require_browser21());
            var debug4 = (0, debug_1["default"])("@signageos/lib:WebSocket:Client:WS:createWSSocket");
            var DEFAULT_PINGPONG_TIMEOUT = 3e4;
            var defaultOptions = {
                enablePingPong: true,
                pingPongTimeout: DEFAULT_PINGPONG_TIMEOUT
            };
            function createSocket(socketUri, onConnected, onDisconnected, onError, options) {
                if (options === void 0) {
                    options = defaultOptions;
                }
                options = __assign(__assign({}, defaultOptions), options);
                var socketParsedUrl = (0, url_1.parse)(socketUri);
                if (socketParsedUrl.protocol === "https:") {
                    socketParsedUrl.protocol = "wss:";
                }
                if (socketParsedUrl.protocol === "http:") {
                    socketParsedUrl.protocol = "ws:";
                }
                var wsSocketUri = (0, url_1.format)(socketParsedUrl);
                var messageEmitter = new events_1.EventEmitter();
                var responseEmitter = new events_1.EventEmitter();
                var ws = new isomorphic_ws_1["default"](wsSocketUri);
                var isAlive = true;
                function onMessage(messageEvent) {
                    debug4("message", messageEvent.data);
                    var message2 = JSON.parse(messageEvent.data);
                    switch(message2.type){
                        case "response":
                            responseEmitter.emit(message2.responseUid);
                            break;
                        case "request":
                            messageEmitter.emit(message2.event, message2.payload);
                            if (message2.responseUid) {
                                var responseMessage = {
                                    type: "response",
                                    responseUid: message2.responseUid
                                };
                                if (ws.readyState === isomorphic_ws_1["default"].OPEN) {
                                    ws.send(JSON.stringify(responseMessage));
                                } else {
                                    debug4("Socket is not open. Unconfirmed message", responseMessage, message2);
                                    var error = new ISocket_1.UnconfirmedMessageError(responseMessage, message2, /* @__PURE__ */ new Date());
                                    onError(error);
                                }
                            }
                            break;
                        case "pong":
                            isAlive = true;
                            break;
                        default:
                    }
                }
                ws.addEventListener("message", onMessage);
                ws.addEventListener("error", onError);
                ws.addEventListener("open", onConnected);
                ws.addEventListener("close", onDisconnected);
                if (options.enablePingPong) {
                    var pingPongInterval_1 = null;
                    ws.addEventListener("open", function() {
                        pingPongInterval_1 = setInterval(function() {
                            if (!isAlive) {
                                debug4("server not responding, closing websocket");
                                clearInterval(pingPongInterval_1);
                                ws.close(3e3, "Server is not responding");
                            } else if (ws.readyState === isomorphic_ws_1["default"].OPEN) {
                                debug4("send ping");
                                var pingMessage = {
                                    type: "ping"
                                };
                                ws.send(JSON.stringify(pingMessage));
                                isAlive = false;
                            }
                        }, options.pingPongTimeout);
                    });
                    ws.addEventListener("close", function() {
                        if (pingPongInterval_1) {
                            clearInterval(pingPongInterval_1);
                        }
                    });
                }
                var socket = {
                    on: function on(event, listener) {
                        messageEmitter.on(event, listener);
                    },
                    once: function once(event, listener) {
                        messageEmitter.once(event, listener);
                    },
                    emit: function emit(event, payload, callback) {
                        var message2 = {
                            type: "request",
                            event: event,
                            payload: payload
                        };
                        if (callback) {
                            message2.responseUid = (0, generator_1.generateUniqueHash)();
                            responseEmitter.once(message2.responseUid, function() {
                                return callback();
                            });
                        }
                        if (ws.readyState === isomorphic_ws_1["default"].OPEN) {
                            ws.send(JSON.stringify(message2));
                        } else {
                            debug4("Socket is not open. Undelivered message", message2);
                            var error = new ISocket_1.UndeliveredEmitError(message2, /* @__PURE__ */ new Date());
                            onError(error);
                            throw error;
                        }
                    },
                    removeListener: function removeListener(event, listener) {
                        messageEmitter.removeListener(event, listener);
                    },
                    removeAllListeners: function removeAllListeners() {
                        ws.removeEventListener("message", onMessage);
                        ws.removeEventListener("error", onError);
                        ws.removeEventListener("open", onConnected);
                        ws.removeEventListener("close", onDisconnected);
                        messageEmitter.removeAllListeners();
                    },
                    close: function close() {
                        if (ws.readyState !== isomorphic_ws_1["default"].CLOSED && ws.readyState !== isomorphic_ws_1["default"].CLOSING) {
                            ws.close(1e3, "Closed by client");
                        } else {
                            debug4("Closing disconnected socket is not wanted");
                        }
                    }
                };
                return socket;
            }
            function createAutoReconnectingSocket(socketUri, onConnected, onDisconnected, onError, options, initialReconnectTimeout, maxReconnectTimeout) {
                var socketFactory = function socketFactory(onSocketConnected, onSocketDisconnected, onSocketError) {
                    return createSocket(socketUri, onSocketConnected, onSocketDisconnected, onSocketError, options);
                };
                var autoReconnectingSocket = new AutoReconnectingWSSocket_1["default"](socketFactory, initialReconnectTimeout, maxReconnectTimeout);
                autoReconnectingSocket.onConnected(onConnected);
                autoReconnectingSocket.onDisconnected(onDisconnected);
                autoReconnectingSocket.onError(onError);
                return autoReconnectingSocket;
            }
        }
    });
    // node_modules/@signageos/remote-desktop/es6/RemoteDesktop/socket.js
    var require_socket4 = __commonJS({
        "node_modules/@signageos/remote-desktop/es6/RemoteDesktop/socket.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.connectSocket = connectSocket;
            var createWSSocket_1 = require_createWSSocket2();
            function connectSocket(serverUri, options) {
                return new Promise(function(resolve, reject) {
                    var socket = (0, createWSSocket_1.createSocket)(serverUri, function() {
                        return resolve(socket);
                    }, function() {
                        options === null || options === void 0 ? void 0 : options.onDisconnect();
                        console.warn("RemoteDesktopClient was disconnected from the server. Initial request uri:", serverUri);
                    }, function(error) {
                        return reject(error);
                    }, options);
                });
            }
        }
    });
    // node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Promise/deferred.js
    var require_deferred2 = __commonJS({
        "node_modules/@signageos/remote-desktop/node_modules/@signageos/lib/dist/Promise/deferred.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDeferred = createDeferred;
            function createDeferred(throwIfResolvedMultipleTimes) {
                var resolved = false;
                var _a2 = [
                    void 0,
                    void 0
                ], promiseResolve = _a2[0], promiseReject = _a2[1];
                var promise3 = new Promise(function(resolve, reject) {
                    var _a3;
                    _a3 = [
                        resolve,
                        reject
                    ], promiseResolve = _a3[0], promiseReject = _a3[1];
                });
                var handleIfIncorrect = function handleIfIncorrect() {
                    if (resolved) {
                        if (throwIfResolvedMultipleTimes) {
                            throw new Error("Deferred shouldn't be resolved more than once.");
                        } else if (throwIfResolvedMultipleTimes === void 0) {
                            console.warn(new Error("Deferred shouldn't be resolved more than once, ignoring this call."));
                        }
                    }
                    resolved = true;
                };
                return {
                    promise: promise3,
                    resolve: function resolve(value) {
                        handleIfIncorrect();
                        promiseResolve(value);
                    },
                    reject: function reject(e) {
                        handleIfIncorrect();
                        promiseReject(e);
                    }
                };
            }
        }
    });
    // node_modules/@signageos/remote-desktop/es6/RemoteDesktop/DeviceClient/DeviceClient.js
    var require_DeviceClient = __commonJS({
        "node_modules/@signageos/remote-desktop/es6/RemoteDesktop/DeviceClient/DeviceClient.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.DeviceClient = void 0;
            var debug_1 = __importDefault(require_browser21());
            var messages_1 = require_messages();
            var client_1 = require_client();
            var socket_1 = require_socket4();
            var deferred_1 = require_deferred2();
            var debug4 = (0, debug_1["default"])("@signageos/remote-desktop:DeviceClient");
            var DEFAULT_FREQUENCY_MS = 500;
            var DEFAULT_SOCKET_PINGPONG_TIMEOUT = 3e4;
            var DeviceClient = /*#__PURE__*/ function() {
                function DeviceClient(takeScreenshot, duid, eventDispatcher) {
                    _class_call_check(this, DeviceClient);
                    this.takeScreenshot = takeScreenshot;
                    this.duid = duid;
                    this.eventDispatcher = eventDispatcher;
                    this.takingScreenshot = false;
                    this.browserConnected = false;
                }
                _create_class(DeviceClient, [
                    {
                        key: "start",
                        value: function start(options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var connectedPromise;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            debug4("Starting DeviceClient", options);
                                            if (this.socket) {
                                                throw new Error("Already started");
                                            }
                                            return [
                                                4,
                                                this.connectWebSocket(this.duid, options)
                                            ];
                                        case 1:
                                            _state.sent();
                                            debug4("Connected to WebSocket");
                                            connectedPromise = this.bindSocketEvents(options).connectedPromise;
                                            return [
                                                2,
                                                (0, client_1.createStartedClient)(this, connectedPromise, options)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _a2;
                                return _ts_generator(this, function(_state) {
                                    debug4("Stopping DeviceClient");
                                    if (!this.socket) {
                                        throw new Error("Not started");
                                    }
                                    clearInterval(this.intervalHandler);
                                    this.intervalHandler = void 0;
                                    (_a2 = this.socket) === null || _a2 === void 0 ? void 0 : _a2.close();
                                    this.socket = void 0;
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isStarted",
                        value: function isStarted() {
                            return Boolean(this.socket);
                        }
                    },
                    {
                        key: "isBrowserConnected",
                        value: function isBrowserConnected() {
                            return this.browserConnected;
                        }
                    },
                    {
                        key: "connectWebSocket",
                        value: function connectWebSocket(duid, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var serverUri, _;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            serverUri = "".concat(options.serverUrl, "/device?duid=").concat(duid);
                                            _ = this;
                                            return [
                                                4,
                                                (0, socket_1.connectSocket)(serverUri, {
                                                    onDisconnect: this.disconnect.bind(this, options),
                                                    enablePingPong: true,
                                                    pingPongTimeout: DEFAULT_SOCKET_PINGPONG_TIMEOUT
                                                })
                                            ];
                                        case 1:
                                            _.socket = _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "disconnect",
                        value: function disconnect(options) {
                            var _a2;
                            debug4("BrowserDisconnected");
                            this.browserConnected = false;
                            (_a2 = options.onStatus) === null || _a2 === void 0 ? void 0 : _a2.call(options, false);
                            clearInterval(this.intervalHandler);
                            this.intervalHandler = void 0;
                        }
                    },
                    {
                        key: "bindSocketEvents",
                        value: function bindSocketEvents(options) {
                            var _this = this;
                            if (!this.socket) {
                                throw new Error("Socket not initialized");
                            }
                            var connectedDeferred = (0, deferred_1.createDeferred)();
                            this.socket.on(messages_1.Message.MouseEvent, function(payload) {
                                return __awaiter(_this, void 0, void 0, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                debug4("MouseEvent", payload);
                                                return [
                                                    4,
                                                    this.eventDispatcher.dispatchEvent(payload)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                            this.socket.on(messages_1.Message.KeyEvent, function(payload) {
                                return __awaiter(_this, void 0, void 0, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                debug4("KeyEvent", payload);
                                                return [
                                                    4,
                                                    this.eventDispatcher.dispatchEvent(payload)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                            this.socket.on(messages_1.Message.ButtonEvent, function(payload) {
                                return __awaiter(_this, void 0, void 0, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                debug4("ButtonEvent", payload);
                                                return [
                                                    4,
                                                    this.eventDispatcher.dispatchEvent(payload)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                            this.socket.on(messages_1.Message.BrowserConnected, function() {
                                var _a2, _b2;
                                debug4("BrowserConnected");
                                _this.browserConnected = true;
                                (_a2 = options.onStatus) === null || _a2 === void 0 ? void 0 : _a2.call(options, true);
                                connectedDeferred.resolve();
                                var frequencyMs = (_b2 = options.frequencyMs) !== null && _b2 !== void 0 ? _b2 : DEFAULT_FREQUENCY_MS;
                                _this.intervalHandler = setInterval(_this.recordScreenshot.bind(_this), frequencyMs);
                            });
                            this.socket.on(messages_1.Message.BrowserDisconnected, this.disconnect.bind(this, options));
                            return {
                                connectedPromise: connectedDeferred.promise
                            };
                        }
                    },
                    {
                        key: "recordScreenshot",
                        value: function recordScreenshot() {
                            return __awaiter(this, void 0, void 0, function() {
                                var screenshot, payload;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            debug4("Taking screenshot");
                                            if (this.takingScreenshot) {
                                                return [
                                                    2
                                                ];
                                            }
                                            this.takingScreenshot = true;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                ,
                                                3,
                                                4
                                            ]);
                                            return [
                                                4,
                                                this.takeScreenshot()
                                            ];
                                        case 2:
                                            screenshot = _state.sent();
                                            debug4("Screenshot taken", screenshot);
                                            if (!this.socket) {
                                                throw new Error("Socket not initialized");
                                            }
                                            payload = screenshot;
                                            this.socket.emit(messages_1.Message.ScreenshotRecorded, payload);
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            this.takingScreenshot = false;
                                            return [
                                                7
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return DeviceClient;
            }();
            exports.DeviceClient = DeviceClient;
        }
    });
    // node_modules/@signageos/actions/dist/Device/RemoteDesktop/remoteDesktopActions.js
    var require_remoteDesktopActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/RemoteDesktop/remoteDesktopActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetRemoteDesktopSettingsFailed = exports.SetRemoteDesktopSettingsSucceeded = exports.SetRemoteDesktopSettings = void 0;
            exports.SetRemoteDesktopSettings = "RemoteDesktop.SetRemoteDesktopSettings";
            exports.SetRemoteDesktopSettingsSucceeded = "RemoteDesktop.SetRemoteDesktopSettingsSucceeded";
            exports.SetRemoteDesktopSettingsFailed = "RemoteDesktop.SetRemoteDesktopSettingsFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/RemoteDesktop/remoteDesktopSaga.js
    var require_remoteDesktopSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/RemoteDesktop/remoteDesktopSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.remoteDesktopSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var socketActionCreator_1 = require_socketActionCreator();
            var DeviceClient_1 = require_DeviceClient();
            var capable_1 = require_capable();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var dependencyInjection_1 = require_dependencyInjection();
            var remoteDesktopActions_1 = require_remoteDesktopActions();
            var responsible_1 = require_responsible();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            exports.remoteDesktopSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].REMOTE_DESKTOP, (0, capable_1.whenCapable)(ManagementCapabilities_1.ManagementCapabilities.REMOTE_DESKTOP, remoteDesktopSagaDefault));
            function remoteDesktopSagaDefault() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SCREENSHOT_UPLOAD, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver"
                                ], function(param) {
                                    var managementDriver, duid, resolutionItem, remoteDesktopClient;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver;
                                                return [
                                                    4,
                                                    (0, effects_1.call)([
                                                        managementDriver,
                                                        managementDriver.getDeviceUid
                                                    ])
                                                ];
                                            case 1:
                                                duid = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.call)([
                                                        managementDriver,
                                                        managementDriver.getResolution
                                                    ])
                                                ];
                                            case 2:
                                                resolutionItem = _state.sent();
                                                remoteDesktopClient = null;
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(remoteDesktopActions_1.SetRemoteDesktopSettings, function(action) {
                                                        var _this, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _this = this;
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        9,
                                                                        ,
                                                                        11
                                                                    ]);
                                                                    if (!action.enabled) return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                    if (!remoteDesktopClient) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        remoteDesktopClient.stop()
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    remoteDesktopClient = new DeviceClient_1.DeviceClient(function() {
                                                                        return __awaiter(_this, void 0, void 0, function() {
                                                                            var _tmp;
                                                                            return _ts_generator(this, function(_state) {
                                                                                switch(_state.label){
                                                                                    case 0:
                                                                                        _tmp = {};
                                                                                        return [
                                                                                            4,
                                                                                            managementDriver.screenshotUpload({
                                                                                                baseUrl: action.serverUrl
                                                                                            })
                                                                                        ];
                                                                                    case 1:
                                                                                        return [
                                                                                            2,
                                                                                            (_tmp.screenshotUri = _state.sent().url, _tmp.width = resolutionItem.width, _tmp.height = resolutionItem.height, _tmp)
                                                                                        ];
                                                                                }
                                                                            });
                                                                        });
                                                                    }, duid, managementDriver.input);
                                                                    return [
                                                                        4,
                                                                        remoteDesktopClient.start({
                                                                            serverUrl: action.serverUrl,
                                                                            frequencyMs: action.frequencyMs
                                                                        })
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                case 5:
                                                                    if (!remoteDesktopClient) return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        remoteDesktopClient.stop()
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    remoteDesktopClient = null;
                                                                    _state.label = 7;
                                                                case 7:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: remoteDesktopActions_1.SetRemoteDesktopSettingsSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                case 9:
                                                                    error = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: remoteDesktopActions_1.SetRemoteDesktopSettingsFailed,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 10:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                case 11:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Application/pingSagas.js
    var require_pingSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Application/pingSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.pinging = void 0;
            var applicationActions_1 = require_applicationActions2();
            var wait_1 = __importDefault(require_wait());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceConfigurationActions_1 = require_deviceConfigurationActions();
            var constants_1 = require_constants();
            var OPEN_PERIOD = 30 * constants_1.SOMETIMES;
            function pinging() {
                var isPlatform;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            isPlatform = false;
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceConfigurationActions_1.ChangeSubscriptionToOpen, function() {
                                    return _ts_generator(this, function(_state) {
                                        isPlatform = false;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceConfigurationActions_1.ChangeSubscriptionToPlatform, function() {
                                    return _ts_generator(this, function(_state) {
                                        isPlatform = true;
                                        return [
                                            2
                                        ];
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(applicationActions_1.StartApplication, function() {
                                    var nextPingInMs, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    6,
                                                    ,
                                                    7
                                                ]);
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.CONSTANTLY)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                if (!true) return [
                                                    3,
                                                    5
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: applicationActions_1.Ping
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                nextPingInMs = isPlatform ? constants_1.REGULARLY : OPEN_PERIOD;
                                                return [
                                                    4,
                                                    (0, effects_1.race)({
                                                        platform: (0, effects_1.take)(deviceConfigurationActions_1.ChangeSubscriptionToPlatform),
                                                        open: (0, effects_1.take)(deviceConfigurationActions_1.ChangeSubscriptionToOpen),
                                                        wait: (0, effects_1.call)(wait_1["default"], nextPingInMs)
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    2
                                                ];
                                            case 5:
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 6:
                                                error = _state.sent();
                                                console.error("pinging failed", error);
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.pinging = pinging;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Application/deviceApplicationSagas.js
    var require_deviceApplicationSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Application/deviceApplicationSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.syncApplicationVersionSaga = exports.setDeviceApplicationVersionCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceApplicationActions_1 = require_deviceApplicationActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var processCallback_1 = __importDefault(require_processCallback());
            function setDeviceApplicationVersionCallback(managementDriver, staticBaseUrl, action) {
                var finalizeCallback, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                4,
                                ,
                                6
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(managementDriver, managementDriver.appUpgrade, [
                                    staticBaseUrl,
                                    action.version
                                ])
                            ];
                        case 1:
                            finalizeCallback = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceApplicationActions_1.SetDeviceApplicationVersionSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(processCallback_1["default"], finalizeCallback)
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            error = _state.sent();
                            console.error("syncApplicationVersionSaga", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceApplicationActions_1.SetDeviceApplicationVersionFailed,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceApplicationVersionCallback = setDeviceApplicationVersionCallback;
            function syncApplicationVersionSaga(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].APP)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceApplicationActions_1.SetDeviceApplicationVersion)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].APP_UPGRADE, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "staticBaseUrl"
                                ], function(param) {
                                    var managementDriver, staticBaseUrl;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(deviceApplicationActions_1.SetDeviceApplicationVersion, setDeviceApplicationVersionCallback, managementDriver, staticBaseUrl)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.syncApplicationVersionSaga = syncApplicationVersionSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Audio/deviceVolumeSagas.js
    var require_deviceVolumeSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Audio/deviceVolumeSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceVolumeSaga = exports.setDeviceVolumeCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceAudioActions_1 = require_deviceAudioActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            function setDeviceVolumeCallback(getNativeDriver, action) {
                var nativeDriver, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                3,
                                ,
                                5
                            ]);
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                (0, effects_1.apply)(nativeDriver, nativeDriver.setVolume, [
                                    action.volume
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceAudioActions_1.SetDeviceVolumeSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            error = _state.sent();
                            console.error("deviceVolumeSaga", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceAudioActions_1.SetDeviceVolumeFailed,
                                    uid: action.uid
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceVolumeCallback = setDeviceVolumeCallback;
            function deviceVolumeSaga(getNativeDriver, responsibilities) {
                var supportsVolume;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].VOLUME)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceAudioActions_1.SetDeviceVolume)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].SET_VOLUME)
                            ];
                        case 2:
                            supportsVolume = _state.sent();
                            if (!supportsVolume) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceAudioActions_1.SetDeviceVolume, setDeviceVolumeCallback, getNativeDriver)
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceVolumeSaga = deviceVolumeSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/AutoRecovery/autoRecoverySagas.js
    var require_autoRecoverySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/AutoRecovery/autoRecoverySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.autoRecoverySaga = exports.setDeviceAutoRecovery = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceAutoRecoveryActions_1 = require_deviceAutoRecoveryActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            function setDeviceAutoRecovery(getNativeDriver, action) {
                var nativeDriver, configuration, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = getNativeDriver();
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                4,
                                ,
                                6
                            ]);
                            configuration = action.enabled ? {
                                enabled: true,
                                healthcheckIntervalMs: action.healthcheckIntervalMs
                            } : {
                                enabled: false,
                                autoEnableTimeoutMs: action.autoEnableTimeoutMs
                            };
                            return [
                                4,
                                (0, effects_1.call)([
                                    nativeDriver,
                                    "setAutoRecovery"
                                ], configuration)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceAutoRecoveryActions_1.SetDeviceAutoRecoverySucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            error = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceAutoRecoveryActions_1.SetDeviceAutoRecoveryFailed,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceAutoRecovery = setDeviceAutoRecovery;
            function autoRecoverySaga(getNativeDriver, responsibilities) {
                var nativeDriver, isSupported;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].AUTO_RECOVERY)) {
                                return [
                                    2
                                ];
                            }
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                (0, effects_1.call)([
                                    nativeDriver,
                                    "managementSupports"
                                ], ManagementCapability_1["default"].AUTO_RECOVERY)
                            ];
                        case 1:
                            isSupported = _state.sent();
                            if (!isSupported) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(deviceAutoRecoveryActions_1.SetDeviceAutoRecovery, setDeviceAutoRecovery, getNativeDriver)
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.autoRecoverySaga = autoRecoverySaga;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Battery/batteryActions.js
    var require_batteryActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Battery/batteryActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyBatteryStatus = void 0;
            exports.NotifyBatteryStatus = "Device.Battery.NotifyBatteryStatus";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Battery/deviceBatterySaga.js
    var require_deviceBatterySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Battery/deviceBatterySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceBatterySaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var batteryActions_1 = require_batteryActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var deviceBatterySaga = function() {
                return (0, capable_1.whenCapable)(ManagementCapability_1["default"].BATTERY_STATUS, (0, dependencyInjection_1.withDependencies)([
                    "managementDriver",
                    "responsibilities",
                    "telemetryIntervals"
                ], function(param) {
                    var managementDriver, responsibilities, telemetryIntervals, _a2, periodMs;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                managementDriver = param.managementDriver, responsibilities = param.responsibilities, telemetryIntervals = param.telemetryIntervals;
                                if (!responsibilities.has(Responsibility_1["default"].BATTERY)) {
                                    return [
                                        2
                                    ];
                                }
                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals.battery) !== null && _a2 !== void 0 ? _a2 : 0;
                                return [
                                    4,
                                    (0, deviceTelemetryHelper_1.registerTelemetry)("BATTERY", periodMs, function() {
                                        var batteryStatus, error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        3,
                                                        ,
                                                        4
                                                    ]);
                                                    return [
                                                        4,
                                                        managementDriver.batteryGetStatus()
                                                    ];
                                                case 1:
                                                    batteryStatus = _state.sent();
                                                    return [
                                                        4,
                                                        (0, effects_1.put)({
                                                            type: batteryActions_1.NotifyBatteryStatus,
                                                            batteryStatus: batteryStatus
                                                        })
                                                    ];
                                                case 2:
                                                    _state.sent();
                                                    return [
                                                        3,
                                                        4
                                                    ];
                                                case 3:
                                                    error = _state.sent();
                                                    console.error("deviceBatterySaga", error);
                                                    return [
                                                        3,
                                                        4
                                                    ];
                                                case 4:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                }));
            };
            exports.deviceBatterySaga = deviceBatterySaga;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/screenHelper.js
    var require_screenHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/screenHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.resolveCurrentBrightness = void 0;
            var moment_timezone_1 = __importDefault(require_moment_timezone4());
            function resolveCurrentBrightness2(timeFrom1, brightness1, timeFrom2, brightness2, now2) {
                var nowMoment = (0, moment_timezone_1["default"])(now2);
                var timeFrom1Moment = (0, moment_timezone_1["default"])(nowMoment.format("YYYY-MM-DD") + " " + timeFrom1, "YYYY-MM-DD HH:mm:ss");
                var timeFrom2Moment = (0, moment_timezone_1["default"])(nowMoment.format("YYYY-MM-DD") + " " + timeFrom2, "YYYY-MM-DD HH:mm:ss");
                if (timeFrom2Moment.isBefore(timeFrom1Moment)) {
                    var ref;
                    ref = [
                        timeFrom2Moment,
                        brightness2,
                        timeFrom1Moment,
                        brightness1
                    ], timeFrom1Moment = ref[0], brightness1 = ref[1], timeFrom2Moment = ref[2], brightness2 = ref[3], ref;
                }
                if (nowMoment.isSameOrAfter(timeFrom1Moment) && nowMoment.isBefore(timeFrom2Moment)) {
                    return brightness1;
                }
                return brightness2;
            }
            exports.resolveCurrentBrightness = resolveCurrentBrightness2;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Brightness/brightnessControllerSagas.js
    var require_brightnessControllerSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Brightness/brightnessControllerSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.brightnessRefresh = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var wait_1 = __importDefault(require_wait());
            var dateTimeFactory_1 = require_dateTimeFactory();
            var screenHelper_1 = require_screenHelper();
            var Property_1 = __importDefault(require_Property());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var constants_1 = require_constants();
            function brightnessRefresh(getNativeDriver, propertyStorage) {
                var isSupported;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].BRIGHTNESS_SCHEDULING)
                            ];
                        case 1:
                            isSupported = _state.sent();
                            if (!!isSupported) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                (0, effects_1.fork)(function() {
                                    var now2, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!true) return [
                                                    3,
                                                    6
                                                ];
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.REGULARLY)
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                _state.trys.push([
                                                    2,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                now2 = (0, dateTimeFactory_1.now)().toDate();
                                                return [
                                                    4,
                                                    refreshBrightness(getNativeDriver(), propertyStorage, now2)
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("brightness refresh failed", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    3,
                                                    0
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.brightnessRefresh = brightnessRefresh;
            function refreshBrightness(nativeDriver, propertyStorage, now2) {
                var settings, newBrightness, oldBrightnessSettings, oldBrightness;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].BRIGHTNESS_SETTINGS, null)
                            ];
                        case 1:
                            settings = _state.sent();
                            if (!settings) return [
                                3,
                                4
                            ];
                            newBrightness = (0, screenHelper_1.resolveCurrentBrightness)(settings.timeFrom1, settings.brightness1, settings.timeFrom2, settings.brightness2, now2);
                            return [
                                4,
                                nativeDriver.screenGetBrightness()
                            ];
                        case 2:
                            oldBrightnessSettings = _state.sent();
                            oldBrightness = (0, screenHelper_1.resolveCurrentBrightness)(oldBrightnessSettings.timeFrom1, oldBrightnessSettings.brightness1, oldBrightnessSettings.timeFrom2, oldBrightnessSettings.brightness2, now2);
                            if (!(oldBrightness !== newBrightness)) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.apply)(nativeDriver, nativeDriver.screenSetBrightness, [
                                    settings.timeFrom1,
                                    newBrightness,
                                    settings.timeFrom2,
                                    newBrightness
                                ])
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Brightness/deviceBrightnessSagas.js
    var require_deviceBrightnessSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Brightness/deviceBrightnessSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.syncBrightnessSettingsSaga = exports.setDeviceBrightnessCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceBrightnessActions_1 = require_deviceBrightnessActions();
            var Property_1 = __importDefault(require_Property());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            function setDeviceBrightnessCallback(getNativeDriver, propertyStorage, action) {
                var nativeDriver, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                4,
                                ,
                                6
                            ]);
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                (0, effects_1.apply)(nativeDriver, nativeDriver.screenSetBrightness, [
                                    action.timeFrom1,
                                    action.brightness1,
                                    action.timeFrom2,
                                    action.brightness2
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.apply)(propertyStorage, propertyStorage.setValue, [
                                    Property_1["default"].BRIGHTNESS_SETTINGS,
                                    {
                                        timeFrom1: action.timeFrom1,
                                        brightness1: action.brightness1,
                                        timeFrom2: action.timeFrom2,
                                        brightness2: action.brightness2
                                    }
                                ])
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceBrightnessActions_1.SetDeviceBrightnessSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            error = _state.sent();
                            console.error("syncBrightnessSettingsSaga", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceBrightnessActions_1.SetDeviceBrightnessFailed,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceBrightnessCallback = setDeviceBrightnessCallback;
            function syncBrightnessSettingsSaga(getNativeDriver, responsibilities, propertyStorage) {
                var supportsBrightness;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].BRIGHTNESS)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceBrightnessActions_1.SetDeviceBrightness)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].SET_BRIGHTNESS)
                            ];
                        case 2:
                            supportsBrightness = _state.sent();
                            if (!supportsBrightness) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceBrightnessActions_1.SetDeviceBrightness, setDeviceBrightnessCallback, getNativeDriver, propertyStorage)
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.syncBrightnessSettingsSaga = syncBrightnessSettingsSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/DateTime/timeChangeDetector.js
    var require_timeChangeDetector = __commonJS({
        "node_modules/@signageos/front-display/es6/DateTime/timeChangeDetector.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TimeChangeDetector = void 0;
            var dateTimeFacade_1 = require_dateTimeFacade();
            var TimeChangeDetector = /*#__PURE__*/ function() {
                function TimeChangeDetector(managementDriver, checkingIntervalMs, significantThresholdMs) {
                    var _this = this;
                    _class_call_check(this, TimeChangeDetector);
                    this.managementDriver = managementDriver;
                    this.checkingIntervalMs = checkingIntervalMs;
                    this.significantThresholdMs = significantThresholdMs;
                    this.createCheckTimeChange = function(onChange) {
                        return function() {
                            return __awaiter(_this, void 0, void 0, function() {
                                var currentTime, expectedCurrentTime;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                (0, dateTimeFacade_1.getCurrentTime)(this.managementDriver)
                                            ];
                                        case 1:
                                            currentTime = _state.sent();
                                            expectedCurrentTime = Object.assign(Object.assign({}, this.lastTime), {
                                                timestamp: this.lastTime.timestamp + this.checkingIntervalMs
                                            });
                                            if (this.areTimesSignificantlyDifferent(currentTime, expectedCurrentTime)) {
                                                onChange();
                                            }
                                            this.lastTime = currentTime;
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        };
                    };
                }
                _create_class(TimeChangeDetector, [
                    {
                        key: "start",
                        value: function start(onChange) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (this.checkingHandler) {
                                                throw new Error("It's running already");
                                            }
                                            _ = this;
                                            return [
                                                4,
                                                (0, dateTimeFacade_1.getCurrentTime)(this.managementDriver)
                                            ];
                                        case 1:
                                            _.lastTime = _state.sent();
                                            this.checkingHandler = setInterval(this.createCheckTimeChange(onChange), this.checkingIntervalMs);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            if (this.checkingHandler) {
                                clearInterval(this.checkingHandler);
                                this.checkingHandler = void 0;
                            }
                        }
                    },
                    {
                        key: "areTimesSignificantlyDifferent",
                        value: function areTimesSignificantlyDifferent(time1, time2) {
                            var changedByMs = Math.abs(time1.timestamp - time2.timestamp);
                            return changedByMs > this.significantThresholdMs || time2.ntpEnabled !== time1.ntpEnabled || time2.ntpServer !== time1.ntpServer || time2.timezone !== time1.timezone || time2.timezoneOffset !== time1.timezoneOffset;
                        }
                    }
                ]);
                return TimeChangeDetector;
            }();
            exports.TimeChangeDetector = TimeChangeDetector;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/DateTime/currentTimeSyncSagas.js
    var require_currentTimeSyncSagas3 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/DateTime/currentTimeSyncSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.startupDeviceDateTimeSettings = exports.updateTimeSettingsSaga = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceDateTimeActions_1 = require_deviceDateTimeActions();
            var authenticationActions_1 = require_authenticationActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var dateTimeFacade_1 = require_dateTimeFacade();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var currentTimeSyncSagas_1 = require_currentTimeSyncSagas();
            var dependencyInjection_1 = require_dependencyInjection();
            var responsible_1 = require_responsible();
            var capable_1 = require_capable();
            var timeChangeDetector_1 = require_timeChangeDetector();
            var channels_1 = require_channels();
            var applicationActions_1 = require_applicationActions();
            var processCallback_1 = __importDefault(require_processCallback());
            var constants_1 = require_constants();
            exports.updateTimeSettingsSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].TIME, (0, capable_1.whenCapable)(ManagementCapability_1["default"].SET_TIME, (0, dependencyInjection_1.withDependencies)([
                "managementDriver",
                "propertyStorage"
            ], function(param) {
                var managementDriver;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            managementDriver = param.managementDriver;
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(deviceDateTimeActions_1.UpdateDeviceTimeSettings, function(action) {
                                    var finalizeCallback, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    5,
                                                    ,
                                                    7
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.call)(dateTimeFacade_1.setNtpOrManualTime, managementDriver, action.timestamp, action.timezone, action.ntpServer)
                                                ];
                                            case 1:
                                                finalizeCallback = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceDateTimeActions_1.UpdateDeviceTimeSettingsSucceed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.fork)(currentTimeSyncSagas_1.notifyCurrentTime)
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.call)(processCallback_1["default"], finalizeCallback)
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("updateTimeSettingsSage failed", error);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceDateTimeActions_1.UpdateDeviceTimeSettingsFailed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            })));
            var updatingTimeWhenChanged = function updatingTimeWhenChanged() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(takeEverySignificantTimeChange, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(currentTimeSyncSagas_1.notifyCurrentTime)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            };
            exports.startupDeviceDateTimeSettings = (0, responsible_1.whenResponsible)(Responsibility_1["default"].TIME, function() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, currentTimeSyncSagas_1.notifyCurrentTime)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)(updatingTimeWhenChanged)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            });
            var takeEverySignificantTimeChange = (0, dependencyInjection_1.withDependencies)([
                "managementDriver",
                "propertyStorage"
            ], function(param, saga) {
                var managementDriver, timeChangeDetector, changesChannel;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            managementDriver = param.managementDriver;
                            timeChangeDetector = new timeChangeDetector_1.TimeChangeDetector(managementDriver, constants_1.REGULARLY, constants_1.SOMETIMES);
                            changesChannel = (0, channels_1.createChannel)(function(thisPut) {
                                return timeChangeDetector.start(function() {
                                    return thisPut();
                                });
                            });
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                ,
                                4,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.call)(channels_1.takeEvery, changesChannel, saga)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.take)(applicationActions_1.StopApplication)
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 4:
                            timeChangeDetector.stop();
                            return [
                                7
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Debug/deviceDebugSettingsSagas.js
    var require_deviceDebugSettingsSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Debug/deviceDebugSettingsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.setDeviceDebugSettingsCallback = exports.devicePerformDebugSettings = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceDebugActions_1 = require_deviceDebugActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var processCallback_1 = __importDefault(require_processCallback());
            function devicePerformDebugSettings(getNativeDriver, responsibilities) {
                var supportsDebug;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].DEBUG)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceDebugActions_1.SetDeviceDebugSettings)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].SET_DEBUG)
                            ];
                        case 2:
                            supportsDebug = _state.sent();
                            if (!supportsDebug) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceDebugActions_1.SetDeviceDebugSettings, setDeviceDebugSettingsCallback, getNativeDriver)
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePerformDebugSettings = devicePerformDebugSettings;
            function setDeviceDebugSettingsCallback(getNativeDriver, param) {
                var nativeEnabled, uid, nativeDriver, finalizeCallback, e;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeEnabled = param.nativeEnabled, uid = param.uid;
                            nativeDriver = getNativeDriver();
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                5,
                                ,
                                7
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(nativeDriver, nativeDriver.setDebug, [
                                    nativeEnabled
                                ])
                            ];
                        case 2:
                            finalizeCallback = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceDebugActions_1.SetDeviceDebugSettingsSucceeded,
                                    uid: uid
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(processCallback_1["default"], finalizeCallback)
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 5:
                            e = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceDebugActions_1.SetDeviceDebugSettingsFailed,
                                    uid: uid
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceDebugSettingsCallback = setDeviceDebugSettingsCallback;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Deprovision/deviceDeprovisionSagas.js
    var require_deviceDeprovisionSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Deprovision/deviceDeprovisionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceDeprovision = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var deviceDeprovisionActions_1 = require_deviceDeprovisionActions();
            var wait_1 = __importDefault(require_wait());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var object_1 = require_object2();
            var TimerType_1 = __importDefault(require_TimerType());
            var combinedDriver_1 = require_combinedDriver();
            var constants_1 = require_constants();
            function deviceDeprovision(getNativeDriver, responsibilities, sessionIdKey) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].DEPROVISIONING)) return [
                                3,
                                2
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceDeprovisionActions_1.PerformDeviceDeprovision, function() {
                                    var managementDriver, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    4,
                                                    ,
                                                    5
                                                ]);
                                                managementDriver = (0, combinedDriver_1.normalizeManagementCacheDriver)(getNativeDriver()).managementDriver;
                                                return [
                                                    4,
                                                    Promise.allSettled([
                                                        clearCache(function() {
                                                            return (0, combinedDriver_1.normalizeManagementCacheDriver)(getNativeDriver()).cacheDriver;
                                                        }),
                                                        clearFileSystem(function() {
                                                            return (0, combinedDriver_1.normalizeManagementCacheDriver)(getNativeDriver()).managementDriver;
                                                        }),
                                                        managementDriver.remoteControlSetEnabled(true),
                                                        clearTimers(function() {
                                                            return (0, combinedDriver_1.normalizeManagementCacheDriver)(getNativeDriver()).managementDriver;
                                                        }),
                                                        managementDriver.setSessionId(sessionIdKey, ""),
                                                        managementDriver.screenSetBrightness("00:00", 50, "00:00", 50),
                                                        managementDriver.setVolume(50),
                                                        managementDriver.displayPowerOn(),
                                                        managementDriver.setDebug(false),
                                                        managementDriver.onDeviceDeprovisioned()
                                                    ])
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, wait_1["default"])(constants_1.SOMETIMES)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, combinedDriver_1.normalizeManagementCacheDriver)(getNativeDriver()).managementDriver.systemReboot()
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 4:
                                                error = _state.sent();
                                                console.error("deviceDeprovision failed", error);
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceDeprovision = deviceDeprovision;
            function clearCache(getNativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var _this, uids;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                return [
                                    4,
                                    getNativeDriver().cacheGetUids()
                                ];
                            case 1:
                                uids = _state.sent();
                                return [
                                    4,
                                    Promise.allSettled(uids.map(function(uid) {
                                        return __awaiter(_this, void 0, void 0, function() {
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        return [
                                                            4,
                                                            getNativeDriver().cacheDelete(uid)
                                                        ];
                                                    case 1:
                                                        _state.sent();
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }))
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function clearFileSystem(getNativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var _this, storageUnits, internalStorageUnits;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                return [
                                    4,
                                    getNativeDriver().fileSystem.listStorageUnits()
                                ];
                            case 1:
                                storageUnits = _state.sent();
                                internalStorageUnits = storageUnits.filter(function(su) {
                                    return !su.removable;
                                });
                                return [
                                    4,
                                    Promise.allSettled(internalStorageUnits.map(function(storageUnit) {
                                        return __awaiter(_this, void 0, void 0, function() {
                                            var _this, filePaths;
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        _this = this;
                                                        return [
                                                            4,
                                                            getNativeDriver().fileSystem.listFiles({
                                                                storageUnit: storageUnit,
                                                                filePath: ""
                                                            })
                                                        ];
                                                    case 1:
                                                        filePaths = _state.sent();
                                                        return [
                                                            4,
                                                            Promise.allSettled(filePaths.map(function(filePath) {
                                                                return __awaiter(_this, void 0, void 0, function() {
                                                                    return _ts_generator(this, function(_state) {
                                                                        switch(_state.label){
                                                                            case 0:
                                                                                return [
                                                                                    4,
                                                                                    getNativeDriver().fileSystem.deleteFile(filePath, true)
                                                                                ];
                                                                            case 1:
                                                                                _state.sent();
                                                                                return [
                                                                                    2
                                                                                ];
                                                                        }
                                                                    });
                                                                });
                                                            }))
                                                        ];
                                                    case 2:
                                                        _state.sent();
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }))
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function clearTimers(getNativeDriver) {
                return __awaiter(this, void 0, void 0, function() {
                    var _this;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                return [
                                    4,
                                    Promise.allSettled((0, object_1.getObjectKeys)(TimerType_1["default"]).map(function(timerTypeString) {
                                        return __awaiter(_this, void 0, void 0, function() {
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        return [
                                                            4,
                                                            getNativeDriver().setTimer(TimerType_1["default"][timerTypeString], null, null, [], 0)
                                                        ];
                                                    case 1:
                                                        _state.sent();
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }))
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/actions/dist/Device/Firmware/deviceFirmwareActions.js
    var require_deviceFirmwareActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Firmware/deviceFirmwareActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpgradeDeviceFirmwareVersionProgressed = exports.NotifyDeviceFirmwareType = exports.NotifyDeviceFirmwareVersion = exports.UpgradeDeviceFirmwareVersionFailed = exports.UpgradeDeviceFirmwareVersionStarted = exports.UpgradeDeviceFirmwareVersion = void 0;
            exports.UpgradeDeviceFirmwareVersion = "Device.Version.UpgradeDevice";
            exports.UpgradeDeviceFirmwareVersionStarted = "Device.Version.UpgradeDeviceStarted";
            exports.UpgradeDeviceFirmwareVersionFailed = "Device.Version.UpgradeDeviceFailed";
            exports.NotifyDeviceFirmwareVersion = "Device.Version.NotifyDeviceVersion";
            exports.NotifyDeviceFirmwareType = "Device.Firmware.NotifyDeviceFirmwareType";
            exports.UpgradeDeviceFirmwareVersionProgressed = "Device.Version.UpgradeDeviceProgress";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Firmware/deviceFirmwareSagas.js
    var require_deviceFirmwareSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Firmware/deviceFirmwareSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceFirmwareUpgrade = exports.deviceFirmwareNotify = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceFirmwareActions_1 = require_deviceFirmwareActions();
            var authenticationActions_1 = require_authenticationActions();
            var channels_1 = require_channels();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var processCallback_1 = __importDefault(require_processCallback());
            var deviceFirmwareVersionUpgradeStart = function(progressChannel, getDeviceUid) {
                return (0, capable_1.whenCapable)(ManagementCapability_1["default"].FIRMWARE_UPGRADE, (0, dependencyInjection_1.withDependencies)([
                    "managementDriver",
                    "staticBaseUrl"
                ], function(param, action) {
                    var managementDriver, staticBaseUrl, finalizeCallback, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl;
                                return [
                                    4,
                                    (0, effects_1.fork)(deviceFirmwareVersionUpgradeProgress, action.uid, progressChannel)
                                ];
                            case 1:
                                _state.sent();
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    7,
                                    ,
                                    9
                                ]);
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: deviceFirmwareActions_1.UpgradeDeviceFirmwareVersionStarted,
                                        uid: action.uid
                                    })
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)([
                                        managementDriver,
                                        managementDriver.firmwareUpgrade
                                    ], staticBaseUrl, action.version, function(progress) {
                                        return progressChannel.put({
                                            progress: progress
                                        });
                                    })
                                ];
                            case 4:
                                finalizeCallback = _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)(checkVersion(getDeviceUid))
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)(processCallback_1["default"], finalizeCallback)
                                ];
                            case 6:
                                _state.sent();
                                return [
                                    3,
                                    9
                                ];
                            case 7:
                                error = _state.sent();
                                console.error(error);
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: deviceFirmwareActions_1.UpgradeDeviceFirmwareVersionFailed,
                                        uid: action.uid
                                    })
                                ];
                            case 8:
                                _state.sent();
                                return [
                                    3,
                                    9
                                ];
                            case 9:
                                return [
                                    2
                                ];
                        }
                    });
                }));
            };
            function deviceFirmwareNotify(responsibilities, getDeviceUid) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].FIRMWARE)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, checkVersion(getDeviceUid))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, notifyFirmwareType)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceFirmwareNotify = deviceFirmwareNotify;
            function deviceFirmwareUpgrade(responsibilities, getDeviceUid) {
                var progressChannel;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].FIRMWARE)) {
                                return [
                                    2
                                ];
                            }
                            progressChannel = (0, channels_1.createChannel)();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(deviceFirmwareActions_1.UpgradeDeviceFirmwareVersion, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.fork)(deviceFirmwareVersionUpgradeStart(progressChannel, getDeviceUid), action)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceFirmwareUpgrade = deviceFirmwareUpgrade;
            function deviceFirmwareVersionUpgradeProgress(uid, progressChannel) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, channels_1.takeEvery)(progressChannel, function(param) {
                                    var progress, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                progress = param.progress;
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceFirmwareActions_1.UpgradeDeviceFirmwareVersionProgressed,
                                                        uid: uid,
                                                        progress: progress
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("deviceFirmwareVersionUpgradeProgress", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            var checkVersion = function(getDeviceUid) {
                return function checkVersion() {
                    var deviceUid, managementDriver, version, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    5,
                                    ,
                                    6
                                ]);
                                return [
                                    4,
                                    (0, effects_1.call)(getDeviceUid)
                                ];
                            case 1:
                                deviceUid = _state.sent();
                                return [
                                    4,
                                    (0, dependencyInjection_1.awaitDependencies)([
                                        "managementDriver"
                                    ])
                                ];
                            case 2:
                                managementDriver = _state.sent().managementDriver;
                                return [
                                    4,
                                    (0, effects_1.call)([
                                        managementDriver,
                                        managementDriver.firmwareGetVersion
                                    ])
                                ];
                            case 3:
                                version = _state.sent();
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: deviceFirmwareActions_1.NotifyDeviceFirmwareVersion,
                                        deviceUid: deviceUid,
                                        version: version
                                    })
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    3,
                                    6
                                ];
                            case 5:
                                error = _state.sent();
                                console.error("deviceFirmwareVersionNotify failed", error);
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                return [
                                    2
                                ];
                        }
                    });
                };
            };
            var notifyFirmwareType = function notifyFirmwareType() {
                var managementDriver, firmwareType, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                5,
                                ,
                                6
                            ]);
                            return [
                                4,
                                (0, dependencyInjection_1.awaitDependencies)([
                                    "managementDriver"
                                ])
                            ];
                        case 1:
                            managementDriver = _state.sent().managementDriver;
                            return [
                                4,
                                (0, effects_1.call)([
                                    managementDriver,
                                    managementDriver.firmwareGetType
                                ])
                            ];
                        case 2:
                            firmwareType = _state.sent();
                            if (!firmwareType) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceFirmwareActions_1.NotifyDeviceFirmwareType,
                                    firmwareType: firmwareType
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                3,
                                6
                            ];
                        case 5:
                            error = _state.sent();
                            console.error("notifyFirmwareType failed", error);
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            };
        }
    });
    // node_modules/@signageos/actions/dist/Device/Package/devicePackageActions.js
    var require_devicePackageActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Package/devicePackageActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyInstalledPackages = exports.UninstallPackageFailed = exports.UninstallPackageSucceeded = exports.UninstallPackage = exports.ClearPackageDataFailed = exports.ClearPackageDataSucceeded = exports.ClearPackageData = exports.StopPackageFailed = exports.StopPackageSucceeded = exports.StopPackage = exports.StartPackageFailed = exports.StartPackageSucceeded = exports.StartPackage = exports.InstallPackageFromUriFailed = exports.InstallPackageFromUriSucceeded = exports.InstallPackageFromUri = exports.InstallPackageFailed = exports.InstallPackageSucceeded = exports.InstallPackage = void 0;
            exports.InstallPackage = "Device.Package.InstallPackage";
            exports.InstallPackageSucceeded = "Device.Package.InstallPackageSucceeded";
            exports.InstallPackageFailed = "Device.Package.InstallPackageFailed";
            exports.InstallPackageFromUri = "Device.Package.InstallPackageFromUri";
            exports.InstallPackageFromUriSucceeded = "Device.Package.InstallPackageFromUriSucceeded";
            exports.InstallPackageFromUriFailed = "Device.Package.InstallPackageFromUriFailed";
            exports.StartPackage = "Device.Package.StartPackage";
            exports.StartPackageSucceeded = "Device.Package.StartPackageSucceeded";
            exports.StartPackageFailed = "Device.Package.StartPackageFailed";
            exports.StopPackage = "Device.Package.StopPackage";
            exports.StopPackageSucceeded = "Device.Package.StopPackageSucceeded";
            exports.StopPackageFailed = "Device.Package.StopPackageFailed";
            exports.ClearPackageData = "Device.Package.ClearPackageData";
            exports.ClearPackageDataSucceeded = "Device.Package.ClearPackageDataSucceeded";
            exports.ClearPackageDataFailed = "Device.Package.ClearPackageDataFailed";
            exports.UninstallPackage = "Device.Package.UninstallPackage";
            exports.UninstallPackageSucceeded = "Device.Package.UninstallPackageSucceeded";
            exports.UninstallPackageFailed = "Device.Package.UninstallPackageFailed";
            exports.NotifyInstalledPackages = "Device.Package.NotifyInstalledPackages";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Package/devicePackageSagas.js
    var require_devicePackageSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Package/devicePackageSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.clearPackageDataSaga = exports.stopPackageSaga = exports.installPackageSaga = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var devicePackageActions_1 = require_devicePackageActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            function installPackageCallback(managementDriver, staticBaseUrl, action) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                3,
                                ,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(managementDriver, managementDriver.packageInstall, [
                                    staticBaseUrl,
                                    action.packageName,
                                    action.version,
                                    action.build
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePackageActions_1.InstallPackageSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            error = _state.sent();
                            console.error("installPackageSaga", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePackageActions_1.InstallPackageFailed,
                                    uid: action.uid
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            function installPackageSaga(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].PACKAGES)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(devicePackageActions_1.InstallPackage)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].PACKAGE_INSTALL, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "staticBaseUrl"
                                ], function(param) {
                                    var managementDriver, staticBaseUrl;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(devicePackageActions_1.InstallPackage, installPackageCallback, managementDriver, staticBaseUrl)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.installPackageSaga = installPackageSaga;
            function stopPackageCallback(managementDriver, action) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                3,
                                ,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(managementDriver, managementDriver.packageStop, [
                                    action.packageName
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                {
                                    type: devicePackageActions_1.StopPackageSucceeded,
                                    uid: action.uid
                                }
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            error = _state.sent();
                            console.error("stopPackageSaga", error);
                            return [
                                4,
                                {
                                    type: devicePackageActions_1.StopPackageFailed,
                                    uid: action.uid
                                }
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            function stopPackageSaga(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].PACKAGES)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(devicePackageActions_1.StopPackage)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].STOP_PACKAGE, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver"
                                ], function(param) {
                                    var managementDriver;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(devicePackageActions_1.StopPackage, stopPackageCallback, managementDriver)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.stopPackageSaga = stopPackageSaga;
            function clearPackageDataCallback(managementDriver, action) {
                var error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                3,
                                ,
                                5
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(managementDriver, managementDriver.packageClearData, [
                                    action.packageName
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                {
                                    type: devicePackageActions_1.ClearPackageDataSucceeded,
                                    uid: action.uid
                                }
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            error = _state.sent();
                            console.error("slearPackageDataSaga", error);
                            return [
                                4,
                                {
                                    type: devicePackageActions_1.ClearPackageDataFailed,
                                    uid: action.uid
                                }
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            function clearPackageDataSaga(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].PACKAGES)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(devicePackageActions_1.ClearPackageData)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].CLEAR_PACKAGE_DATA, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver"
                                ], function(param) {
                                    var managementDriver;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(devicePackageActions_1.ClearPackageData, clearPackageDataCallback, managementDriver)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.clearPackageDataSaga = clearPackageDataSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/PeerRecovery/peerRecoverySaga.js
    var require_peerRecoverySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/PeerRecovery/peerRecoverySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.peerRecoverySaga = exports.setDevicePeerRecovery = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var devicePeerRecoveryActions_1 = require_devicePeerRecoveryActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            function setDevicePeerRecovery(getNativeDriver, action) {
                var nativeDriver, configuration, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = getNativeDriver();
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                4,
                                ,
                                6
                            ]);
                            configuration = action.enabled ? {
                                enabled: true,
                                urlLauncherAddress: action.urlLauncherAddress
                            } : {
                                enabled: false,
                                autoEnableTimeoutMs: action.autoEnableTimeoutMs
                            };
                            return [
                                4,
                                (0, effects_1.call)([
                                    nativeDriver,
                                    "setPeerRecovery"
                                ], configuration)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePeerRecoveryActions_1.SetDevicePeerRecoverySucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            error = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: devicePeerRecoveryActions_1.SetDevicePeerRecoveryFailed,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDevicePeerRecovery = setDevicePeerRecovery;
            function peerRecoverySaga(getNativeDriver, responsibilities) {
                var nativeDriver, supportPRenabled;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].PEER_RECOVERY)) {
                                return [
                                    2
                                ];
                            }
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                (0, effects_1.call)([
                                    nativeDriver,
                                    "managementSupports"
                                ], ManagementCapability_1["default"].PEER_RECOVERY)
                            ];
                        case 1:
                            supportPRenabled = _state.sent();
                            if (!supportPRenabled) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(devicePeerRecoveryActions_1.SetDevicePeerRecovery, setDevicePeerRecovery, getNativeDriver)
                            ];
                        case 2:
                            _state.sent();
                            _state.label = 3;
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.peerRecoverySaga = peerRecoverySaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Util/asyncCall.js
    var require_asyncCall = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/asyncCall.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            function asyncCall(fn) {
                var _loop, _len, params, _key, iterator3, _ret;
                var _arguments = arguments;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _loop = function() {
                                var resultOrPromise, resolved, finalResult, finalException;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            resultOrPromise = iterator3.next();
                                            if (!(typeof resultOrPromise.then === "function")) return [
                                                3,
                                                5
                                            ];
                                            resolved = false, finalResult = void 0, finalException = void 0;
                                            resultOrPromise.then(function(result17) {
                                                finalResult = result17;
                                            })["catch"](function(e) {
                                                finalException = e;
                                            })["finally"](function() {
                                                resolved = true;
                                            });
                                            _state.label = 1;
                                        case 1:
                                            if (!!resolved) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                (0, effects_1.delay)(10)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                1
                                            ];
                                        case 3:
                                            if (finalException) {
                                                throw finalException;
                                            } else if (finalResult.done) {
                                                return [
                                                    2,
                                                    {
                                                        v: finalResult.value
                                                    }
                                                ];
                                            }
                                            return [
                                                4,
                                                finalResult.value
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                2,
                                                "continue"
                                            ];
                                        case 5:
                                            if (resultOrPromise.done) {
                                                return [
                                                    2,
                                                    {
                                                        v: resultOrPromise.value
                                                    }
                                                ];
                                            }
                                            _state.label = 6;
                                        case 6:
                                            return [
                                                4,
                                                resultOrPromise.value
                                            ];
                                        case 7:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            };
                            for(_len = _arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                                params[_key - 1] = _arguments[_key];
                            }
                            iterator3 = fn.apply(void 0, _to_consumable_array(params));
                            if (typeof iterator3.next !== "function") {
                                return [
                                    2,
                                    iterator3
                                ];
                            }
                            _state.label = 1;
                        case 1:
                            if (!true) return [
                                3,
                                3
                            ];
                            return [
                                5,
                                _ts_values(_loop())
                            ];
                        case 2:
                            _ret = _state.sent();
                            if (_type_of(_ret) === "object") return [
                                2,
                                _ret.v
                            ];
                            return [
                                3,
                                1
                            ];
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            exports["default"] = asyncCall;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Policy/FailsCount.js
    var require_FailsCount = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Policy/FailsCount.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var FailsCount = /*#__PURE__*/ function() {
                function FailsCount(type, propertyStorage) {
                    _class_call_check(this, FailsCount);
                    this.type = type;
                    this.propertyStorage = propertyStorage;
                    this.propertyKey = (0, deviceTelemetrySagas_1.getPropertyName)(this.type, "DEVICE_POLICY_FAILS_COUNT");
                }
                _create_class(FailsCount, [
                    {
                        key: "get",
                        value: function get() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.propertyStorage.getValueOrDefault(this.propertyKey, 0)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "reset",
                        value: function reset() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.propertyStorage.setValue(this.propertyKey, 0)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "add",
                        value: function add() {
                            return __awaiter(this, void 0, void 0, function() {
                                var failsCount;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.getValueOrDefault(this.propertyKey, 0)
                                            ];
                                        case 1:
                                            failsCount = _state.sent();
                                            return [
                                                4,
                                                this.propertyStorage.setValue(this.propertyKey, failsCount + 1)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                failsCount
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return FailsCount;
            }();
            exports["default"] = FailsCount;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Policy/devicePolicySagas.js
    var require_devicePolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Policy/devicePolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDevicePolicySaga = exports.updateDevicePolicy = exports.subscribeDevicePolicy = exports.CheckAndSetResult = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceVerificationActions_1 = require_deviceVerificationActions();
            var authenticationActions_1 = require_authenticationActions();
            var devicePolicyActions_1 = require_devicePolicyActions();
            var Property_1 = __importDefault(require_Property());
            var IPolicyItem_1 = require_IPolicyItem();
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var asyncCall_1 = __importDefault(require_asyncCall());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var socketActionCreator_1 = require_socketActionCreator();
            var debug_1 = __importDefault(require_browser2());
            var responsible_1 = require_responsible();
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var FailsCount_1 = __importDefault(require_FailsCount());
            var lodash_1 = __importDefault(require_lodash());
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var systemLogs_1 = require_systemLogs();
            var systemLogActionFactory_1 = require_systemLogActionFactory();
            var devicePowerActions_1 = require_devicePowerActions();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Management:Policy");
            var POLICY_ACCEPTABLE_FAILS_COUNT = 6;
            var CheckAndSetResult;
            (function(CheckAndSetResult2) {
                CheckAndSetResult2[CheckAndSetResult2["NOT_CHANGED"] = 0] = "NOT_CHANGED";
                CheckAndSetResult2[CheckAndSetResult2["CHANGED"] = 1] = "CHANGED";
                CheckAndSetResult2[CheckAndSetResult2["ALREADY_APPLIED"] = 2] = "ALREADY_APPLIED";
            })(CheckAndSetResult || (exports.CheckAndSetResult = CheckAndSetResult = {}));
            function subscribeDevicePolicy(responsibilities, getState) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].POLICY)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)([
                                    authenticationActions_1.AuthenticationSucceed,
                                    deviceVerificationActions_1.VerificationSucceeded
                                ], function(action) {
                                    var _, state, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    7,
                                                    ,
                                                    8
                                                ]);
                                                _ = action.type;
                                                switch(_){
                                                    case authenticationActions_1.AuthenticationSucceed:
                                                        return [
                                                            3,
                                                            1
                                                        ];
                                                    case deviceVerificationActions_1.VerificationSucceeded:
                                                        return [
                                                            3,
                                                            4
                                                        ];
                                                }
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 1:
                                                state = getState();
                                                if (!state.deviceVerification.verified) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePolicyActions_1.GetDevicePolicyItems
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 4:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePolicyActions_1.GetDevicePolicyItems
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 7:
                                                error = _state.sent();
                                                debug4("SubscribeDevicePolicy failed", error);
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 8:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.subscribeDevicePolicy = subscribeDevicePolicy;
            function updateDevicePolicy(responsibilities, propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].POLICY)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, dependencyInjection_1.withDependencies)([
                                    "featureFlags"
                                ], function(param) {
                                    var featureFlags;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                featureFlags = param.featureFlags;
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(devicePolicyActions_1.UpdateDevicePolicyItems, function(action) {
                                                        var _a2, currentPolicyItems, changedPolicyItems, hasChanges, shouldLogSystemChanges, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        15,
                                                                        ,
                                                                        16
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_POLICY, [])
                                                                    ];
                                                                case 1:
                                                                    currentPolicyItems = _state.sent();
                                                                    changedPolicyItems = lodash_1["default"].differenceWith(action.items, currentPolicyItems, lodash_1["default"].isEqual);
                                                                    hasChanges = changedPolicyItems.length > 0;
                                                                    shouldLogSystemChanges = (_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.systemLogs) !== null && _a2 !== void 0 ? _a2 : true;
                                                                    if (!(shouldLogSystemChanges && hasChanges)) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                                            type: systemLogs_1.PolicyChanged,
                                                                            actual: currentPolicyItems,
                                                                            difference: changedPolicyItems,
                                                                            updatedAt: /* @__PURE__ */ new Date().getTime()
                                                                        }))
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    return [
                                                                        4,
                                                                        propertyStorage.setValue(Property_1["default"].DEVICE_POLICY, action.items)
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    if (!action.items.some(function(item) {
                                                                        return (0, IPolicyItem_1.isPolicyItemOfType)(item, DeviceSettingsType_1.DeviceSettingsType.BRIGHTNESS);
                                                                    })) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        propertyStorage.removeValue(Property_1["default"].BRIGHTNESS_SETTINGS)
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    _state.label = 6;
                                                                case 6:
                                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                                    _state.label = 7;
                                                                case 7:
                                                                    _state.trys.push([
                                                                        7,
                                                                        12,
                                                                        13,
                                                                        14
                                                                    ]);
                                                                    _loop = function() {
                                                                        var proposedPolicyItem, currentPolicyItem, isPolicyItemChanged, failsCount;
                                                                        return _ts_generator(this, function(_state) {
                                                                            switch(_state.label){
                                                                                case 0:
                                                                                    proposedPolicyItem = _step.value;
                                                                                    currentPolicyItem = currentPolicyItems.find(function(item) {
                                                                                        return item.type === proposedPolicyItem.type;
                                                                                    });
                                                                                    isPolicyItemChanged = lodash_1["default"].isEqual(currentPolicyItem === null || currentPolicyItem === void 0 ? void 0 : currentPolicyItem.value, proposedPolicyItem.value);
                                                                                    if (!!isPolicyItemChanged) return [
                                                                                        3,
                                                                                        2
                                                                                    ];
                                                                                    failsCount = new FailsCount_1["default"](proposedPolicyItem.type, propertyStorage);
                                                                                    return [
                                                                                        4,
                                                                                        failsCount.reset()
                                                                                    ];
                                                                                case 1:
                                                                                    _state.sent();
                                                                                    _state.label = 2;
                                                                                case 2:
                                                                                    return [
                                                                                        2
                                                                                    ];
                                                                            }
                                                                        });
                                                                    };
                                                                    _iterator = action.items[Symbol.iterator]();
                                                                    _state.label = 8;
                                                                case 8:
                                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                    return [
                                                                        5,
                                                                        _ts_values(_loop())
                                                                    ];
                                                                case 9:
                                                                    _state.sent();
                                                                    _state.label = 10;
                                                                case 10:
                                                                    _iteratorNormalCompletion = true;
                                                                    return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                case 11:
                                                                    return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                case 12:
                                                                    err = _state.sent();
                                                                    _didIteratorError = true;
                                                                    _iteratorError = err;
                                                                    return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                case 13:
                                                                    try {
                                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                            _iterator["return"]();
                                                                        }
                                                                    } finally{
                                                                        if (_didIteratorError) {
                                                                            throw _iteratorError;
                                                                        }
                                                                    }
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 14:
                                                                    return [
                                                                        3,
                                                                        16
                                                                    ];
                                                                case 15:
                                                                    error = _state.sent();
                                                                    debug4("updatePolicy", error);
                                                                    return [
                                                                        3,
                                                                        16
                                                                    ];
                                                                case 16:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })()
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.updateDevicePolicy = updateDevicePolicy;
            var createDevicePolicySaga = function(type, responsibility, requiredCapability, checkAndSetSettings) {
                return (0, responsible_1.whenResponsible)([
                    Responsibility_1["default"].POLICY,
                    responsibility
                ], (0, capable_1.whenCapable)(requiredCapability, (0, dependencyInjection_1.withDependencies)([
                    "propertyStorage",
                    "managementDriver",
                    "proprietaryTimerStorage",
                    "applicationVersion",
                    "staticBaseUrl",
                    "telemetryIntervals",
                    "powerActionTimer"
                ], function(param) {
                    var _this, propertyStorage, managementDriver, timerStorage, applicationVersion, staticBaseUrl, telemetryIntervals, powerActionTimer, _a2, powerActionRules, compareItemTypeToLocal, failsCount, periodMs, runningTask;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                propertyStorage = param.propertyStorage, managementDriver = param.managementDriver, timerStorage = param.proprietaryTimerStorage, applicationVersion = param.applicationVersion, staticBaseUrl = param.staticBaseUrl, telemetryIntervals = param.telemetryIntervals, powerActionTimer = param.powerActionTimer;
                                powerActionRules = function() {
                                    return __awaiter(_this, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        powerActionTimer.rules()
                                                    ];
                                                case 1:
                                                    return [
                                                        2,
                                                        _state.sent()
                                                    ];
                                            }
                                        });
                                    });
                                };
                                compareItemTypeToLocal = function(policyItem) {
                                    return policyItem.type === type;
                                };
                                failsCount = new FailsCount_1["default"](type, propertyStorage);
                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals.policy) !== null && _a2 !== void 0 ? _a2 : 0;
                                return [
                                    4,
                                    runPolicyCheckPeriodically({
                                        periodMs: periodMs,
                                        propertyStorage: propertyStorage,
                                        type: type,
                                        failsCount: failsCount,
                                        compareItemTypeToLocal: compareItemTypeToLocal,
                                        checkAndSetSettings: checkAndSetSettings,
                                        managementDriver: managementDriver,
                                        timerStorage: timerStorage,
                                        powerActionRules: powerActionRules,
                                        getStaticBaseUrl: function() {
                                            return staticBaseUrl;
                                        },
                                        applicationVersion: applicationVersion
                                    })
                                ];
                            case 1:
                                runningTask = _state.sent();
                                return [
                                    4,
                                    (0, effects_1.takeEvery)(devicePowerActions_1.PerformPowerAction, function(action) {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    if (action.powerType !== PowerActionType_1["default"].REAPPLY_POLICY) {
                                                        return [
                                                            2
                                                        ];
                                                    }
                                                    debug4("Performing REAPPLY_POLICY power action");
                                                    if (!(runningTask && !runningTask.isCancelled())) return [
                                                        3,
                                                        2
                                                    ];
                                                    debug4("Cancelling currently running policy checks");
                                                    return [
                                                        4,
                                                        (0, effects_1.call)([
                                                            runningTask,
                                                            runningTask.cancel
                                                        ])
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    _state.label = 2;
                                                case 2:
                                                    return [
                                                        4,
                                                        (0, effects_1.call)([
                                                            failsCount,
                                                            failsCount.reset
                                                        ])
                                                    ];
                                                case 3:
                                                    _state.sent();
                                                    debug4("Starting new policy checks for %s", type);
                                                    return [
                                                        4,
                                                        runPolicyCheckPeriodically({
                                                            periodMs: periodMs,
                                                            propertyStorage: propertyStorage,
                                                            type: type,
                                                            failsCount: failsCount,
                                                            compareItemTypeToLocal: compareItemTypeToLocal,
                                                            checkAndSetSettings: checkAndSetSettings,
                                                            managementDriver: managementDriver,
                                                            timerStorage: timerStorage,
                                                            powerActionRules: powerActionRules,
                                                            getStaticBaseUrl: function() {
                                                                return staticBaseUrl;
                                                            },
                                                            applicationVersion: applicationVersion
                                                        })
                                                    ];
                                                case 4:
                                                    runningTask = _state.sent();
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                })));
            };
            exports.createDevicePolicySaga = createDevicePolicySaga;
            var runPolicyCheckPeriodically = function(param) {
                var periodMs = param.periodMs, propertyStorage = param.propertyStorage, type = param.type, failsCount = param.failsCount, compareItemTypeToLocal = param.compareItemTypeToLocal, checkAndSetSettings = param.checkAndSetSettings, managementDriver = param.managementDriver, timerStorage = param.timerStorage, powerActionRules = param.powerActionRules, getStaticBaseUrl = param.getStaticBaseUrl, applicationVersion = param.applicationVersion;
                return (0, deviceTelemetryHelper_1.registerTelemetry)("POLICY", periodMs, function() {
                    var policy, devicePolicy, fails, settingsChanged, error, finalFails, failThresholdHit;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    11,
                                    ,
                                    13
                                ]);
                                return [
                                    4,
                                    propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_POLICY, [])
                                ];
                            case 1:
                                devicePolicy = _state.sent();
                                debug4("device policy %s enforcement", type);
                                return [
                                    4,
                                    failsCount.get()
                                ];
                            case 2:
                                fails = _state.sent();
                                policy = devicePolicy.filter(compareItemTypeToLocal).pop();
                                if (!policy || fails > POLICY_ACCEPTABLE_FAILS_COUNT) {
                                    return [
                                        2
                                    ];
                                }
                                debug4("policy type %s item: %s", type, JSON.stringify(policy));
                                return [
                                    4,
                                    (0, asyncCall_1["default"])(checkAndSetSettings, {
                                        policy: policy,
                                        managementDriver: managementDriver,
                                        propertyStorage: propertyStorage,
                                        timerStorage: timerStorage,
                                        powerActionRules: powerActionRules,
                                        getStaticBaseUrl: getStaticBaseUrl,
                                        applicationVersion: applicationVersion
                                    })
                                ];
                            case 3:
                                settingsChanged = _state.sent();
                                debug4("was policy %s set", type, settingsChanged);
                                if (!(settingsChanged === CheckAndSetResult.CHANGED)) return [
                                    3,
                                    6
                                ];
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: devicePolicyActions_1.ApplyPolicySucceeded,
                                        name: type
                                    })
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    failsCount.reset()
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    3,
                                    10
                                ];
                            case 6:
                                if (!(settingsChanged === CheckAndSetResult.ALREADY_APPLIED)) return [
                                    3,
                                    8
                                ];
                                return [
                                    4,
                                    failsCount.reset()
                                ];
                            case 7:
                                _state.sent();
                                return [
                                    3,
                                    10
                                ];
                            case 8:
                                return [
                                    4,
                                    failsCount.add()
                                ];
                            case 9:
                                _state.sent();
                                _state.label = 10;
                            case 10:
                                return [
                                    3,
                                    13
                                ];
                            case 11:
                                error = _state.sent();
                                return [
                                    4,
                                    failsCount.add()
                                ];
                            case 12:
                                _state.sent();
                                debug4("checking and setting device policy ".concat(type, " failed"), error);
                                return [
                                    3,
                                    13
                                ];
                            case 13:
                                return [
                                    4,
                                    failsCount.get()
                                ];
                            case 14:
                                finalFails = _state.sent();
                                failThresholdHit = finalFails > POLICY_ACCEPTABLE_FAILS_COUNT;
                                if (!(failThresholdHit && typeof policy !== "undefined")) return [
                                    3,
                                    16
                                ];
                                return [
                                    4,
                                    (0, effects_1.put)({
                                        type: devicePolicyActions_1.ApplyPolicyFailed,
                                        name: type,
                                        data: policy
                                    })
                                ];
                            case 15:
                                _state.sent();
                                _state.label = 16;
                            case 16:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Brightness/brightnessTelemetrySagas.js
    var require_brightnessTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Brightness/brightnessTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getBrightnessSettings = exports.telemetryBrightnessSettingsSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var screenHelper_1 = require_screenHelper();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryBrightnessSettingsSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.BRIGHTNESS, Responsibility_1["default"].BRIGHTNESS, [
                ManagementCapability_1["default"].GET_BRIGHTNESS
            ], getBrightnessSettings);
            function getBrightnessSettings(param) {
                var managementDriver = param.managementDriver, time = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : /* @__PURE__ */ new Date();
                return __awaiter(this, void 0, void 0, function() {
                    var _ref, timeFrom1, brightness1, timeFrom2, brightness2;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.screenGetBrightness()
                                ];
                            case 1:
                                _ref = _state.sent(), timeFrom1 = _ref.timeFrom1, brightness1 = _ref.brightness1, timeFrom2 = _ref.timeFrom2, brightness2 = _ref.brightness2;
                                return [
                                    2,
                                    {
                                        brightness: (0, screenHelper_1.resolveCurrentBrightness)(timeFrom1, brightness1, timeFrom2, brightness2, time)
                                    }
                                ];
                        }
                    });
                });
            }
            exports.getBrightnessSettings = getBrightnessSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Brightness/brightnessPolicySagas.js
    var require_brightnessPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Brightness/brightnessPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetBrightnessSettings = exports.deviceBrightnessPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var brightnessTelemetrySagas_1 = require_brightnessTelemetrySagas();
            var screenHelper_1 = require_screenHelper();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.deviceBrightnessPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.BRIGHTNESS, Responsibility_1["default"].BRIGHTNESS, ManagementCapability_1["default"].SET_BRIGHTNESS, checkAndSetBrightnessSettings);
            function checkAndSetBrightnessSettings(properties) {
                var _a2, _b2, _c, _d, _e, _f, _g, _h;
                return __asyncGenerator2(this, arguments, function checkAndSetBrightnessSettings_1() {
                    var _ref, currentBrightnessSettings, policy, managementDriver, proposedBrightnessSettings;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    __await2((0, brightnessTelemetrySagas_1.getBrightnessSettings)(properties))
                                ];
                            case 1:
                                _ref = _state.sent(), currentBrightnessSettings = _ref.brightness;
                                policy = properties.policy, managementDriver = properties.managementDriver;
                                if (!(policy.value === void 0)) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.NOT_CHANGED)
                                ];
                            case 2:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 3:
                                proposedBrightnessSettings = (0, screenHelper_1.resolveCurrentBrightness)(policy.value[0].time, policy.value[0].brightness, (_b2 = (_a2 = policy.value[1]) === null || _a2 === void 0 ? void 0 : _a2.time) !== null && _b2 !== void 0 ? _b2 : policy.value[0].time, (_d = (_c = policy.value[1]) === null || _c === void 0 ? void 0 : _c.brightness) !== null && _d !== void 0 ? _d : policy.value[0].brightness, /* @__PURE__ */ new Date());
                                if (!(currentBrightnessSettings !== proposedBrightnessSettings)) return [
                                    3,
                                    6
                                ];
                                return [
                                    4,
                                    __await2(managementDriver.screenSetBrightness(policy.value[0].time, policy.value[0].brightness, (_f = (_e = policy.value[1]) === null || _e === void 0 ? void 0 : _e.time) !== null && _f !== void 0 ? _f : policy.value[0].time, (_h = (_g = policy.value[1]) === null || _g === void 0 ? void 0 : _g.brightness) !== null && _h !== void 0 ? _h : policy.value[0].brightness))
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 6:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 7:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetBrightnessSettings = checkAndSetBrightnessSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Audio/deviceVolumeTelemetrySagas.js
    var require_deviceVolumeTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Audio/deviceVolumeTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getVolumeSettings = exports.telemetryDeviceVolumeSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDeviceVolumeSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.VOLUME, Responsibility_1["default"].VOLUME, [
                ManagementCapability_1["default"].GET_VOLUME
            ], getVolumeSettings);
            function getVolumeSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    managementDriver.getVolume()
                                ];
                            case 1:
                                return [
                                    2,
                                    (_tmp.volume = _state.sent(), _tmp)
                                ];
                        }
                    });
                });
            }
            exports.getVolumeSettings = getVolumeSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Audio/deviceVolumePolicySagas.js
    var require_deviceVolumePolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Audio/deviceVolumePolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetVolumeSettings = exports.deviceVolumePolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var devicePolicySagas_1 = require_devicePolicySagas();
            var deviceVolumeTelemetrySagas_1 = require_deviceVolumeTelemetrySagas();
            exports.deviceVolumePolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.VOLUME, Responsibility_1["default"].VOLUME, ManagementCapability_1["default"].SET_VOLUME, checkAndSetVolumeSettings);
            function checkAndSetVolumeSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetVolumeSettings_1() {
                    var volumeSettings, currentVolumeSettings;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                volumeSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceVolumeTelemetrySagas_1.getVolumeSettings)(properties))
                                ];
                            case 1:
                                currentVolumeSettings = _state.sent();
                                if (!(volumeSettings.volume !== currentVolumeSettings.volume)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(properties.managementDriver.setVolume(volumeSettings.volume))
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetVolumeSettings = checkAndSetVolumeSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceResolutionTelemetrySagas.js
    var require_deviceResolutionTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceResolutionTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getResolutionSettings = exports.telemetryResolutionSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryResolutionSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.RESOLUTION, Responsibility_1["default"].SCREEN, [], getResolutionSettings);
            function getResolutionSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getResolution()
                                ];
                            case 1:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.getResolutionSettings = getResolutionSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceResolutionPolicySagas.js
    var require_deviceResolutionPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceResolutionPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetResolutionSettings = exports.deviceResolutionPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var deviceResolutionTelemetrySagas_1 = require_deviceResolutionTelemetrySagas();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Management:Policy:Resolution");
            exports.deviceResolutionPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.RESOLUTION, Responsibility_1["default"].SCREEN, ManagementCapability_1["default"].SCREEN_RESIZE, checkAndSetResolutionSettings);
            function checkAndSetResolutionSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetResolutionSettings_1() {
                    var resolutionSettings, managementDriver, currentResolutionSettings, callback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                resolutionSettings = properties.policy.value;
                                managementDriver = properties.managementDriver;
                                return [
                                    4,
                                    __await2((0, deviceResolutionTelemetrySagas_1.getResolutionSettings)(properties))
                                ];
                            case 1:
                                currentResolutionSettings = _state.sent();
                                debug4("comparing resolution settings %s === %s", JSON.stringify(resolutionSettings), JSON.stringify(currentResolutionSettings));
                                if (!(resolutionSettings.width !== currentResolutionSettings.width || resolutionSettings.height !== currentResolutionSettings.height)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(managementDriver.setResolution(resolutionSettings))
                                ];
                            case 2:
                                callback = _state.sent();
                                if (typeof callback === "function") {
                                    callback();
                                }
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetResolutionSettings = checkAndSetResolutionSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceOrientationTelemetrySagas.js
    var require_deviceOrientationTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceOrientationTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getOrientationSettings = exports.telemetryOrientationSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryOrientationSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.ORIENTATION, Responsibility_1["default"].SCREEN, [], getOrientationSettings);
            function getOrientationSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    managementDriver.getCurrentOrientation()
                                ];
                            case 1:
                                return [
                                    2,
                                    (_tmp.orientation = _state.sent(), _tmp)
                                ];
                        }
                    });
                });
            }
            exports.getOrientationSettings = getOrientationSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceOrientationPolicySagas.js
    var require_deviceOrientationPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceOrientationPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetOrientationSettings = exports.deviceOrientationPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var lodash_1 = __importDefault(require_lodash());
            var deviceOrientationTelemetrySagas_1 = require_deviceOrientationTelemetrySagas();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.deviceOrientationPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.ORIENTATION, Responsibility_1["default"].SCREEN, ManagementCapability_1["default"].SCREEN_RESIZE, checkAndSetOrientationSettings);
            function checkAndSetOrientationSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetOrientationSettings_1() {
                    var orientationSettings, managementDriver, getStaticBaseUrl, currentResizeSettings, callback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                orientationSettings = properties.policy.value;
                                managementDriver = properties.managementDriver, getStaticBaseUrl = properties.getStaticBaseUrl;
                                return [
                                    4,
                                    __await2((0, deviceOrientationTelemetrySagas_1.getOrientationSettings)(properties))
                                ];
                            case 1:
                                currentResizeSettings = _state.sent();
                                if (!!lodash_1["default"].isEqual(orientationSettings, currentResizeSettings)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(managementDriver.setOrientation(getStaticBaseUrl(), orientationSettings.orientation, orientationSettings.videoOrientation))
                                ];
                            case 2:
                                callback = _state.sent();
                                if (typeof callback === "function") {
                                    callback();
                                }
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetOrientationSettings = checkAndSetOrientationSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/RemoteControl/deviceRemoteControlTelemetrySagas.js
    var require_deviceRemoteControlTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/RemoteControl/deviceRemoteControlTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getRemoteControlSettings = exports.telemetryDeviceRemoteControlSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDeviceRemoteControlSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.REMOTE_CONTROL, Responsibility_1["default"].KIOSK, [
                ManagementCapability_1["default"].SET_REMOTE_CONTROL_ENABLED
            ], getRemoteControlSettings);
            function getRemoteControlSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    managementDriver.remoteControlIsEnabled()
                                ];
                            case 1:
                                return [
                                    2,
                                    (_tmp.enabled = _state.sent(), _tmp)
                                ];
                        }
                    });
                });
            }
            exports.getRemoteControlSettings = getRemoteControlSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/RemoteControl/deviceRemoteControlPolicySagas.js
    var require_deviceRemoteControlPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/RemoteControl/deviceRemoteControlPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetRemoteControlSettings = exports.deviceRemoteControlPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var processCallback_1 = __importDefault(require_processCallback());
            var devicePolicySagas_1 = require_devicePolicySagas();
            var deviceRemoteControlTelemetrySagas_1 = require_deviceRemoteControlTelemetrySagas();
            exports.deviceRemoteControlPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.REMOTE_CONTROL, Responsibility_1["default"].KIOSK, ManagementCapability_1["default"].SET_REMOTE_CONTROL_ENABLED, checkAndSetRemoteControlSettings);
            function checkAndSetRemoteControlSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetRemoteControlSettings_1() {
                    var remoteControlSettings, currentRemoteControlSettings, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                remoteControlSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceRemoteControlTelemetrySagas_1.getRemoteControlSettings)(properties))
                                ];
                            case 1:
                                currentRemoteControlSettings = _state.sent();
                                if (!(currentRemoteControlSettings.enabled !== remoteControlSettings.enabled)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(properties.managementDriver.remoteControlSetEnabled(remoteControlSettings.enabled))
                                ];
                            case 2:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetRemoteControlSettings = checkAndSetRemoteControlSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Application/deviceApplicationPolicySagas.js
    var require_deviceApplicationPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Application/deviceApplicationPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetApplicationVersionSettings = exports.deviceApplicationPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var processCallback_1 = __importDefault(require_processCallback());
            exports.deviceApplicationPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.APPLICATION_VERSION, Responsibility_1["default"].APP, ManagementCapability_1["default"].APP_UPGRADE, checkAndSetApplicationVersionSettings);
            function checkAndSetApplicationVersionSettings(param) {
                var policy = param.policy, managementDriver = param.managementDriver, getStaticBaseUrl = param.getStaticBaseUrl, applicationVersion = param.applicationVersion;
                return __asyncGenerator2(this, arguments, function checkAndSetApplicationVersionSettings_1() {
                    var applicationVersionSettings, applicationType, deviceAppType, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                applicationVersionSettings = policy.value;
                                applicationType = policy.applicationType;
                                deviceAppType = managementDriver.getApplicationType();
                                if (!(applicationVersion !== applicationVersionSettings.version && deviceAppType === applicationType)) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    __await2(managementDriver.appUpgrade(getStaticBaseUrl(), applicationVersionSettings.version))
                                ];
                            case 1:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 2:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 3:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 4:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetApplicationVersionSettings = checkAndSetApplicationVersionSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Firmware/deviceFirmwareTelemetrySagas.js
    var require_deviceFirmwareTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Firmware/deviceFirmwareTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getFirmwareVersionSettings = exports.telemetryDeviceFirmwareSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            exports.telemetryDeviceFirmwareSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.FIRMWARE_VERSION, Responsibility_1["default"].FIRMWARE, [], getFirmwareVersionSettings);
            function getFirmwareVersionSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    managementDriver.firmwareGetVersion()
                                ];
                            case 1:
                                return [
                                    2,
                                    (_tmp.version = _state.sent(), _tmp)
                                ];
                        }
                    });
                });
            }
            exports.getFirmwareVersionSettings = getFirmwareVersionSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Firmware/deviceFirmwarePolicySagas.js
    var require_deviceFirmwarePolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Firmware/deviceFirmwarePolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetFirmwareVersionSettings = exports.deviceFirmwarePolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var deviceFirmwareTelemetrySagas_1 = require_deviceFirmwareTelemetrySagas();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var processCallback_1 = __importDefault(require_processCallback());
            exports.deviceFirmwarePolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.FIRMWARE_VERSION, Responsibility_1["default"].FIRMWARE, ManagementCapability_1["default"].FIRMWARE_UPGRADE, checkAndSetFirmwareVersionSettings);
            function checkAndSetFirmwareVersionSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetFirmwareVersionSettings_1() {
                    var firmwareVersionSettings, currentFirmwareVersionSettings, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                firmwareVersionSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceFirmwareTelemetrySagas_1.getFirmwareVersionSettings)(properties))
                                ];
                            case 1:
                                currentFirmwareVersionSettings = _state.sent();
                                if (!(currentFirmwareVersionSettings.version !== firmwareVersionSettings.version)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(properties.managementDriver.firmwareUpgrade(properties.getStaticBaseUrl(), firmwareVersionSettings.version))
                                ];
                            case 2:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetFirmwareVersionSettings = checkAndSetFirmwareVersionSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Debug/deviceDebugTelemetrySagas.js
    var require_deviceDebugTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Debug/deviceDebugTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getDebugSettings = exports.telemetryDeviceDebugSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var Property_1 = __importDefault(require_Property());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDeviceDebugSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.DEBUG, Responsibility_1["default"].DEBUG, [], getDebugSettings);
            function getDebugSettings(param) {
                var managementDriver = param.managementDriver, propertyStorage = param.propertyStorage;
                return __awaiter(this, void 0, void 0, function() {
                    var appletEnabled, _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    propertyStorage.getValueOrDefault(Property_1["default"].DEBUG_WEINRE_ENABLED, false)
                                ];
                            case 1:
                                appletEnabled = _state.sent();
                                _tmp = {
                                    appletEnabled: appletEnabled
                                };
                                return [
                                    4,
                                    managementDriver.isDebugEnabled()
                                ];
                            case 2:
                                return [
                                    2,
                                    (_tmp.nativeEnabled = _state.sent(), _tmp)
                                ];
                        }
                    });
                });
            }
            exports.getDebugSettings = getDebugSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Debug/deviceDebugPolicySagas.js
    var require_deviceDebugPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Debug/deviceDebugPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetDebugSettings = exports.deviceDebugPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var deviceDebugTelemetrySagas_1 = require_deviceDebugTelemetrySagas();
            var Property_1 = __importDefault(require_Property());
            var lodash_1 = __importDefault(require_lodash());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.deviceDebugPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.DEBUG, Responsibility_1["default"].DEBUG, ManagementCapability_1["default"].SET_DEBUG, checkAndSetDebugSettings);
            function checkAndSetDebugSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetDebugSettings_1() {
                    var debugSettings, currentDebugSettings, weinreEnabled;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                debugSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceDebugTelemetrySagas_1.getDebugSettings)(properties))
                                ];
                            case 1:
                                currentDebugSettings = _state.sent();
                                if (!!lodash_1["default"].isEqual(debugSettings, currentDebugSettings)) return [
                                    3,
                                    5
                                ];
                                weinreEnabled = debugSettings.appletEnabled;
                                return [
                                    4,
                                    __await2(properties.propertyStorage.setValue(Property_1["default"].DEBUG_WEINRE_ENABLED, weinreEnabled))
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    __await2(properties.managementDriver.setDebug(debugSettings.nativeEnabled))
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 4:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 5:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 6:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetDebugSettings = checkAndSetDebugSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/DateTime/deviceDateTimeTelemetrySagas.js
    var require_deviceDateTimeTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/DateTime/deviceDateTimeTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getDateTimeSettings = exports.telemetryDeviceDateTimeSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var dateTimeFacade_1 = require_dateTimeFacade();
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDeviceDateTimeSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.DATETIME, Responsibility_1["default"].TIME, [], getDateTimeSettings);
            function getDateTimeSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var currentTime;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    (0, dateTimeFacade_1.getCurrentTime)(managementDriver)
                                ];
                            case 1:
                                currentTime = _state.sent();
                                return [
                                    2,
                                    {
                                        timezone: currentTime.timezone || null,
                                        ntpServer: currentTime.ntpServer || null
                                    }
                                ];
                        }
                    });
                });
            }
            exports.getDateTimeSettings = getDateTimeSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/DateTime/deviceDateTimePolicySagas.js
    var require_deviceDateTimePolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/DateTime/deviceDateTimePolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetDateTimeSettings = exports.deviceDateTimePolicySaga = void 0;
            var moment_timezone_1 = __importDefault(require_moment_timezone4());
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var deviceDateTimeTelemetrySagas_1 = require_deviceDateTimeTelemetrySagas();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var debug_1 = __importDefault(require_browser2());
            var processCallback_1 = __importDefault(require_processCallback());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Management:Policy:DateTime");
            exports.deviceDateTimePolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.DATETIME, Responsibility_1["default"].TIME, ManagementCapability_1["default"].SET_TIMEZONE, checkAndSetDateTimeSettings);
            function checkAndSetDateTimeSettings(properties) {
                var _a2, _b2;
                return __asyncGenerator2(this, arguments, function checkAndSetDateTimeSettings_1() {
                    var preferredSettings, currentSettings, newSettings, offsetNewTimezone, offsetCurrentTimezone, formattedNewNtp, formattedCurrentNtp, isSettingsChanged, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                preferredSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceDateTimeTelemetrySagas_1.getDateTimeSettings)(properties))
                                ];
                            case 1:
                                currentSettings = _state.sent();
                                newSettings = {
                                    ntpServer: (_a2 = preferredSettings.ntpServer) !== null && _a2 !== void 0 ? _a2 : currentSettings.ntpServer,
                                    timezone: (_b2 = preferredSettings.timezone) !== null && _b2 !== void 0 ? _b2 : currentSettings.timezone
                                };
                                offsetNewTimezone = newSettings.timezone === null ? null : (0, moment_timezone_1["default"])().tz(newSettings.timezone).utcOffset();
                                offsetCurrentTimezone = currentSettings.timezone === null ? null : (0, moment_timezone_1["default"])().tz(currentSettings.timezone).utcOffset();
                                formattedNewNtp = newSettings.ntpServer === null ? null : newSettings.ntpServer.toLowerCase();
                                formattedCurrentNtp = currentSettings.ntpServer === null ? null : currentSettings.ntpServer.toLowerCase();
                                isSettingsChanged = offsetNewTimezone !== offsetCurrentTimezone || formattedNewNtp !== formattedCurrentNtp;
                                debug4("Datetime comparsion timezone offset proposed %d with current %d", offsetNewTimezone, offsetCurrentTimezone);
                                if (!(newSettings.timezone && isSettingsChanged)) return [
                                    3,
                                    7
                                ];
                                if (!formattedNewNtp) return [
                                    3,
                                    3
                                ];
                                debug4("time manger setAuto method will be called");
                                return [
                                    4,
                                    __await2(properties.managementDriver.timeManager.setAuto(formattedNewNtp, newSettings.timezone))
                                ];
                            case 2:
                                finalizeCallback = _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 3:
                                debug4("time manager setManual method will be called");
                                return [
                                    4,
                                    __await2(properties.managementDriver.timeManager.setManual(/* @__PURE__ */ new Date().valueOf(), newSettings.timezone))
                                ];
                            case 4:
                                finalizeCallback = _state.sent();
                                _state.label = 5;
                            case 5:
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 6:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 7:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 8:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetDateTimeSettings = checkAndSetDateTimeSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/devicePowerActionTelemetrySagas.js
    var require_devicePowerActionTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/devicePowerActionTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getPowerActionsScheduleSettings = exports.telemetryDevicePowerActionsSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var PowerActionType_1 = __importDefault(require_PowerActionType());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var Weekday_1 = __importDefault(require_Weekday());
            var PowerActionType_2 = __importDefault(require_PowerActionType2());
            var Weekday_2 = __importDefault(require_Weekday2());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDevicePowerActionsSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.POWER_ACTIONS_SCHEDULE, Responsibility_1["default"].SCHEDULED_POWER, [
                ManagementCapability_1["default"].SCHEDULE_POWER_ACTION
            ], getPowerActionsScheduleSettings);
            function getPowerActionsScheduleSettings(param) {
                var powerActionRules = param.powerActionRules;
                return __awaiter(this, void 0, void 0, function() {
                    var scheduledActions;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    powerActionRules()
                                ];
                            case 1:
                                scheduledActions = _state.sent();
                                return [
                                    2,
                                    Object.keys(scheduledActions).map(function(uid) {
                                        var powerAction = scheduledActions[uid];
                                        return {
                                            uid: uid,
                                            powerType: PowerActionType_1["default"][PowerActionType_2["default"][powerAction.powerType]],
                                            weekdays: powerAction.weekdays.map(function(weekday) {
                                                return Weekday_1["default"][Weekday_2["default"][weekday]];
                                            }),
                                            time: powerAction.time
                                        };
                                    })
                                ];
                        }
                    });
                });
            }
            exports.getPowerActionsScheduleSettings = getPowerActionsScheduleSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/devicePowerActionPolicySagas.js
    var require_devicePowerActionPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/devicePowerActionPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.isPowerActionInList = exports.checkAndSetPowerActionsScheduleSettings = exports.devicePowerActionPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var devicePowerActionTelemetrySagas_1 = require_devicePowerActionTelemetrySagas();
            var Weekday_1 = __importDefault(require_Weekday2());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var devicePowerActions_1 = require_devicePowerActions();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.devicePowerActionPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.POWER_ACTIONS_SCHEDULE, Responsibility_1["default"].SCHEDULED_POWER, ManagementCapability_1["default"].SCHEDULE_POWER_ACTION, checkAndSetPowerActionsScheduleSettings);
            function checkAndSetPowerActionsScheduleSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetPowerActionsScheduleSettings_1() {
                    var changed, powerActionsScheduleSettings, currentPowerActionsScheduleSettings, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, powerAction, err, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, powerAction1, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                changed = devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED;
                                powerActionsScheduleSettings = properties.policy.value.map(function(powerAction) {
                                    return Object.assign(Object.assign({}, powerAction), {
                                        uid: "policy-".concat(powerAction.uid)
                                    });
                                });
                                return [
                                    4,
                                    __await2((0, devicePowerActionTelemetrySagas_1.getPowerActionsScheduleSettings)(properties))
                                ];
                            case 1:
                                currentPowerActionsScheduleSettings = _state.sent();
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    8,
                                    9,
                                    10
                                ]);
                                _iterator = powerActionsScheduleSettings[Symbol.iterator]();
                                _state.label = 3;
                            case 3:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    7
                                ];
                                powerAction = _step.value;
                                if (!!isPowerActionInList(currentPowerActionsScheduleSettings, powerAction)) return [
                                    3,
                                    6
                                ];
                                changed = devicePolicySagas_1.CheckAndSetResult.CHANGED;
                                return [
                                    4,
                                    __await2((0, effects_1.put)({
                                        type: devicePowerActions_1.SchedulePowerAction,
                                        uid: powerAction.uid,
                                        powerType: PowerActionType_1["default"][powerAction.powerType],
                                        weekdays: powerAction.weekdays.map(function(weekday) {
                                            return Weekday_1["default"][weekday];
                                        }),
                                        time: powerAction.time
                                    }))
                                ];
                            case 4:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 5:
                                _state.sent();
                                _state.label = 6;
                            case 6:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    3
                                ];
                            case 7:
                                return [
                                    3,
                                    10
                                ];
                            case 8:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    10
                                ];
                            case 9:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 10:
                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                _state.label = 11;
                            case 11:
                                _state.trys.push([
                                    11,
                                    17,
                                    18,
                                    19
                                ]);
                                _iterator1 = currentPowerActionsScheduleSettings[Symbol.iterator]();
                                _state.label = 12;
                            case 12:
                                if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
                                    3,
                                    16
                                ];
                                powerAction1 = _step1.value;
                                if (!!isPowerActionInList(powerActionsScheduleSettings, powerAction1)) return [
                                    3,
                                    15
                                ];
                                changed = devicePolicySagas_1.CheckAndSetResult.CHANGED;
                                return [
                                    4,
                                    __await2((0, effects_1.put)({
                                        type: devicePowerActions_1.CancelScheduledPowerAction,
                                        scheduledPowerActionUid: powerAction1.uid
                                    }))
                                ];
                            case 13:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 14:
                                _state.sent();
                                _state.label = 15;
                            case 15:
                                _iteratorNormalCompletion1 = true;
                                return [
                                    3,
                                    12
                                ];
                            case 16:
                                return [
                                    3,
                                    19
                                ];
                            case 17:
                                err = _state.sent();
                                _didIteratorError1 = true;
                                _iteratorError1 = err;
                                return [
                                    3,
                                    19
                                ];
                            case 18:
                                try {
                                    if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                        _iterator1["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError1) {
                                        throw _iteratorError1;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 19:
                                return [
                                    4,
                                    __await2(changed)
                                ];
                            case 20:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetPowerActionsScheduleSettings = checkAndSetPowerActionsScheduleSettings;
            function isPowerActionInList(list, powerAction) {
                return list.some(function(powerActionInList) {
                    return powerActionInList.uid === powerAction.uid;
                });
            }
            exports.isPowerActionInList = isPowerActionInList;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Timer/deviceTimerTelemetrySagas.js
    var require_deviceTimerTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Timer/deviceTimerTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getProprietaryTimers = exports.getNativeTimers = exports.telemetryDeviceProprietaryTimerSaga = exports.telemetryDeviceTimerSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var convertWeekday_1 = require_convertWeekday();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var TimerType_1 = require_TimerType();
            exports.telemetryDeviceTimerSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.TIMERS, Responsibility_1["default"].TIMERS, [
                ManagementCapability_1["default"].TIMERS_NATIVE
            ], getNativeTimers);
            exports.telemetryDeviceProprietaryTimerSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.PROPRIETARY_TIMERS, Responsibility_1["default"].TIMERS, [
                ManagementCapability_1["default"].TIMERS_PROPRIETARY
            ], getProprietaryTimers);
            function getNativeTimers(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var timers;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getTimers()
                                ];
                            case 1:
                                timers = _state.sent();
                                return [
                                    2,
                                    timers.map(function(timer) {
                                        return {
                                            type: (0, TimerType_1.numberToNativeTimerType)(timer.type),
                                            timeOn: typeof timer.timeOn === "string" ? timer.timeOn.replace(/^(\d{2}):(\d{2}).*/, "$1:$2:00") : null,
                                            timeOff: typeof timer.timeOff === "string" ? timer.timeOff.replace(/^(\d{2}):(\d{2}).*/, "$1:$2:00") : null,
                                            weekdays: convertWeekday_1.convertWeekday.fromTimerWeekday(timer.weekdays).toLong(),
                                            volume: timer.volume
                                        };
                                    })
                                ];
                        }
                    });
                });
            }
            exports.getNativeTimers = getNativeTimers;
            function getProprietaryTimers(param) {
                var timerStorage = param.timerStorage;
                return __awaiter(this, void 0, void 0, function() {
                    var timers;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    timerStorage.getShortTimers()
                                ];
                            case 1:
                                timers = _state.sent();
                                return [
                                    2,
                                    Object.values(timers).map(function(t) {
                                        return Object.assign(Object.assign({}, t), {
                                            weekdays: convertWeekday_1.convertWeekday.fromShort(t.weekdays).toLong()
                                        });
                                    })
                                ];
                        }
                    });
                });
            }
            exports.getProprietaryTimers = getProprietaryTimers;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Timer/deviceTimerPolicySagas.js
    var require_deviceTimerPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Timer/deviceTimerPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.sortByTimerTypeCallback = exports.checkAndSetProprietaryTimersSettings = exports.checkAndSetTimersSettings = exports.deviceProprietaryTimerPolicySaga = exports.deviceTimerPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var lodash_1 = __importDefault(require_lodash());
            var deviceTimerTelemetrySagas_1 = require_deviceTimerTelemetrySagas();
            var convertWeekday_1 = require_convertWeekday();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var TimerType_1 = __importDefault(require_TimerType());
            exports.deviceTimerPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.TIMERS, Responsibility_1["default"].TIMERS, ManagementCapability_1["default"].TIMERS_NATIVE, checkAndSetTimersSettings);
            exports.deviceProprietaryTimerPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.PROPRIETARY_TIMERS, Responsibility_1["default"].TIMERS, ManagementCapability_1["default"].TIMERS_PROPRIETARY, checkAndSetProprietaryTimersSettings);
            function checkAndSetTimersSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetTimersSettings_1() {
                    var newTimersSettings, currentTimersSettings, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, timerSettings, err, timersToRemove, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, type, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                newTimersSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceTimerTelemetrySagas_1.getNativeTimers)(properties))
                                ];
                            case 1:
                                currentTimersSettings = _state.sent();
                                if (!!lodash_1["default"].isEqual(normalizeTimers(newTimersSettings), normalizeTimers(currentTimersSettings))) return [
                                    3,
                                    20
                                ];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    7,
                                    8,
                                    9
                                ]);
                                _iterator = newTimersSettings[Symbol.iterator]();
                                _state.label = 3;
                            case 3:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    6
                                ];
                                timerSettings = _step.value;
                                return [
                                    4,
                                    __await2(properties.managementDriver.setTimer(TimerType_1["default"][timerSettings.type], timerSettings.timeOn, timerSettings.timeOff, convertWeekday_1.convertWeekday.fromLong(timerSettings.weekdays).toTimerWeekday(), timerSettings.volume))
                                ];
                            case 4:
                                _state.sent();
                                _state.label = 5;
                            case 5:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    3
                                ];
                            case 6:
                                return [
                                    3,
                                    9
                                ];
                            case 7:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    9
                                ];
                            case 8:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 9:
                                timersToRemove = currentTimersSettings.filter(function(currentTimer) {
                                    return !newTimersSettings.some(function(newTimer) {
                                        return currentTimer.type === newTimer.type;
                                    });
                                });
                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                _state.label = 10;
                            case 10:
                                _state.trys.push([
                                    10,
                                    16,
                                    17,
                                    18
                                ]);
                                _iterator1 = timersToRemove[Symbol.iterator]();
                                _state.label = 11;
                            case 11:
                                if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
                                    3,
                                    15
                                ];
                                type = _step1.value.type;
                                return [
                                    4,
                                    __await2(properties.managementDriver.setTimer(TimerType_1["default"][type], null, null, [], 0))
                                ];
                            case 12:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 13:
                                _state.sent();
                                _state.label = 14;
                            case 14:
                                _iteratorNormalCompletion1 = true;
                                return [
                                    3,
                                    11
                                ];
                            case 15:
                                return [
                                    3,
                                    18
                                ];
                            case 16:
                                err = _state.sent();
                                _didIteratorError1 = true;
                                _iteratorError1 = err;
                                return [
                                    3,
                                    18
                                ];
                            case 17:
                                try {
                                    if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                        _iterator1["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError1) {
                                        throw _iteratorError1;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 18:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 19:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 20:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 21:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetTimersSettings = checkAndSetTimersSettings;
            function checkAndSetProprietaryTimersSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetProprietaryTimersSettings_1() {
                    var newTimersSettings, currentTimersSettings, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, timerSettings, err, timersToRemove, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, type, err;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                newTimersSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, deviceTimerTelemetrySagas_1.getProprietaryTimers)(properties))
                                ];
                            case 1:
                                currentTimersSettings = _state.sent();
                                if (!!lodash_1["default"].isEqual(normalizeTimers(newTimersSettings), normalizeTimers(currentTimersSettings))) return [
                                    3,
                                    20
                                ];
                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    7,
                                    8,
                                    9
                                ]);
                                _iterator = newTimersSettings[Symbol.iterator]();
                                _state.label = 3;
                            case 3:
                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                    3,
                                    6
                                ];
                                timerSettings = _step.value;
                                return [
                                    4,
                                    __await2(properties.timerStorage.setShortTimer({
                                        type: timerSettings.type,
                                        timeOn: typeof timerSettings.timeOn === "string" ? timerSettings.timeOn.replace(/^(\d{2}):(\d{2}).*/, "$1:$2:00") : null,
                                        timeOff: typeof timerSettings.timeOff === "string" ? timerSettings.timeOff.replace(/^(\d{2}):(\d{2}).*/, "$1:$2:00") : null,
                                        weekdays: convertWeekday_1.convertWeekday.fromLong(timerSettings.weekdays).toShort()
                                    }))
                                ];
                            case 4:
                                _state.sent();
                                _state.label = 5;
                            case 5:
                                _iteratorNormalCompletion = true;
                                return [
                                    3,
                                    3
                                ];
                            case 6:
                                return [
                                    3,
                                    9
                                ];
                            case 7:
                                err = _state.sent();
                                _didIteratorError = true;
                                _iteratorError = err;
                                return [
                                    3,
                                    9
                                ];
                            case 8:
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 9:
                                timersToRemove = currentTimersSettings.filter(function(currentTimer) {
                                    return !newTimersSettings.some(function(newTimer) {
                                        return currentTimer.type === newTimer.type;
                                    });
                                });
                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                _state.label = 10;
                            case 10:
                                _state.trys.push([
                                    10,
                                    16,
                                    17,
                                    18
                                ]);
                                _iterator1 = timersToRemove[Symbol.iterator]();
                                _state.label = 11;
                            case 11:
                                if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
                                    3,
                                    15
                                ];
                                type = _step1.value.type;
                                return [
                                    4,
                                    __await2(properties.timerStorage.deleteTimer(type))
                                ];
                            case 12:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 13:
                                _state.sent();
                                _state.label = 14;
                            case 14:
                                _iteratorNormalCompletion1 = true;
                                return [
                                    3,
                                    11
                                ];
                            case 15:
                                return [
                                    3,
                                    18
                                ];
                            case 16:
                                err = _state.sent();
                                _didIteratorError1 = true;
                                _iteratorError1 = err;
                                return [
                                    3,
                                    18
                                ];
                            case 17:
                                try {
                                    if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                        _iterator1["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError1) {
                                        throw _iteratorError1;
                                    }
                                }
                                return [
                                    7
                                ];
                            case 18:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 19:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 20:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 21:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetProprietaryTimersSettings = checkAndSetProprietaryTimersSettings;
            function sortByTimerTypeCallback(a, b) {
                if (a.type < b.type) {
                    return -1;
                }
                if (a.type > b.type) {
                    return 1;
                }
                return 0;
            }
            exports.sortByTimerTypeCallback = sortByTimerTypeCallback;
            function normalizeTimers(timers) {
                var outputTimers = lodash_1["default"].cloneDeep(timers);
                outputTimers.forEach(function(timer) {
                    return timer.weekdays.sort();
                });
                outputTimers.sort(sortByTimerTypeCallback);
                return outputTimers;
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Extended/extendedManagementTelemetrySagas.js
    var require_extendedManagementTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Extended/extendedManagementTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getExtendedManagementTelemetry = exports.telemetryExtendedManagementSettingsSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            exports.telemetryExtendedManagementSettingsSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.EXTENDED_MANAGEMENT, Responsibility_1["default"].EXTENDED_MANAGEMENT, [
                ManagementCapability_1["default"].EXTENDED_MANAGEMENT
            ], getExtendedManagementTelemetry);
            function getExtendedManagementTelemetry(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var url;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getExtendedManagementUrl()
                                ];
                            case 1:
                                url = _state.sent();
                                return [
                                    2,
                                    {
                                        url: url
                                    }
                                ];
                        }
                    });
                });
            }
            exports.getExtendedManagementTelemetry = getExtendedManagementTelemetry;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Extended/extendedManagementPolicySagas.js
    var require_extendedManagementPolicySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Extended/extendedManagementPolicySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetExtendedManagementSettings = exports.deviceExtendedManagementPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var devicePolicySagas_1 = require_devicePolicySagas();
            var extendedManagementTelemetrySagas_1 = require_extendedManagementTelemetrySagas();
            exports.deviceExtendedManagementPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.EXTENDED_MANAGEMENT, Responsibility_1["default"].EXTENDED_MANAGEMENT, ManagementCapability_1["default"].EXTENDED_MANAGEMENT, checkAndSetExtendedManagementSettings);
            function checkAndSetExtendedManagementSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetExtendedManagementSettings_1() {
                    var _ref, currentUrl, policy, managementDriver, proposedUrl;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    __await2((0, extendedManagementTelemetrySagas_1.getExtendedManagementTelemetry)(properties))
                                ];
                            case 1:
                                _ref = _state.sent(), currentUrl = _ref.url;
                                policy = properties.policy, managementDriver = properties.managementDriver;
                                if (!(policy.value === void 0)) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.NOT_CHANGED)
                                ];
                            case 2:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 3:
                                proposedUrl = policy.value.url;
                                if (!(currentUrl !== proposedUrl)) return [
                                    3,
                                    6
                                ];
                                return [
                                    4,
                                    __await2(managementDriver.setExtendedManagementUrl(proposedUrl))
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 6:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 7:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetExtendedManagementSettings = checkAndSetExtendedManagementSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/PeerRecovery/peerRecoveryTelemetrySaga.js
    var require_peerRecoveryTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/PeerRecovery/peerRecoveryTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getPeerRecoverySetting = exports.telemetryDevicePeerRecoverySaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDevicePeerRecoverySaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.PEER_RECOVERY, Responsibility_1["default"].PEER_RECOVERY, [
                ManagementCapability_1["default"].PEER_RECOVERY
            ], getPeerRecoverySetting);
            function getPeerRecoverySetting(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getPeerRecovery()
                                ];
                            case 1:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.getPeerRecoverySetting = getPeerRecoverySetting;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/PeerRecovery/peerRecoveryPolicySaga.js
    var require_peerRecoveryPolicySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/PeerRecovery/peerRecoveryPolicySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetPeerRecoverySettings = exports.devicePeerRecoveryPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var peerRecoveryTelemetrySaga_1 = require_peerRecoveryTelemetrySaga();
            var processCallback_1 = __importDefault(require_processCallback());
            exports.devicePeerRecoveryPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.PEER_RECOVERY, Responsibility_1["default"].PEER_RECOVERY, ManagementCapability_1["default"].PEER_RECOVERY, checkAndSetPeerRecoverySettings);
            function checkAndSetPeerRecoverySettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetPeerRecoverySettings_1() {
                    var peerRecoverySetting, currentPeerRecoverySettings, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                peerRecoverySetting = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, peerRecoveryTelemetrySaga_1.getPeerRecoverySetting)(properties))
                                ];
                            case 1:
                                currentPeerRecoverySettings = _state.sent();
                                if (!(peerRecoverySetting !== currentPeerRecoverySettings)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(setPeerRecovery(properties, peerRecoverySetting))
                                ];
                            case 2:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetPeerRecoverySettings = checkAndSetPeerRecoverySettings;
            function setPeerRecovery(properties, peerRecoverySetting) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        if (peerRecoverySetting.enabled && peerRecoverySetting.urlLauncherAddress) {
                            return [
                                2,
                                properties.managementDriver.setPeerRecovery({
                                    enabled: true,
                                    urlLauncherAddress: peerRecoverySetting.urlLauncherAddress
                                })
                            ];
                        } else {
                            return [
                                2,
                                properties.managementDriver.setPeerRecovery({
                                    enabled: false,
                                    autoEnableTimeoutMs: peerRecoverySetting.autoEnableTimeoutMs
                                })
                            ];
                        }
                        return [
                            2
                        ];
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/AutoRecovery/autoRecoveryTelemetrySaga.js
    var require_autoRecoveryTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/AutoRecovery/autoRecoveryTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getAutoRecoverySetting = exports.telemetryDeviceAutoRecoverySaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDeviceAutoRecoverySaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.AUTO_RECOVERY, Responsibility_1["default"].AUTO_RECOVERY, [
                ManagementCapability_1["default"].AUTO_RECOVERY
            ], getAutoRecoverySetting);
            function getAutoRecoverySetting(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getAutoRecovery()
                                ];
                            case 1:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.getAutoRecoverySetting = getAutoRecoverySetting;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/AutoRecovery/autoRecoveryPolicySaga.js
    var require_autoRecoveryPolicySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/AutoRecovery/autoRecoveryPolicySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetAutoRecoverySettings = exports.deviceAutoRecoveryPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var processCallback_1 = __importDefault(require_processCallback());
            var autoRecoveryTelemetrySaga_1 = require_autoRecoveryTelemetrySaga();
            exports.deviceAutoRecoveryPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.AUTO_RECOVERY, Responsibility_1["default"].AUTO_RECOVERY, ManagementCapability_1["default"].AUTO_RECOVERY, checkAndSetAutoRecoverySettings);
            function checkAndSetAutoRecoverySettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetAutoRecoverySettings_1() {
                    var autoRecoverySetting, currentAutoRecoverySettings, finalizeCallback;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                autoRecoverySetting = properties.policy.value;
                                return [
                                    4,
                                    __await2((0, autoRecoveryTelemetrySaga_1.getAutoRecoverySetting)(properties))
                                ];
                            case 1:
                                currentAutoRecoverySettings = _state.sent();
                                if (!(autoRecoverySetting && autoRecoverySetting !== currentAutoRecoverySettings)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    __await2(setAutoRecovery(properties, autoRecoverySetting))
                                ];
                            case 2:
                                finalizeCallback = _state.sent();
                                (0, processCallback_1["default"])(finalizeCallback);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 5:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetAutoRecoverySettings = checkAndSetAutoRecoverySettings;
            function setAutoRecovery(properties, autoRecoverySetting) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        if (autoRecoverySetting.enabled && autoRecoverySetting.healthcheckIntervalMs) {
                            return [
                                2,
                                properties.managementDriver.setAutoRecovery({
                                    enabled: true,
                                    healthcheckIntervalMs: autoRecoverySetting.healthcheckIntervalMs
                                })
                            ];
                        } else {
                            return [
                                2,
                                properties.managementDriver.setAutoRecovery({
                                    enabled: false,
                                    autoEnableTimeoutMs: autoRecoverySetting.enabled === false ? autoRecoverySetting.autoEnableTimeoutMs : void 0
                                })
                            ];
                        }
                        return [
                            2
                        ];
                    });
                });
            }
        }
    });
    // node_modules/@signageos/common-types/dist/CustomScript/CustomScript.js
    var require_CustomScript = __commonJS({
        "node_modules/@signageos/common-types/dist/CustomScript/CustomScript.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.CustomScriptResultSchema = exports.ResultStreamPipelineSchema = exports.CustomScriptSchema = exports.RuntimeSchema = exports.DangerLevelSchema = exports.SCRIPT_MAX_LENGTH = void 0;
            exports.isInlineCustomScript = isInlineCustomScript;
            exports.isArchiveCustomScript = isArchiveCustomScript;
            var zod_1 = require_zod();
            exports.SCRIPT_MAX_LENGTH = 1e4;
            exports.DangerLevelSchema = zod_1.z["enum"]([
                "low",
                "medium",
                "high",
                "critical"
            ]);
            exports.RuntimeSchema = zod_1.z["enum"]([
                /** PowerShell */ "ps1",
                /** Bash */ "bash",
                /** Shell */ "sh",
                /** Node.js */ "nodejs",
                /** Browser JS */ "browser",
                /** BrightScript */ "brs"
            ]);
            var InlineCustomScriptSchema = zod_1.z.strictObject({
                runtime: exports.RuntimeSchema,
                /** The script content */ script: zod_1.z.string().max(exports.SCRIPT_MAX_LENGTH)
            });
            var ArchiveCustomScriptSchema = zod_1.z.strictObject({
                runtime: exports.RuntimeSchema,
                /** URI to download code archive */ archiveUri: zod_1.z.string().url(),
                /** MD5 checksum of the archive */ md5Checksum: zod_1.z.string(),
                /** The entry point of the script */ mainFile: zod_1.z.string()
            });
            exports.CustomScriptSchema = zod_1.z.union([
                InlineCustomScriptSchema,
                ArchiveCustomScriptSchema
            ]);
            function isInlineCustomScript(script) {
                return "script" in script;
            }
            function isArchiveCustomScript(script) {
                return "archiveUri" in script;
            }
            exports.ResultStreamPipelineSchema = zod_1.z["enum"]([
                "error",
                "output"
            ]);
            exports.CustomScriptResultSchema = zod_1.z.strictObject({
                runtime: exports.RuntimeSchema,
                /**
         * The output/error stream of the script ordered chunks by the timestamp.
         */ stream: zod_1.z.array(zod_1.z.object({
                    /**
           * The pipeline type of the output/error stream.
           */ pipeline: exports.ResultStreamPipelineSchema,
                    /**
           * The exact time in milliseconds when the chunk of output/error stream was written to the console.
           * It is required to properly order the output/error stream on the target UI.
           */ timestamp: zod_1.z.number()["int"](),
                    /**
           * The data chunk of the output/error stream.
           * Usually, the chunk can be single line of the output/error stream.
           */ data: zod_1.z.string()
                })),
                /**
         * The exit code of the script when finished.
         * Usually, 0 means success, and any other value means an error.
         */ exitCode: zod_1.z.number()["int"]()
            });
        }
    });
    // node_modules/crc-32/crc32.js
    var require_crc32 = __commonJS({
        "node_modules/crc-32/crc32.js": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var CRC32;
            (function(factory) {
                if (typeof DO_NOT_EXPORT_CRC === "undefined") {
                    if ("object" === (typeof exports === "undefined" ? "undefined" : _type_of(exports))) {
                        factory(exports);
                    } else if ("function" === typeof define && define.amd) {
                        define(function() {
                            var module2 = {};
                            factory(module2);
                            return module2;
                        });
                    } else {
                        factory(CRC32 = {});
                    }
                } else {
                    factory(CRC32 = {});
                }
            })(function(CRC322) {
                CRC322.version = "1.2.0";
                function signed_crc_table() {
                    var c = 0, table = new Array(256);
                    for(var n = 0; n != 256; ++n){
                        c = n;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;
                        table[n] = c;
                    }
                    return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;
                }
                var T = signed_crc_table();
                function crc32_bstr(bstr, seed) {
                    var C = seed ^ -1, L = bstr.length - 1;
                    for(var i = 0; i < L;){
                        C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];
                        C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];
                    }
                    if (i === L) C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];
                    return C ^ -1;
                }
                function crc32_buf(buf, seed) {
                    if (buf.length > 1e4) return crc32_buf_8(buf, seed);
                    var C = seed ^ -1, L = buf.length - 3;
                    for(var i = 0; i < L;){
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                    }
                    while(i < L + 3)C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                    return C ^ -1;
                }
                function crc32_buf_8(buf, seed) {
                    var C = seed ^ -1, L = buf.length - 7;
                    for(var i = 0; i < L;){
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                        C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                    }
                    while(i < L + 7)C = C >>> 8 ^ T[(C ^ buf[i++]) & 255];
                    return C ^ -1;
                }
                function crc32_str(str, seed) {
                    var C = seed ^ -1;
                    for(var i = 0, L = str.length, c, d; i < L;){
                        c = str.charCodeAt(i++);
                        if (c < 128) {
                            C = C >>> 8 ^ T[(C ^ c) & 255];
                        } else if (c < 2048) {
                            C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];
                            C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];
                        } else if (c >= 55296 && c < 57344) {
                            c = (c & 1023) + 64;
                            d = str.charCodeAt(i++) & 1023;
                            C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];
                            C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];
                            C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];
                            C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];
                        } else {
                            C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];
                            C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];
                            C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];
                        }
                    }
                    return C ^ -1;
                }
                CRC322.table = T;
                CRC322.bstr = crc32_bstr;
                CRC322.buf = crc32_buf;
                CRC322.str = crc32_str;
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Hash/checksum.js
    var require_checksum2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Hash/checksum.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getChecksumOfBlob = exports.getChecksumOfFile = exports.checksumString = void 0;
            var crypto2 = __importStar(require_crypto_browserify());
            var crc32 = __importStar(require_crc32());
            function checksumString2(message2) {
                var length = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 50;
                var hash = crypto2.createHash("sha256");
                hash.update(message2);
                return hash.digest("hex").substring(0, length);
            }
            exports.checksumString = checksumString2;
            function getChecksumOfFile(window2, uri, algorithm) {
                return __awaiter(this, void 0, void 0, function() {
                    var response;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    window2.fetch(uri)
                                ];
                            case 1:
                                response = _state.sent();
                                return [
                                    4,
                                    response.blob()
                                ];
                            case 2:
                                return [
                                    4,
                                    getChecksumOfBlob.apply(void 0, [
                                        _state.sent(),
                                        algorithm
                                    ])
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.getChecksumOfFile = getChecksumOfFile;
            function getChecksumOfBlob(blob, algorithm) {
                return __awaiter(this, void 0, void 0, function() {
                    var data, _, _1, hashNumber, hashUint32;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _1 = (_ = import_buffer.Buffer).from;
                                return [
                                    4,
                                    blob.arrayBuffer()
                                ];
                            case 1:
                                data = _1.apply(_, [
                                    _state.sent()
                                ]);
                                if (algorithm === "md5") {
                                    return [
                                        2,
                                        crypto2.createHash("md5").update(data).digest("hex")
                                    ];
                                } else if (algorithm === "crc32") {
                                    hashNumber = crc32.buf(data);
                                    hashUint32 = hashNumber < 0 ? hashNumber + Math.pow(16, 8) : hashNumber;
                                    return [
                                        2,
                                        hashUint32.toString(16).padStart(8, "0")
                                    ];
                                }
                                throw new Error("Checksum algorithm is not supported: ".concat(algorithm));
                        }
                    });
                });
            }
            exports.getChecksumOfBlob = getChecksumOfBlob;
        }
    });
    // node_modules/@signageos/front-display/es6/CustomScripts/Runtimes/BrowserRuntimeHelper.js
    var require_BrowserRuntimeHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/CustomScripts/Runtimes/BrowserRuntimeHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var deferred_1 = require_deferred();
            var wait_1 = __importDefault(require_wait());
            var constants_1 = require_constants();
            var BrowserRuntimeHelper = /*#__PURE__*/ function() {
                function BrowserRuntimeHelper() {
                    _class_call_check(this, BrowserRuntimeHelper);
                }
                _create_class(BrowserRuntimeHelper, null, [
                    {
                        key: "createIframe",
                        value: /**
         * Creates iframe element with absolute position placed at 0, 0 and dimensions set to 0, 0.
         * Page content defined by script string is put into srcdoc.
         * @param {string} script - page content specified as HTML string template
         * @returns {HTMLIFrameElement}
         */ function createIframe(script) {
                            var iframe = window.document.createElement("iframe");
                            iframe.style.position = "absolute";
                            iframe.style.width = "0";
                            iframe.style.height = "0";
                            iframe.style.top = "0";
                            iframe.style.left = "0";
                            iframe.srcdoc = script;
                            return iframe;
                        }
                    },
                    {
                        key: "appendIframe",
                        value: /**
         * Appends given iframe element to document's body.
         * @param {HTMLIFrameElement} iframe
         * @returns {void}
         */ function appendIframe(iframe) {
                            window.document.body.appendChild(iframe);
                        }
                    },
                    {
                        key: "injectPlatformSpecificAPIs",
                        value: function injectPlatformSpecificAPIs(iframe, postResult, config, apis) {
                            if (!iframe.contentWindow) {
                                return;
                            }
                            Object.defineProperty(iframe.contentWindow, "config", {
                                value: config
                            });
                            if (postResult) {
                                Object.defineProperty(iframe.contentWindow, "postResult", {
                                    value: postResult
                                });
                            }
                            if (apis && Object.keys(apis).length > 0) {
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = Object.entries(apis)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
                                        Object.defineProperty(iframe.contentWindow, key, {
                                            value: value
                                        });
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                            }
                        }
                    },
                    {
                        key: "injectPlatformSpecificAPIsRunner",
                        value: function injectPlatformSpecificAPIsRunner(iframe, addTelemetry, config, apis, _onConfigChanges) {
                            if (!iframe.contentWindow) {
                                return;
                            }
                            Object.defineProperty(iframe.contentWindow, "config", {
                                value: config
                            });
                            Object.defineProperty(iframe.contentWindow, "addTelemetry", {
                                value: addTelemetry
                            });
                            Object.defineProperty(iframe.contentWindow, "onConfigChange", {
                                value: _onConfigChanges
                            });
                            if (apis && Object.keys(apis).length > 0) {
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = Object.entries(apis)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
                                        Object.defineProperty(iframe.contentWindow, key, {
                                            value: value
                                        });
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                            }
                        }
                    },
                    {
                        key: "addConfigToSos",
                        value: function addConfigToSos() {
                            return "\n			<script>\n				Object.defineProperty(window.sos, 'config', { value: window.config });\n			</script>\n		";
                        }
                    },
                    {
                        key: "createMessageHandler",
                        value: function createMessageHandler(iframeId, postResultID) {
                            var _this = this;
                            var result17 = {
                                runtime: "browser",
                                stream: [
                                    {
                                        pipeline: "output",
                                        timestamp: Date.now(),
                                        data: "OK - executed"
                                    }
                                ],
                                exitCode: 0
                            };
                            var waitUntilMessageReceived = (0, deferred_1.createDeferred)(true);
                            var messageListener = function(message2) {
                                var _a2, _b2, _c, _d;
                                if (((_b2 = (_a2 = message2.data) === null || _a2 === void 0 ? void 0 : _a2.iframeId) !== null && _b2 !== void 0 ? _b2 : "") === iframeId && ((_d = (_c = message2.data) === null || _c === void 0 ? void 0 : _c.postResultID) !== null && _d !== void 0 ? _d : "") === postResultID) {
                                    result17.stream[0].data = message2.data.result;
                                    waitUntilMessageReceived.resolve();
                                }
                            };
                            var getResult = function() {
                                return __awaiter(_this, void 0, void 0, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    Promise.race([
                                                        (0, wait_1["default"])(constants_1.TIMEOUT),
                                                        waitUntilMessageReceived.promise
                                                    ])
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2,
                                                    result17
                                                ];
                                        }
                                    });
                                });
                            };
                            return {
                                messageListener: messageListener,
                                getResult: getResult
                            };
                        }
                    },
                    {
                        key: "wrapScript",
                        value: function wrapScript(scriptUrl) {
                            return '<script src="'.concat(scriptUrl, '"></script>');
                        }
                    },
                    {
                        key: "performCleanUp",
                        value: function performCleanUp(messageListener, iframe) {
                            window.document.body.removeChild(iframe);
                            window.removeEventListener("message", messageListener);
                        }
                    },
                    {
                        key: "parseError",
                        value: function parseError(script, error) {
                            return {
                                runtime: script.runtime,
                                stream: [
                                    {
                                        pipeline: "output",
                                        timestamp: Date.now(),
                                        data: error.message
                                    }
                                ],
                                exitCode: 1
                            };
                        }
                    },
                    {
                        key: "getResult",
                        value: /**
         * Returns result of custom script execution.
         * At the time of writing, method always returns result with 'OK - executed'
         * even though there are no guarantees that the script executed successfully.
         * @param {CustomScript} script
         * @returns {CustomScriptResult}
         */ function getResult(script) {
                            return {
                                runtime: script.runtime,
                                stream: [
                                    {
                                        pipeline: "output",
                                        timestamp: Date.now(),
                                        data: "OK - executed"
                                    }
                                ],
                                exitCode: 0
                            };
                        }
                    }
                ]);
                return BrowserRuntimeHelper;
            }();
            BrowserRuntimeHelper.checkIframeWindow = function(iframe) {
                if (!iframe.contentWindow) {
                    throw new Error("Execution failed: Cannot append iframe.");
                }
            };
            exports["default"] = BrowserRuntimeHelper;
        }
    });
    // node_modules/@signageos/front-display/es6/CustomScripts/Runtimes/browserRuntime.js
    var require_browserRuntime = __commonJS({
        "node_modules/@signageos/front-display/es6/CustomScripts/Runtimes/browserRuntime.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.BrowserRuntime = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var dependencyInjection_1 = require_dependencyInjection();
            var CustomScript_1 = require_CustomScript();
            var checksum_1 = require_checksum2();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var sendAppletMessage_1 = __importDefault(require_sendAppletMessage());
            var debug_1 = __importDefault(require_browser2());
            var errorHelper_1 = require_errorHelper();
            var appletMessageHandler_1 = require_appletMessageHandler();
            var generator_1 = require_generator();
            var BrowserRuntimeHelper_1 = __importDefault(require_BrowserRuntimeHelper());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:customScriptsSaga");
            var BrowserRuntime = /*#__PURE__*/ function() {
                function BrowserRuntime() {
                    _class_call_check(this, BrowserRuntime);
                    this.runScriptInBrowser = this.runScriptInBrowser.bind(this);
                    this.runPluginInBrowser = this.runPluginInBrowser.bind(this);
                    this.executePlugin = this.executePlugin.bind(this);
                    this.bindCustomScriptsMessages = this.bindCustomScriptsMessages.bind(this);
                    this.handleCustomScriptsMessage = this.handleCustomScriptsMessage.bind(this);
                }
                _create_class(BrowserRuntime, [
                    {
                        key: "runScriptInBrowser",
                        value: function runScriptInBrowser(managementDriver, customScript, configuration, scriptFile, appletJsFile) {
                            var iframeId, messageChannel, messagesHandler, bindCustomScriptsMessagesTask, result17, error;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        iframeId = getIframeUID(customScript);
                                        if (!iframeId) {
                                            throw new Error("Iframe's id cannot be generated");
                                        }
                                        messageChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.dropping(10));
                                        messagesHandler = function(event) {
                                            messageChannel.put(event);
                                        };
                                        return [
                                            4,
                                            (0, effects_1.fork)(this.bindCustomScriptsMessages, messageChannel, window, iframeId)
                                        ];
                                    case 1:
                                        bindCustomScriptsMessagesTask = _state.sent();
                                        _state.label = 2;
                                    case 2:
                                        _state.trys.push([
                                            2,
                                            4,
                                            5,
                                            7
                                        ]);
                                        window.addEventListener("message", messagesHandler);
                                        return [
                                            4,
                                            (0, effects_1.call)(this.execute, customScript, configuration, iframeId, managementDriver.platformSpecificAPIs, scriptFile, appletJsFile)
                                        ];
                                    case 3:
                                        result17 = _state.sent();
                                        debug4("script executed OK: " + result17);
                                        return [
                                            2,
                                            result17
                                        ];
                                    case 4:
                                        error = _state.sent();
                                        throw error;
                                    case 5:
                                        return [
                                            4,
                                            (0, effects_1.cancel)(bindCustomScriptsMessagesTask)
                                        ];
                                    case 6:
                                        _state.sent();
                                        window.removeEventListener("message", messagesHandler);
                                        return [
                                            7
                                        ];
                                    case 7:
                                        return [
                                            2
                                        ];
                                }
                            });
                        }
                    },
                    {
                        key: "runPluginInBrowser",
                        value: function runPluginInBrowser(managementDriver, plugin, configuration, scriptFile, appletJsFile, messageHandler, addTelemetry, configChange) {
                            var iframeId, result17, error;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        iframeId = plugin.md5Checksum;
                                        if (!iframeId) {
                                            throw new Error("Iframe's id cannot be generated");
                                        }
                                        _state.label = 1;
                                    case 1:
                                        _state.trys.push([
                                            1,
                                            3,
                                            ,
                                            4
                                        ]);
                                        window.addEventListener("message", messageHandler);
                                        return [
                                            4,
                                            (0, effects_1.call)(this.executePlugin, configuration, iframeId, managementDriver.platformSpecificAPIs, scriptFile === null || scriptFile === void 0 ? void 0 : scriptFile.localUri, appletJsFile, addTelemetry, configChange)
                                        ];
                                    case 2:
                                        result17 = _state.sent();
                                        debug4("script executed OK: " + result17);
                                        return [
                                            2,
                                            result17
                                        ];
                                    case 3:
                                        error = _state.sent();
                                        throw error;
                                    case 4:
                                        return [
                                            2
                                        ];
                                }
                            });
                        }
                    },
                    {
                        key: "execute",
                        value: function execute(script, config) {
                            var iframeId = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : (0, generator_1.generateUniqueHash)(), platformSpecificAPIs = arguments.length > 3 ? arguments[3] : void 0, customScriptFile = arguments.length > 4 ? arguments[4] : void 0, appletJsFile = arguments.length > 5 ? arguments[5] : void 0;
                            return __awaiter(this, void 0, void 0, function() {
                                var postResultID, postResult, iframe, wrappedScript, _BrowserRuntimeHelper_1_default_createMessageHandler, messageListener, getResult, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if ((0, CustomScript_1.isInlineCustomScript)(script)) {
                                                debug4("ProprietaryScripts.execute: ", script.script);
                                            } else {
                                                debug4("ProprietaryScripts.execute: ", customScriptFile === null || customScriptFile === void 0 ? void 0 : customScriptFile.localUri);
                                            }
                                            postResultID = (0, generator_1.generateUniqueHash)();
                                            postResult = function(messageResult) {
                                                return parent.postMessage({
                                                    result: messageResult,
                                                    iframeId: iframeId,
                                                    postResultID: postResultID
                                                }, "*");
                                            };
                                            if ((0, CustomScript_1.isInlineCustomScript)(script)) {
                                                iframe = BrowserRuntimeHelper_1["default"].createIframe("".concat(appletJsFile ? BrowserRuntimeHelper_1["default"].wrapScript(appletJsFile.localUri) + BrowserRuntimeHelper_1["default"].addConfigToSos() : "", "<script>").concat(script.script, "</script>"));
                                            } else {
                                                if (!customScriptFile) {
                                                    throw new Error("Custom script file is not provided");
                                                }
                                                wrappedScript = "";
                                                if (appletJsFile) {
                                                    wrappedScript += BrowserRuntimeHelper_1["default"].wrapScript(appletJsFile.localUri);
                                                    wrappedScript += BrowserRuntimeHelper_1["default"].addConfigToSos();
                                                }
                                                wrappedScript += BrowserRuntimeHelper_1["default"].wrapScript(customScriptFile.localUri);
                                                iframe = BrowserRuntimeHelper_1["default"].createIframe(wrappedScript);
                                            }
                                            iframe.id = iframeId;
                                            _BrowserRuntimeHelper_1_default_createMessageHandler = BrowserRuntimeHelper_1["default"].createMessageHandler(iframeId, postResultID), messageListener = _BrowserRuntimeHelper_1_default_createMessageHandler.messageListener, getResult = _BrowserRuntimeHelper_1_default_createMessageHandler.getResult;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                4,
                                                5
                                            ]);
                                            window.addEventListener("message", messageListener);
                                            BrowserRuntimeHelper_1["default"].appendIframe(iframe);
                                            BrowserRuntimeHelper_1["default"].checkIframeWindow(iframe);
                                            BrowserRuntimeHelper_1["default"].injectPlatformSpecificAPIs(iframe, postResult, config, platformSpecificAPIs);
                                            return [
                                                4,
                                                getResult()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            return [
                                                2,
                                                BrowserRuntimeHelper_1["default"].parseError(script, error)
                                            ];
                                        case 4:
                                            BrowserRuntimeHelper_1["default"].performCleanUp(messageListener, iframe);
                                            return [
                                                7
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "executePlugin",
                        value: function executePlugin(config) {
                            var iframeId = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (0, generator_1.generateUniqueHash)(), platformSpecificAPIs = arguments.length > 2 ? arguments[2] : void 0, execFile = arguments.length > 3 ? arguments[3] : void 0, appletJsFile = arguments.length > 4 ? arguments[4] : void 0, addTelemetry = arguments.length > 5 ? arguments[5] : void 0, onConfigChange = arguments.length > 6 ? arguments[6] : void 0;
                            return __awaiter(this, void 0, void 0, function() {
                                var postResultID, iframe, wrappedScript, _BrowserRuntimeHelper_1_default_createMessageHandler, messageListener, getResult;
                                return _ts_generator(this, function(_state) {
                                    try {
                                        postResultID = (0, generator_1.generateUniqueHash)();
                                        ;
                                        if (!execFile) {
                                            throw new Error("Execution file is not provided");
                                        }
                                        wrappedScript = "";
                                        if (appletJsFile) {
                                            wrappedScript += BrowserRuntimeHelper_1["default"].wrapScript(appletJsFile.localUri);
                                            wrappedScript += BrowserRuntimeHelper_1["default"].addConfigToSos();
                                        }
                                        wrappedScript += BrowserRuntimeHelper_1["default"].wrapScript(execFile);
                                        wrappedScript += BrowserRuntimeHelper_1["default"].addConfigToSos();
                                        iframe = BrowserRuntimeHelper_1["default"].createIframe(wrappedScript);
                                        iframe.id = iframeId;
                                        _BrowserRuntimeHelper_1_default_createMessageHandler = BrowserRuntimeHelper_1["default"].createMessageHandler(iframeId, postResultID), messageListener = _BrowserRuntimeHelper_1_default_createMessageHandler.messageListener, getResult = _BrowserRuntimeHelper_1_default_createMessageHandler.getResult;
                                        window.addEventListener("message", messageListener);
                                        BrowserRuntimeHelper_1["default"].appendIframe(iframe);
                                        BrowserRuntimeHelper_1["default"].checkIframeWindow(iframe);
                                        BrowserRuntimeHelper_1["default"].injectPlatformSpecificAPIsRunner(iframe, addTelemetry, config, platformSpecificAPIs, onConfigChange);
                                        return [
                                            2,
                                            function() {
                                                return getResult();
                                            }
                                        ];
                                    } catch (error) {
                                        console.error("Error executing plugin:", error);
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "bindCustomScriptsMessages",
                        value: function bindCustomScriptsMessages(messageChannel, window2, iframeId) {
                            var handleCustomScriptsMessage, callback;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        handleCustomScriptsMessage = this.handleCustomScriptsMessage;
                                        callback = function callback(managementDriver, cacheDriver, applicationVersion, timeStorage, event) {
                                            var data, iframeElement, invocationUid, response, error, error1;
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        _state.trys.push([
                                                            0,
                                                            7,
                                                            ,
                                                            8
                                                        ]);
                                                        data = event.data;
                                                        iframeElement = window2.document.getElementById(iframeId);
                                                        if (!iframeElement) {
                                                            return [
                                                                2
                                                            ];
                                                        }
                                                        invocationUid = data.invocationUid;
                                                        _state.label = 1;
                                                    case 1:
                                                        _state.trys.push([
                                                            1,
                                                            4,
                                                            ,
                                                            6
                                                        ]);
                                                        return [
                                                            4,
                                                            (0, effects_1.call)(handleCustomScriptsMessage, window2, data, managementDriver, cacheDriver, applicationVersion, timeStorage)
                                                        ];
                                                    case 2:
                                                        response = _state.sent();
                                                        return [
                                                            4,
                                                            (0, effects_1.call)(sendAppletMessage_1["default"], window2, iframeId, Object.assign({
                                                                type: "hug.invocation.success",
                                                                invocationUid: invocationUid
                                                            }, response))
                                                        ];
                                                    case 3:
                                                        _state.sent();
                                                        return [
                                                            3,
                                                            6
                                                        ];
                                                    case 4:
                                                        error = _state.sent();
                                                        return [
                                                            4,
                                                            (0, effects_1.call)(sendAppletMessage_1["default"], window2, iframeId, {
                                                                type: "hug.invocation.error",
                                                                invocationUid: invocationUid,
                                                                error: (0, errorHelper_1.createErrorTransferObject)(error)
                                                            })
                                                        ];
                                                    case 5:
                                                        _state.sent();
                                                        debug4("message FAILED: " + data.type, data, error);
                                                        return [
                                                            3,
                                                            6
                                                        ];
                                                    case 6:
                                                        return [
                                                            3,
                                                            8
                                                        ];
                                                    case 7:
                                                        error1 = _state.sent();
                                                        debug4("bindCustomScriptsMessages failed", error1);
                                                        return [
                                                            3,
                                                            8
                                                        ];
                                                    case 8:
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        };
                                        return [
                                            4,
                                            (0, effects_1.fork)((0, dependencyInjection_1.withDependencies)([
                                                "managementDriver",
                                                "cacheDriver",
                                                "applicationVersion",
                                                "proprietaryTimerStorage"
                                            ], function(param) {
                                                var managementDriver, cacheDriver, applicationVersion, proprietaryTimerStorage;
                                                return _ts_generator(this, function(_state) {
                                                    switch(_state.label){
                                                        case 0:
                                                            managementDriver = param.managementDriver, cacheDriver = param.cacheDriver, applicationVersion = param.applicationVersion, proprietaryTimerStorage = param.proprietaryTimerStorage;
                                                            return [
                                                                4,
                                                                (0, effects_1.takeEvery)(messageChannel, callback, managementDriver, cacheDriver, applicationVersion, proprietaryTimerStorage)
                                                            ];
                                                        case 1:
                                                            _state.sent();
                                                            return [
                                                                2
                                                            ];
                                                    }
                                                });
                                            }))
                                        ];
                                    case 1:
                                        _state.sent();
                                        return [
                                            2
                                        ];
                                }
                            });
                        }
                    },
                    {
                        key: "handleCustomScriptsMessage",
                        value: function handleCustomScriptsMessage(window2, data, managementDriver, cacheDriver, applicationVersion, timerStorage) {
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        debug4("Handling custom script message", data);
                                        if (data.type === "hug.ping") {
                                            return [
                                                2,
                                                {}
                                            ];
                                        }
                                        return [
                                            4,
                                            (0, appletMessageHandler_1.handleAppletManagementMessage)({
                                                data: data,
                                                window: window2,
                                                messageTypePrefix: "hug",
                                                managementDriver: managementDriver,
                                                cacheDriver: cacheDriver,
                                                applicationVersion: applicationVersion,
                                                timerStorage: timerStorage
                                            })
                                        ];
                                    case 1:
                                        return [
                                            2,
                                            _state.sent()
                                        ];
                                }
                            });
                        }
                    }
                ]);
                return BrowserRuntime;
            }();
            exports.BrowserRuntime = BrowserRuntime;
            function getIframeUID(customScript) {
                if ((0, CustomScript_1.isArchiveCustomScript)(customScript)) {
                    return customScript.md5Checksum;
                } else {
                    return (0, checksum_1.checksumString)(customScript.script + Date.now());
                }
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Plugin/devicePluginPolicySaga.js
    var require_devicePluginPolicySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Plugin/devicePluginPolicySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __asyncValues = exports && exports.__asyncValues || function(o) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var m = o[Symbol.asyncIterator], i;
                return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i);
                function verb(n) {
                    i[n] = o[n] && function(v) {
                        return new Promise(function(resolve, reject) {
                            v = o[n](v), settle(resolve, reject, v.done, v.value);
                        });
                    };
                }
                function settle(resolve, reject, d, v) {
                    Promise.resolve(v).then(function(v2) {
                        resolve({
                            value: v2,
                            done: d
                        });
                    }, reject);
                }
            };
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncDelegator = exports && exports.__asyncDelegator || function(o) {
                var i, p;
                return i = {}, verb("next"), verb("throw", function(e) {
                    throw e;
                }), verb("return"), i[Symbol.iterator] = function() {
                    return this;
                }, i;
                function verb(n, f) {
                    i[n] = o[n] ? function(v) {
                        return (p = !p) ? {
                            value: __await2(o[n](v)),
                            done: false
                        } : f ? f(v) : v;
                    } : f;
                }
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetPluginSettings = exports.devicePluginPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var devicePolicySagas_1 = require_devicePolicySagas();
            var Property_1 = __importDefault(require_Property());
            var browserRuntime_1 = require_browserRuntime();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var lodash_1 = require_lodash();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var POLICY_PLUGIN_WAIT_TIMEOUT = 2e3;
            var POLICY_PLUGIN_RETRY_COUNT = 20;
            var POLICY_PLUGIN_RETRY_DELAY = 200;
            function getAssignedPlugins(propertyStorage) {
                var assignedPlugins, i, key, directData, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                2,
                                ,
                                3
                            ]);
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_PLUGINS, {})
                            ];
                        case 1:
                            assignedPlugins = _state.sent();
                            if (assignedPlugins && (typeof assignedPlugins === "undefined" ? "undefined" : _type_of(assignedPlugins)) === "object" && Object.keys(assignedPlugins).length > 0) {
                                return [
                                    2,
                                    assignedPlugins
                                ];
                            }
                            for(i = 0; i < localStorage.length; i++){
                                key = localStorage.key(i);
                                if (key && key.includes("Device.Plugins")) {
                                    try {
                                        directData = JSON.parse(localStorage.getItem(key) || "{}");
                                        if (directData && (typeof directData === "undefined" ? "undefined" : _type_of(directData)) === "object" && Object.keys(directData).length > 0) {
                                            return [
                                                2,
                                                directData
                                            ];
                                        }
                                    } catch (parseError) {
                                        console.error("Error parsing localStorage data:", parseError);
                                    }
                                }
                            }
                            return [
                                2,
                                {}
                            ];
                        case 2:
                            error = _state.sent();
                            return [
                                2,
                                {}
                            ];
                        case 3:
                            return [
                                2
                            ];
                    }
                });
            }
            function findPluginForPolicy(assignedPlugins, pluginUid) {
                if (!assignedPlugins || (typeof assignedPlugins === "undefined" ? "undefined" : _type_of(assignedPlugins)) !== "object") {
                    return null;
                }
                var pluginValues = Object.values(assignedPlugins);
                var foundPlugin = pluginValues.find(function(plugin) {
                    return plugin.pluginUid === pluginUid;
                });
                return foundPlugin;
            }
            function getPluginIframeWindow(iframeId) {
                var iframe = document.getElementById(iframeId);
                var iframeWindow = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow;
                return {
                    iframe: iframe,
                    iframeWindow: iframeWindow
                };
            }
            function waitForSosPlugin(iframeWindow, pluginUid) {
                var retries, errorMsg;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            retries = POLICY_PLUGIN_RETRY_COUNT;
                            _state.label = 1;
                        case 1:
                            if (!(retries > 0)) return [
                                3,
                                3
                            ];
                            if (iframeWindow && iframeWindow.sosPlugin && typeof iframeWindow.sosPlugin.get === "function") {
                                return [
                                    2,
                                    iframeWindow.sosPlugin
                                ];
                            }
                            return [
                                4,
                                new Promise(function(resolve) {
                                    return setTimeout(resolve, POLICY_PLUGIN_RETRY_DELAY);
                                })
                            ];
                        case 2:
                            _state.sent();
                            retries--;
                            return [
                                3,
                                1
                            ];
                        case 3:
                            errorMsg = "sosPlugin not available for plugin ".concat(pluginUid, ". Final state: iframeWindow=").concat(!!iframeWindow, ", sosPlugin=").concat(!!(iframeWindow && iframeWindow.sosPlugin), ", get=").concat(!!(iframeWindow && iframeWindow.sosPlugin && iframeWindow.sosPlugin.get));
                            console.error(errorMsg);
                            throw new Error(errorMsg);
                    }
                });
            }
            function createAndRunPluginForPolicy(browserRuntime, managementDriver, pluginForPolicy) {
                var messageChannel, messagesHandler, iframeId, forMessages;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!pluginForPolicy) {
                                throw new Error("Plugin for policy is null or undefined");
                            }
                            messageChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.dropping(100));
                            messagesHandler = function(event) {
                                messageChannel.put(event);
                            };
                            return [
                                4,
                                (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, pluginForPolicy, pluginForPolicy.configuration || {}, pluginForPolicy.pluginFile, pluginForPolicy.appletJsFile, messagesHandler)
                            ];
                        case 1:
                            _state.sent();
                            iframeId = pluginForPolicy.md5Checksum;
                            return [
                                4,
                                (0, effects_1.spawn)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, iframeId)
                            ];
                        case 2:
                            forMessages = _state.sent();
                            return [
                                4,
                                new Promise(function(resolve) {
                                    return setTimeout(resolve, POLICY_PLUGIN_WAIT_TIMEOUT);
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2,
                                {
                                    messageChannel: messageChannel,
                                    forMessages: forMessages,
                                    messagesHandler: messagesHandler
                                }
                            ];
                    }
                });
            }
            exports.devicePluginPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.PLUGIN, Responsibility_1["default"].PLUGINS, ManagementCapability_1["default"].PLUGINS, checkAndSetPluginSettings);
            function checkAndSetPluginSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetPluginSettings_1() {
                    var createdIframe, iframe, forMessages, pluginSettings, assignedPlugins, pluginForPolicy, iframeData, iframeWindow, browserRuntime, result17, pluginData, sosPlugin, currentPluginSettings, error, error1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                createdIframe = false;
                                iframe = null;
                                forMessages = null;
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    24,
                                    26,
                                    31
                                ]);
                                pluginSettings = properties.policy.value;
                                return [
                                    5,
                                    _ts_values(__yieldStar(__asyncDelegator(__asyncValues(getAssignedPlugins(properties.propertyStorage)))))
                                ];
                            case 2:
                                return [
                                    4,
                                    __await2.apply(void 0, [
                                        _state.sent()
                                    ])
                                ];
                            case 3:
                                assignedPlugins = _state.sent();
                                pluginForPolicy = findPluginForPolicy(assignedPlugins, pluginSettings.pluginUid);
                                if (!!pluginForPolicy) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.NOT_CHANGED)
                                ];
                            case 4:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 5:
                                iframeData = getPluginIframeWindow(pluginForPolicy.md5Checksum);
                                iframe = iframeData.iframe;
                                iframeWindow = iframeData.iframeWindow;
                                if (!(!iframe || !iframeWindow)) return [
                                    3,
                                    9
                                ];
                                browserRuntime = new browserRuntime_1.BrowserRuntime();
                                return [
                                    5,
                                    _ts_values(__yieldStar(__asyncDelegator(__asyncValues(createAndRunPluginForPolicy(browserRuntime, properties.managementDriver, pluginForPolicy)))))
                                ];
                            case 6:
                                return [
                                    4,
                                    __await2.apply(void 0, [
                                        _state.sent()
                                    ])
                                ];
                            case 7:
                                result17 = _state.sent();
                                forMessages = result17.forMessages;
                                createdIframe = true;
                                pluginData = getPluginIframeWindow(pluginForPolicy.md5Checksum);
                                iframe = pluginData.iframe;
                                iframeWindow = pluginData.iframeWindow;
                                if (!(!iframe || !iframeWindow)) return [
                                    3,
                                    9
                                ];
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.NOT_CHANGED)
                                ];
                            case 8:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 9:
                                return [
                                    5,
                                    _ts_values(__yieldStar(__asyncDelegator(__asyncValues(waitForSosPlugin(iframeWindow, pluginSettings.pluginUid)))))
                                ];
                            case 10:
                                return [
                                    4,
                                    __await2.apply(void 0, [
                                        _state.sent()
                                    ])
                                ];
                            case 11:
                                sosPlugin = _state.sent();
                                if (!(!sosPlugin || typeof sosPlugin.get !== "function")) return [
                                    3,
                                    13
                                ];
                                console.error("sosPlugin is invalid or missing get method:", sosPlugin);
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.NOT_CHANGED)
                                ];
                            case 12:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 13:
                                _state.trys.push([
                                    13,
                                    17,
                                    ,
                                    18
                                ]);
                                return [
                                    4,
                                    __await2(new Promise(function(resolve) {
                                        return setTimeout(resolve, 500);
                                    }))
                                ];
                            case 14:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 15:
                                _state.sent();
                                return [
                                    4,
                                    __await2(sosPlugin.get())
                                ];
                            case 16:
                                currentPluginSettings = _state.sent();
                                return [
                                    3,
                                    18
                                ];
                            case 17:
                                error = _state.sent();
                                currentPluginSettings = void 0;
                                return [
                                    3,
                                    18
                                ];
                            case 18:
                                if (!!(0, lodash_1.isEqual)(pluginSettings.set, currentPluginSettings)) return [
                                    3,
                                    22
                                ];
                                return [
                                    4,
                                    __await2((0, effects_1.call)(sosPlugin.set, pluginSettings.set))
                                ];
                            case 19:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 20:
                                _state.sent();
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 21:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 22:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 23:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 24:
                                error1 = _state.sent();
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.NOT_CHANGED)
                                ];
                            case 25:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 26:
                                if (!(createdIframe && iframe)) return [
                                    3,
                                    30
                                ];
                                if (!forMessages) return [
                                    3,
                                    29
                                ];
                                return [
                                    4,
                                    __await2((0, effects_1.cancel)(forMessages))
                                ];
                            case 27:
                                return [
                                    4,
                                    _state.sent()
                                ];
                            case 28:
                                _state.sent();
                                _state.label = 29;
                            case 29:
                                if (iframe.parentNode) {
                                    iframe.parentNode.removeChild(iframe);
                                }
                                _state.label = 30;
                            case 30:
                                return [
                                    7
                                ];
                            case 31:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetPluginSettings = checkAndSetPluginSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Runner/deviceRunnerPolicySaga.js
    var require_deviceRunnerPolicySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Runner/deviceRunnerPolicySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __await2 = exports && exports.__await || function(v) {
                return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
            };
            var __asyncGenerator2 = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
                    return this;
                }, i;
                function awaitReturn(f) {
                    return function(v) {
                        return Promise.resolve(v).then(f, reject);
                    };
                }
                function verb(n, f) {
                    if (g[n]) {
                        i[n] = function(v) {
                            return new Promise(function(a, b) {
                                q.push([
                                    n,
                                    v,
                                    a,
                                    b
                                ]) > 1 || resume(n, v);
                            });
                        };
                        if (f) i[n] = f(i[n]);
                    }
                }
                function resume(n, v) {
                    try {
                        step(g[n](v));
                    } catch (e) {
                        settle(q[0][3], e);
                    }
                }
                function step(r) {
                    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                }
                function fulfill(value) {
                    resume("next", value);
                }
                function reject(value) {
                    resume("throw", value);
                }
                function settle(f, v) {
                    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checkAndSetRunnerSettings = exports.deviceRunnerPolicySaga = void 0;
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Property_1 = __importDefault(require_Property());
            var devicePolicySagas_1 = require_devicePolicySagas();
            exports.deviceRunnerPolicySaga = (0, devicePolicySagas_1.createDevicePolicySaga)(DeviceSettingsType_1.DeviceSettingsType.RUNNER, Responsibility_1["default"].RUNNERS, ManagementCapability_1["default"].RUNNERS, checkAndSetRunnerSettings);
            function checkAndSetRunnerSettings(properties) {
                return __asyncGenerator2(this, arguments, function checkAndSetRunnerSettings_1() {
                    var runnerSettings, assignedRunners, runnerForPolicy, iframeId, iframe, iframeWindow;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                runnerSettings = properties.policy.value;
                                return [
                                    4,
                                    __await2(properties.propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {}))
                                ];
                            case 1:
                                assignedRunners = _state.sent();
                                runnerForPolicy = Object.values(assignedRunners).find(function(runner) {
                                    return runner.runnerUid === runnerSettings.runnerUid;
                                });
                                iframeId = runnerForPolicy === null || runnerForPolicy === void 0 ? void 0 : runnerForPolicy.md5Checksum;
                                iframe = document.getElementById(iframeId);
                                iframeWindow = iframe.contentWindow;
                                if (!!(iframeWindow && iframeWindow.sosRunner && iframeWindow.sosRunner.run)) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.CHANGED)
                                ];
                            case 2:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 3:
                                return [
                                    4,
                                    __await2(devicePolicySagas_1.CheckAndSetResult.ALREADY_APPLIED)
                                ];
                            case 4:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            exports.checkAndSetRunnerSettings = checkAndSetRunnerSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Policy/devicePolicySaga.js
    var require_devicePolicySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Policy/devicePolicySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.devicePolicySaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var brightnessPolicySagas_1 = require_brightnessPolicySagas();
            var deviceVolumePolicySagas_1 = require_deviceVolumePolicySagas();
            var deviceResolutionPolicySagas_1 = require_deviceResolutionPolicySagas();
            var deviceOrientationPolicySagas_1 = require_deviceOrientationPolicySagas();
            var deviceRemoteControlPolicySagas_1 = require_deviceRemoteControlPolicySagas();
            var deviceApplicationPolicySagas_1 = require_deviceApplicationPolicySagas();
            var deviceFirmwarePolicySagas_1 = require_deviceFirmwarePolicySagas();
            var deviceDebugPolicySagas_1 = require_deviceDebugPolicySagas();
            var deviceDateTimePolicySagas_1 = require_deviceDateTimePolicySagas();
            var devicePowerActionPolicySagas_1 = require_devicePowerActionPolicySagas();
            var deviceTimerPolicySagas_1 = require_deviceTimerPolicySagas();
            var extendedManagementPolicySagas_1 = require_extendedManagementPolicySagas();
            var peerRecoveryPolicySaga_1 = require_peerRecoveryPolicySaga();
            var autoRecoveryPolicySaga_1 = require_autoRecoveryPolicySaga();
            var devicePluginPolicySaga_1 = require_devicePluginPolicySaga();
            var deviceRunnerPolicySaga_1 = require_deviceRunnerPolicySaga();
            var constants_1 = require_constants();
            function sequentialPolicyApplication() {
                var policySagas, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, policySaga, err;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            policySagas = [
                                deviceVolumePolicySagas_1.deviceVolumePolicySaga,
                                brightnessPolicySagas_1.deviceBrightnessPolicySaga,
                                deviceResolutionPolicySagas_1.deviceResolutionPolicySaga,
                                deviceOrientationPolicySagas_1.deviceOrientationPolicySaga,
                                deviceRemoteControlPolicySagas_1.deviceRemoteControlPolicySaga,
                                deviceApplicationPolicySagas_1.deviceApplicationPolicySaga,
                                deviceFirmwarePolicySagas_1.deviceFirmwarePolicySaga,
                                deviceDebugPolicySagas_1.deviceDebugPolicySaga,
                                deviceDateTimePolicySagas_1.deviceDateTimePolicySaga,
                                devicePowerActionPolicySagas_1.devicePowerActionPolicySaga,
                                deviceTimerPolicySagas_1.deviceTimerPolicySaga,
                                deviceTimerPolicySagas_1.deviceProprietaryTimerPolicySaga,
                                extendedManagementPolicySagas_1.deviceExtendedManagementPolicySaga,
                                peerRecoveryPolicySaga_1.devicePeerRecoveryPolicySaga,
                                autoRecoveryPolicySaga_1.deviceAutoRecoveryPolicySaga,
                                devicePluginPolicySaga_1.devicePluginPolicySaga,
                                deviceRunnerPolicySaga_1.deviceRunnerPolicySaga
                            ];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                7,
                                8,
                                9
                            ]);
                            _iterator = policySagas[Symbol.iterator]();
                            _state.label = 2;
                        case 2:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                6
                            ];
                            policySaga = _step.value;
                            return [
                                4,
                                (0, effects_1.fork)(policySaga)
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.delay)(constants_1.FREQUENTLY)
                            ];
                        case 4:
                            _state.sent();
                            _state.label = 5;
                        case 5:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                2
                            ];
                        case 6:
                            return [
                                3,
                                9
                            ];
                        case 7:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                9
                            ];
                        case 8:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 9:
                            return [
                                2
                            ];
                    }
                });
            }
            function devicePolicySaga() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                5,
                                _ts_values(__yieldStar(sequentialPolicyApplication()))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePolicySaga = devicePolicySaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/devicePowerActionSagas.js
    var require_devicePowerActionSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/devicePowerActionSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceDisplayPowerAction = exports.devicePerformScheduledPowerAction = exports.devicePerformPowerAction = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var devicePowerActions_1 = require_devicePowerActions();
            var devicePowerActionActions_1 = require_devicePowerActionActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var socketActionDeliverHelper_1 = require_socketActionDeliverHelper();
            function devicePerformPowerAction(getNativeDriver, responsibilities, powerPerformer) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].POWER)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(devicePowerActions_1.PerformPowerAction, function(param) {
                                    var powerType, id, nativeDriver, isSupported, powerActionProcessed, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                powerType = param.powerType, id = param.id;
                                                nativeDriver = getNativeDriver();
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    5,
                                                    ,
                                                    7
                                                ]);
                                                return [
                                                    4,
                                                    isPowerTypeSupported(nativeDriver, powerType)
                                                ];
                                            case 2:
                                                isSupported = _state.sent();
                                                if (!isSupported) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                return [
                                                    4,
                                                    (0, effects_1.call)(socketActionDeliverHelper_1.deliver, {
                                                        type: devicePowerActions_1.PerformPowerActionSucceed,
                                                        id: id
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    powerPerformer.performPowerAction(powerType)
                                                ];
                                            case 4:
                                                powerActionProcessed = _state.sent();
                                                if (!powerActionProcessed) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error(error);
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: devicePowerActions_1.PerformPowerActionFailed,
                                                        id: id
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    3,
                                                    7
                                                ];
                                            case 7:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePerformPowerAction = devicePerformPowerAction;
            function isPowerTypeSupported(nativeDriver, powerType) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                switch(powerType){
                                    case PowerActionType_1["default"].SYSTEM_REBOOT:
                                        return [
                                            3,
                                            1
                                        ];
                                    case PowerActionType_1["default"].APP_RESTART:
                                        return [
                                            3,
                                            3
                                        ];
                                    case PowerActionType_1["default"].DISPLAY_POWER_ON:
                                        return [
                                            3,
                                            5
                                        ];
                                    case PowerActionType_1["default"].DISPLAY_POWER_OFF:
                                        return [
                                            3,
                                            5
                                        ];
                                    case PowerActionType_1["default"].FILE_SYSTEM_WIPEOUT:
                                        return [
                                            3,
                                            7
                                        ];
                                }
                                return [
                                    3,
                                    9
                                ];
                            case 1:
                                return [
                                    4,
                                    nativeDriver.managementSupports(ManagementCapability_1["default"].SYSTEM_REBOOT)
                                ];
                            case 2:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 3:
                                return [
                                    4,
                                    nativeDriver.managementSupports(ManagementCapability_1["default"].APP_RESTART)
                                ];
                            case 4:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 5:
                                return [
                                    4,
                                    nativeDriver.managementSupports(ManagementCapability_1["default"].DISPLAY_POWER)
                                ];
                            case 6:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 7:
                                return [
                                    4,
                                    nativeDriver.managementSupports(ManagementCapability_1["default"].FILE_SYSTEM_WIPEOUT)
                                ];
                            case 8:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 9:
                                return [
                                    2,
                                    false
                                ];
                            case 10:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function devicePerformScheduledPowerAction(powerPerformer) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActionActions_1.PerformScheduledPowerAction, function(param) {
                                    var powerType, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                powerType = param.powerType;
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    powerPerformer.performPowerAction(powerType)
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                console.error("devicePerformScheduledPowerAction failed", error);
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.devicePerformScheduledPowerAction = devicePerformScheduledPowerAction;
            function deviceDisplayPowerAction(getNativeDriver) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActionActions_1.TriggerDisplayPowerOn, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().displayPowerOn()
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("deviceDisplayPowerAction on failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.takeEvery)(devicePowerActionActions_1.TriggerDisplayPowerOff, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    2,
                                                    ,
                                                    3
                                                ]);
                                                return [
                                                    4,
                                                    getNativeDriver().displayPowerOff()
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 2:
                                                error = _state.sent();
                                                console.error("deviceDisplayPowerAction off failed", error);
                                                return [
                                                    3,
                                                    3
                                                ];
                                            case 3:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceDisplayPowerAction = deviceDisplayPowerAction;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/RemoteControl/deviceRemoteControlSagas.js
    var require_deviceRemoteControlSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/RemoteControl/deviceRemoteControlSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.syncRemoteControlSettingsSaga = exports.setDeviceRemoteControlSettingsCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceRemoteControlActions_1 = require_deviceRemoteControlActions2();
            var deviceRemoteControlActions_2 = require_deviceRemoteControlActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var processCallback_1 = __importDefault(require_processCallback());
            function setDeviceRemoteControlSettingsCallback(getNativeDriver, action) {
                var nativeDriver, finalizeCallback, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = getNativeDriver();
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                6,
                                ,
                                8
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(nativeDriver, nativeDriver.remoteControlSetEnabled, [
                                    action.enabled
                                ])
                            ];
                        case 2:
                            finalizeCallback = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceRemoteControlActions_1.SetDeviceRemoteControlSettingsSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceRemoteControlActions_2.DeviceRemoteControlSet,
                                    enabled: action.enabled
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(processCallback_1["default"], finalizeCallback)
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                8
                            ];
                        case 6:
                            error = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceRemoteControlActions_1.SetDeviceRemoteControlSettingsFailed,
                                    uid: action.uid
                                })
                            ];
                        case 7:
                            _state.sent();
                            return [
                                3,
                                8
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceRemoteControlSettingsCallback = setDeviceRemoteControlSettingsCallback;
            function syncRemoteControlSettingsSaga(getNativeDriver, responsibilities) {
                var supportsRCEnabled;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].KIOSK)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceRemoteControlActions_1.SetDeviceRemoteControlSettings)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].SET_REMOTE_CONTROL_ENABLED)
                            ];
                        case 2:
                            supportsRCEnabled = _state.sent();
                            if (!supportsRCEnabled) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceRemoteControlActions_1.SetDeviceRemoteControlSettings, setDeviceRemoteControlSettingsCallback, getNativeDriver)
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.syncRemoteControlSettingsSaga = syncRemoteControlSettingsSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceScreenResizeSagas.js
    var require_deviceScreenResizeSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Screen/deviceScreenResizeSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.reportScreen = exports.resizeScreen = exports.deviceResizeCallback = exports.deviceSupportedResolutionsCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceResolutionActions_1 = require_deviceResolutionActions();
            var socketActions_1 = require_socketActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var debug_1 = __importDefault(require_browser2());
            var Orientation_1 = __importDefault(require_Orientation());
            var VideoOrientation_1 = __importDefault(require_VideoOrientation());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var dependencyInjection_1 = require_dependencyInjection();
            var capable_1 = require_capable();
            var processCallback_1 = __importDefault(require_processCallback());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Device:Screeb:deviceScreenResizeSagas");
            function deviceSupportedResolutionsCallback(managementDriver) {
                var supportedResolutions, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            debug4("deviceSupportedResolutionsCallback called");
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                4,
                                ,
                                5
                            ]);
                            return [
                                4,
                                managementDriver.getSupportedResolutions()
                            ];
                        case 2:
                            supportedResolutions = _state.sent();
                            debug4("supportedResolutions", supportedResolutions);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceResolutionActions_1.NotifySupportedResolutions,
                                    supportedResolutions: supportedResolutions
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 4:
                            error = _state.sent();
                            console.error("automatic getting of supported resolutions not supported", error);
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceSupportedResolutionsCallback = deviceSupportedResolutionsCallback;
            function deviceResizeCallback(managementDriver, staticBaseUrl, applicationVersion, action) {
                var finalizeCallback, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                4,
                                ,
                                6
                            ]);
                            return [
                                4,
                                (0, effects_1.apply)(managementDriver, managementDriver.screenResize, [
                                    staticBaseUrl,
                                    Orientation_1["default"][action.screenOrientation],
                                    action.screenSize,
                                    applicationVersion,
                                    action.videoOrientation ? VideoOrientation_1["default"][action.videoOrientation] : void 0
                                ])
                            ];
                        case 1:
                            finalizeCallback = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceResolutionActions_1.DeviceResizeSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(processCallback_1["default"], finalizeCallback)
                            ];
                        case 3:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 4:
                            error = _state.sent();
                            console.error("resizeScreen failed", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceResolutionActions_1.DeviceResizeFailed,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                6
                            ];
                        case 6:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceResizeCallback = deviceResizeCallback;
            function resizeScreen(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SCREEN)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceResolutionActions_1.DeviceResize)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SCREEN_RESIZE, (0, dependencyInjection_1.withDependencies)([
                                    "applicationVersion",
                                    "managementDriver",
                                    "staticBaseUrl"
                                ], function(param) {
                                    var applicationVersion, managementDriver, staticBaseUrl;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                applicationVersion = param.applicationVersion, managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(deviceResolutionActions_1.DeviceResize, deviceResizeCallback, managementDriver, staticBaseUrl, applicationVersion)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.resizeScreen = resizeScreen;
            function reportScreen(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SCREEN)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SCREEN_RESIZE, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver"
                                ], function(param) {
                                    var managementDriver;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(socketActions_1.SocketConnected, deviceSupportedResolutionsCallback, managementDriver)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.reportScreen = reportScreen;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Storage/storageActions.js
    var require_storageActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Storage/storageActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotifyStorageStatus = void 0;
            exports.NotifyStorageStatus = "Device.Storage.NotifyStorageStatus";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Storage/deviceStorageSaga.js
    var require_deviceStorageSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Storage/deviceStorageSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDeviceStorageSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var channels_1 = require_channels();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var storageActions_1 = require_storageActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var dependencyInjection_1 = require_dependencyInjection();
            var IConfig_1 = require_IConfig();
            var responsible_1 = require_responsible();
            var capable_1 = require_capable();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var createDeviceStorageSaga = function() {
                return (0, responsible_1.whenResponsible)(Responsibility_1["default"].STORAGE, (0, capable_1.whenCapable)(ManagementCapability_1["default"].STORAGE_UNITS, (0, dependencyInjection_1.withDependencies)([
                    "managementDriver",
                    "subscriptionType",
                    "telemetryIntervals"
                ], function(param) {
                    var managementDriver, subscriptionType, telemetryIntervals, _a2, periodMs, storageChangesChannel;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                managementDriver = param.managementDriver, subscriptionType = param.subscriptionType, telemetryIntervals = param.telemetryIntervals;
                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals.storage) !== null && _a2 !== void 0 ? _a2 : 0;
                                return [
                                    4,
                                    (0, deviceTelemetryHelper_1.registerTelemetry)("STORAGE", periodMs, function() {
                                        var error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        2,
                                                        ,
                                                        3
                                                    ]);
                                                    return [
                                                        4,
                                                        updateStorageStatus(managementDriver)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 2:
                                                    error = _state.sent();
                                                    console.error("deviceStorageSaga", error);
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 3:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 1:
                                _state.sent();
                                storageChangesChannel = (0, channels_1.createChannel)(function(putHere) {
                                    return managementDriver.fileSystem.onStorageUnitsChanged(function() {
                                        return putHere(void 0);
                                    });
                                });
                                return [
                                    4,
                                    (0, channels_1.takeEvery)(storageChangesChannel, function() {
                                        var error;
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    _state.trys.push([
                                                        0,
                                                        3,
                                                        ,
                                                        4
                                                    ]);
                                                    if (!(subscriptionType === IConfig_1.SubscriptionType.platform)) return [
                                                        3,
                                                        2
                                                    ];
                                                    return [
                                                        4,
                                                        updateStorageStatus(managementDriver)
                                                    ];
                                                case 1:
                                                    _state.sent();
                                                    _state.label = 2;
                                                case 2:
                                                    return [
                                                        3,
                                                        4
                                                    ];
                                                case 3:
                                                    error = _state.sent();
                                                    console.error("deviceStorageSaga", error);
                                                    return [
                                                        3,
                                                        4
                                                    ];
                                                case 4:
                                                    return [
                                                        2
                                                    ];
                                            }
                                        });
                                    })
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                })));
            };
            exports.createDeviceStorageSaga = createDeviceStorageSaga;
            function updateStorageStatus(nativeDriver) {
                var storageUnits;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                nativeDriver.fileSystem.listStorageUnits()
                            ];
                        case 1:
                            storageUnits = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: storageActions_1.NotifyStorageStatus,
                                    storageStatus: {
                                        storageUnits: storageUnits
                                    }
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Application/deviceApplicationTelemetrySagas.js
    var require_deviceApplicationTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Application/deviceApplicationTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getApplicationVersion = exports.telemetryDeviceApplicationSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryDeviceApplicationSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.APPLICATION_VERSION, Responsibility_1["default"].APP, [], getApplicationVersion);
            function getApplicationVersion(param) {
                var applicationVersion = param.applicationVersion;
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            {
                                version: applicationVersion
                            }
                        ];
                    });
                });
            }
            exports.getApplicationVersion = getApplicationVersion;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Temperature/temperatureTelemetrySagas.js
    var require_temperatureTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Temperature/temperatureTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getTemperatureSettings = exports.telemetryTemperatureSettingsSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryTemperatureSettingsSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.TEMPERATURE, Responsibility_1["default"].TEMPERATURE, [
                ManagementCapability_1["default"].TEMPERATURE
            ], getTemperatureSettings);
            function getTemperatureSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var temperature;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.getCurrentTemperature()
                                ];
                            case 1:
                                temperature = _state.sent();
                                return [
                                    2,
                                    {
                                        temperature: temperature
                                    }
                                ];
                        }
                    });
                });
            }
            exports.getTemperatureSettings = getTemperatureSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/BundledApplet/deviceBundledAppletTelemetrySagas.js
    var require_deviceBundledAppletTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/BundledApplet/deviceBundledAppletTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.telemetryDeviceBundledAppletSaga = exports.getBundledAppletInfo = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var dependencyInjection_1 = require_dependencyInjection();
            function getBundledAppletInfo() {
                var _a2, bundledAppletInfo, bundledApplet;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            bundledAppletInfo = null;
                            return [
                                4,
                                (0, dependencyInjection_1.awaitDependencies)([
                                    "bundledApplet"
                                ])
                            ];
                        case 1:
                            bundledApplet = _state.sent().bundledApplet;
                            bundledAppletInfo = bundledApplet;
                            if (!bundledAppletInfo) {
                                return [
                                    2,
                                    null
                                ];
                            }
                            return [
                                2,
                                {
                                    appletUid: bundledAppletInfo.uid,
                                    appletVersion: bundledAppletInfo.version,
                                    config: (_a2 = bundledAppletInfo.config) !== null && _a2 !== void 0 ? _a2 : {}
                                }
                            ];
                    }
                });
            }
            exports.getBundledAppletInfo = getBundledAppletInfo;
            exports.telemetryDeviceBundledAppletSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.BUNDLED_APPLET, Responsibility_1["default"].BUNDLED_APPLET, [], function() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                5,
                                _ts_values(__yieldStar(getBundledAppletInfo()))
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            });
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Proxy/deviceProxyTelemetrySaga.js
    var require_deviceProxyTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Proxy/deviceProxyTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getProxySettings = exports.telemetryDeviceProxySaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            exports.telemetryDeviceProxySaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.PROXY, Responsibility_1["default"].PROXY, [
                ManagementCapability_1["default"].PROXY
            ], getProxySettings);
            function getProxySettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var proxySettings, _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    managementDriver.proxy.isEnabled()
                                ];
                            case 1:
                                _tmp.enabled = _state.sent();
                                return [
                                    4,
                                    managementDriver.proxy.getConnectedTo()
                                ];
                            case 2:
                                proxySettings = (_tmp.uri = _state.sent() || null, _tmp);
                                return [
                                    2,
                                    proxySettings
                                ];
                        }
                    });
                });
            }
            exports.getProxySettings = getProxySettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Network/deviceWifiStrengthTelemetrySaga.js
    var require_deviceWifiStrengthTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Network/deviceWifiStrengthTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getWifiSettings = exports.telemetryDeviceWifiStrenghtSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            exports.telemetryDeviceWifiStrenghtSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.WIFI_STRENGTH, Responsibility_1["default"].WIFI_STRENGTH, [
                ManagementCapability_1["default"].WIFI_STRENGTH
            ], getWifiSettings);
            function getWifiSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var networkInterfaces, networkInterface;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.listInterfaces()
                                ];
                            case 1:
                                networkInterfaces = _state.sent();
                                networkInterface = networkInterfaces.find(function(param) {
                                    var type = param.type;
                                    return type === "wifi";
                                });
                                if (networkInterface && "wifiStrength" in networkInterface) {
                                    return [
                                        2,
                                        {
                                            strength: networkInterface.wifiStrength || 0
                                        }
                                    ];
                                }
                                return [
                                    2,
                                    {
                                        strength: 0
                                    }
                                ];
                        }
                    });
                });
            }
            exports.getWifiSettings = getWifiSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Network/deviceNetworkTelemetrySaga.js
    var require_deviceNetworkTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Network/deviceNetworkTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getNetworkInfo = exports.telemetryNetworkInfo = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            exports.telemetryNetworkInfo = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.NETWORK_INTERFACES, Responsibility_1["default"].NETWORK, [
                ManagementCapabilities_1.ManagementCapabilities.NETWORK_INFO
            ], getNetworkInfo);
            function getNetworkInfo(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var networkInterfaces;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.network.listInterfaces()
                                ];
                            case 1:
                                networkInterfaces = _state.sent();
                                return [
                                    2,
                                    networkInterfaces
                                ];
                        }
                    });
                });
            }
            exports.getNetworkInfo = getNetworkInfo;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Display/telemetryDisplayPowerOnSaga.js
    var require_telemetryDisplayPowerOnSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Display/telemetryDisplayPowerOnSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.telemetryDisplayPowerOnSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            exports.telemetryDisplayPowerOnSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.DISPLAY_POWER_ON, Responsibility_1["default"].POWER, [
                ManagementCapability_1["default"].DISPLAY_POWER
            ], getSettings);
            function getSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var _tmp;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _tmp = {};
                                return [
                                    4,
                                    managementDriver.displayIsPowerOn()
                                ];
                            case 1:
                                return [
                                    2,
                                    (_tmp.powerOn = _state.sent(), _tmp)
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/AppModules/telemetryAppModulesSaga.js
    var require_telemetryAppModulesSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/AppModules/telemetryAppModulesSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.telemetryAppModulesSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports.telemetryAppModulesSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.APP_MODULES, Responsibility_1["default"].APP_MODULES, [], getSettings);
            function getSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var front;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.isFrontEnabled()
                                ];
                            case 1:
                                front = _state.sent();
                                return [
                                    2,
                                    {
                                        management: true,
                                        front: front
                                    }
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/FeatureFlags/deviceFeatureFlegsTelemetrySaga.js
    var require_deviceFeatureFlegsTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/FeatureFlags/deviceFeatureFlegsTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getSupportedFeatureFlags = exports.telemetryFeatureFlagsSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var FeatureFlag_1 = require_FeatureFlag();
            exports.telemetryFeatureFlagsSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.FEATURE_FLAGS, Responsibility_1["default"].TELEMETRY, [], getSupportedFeatureFlags);
            function getSupportedFeatureFlags() {
                return __awaiter(this, void 0, void 0, function() {
                    var featureFlags;
                    return _ts_generator(this, function(_state) {
                        featureFlags = {
                            supported: [
                                FeatureFlag_1.DeviceFeatureFlag.ScreenshotCapture,
                                FeatureFlag_1.DeviceFeatureFlag.SystemLogs,
                                FeatureFlag_1.DeviceFeatureFlag.CpuUsage,
                                FeatureFlag_1.DeviceFeatureFlag.MemoryUsage,
                                FeatureFlag_1.DeviceFeatureFlag.Plugins,
                                FeatureFlag_1.DeviceFeatureFlag.Runners,
                                FeatureFlag_1.DeviceFeatureFlag.CustomScripts
                            ]
                        };
                        return [
                            2,
                            featureFlags
                        ];
                    });
                });
            }
            exports.getSupportedFeatureFlags = getSupportedFeatureFlags;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Secrets/deviceCryphotraphicTelemetrySaga.js
    var require_deviceCryphotraphicTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Secrets/deviceCryphotraphicTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getData = exports.telemetryCryptographicSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            exports.telemetryCryptographicSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.CRYPTOGRAPHIC_KEY, Responsibility_1["default"].SECRET_MANAGEMENT, [
                ManagementCapability_1["default"].SECRETS
            ], getData);
            function getData(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var keyData;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    managementDriver.secretManager.getPublicKey()
                                ];
                            case 1:
                                keyData = _state.sent();
                                return [
                                    2,
                                    Object.assign(Object.assign(Object.assign({}, algorithmToTelemetry(keyData.algorithm)), keyValidityToTelemetry(keyData.keyValidity)), {
                                        publicKey: {
                                            spki: keyData.publicKeySpki
                                        }
                                    })
                                ];
                        }
                    });
                });
            }
            exports.getData = getData;
            var algorithmToTelemetry = function(algorithm) {
                if (!algorithm) {
                    return {};
                }
                var encryptionPaddings = [];
                switch(algorithm.name){
                    case "RSA-OAEP":
                        encryptionPaddings.push("OAEP");
                        break;
                    default:
                        throw new Error("Unsupported algorithm: ".concat(algorithm.name));
                }
                return {
                    algorithm: "RSA",
                    keySize: algorithm.modulusLength,
                    digests: [
                        algorithm.hash.name
                    ],
                    encryptionPaddings: encryptionPaddings
                };
            };
            var keyValidityToTelemetry = function(keyValidity) {
                if ((keyValidity === null || keyValidity === void 0 ? void 0 : keyValidity.start) || (keyValidity === null || keyValidity === void 0 ? void 0 : keyValidity.end)) {
                    return {
                        keyValidity: {
                            start: keyValidity === null || keyValidity === void 0 ? void 0 : keyValidity.start,
                            forOriginationEnd: keyValidity === null || keyValidity === void 0 ? void 0 : keyValidity.end,
                            forConsumptionEnd: keyValidity === null || keyValidity === void 0 ? void 0 : keyValidity.end
                        }
                    };
                } else {
                    return {};
                }
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Plugin/devicePluginTelemetrySaga.js
    var require_devicePluginTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Plugin/devicePluginTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getPluginSettings = exports.telemetryPluginsSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Property_1 = __importDefault(require_Property());
            var browserRuntime_1 = require_browserRuntime();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var TELEMETRY_PLUGIN_WAIT_TIMEOUT = 2e3;
            var TELEMETRY_PLUGIN_RETRY_COUNT = 20;
            var TELEMETRY_PLUGIN_RETRY_DELAY = 200;
            function getAssignedPlugins(propertyStorage) {
                var assignedPlugins;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_PLUGINS, {})
                            ];
                        case 1:
                            assignedPlugins = _state.sent();
                            return [
                                2,
                                assignedPlugins
                            ];
                    }
                });
            }
            function getPluginIframeWindow(iframeId) {
                var iframe = document.getElementById(iframeId);
                var iframeWindow = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow;
                return {
                    iframe: iframe,
                    iframeWindow: iframeWindow
                };
            }
            function waitForSosPlugin(iframeWindow, pluginUid) {
                var waitForModule;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            waitForModule = function() {
                                var retries = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : TELEMETRY_PLUGIN_RETRY_COUNT;
                                return new Promise(function(resolve, reject) {
                                    var checkModule = function() {
                                        if (iframeWindow && iframeWindow.sosPlugin && iframeWindow.sosPlugin.get) {
                                            resolve(iframeWindow.sosPlugin);
                                        } else if (retries > 0) {
                                            setTimeout(checkModule, TELEMETRY_PLUGIN_RETRY_DELAY);
                                            retries--;
                                        } else {
                                            reject(new Error("sosPlugin not available for plugin ".concat(pluginUid)));
                                        }
                                    };
                                    checkModule();
                                });
                            };
                            return [
                                4,
                                (0, effects_1.call)(waitForModule)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function createAndRunPluginForTelemetry(browserRuntime, managementDriver, plugin, iframeId) {
                var messageChannel, messagesHandler, customMessages;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.dropping(100));
                            messagesHandler = function(event) {
                                messageChannel.put(event);
                            };
                            return [
                                4,
                                (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, plugin, plugin.configuration || {}, plugin.pluginFile, plugin.appletJsFile, messagesHandler)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, iframeId)
                            ];
                        case 2:
                            customMessages = _state.sent();
                            return [
                                4,
                                new Promise(function(resolve) {
                                    return setTimeout(resolve, TELEMETRY_PLUGIN_WAIT_TIMEOUT);
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2,
                                {
                                    messageChannel: messageChannel,
                                    customMessages: customMessages
                                }
                            ];
                    }
                });
            }
            function cleanupPluginTelemetryResources(iframe, customMessages) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!customMessages) return [
                                3,
                                2
                            ];
                            return [
                                4,
                                (0, effects_1.cancel)(customMessages)
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            if (iframe === null || iframe === void 0 ? void 0 : iframe.parentNode) {
                                iframe.parentNode.removeChild(iframe);
                            }
                            return [
                                2
                            ];
                    }
                });
            }
            function getPluginTelemetryData(plugin, managementDriver) {
                var iframeId, iframe, customMessages, createdIframe, browserRuntime, result17, iframeWindow, sosPlugin, telemetryData, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            iframeId = plugin.md5Checksum;
                            iframe = getPluginIframeWindow(iframeId).iframe;
                            customMessages = null;
                            createdIframe = false;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                8,
                                9,
                                12
                            ]);
                            if (!!iframe) return [
                                3,
                                3
                            ];
                            browserRuntime = new browserRuntime_1.BrowserRuntime();
                            return [
                                5,
                                _ts_values(__yieldStar(createAndRunPluginForTelemetry(browserRuntime, managementDriver, plugin, iframeId)))
                            ];
                        case 2:
                            result17 = _state.sent();
                            customMessages = result17.customMessages;
                            iframe = getPluginIframeWindow(iframeId).iframe;
                            createdIframe = true;
                            _state.label = 3;
                        case 3:
                            if (!(iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow)) {
                                return [
                                    2,
                                    {
                                        pluginUid: plugin.pluginUid,
                                        version: plugin.pluginVersion,
                                        data: {
                                            error: "Iframe not found"
                                        }
                                    }
                                ];
                            }
                            iframeWindow = getPluginIframeWindow(iframeId).iframeWindow;
                            return [
                                5,
                                _ts_values(__yieldStar(waitForSosPlugin(iframeWindow, plugin.pluginUid)))
                            ];
                        case 4:
                            sosPlugin = _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(sosPlugin.get)
                            ];
                        case 5:
                            telemetryData = _state.sent();
                            if (!createdIframe) return [
                                3,
                                7
                            ];
                            return [
                                5,
                                _ts_values(__yieldStar(cleanupPluginTelemetryResources(iframe, customMessages)))
                            ];
                        case 6:
                            _state.sent();
                            _state.label = 7;
                        case 7:
                            return [
                                2,
                                {
                                    pluginUid: plugin.pluginUid,
                                    version: plugin.pluginVersion,
                                    data: telemetryData || {}
                                }
                            ];
                        case 8:
                            error = _state.sent();
                            return [
                                2,
                                {
                                    pluginUid: plugin.pluginUid,
                                    version: plugin.pluginVersion,
                                    data: {
                                        error: "Failed to get telemetry",
                                        details: error.message
                                    }
                                }
                            ];
                        case 9:
                            if (!createdIframe) return [
                                3,
                                11
                            ];
                            return [
                                5,
                                _ts_values(__yieldStar(cleanupPluginTelemetryResources(iframe, customMessages)))
                            ];
                        case 10:
                            _state.sent();
                            _state.label = 11;
                        case 11:
                            return [
                                7
                            ];
                        case 12:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.telemetryPluginsSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.PLUGIN, Responsibility_1["default"].PLUGINS, [
                ManagementCapability_1["default"].PLUGINS
            ], getPluginSettings);
            function getPluginSettings(param) {
                var propertyStorage, managementDriver, assignedPlugins, pluginEntries, pluginDataList, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, _assignmentUid, plugin, typedPlugin, telemetryResult, error, err, error1;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            propertyStorage = param.propertyStorage, managementDriver = param.managementDriver;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                13,
                                ,
                                14
                            ]);
                            return [
                                5,
                                _ts_values(__yieldStar(getAssignedPlugins(propertyStorage)))
                            ];
                        case 2:
                            assignedPlugins = _state.sent();
                            pluginEntries = Object.entries(assignedPlugins);
                            if (pluginEntries.length === 0) {
                                return [
                                    2,
                                    []
                                ];
                            }
                            pluginDataList = [];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                10,
                                11,
                                12
                            ]);
                            _iterator = pluginEntries[Symbol.iterator]();
                            _state.label = 4;
                        case 4:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                9
                            ];
                            _step_value = _sliced_to_array(_step.value, 2), _assignmentUid = _step_value[0], plugin = _step_value[1];
                            typedPlugin = plugin;
                            _state.label = 5;
                        case 5:
                            _state.trys.push([
                                5,
                                7,
                                ,
                                8
                            ]);
                            return [
                                5,
                                _ts_values(__yieldStar(getPluginTelemetryData(typedPlugin, managementDriver)))
                            ];
                        case 6:
                            telemetryResult = _state.sent();
                            pluginDataList.push(telemetryResult);
                            return [
                                3,
                                8
                            ];
                        case 7:
                            error = _state.sent();
                            pluginDataList.push({
                                pluginUid: typedPlugin.pluginUid,
                                version: typedPlugin.pluginVersion,
                                data: {
                                    error: "Failed to process plugin",
                                    details: error.message
                                }
                            });
                            return [
                                3,
                                8
                            ];
                        case 8:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                4
                            ];
                        case 9:
                            return [
                                3,
                                12
                            ];
                        case 10:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                12
                            ];
                        case 11:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 12:
                            return [
                                2,
                                pluginDataList.length > 0 ? pluginDataList : []
                            ];
                        case 13:
                            error1 = _state.sent();
                            return [
                                2,
                                []
                            ];
                        case 14:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.getPluginSettings = getPluginSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Runner/deviceRunnerTelemetrySaga.js
    var require_deviceRunnerTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Runner/deviceRunnerTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getRunnerSettings = exports.telemetryRunnerSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var browserRuntime_1 = require_browserRuntime();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Property_1 = __importDefault(require_Property());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var RUNNER_WAIT_TIMEOUT = 2e3;
            var RUNNER_RETRY_COUNT = 20;
            var RUNNER_RETRY_DELAY = 200;
            function getAssignedRunners(propertyStorage) {
                var assignedRunners;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                            ];
                        case 1:
                            assignedRunners = _state.sent();
                            return [
                                2,
                                assignedRunners
                            ];
                    }
                });
            }
            function getRunnerIframeWindow(iframeId) {
                var iframe = document.getElementById(iframeId);
                var iframeWindow = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow;
                return {
                    iframe: iframe,
                    iframeWindow: iframeWindow
                };
            }
            function waitForSosRunner(iframeId, runnerUid) {
                var iframeWindow, waitForModule;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            iframeWindow = getRunnerIframeWindow(iframeId).iframeWindow;
                            if (!iframeWindow) {
                                throw new Error("Iframe window not found for runner ".concat(runnerUid));
                            }
                            waitForModule = function() {
                                var retries = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : RUNNER_RETRY_COUNT;
                                return new Promise(function(resolve, reject) {
                                    var checkModule = function() {
                                        if (iframeWindow && iframeWindow.sosRunner && iframeWindow.sosRunner.get) {
                                            resolve(iframeWindow.sosRunner);
                                        } else if (retries > 0) {
                                            setTimeout(checkModule, RUNNER_RETRY_DELAY);
                                            retries--;
                                        } else {
                                            reject(new Error("sosRunner not available for runner ".concat(runnerUid)));
                                        }
                                    };
                                    checkModule();
                                });
                            };
                            return [
                                4,
                                (0, effects_1.call)(waitForModule)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function createAndRunRunner(browserRuntime, managementDriver, runner, iframeId) {
                var messageChannel, messagesHandler, telemetry;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.dropping(100));
                            messagesHandler = function(event) {
                                messageChannel.put(event);
                            };
                            telemetry = function(messageResult) {
                                return parent.postMessage({
                                    telemetryData: messageResult,
                                    iframeId: iframeId
                                }, "*");
                            };
                            return [
                                4,
                                (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, runner, runner.configuration || {}, runner.runnerFile, runner.appletJsFile, messagesHandler, telemetry)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, iframeId)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                new Promise(function(resolve) {
                                    return setTimeout(resolve, RUNNER_WAIT_TIMEOUT);
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2,
                                {
                                    messageChannel: messageChannel
                                }
                            ];
                    }
                });
            }
            function getRunnerTelemetryDataWithManagement(runner, managementDriver) {
                var iframeId, iframe, browserRuntime, sosRunner, telemetryData, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            iframeId = runner.md5Checksum;
                            iframe = getRunnerIframeWindow(iframeId).iframe;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                6,
                                ,
                                7
                            ]);
                            if (!!iframe) return [
                                3,
                                3
                            ];
                            browserRuntime = new browserRuntime_1.BrowserRuntime();
                            return [
                                5,
                                _ts_values(__yieldStar(createAndRunRunner(browserRuntime, managementDriver, runner, iframeId)))
                            ];
                        case 2:
                            _state.sent();
                            iframe = getRunnerIframeWindow(iframeId).iframe;
                            _state.label = 3;
                        case 3:
                            if (!(iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow)) {
                                return [
                                    2,
                                    {
                                        runnerUid: runner.runnerUid,
                                        version: runner.runnerVersion,
                                        data: {
                                            error: "Iframe not found"
                                        }
                                    }
                                ];
                            }
                            return [
                                5,
                                _ts_values(__yieldStar(waitForSosRunner(iframeId, runner.runnerUid)))
                            ];
                        case 4:
                            sosRunner = _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(sosRunner.get)
                            ];
                        case 5:
                            telemetryData = _state.sent();
                            return [
                                2,
                                {
                                    runnerUid: runner.runnerUid,
                                    version: runner.runnerVersion,
                                    data: telemetryData || {}
                                }
                            ];
                        case 6:
                            error = _state.sent();
                            console.error("Failed to get telemetry for runner ".concat(runner.runnerUid, ":"), error);
                            return [
                                2,
                                {
                                    runnerUid: runner.runnerUid,
                                    version: runner.runnerVersion,
                                    data: {
                                        error: "Failed to get telemetry",
                                        details: error.message
                                    }
                                }
                            ];
                        case 7:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.telemetryRunnerSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.RUNNER, Responsibility_1["default"].RUNNERS, [
                ManagementCapability_1["default"].RUNNERS
            ], getRunnerSettings);
            function getRunnerSettings(param) {
                var propertyStorage, managementDriver, assignedRunners, runnerEntries, runnerDataList, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, _assignmentUid, runner, typedRunner, telemetryResult, error, err, error1;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            propertyStorage = param.propertyStorage, managementDriver = param.managementDriver;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                13,
                                ,
                                14
                            ]);
                            return [
                                5,
                                _ts_values(__yieldStar(getAssignedRunners(propertyStorage)))
                            ];
                        case 2:
                            assignedRunners = _state.sent();
                            runnerEntries = Object.entries(assignedRunners);
                            if (runnerEntries.length === 0) {
                                return [
                                    2,
                                    []
                                ];
                            }
                            runnerDataList = [];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                10,
                                11,
                                12
                            ]);
                            _iterator = runnerEntries[Symbol.iterator]();
                            _state.label = 4;
                        case 4:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                9
                            ];
                            _step_value = _sliced_to_array(_step.value, 2), _assignmentUid = _step_value[0], runner = _step_value[1];
                            typedRunner = runner;
                            _state.label = 5;
                        case 5:
                            _state.trys.push([
                                5,
                                7,
                                ,
                                8
                            ]);
                            return [
                                5,
                                _ts_values(__yieldStar(getRunnerTelemetryDataWithManagement(typedRunner, managementDriver)))
                            ];
                        case 6:
                            telemetryResult = _state.sent();
                            runnerDataList.push(telemetryResult);
                            return [
                                3,
                                8
                            ];
                        case 7:
                            error = _state.sent();
                            runnerDataList.push({
                                runnerUid: typedRunner.runnerUid,
                                version: typedRunner.runnerVersion,
                                data: {
                                    error: "Failed to process runner",
                                    details: error.message
                                }
                            });
                            return [
                                3,
                                8
                            ];
                        case 8:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                4
                            ];
                        case 9:
                            return [
                                3,
                                12
                            ];
                        case 10:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                12
                            ];
                        case 11:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 12:
                            return [
                                2,
                                runnerDataList.length > 0 ? runnerDataList : []
                            ];
                        case 13:
                            error1 = _state.sent();
                            console.error("Failed to get runner settings for telemetry:", error1);
                            return [
                                2,
                                []
                            ];
                        case 14:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.getRunnerSettings = getRunnerSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Runner/deviceRunnerCustomTelemetrySaga.js
    var require_deviceRunnerCustomTelemetrySaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Runner/deviceRunnerCustomTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getRunnerCustomSettings = exports.telemetryRunnerCustomSaga = void 0;
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var Property_1 = __importDefault(require_Property());
            exports.telemetryRunnerCustomSaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.RUNNER_CUSTOM, Responsibility_1["default"].RUNNERS, [
                ManagementCapability_1["default"].RUNNERS
            ], getRunnerCustomSettings);
            function getRunnerCustomSettings(param) {
                var propertyStorage, assignedRunners, runnerEntries, runnerDataList, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, assignmentUid, runner, telemetryDataLocal, telemetryData;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            propertyStorage = param.propertyStorage;
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                            ];
                        case 1:
                            assignedRunners = _state.sent();
                            runnerEntries = Object.entries(assignedRunners);
                            if (runnerEntries.length === 0) {
                                return [
                                    2,
                                    []
                                ];
                            }
                            runnerDataList = [];
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(_iterator = runnerEntries[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    _step_value = _sliced_to_array(_step.value, 2), assignmentUid = _step_value[0], runner = _step_value[1];
                                    telemetryDataLocal = window.localStorage.getItem("runner_".concat(assignmentUid));
                                    if (telemetryDataLocal) {
                                        telemetryData = JSON.parse(telemetryDataLocal).telemetryData;
                                        runnerDataList.push({
                                            runnerUid: runner.runnerUid,
                                            version: runner.runnerVersion,
                                            data: telemetryData
                                        });
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            return [
                                2,
                                runnerDataList
                            ];
                    }
                });
            }
            exports.getRunnerCustomSettings = getRunnerCustomSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/SystemPerformance/cpuUsageTelemetrySagas.js
    var require_cpuUsageTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/SystemPerformance/cpuUsageTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getCpuUsageSettings = exports.telemetryCpuUsageSettingsSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var dependencyInjection_1 = require_dependencyInjection();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var baseTelemetrySaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.CPU_USAGE, Responsibility_1["default"].TELEMETRY, [
                ManagementCapability_1["default"].SYSTEM_CPU
            ], getCpuUsageSettings);
            var cpuTelemetryWithFeatureFlag = (0, dependencyInjection_1.withDependencies)([
                "featureFlags"
            ], function(param, responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                var featureFlags, _a2, telemetrySaga;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            featureFlags = param.featureFlags;
                            if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.cpuUsage) !== null && _a2 !== void 0 ? _a2 : false)) {
                                return [
                                    2
                                ];
                            }
                            telemetrySaga = baseTelemetrySaga(responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion);
                            return [
                                4,
                                telemetrySaga
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            });
            function telemetryCpuUsageSettingsSaga(responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(cpuTelemetryWithFeatureFlag, responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.telemetryCpuUsageSettingsSaga = telemetryCpuUsageSettingsSaga;
            function getCpuUsageSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var usage, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    managementDriver.systemInfo.getCpuUsage()
                                ];
                            case 1:
                                usage = _state.sent();
                                return [
                                    2,
                                    {
                                        usage: usage
                                    }
                                ];
                            case 2:
                                error = _state.sent();
                                throw error;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.getCpuUsageSettings = getCpuUsageSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/SystemPerformance/memoryUsageTelemetrySagas.js
    var require_memoryUsageTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/SystemPerformance/memoryUsageTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getMemoryUsageSettings = exports.telemetryMemoryUsageSettingsSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var dependencyInjection_1 = require_dependencyInjection();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var baseTelemetrySaga = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.MEMORY_USAGE, Responsibility_1["default"].TELEMETRY, [
                ManagementCapability_1["default"].SYSTEM_MEMORY
            ], getMemoryUsageSettings);
            var memoryTelemetryWithFeatureFlag = (0, dependencyInjection_1.withDependencies)([
                "featureFlags"
            ], function(param, responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                var featureFlags, _a2, telemetrySaga;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            featureFlags = param.featureFlags;
                            if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.memoryUsage) !== null && _a2 !== void 0 ? _a2 : false)) {
                                return [
                                    2
                                ];
                            }
                            telemetrySaga = baseTelemetrySaga(responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion);
                            return [
                                4,
                                telemetrySaga
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            });
            function telemetryMemoryUsageSettingsSaga(responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(memoryTelemetryWithFeatureFlag, responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.telemetryMemoryUsageSettingsSaga = telemetryMemoryUsageSettingsSaga;
            function getMemoryUsageSettings(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var memoryData, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    managementDriver.systemInfo.getMemoryUsage()
                                ];
                            case 1:
                                memoryData = _state.sent();
                                return [
                                    2,
                                    memoryData
                                ];
                            case 2:
                                error = _state.sent();
                                throw error;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.getMemoryUsageSettings = getMemoryUsageSettings;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Package/installedPackagesTelemetrySagas.js
    var require_installedPackagesTelemetrySagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Package/installedPackagesTelemetrySagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getInstalledPackages = exports.telemetryInstalledPackagesSaga = void 0;
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var installedPackagesTelemetry = (0, deviceTelemetrySagas_1.createDeviceTelemetrySaga)(DeviceTelemetryType_1.DeviceTelemetryType.INSTALLED_PACKAGES, Responsibility_1["default"].TELEMETRY, [
                ManagementCapability_1["default"].NOTIFY_INSTALLED_PACKAGES
            ], getInstalledPackages);
            function telemetryInstalledPackagesSaga(responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.call)(installedPackagesTelemetry, responsibilities, getManagementDriver, propertyStorage, timerStorage, powerActionRules, applicationVersion)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.telemetryInstalledPackagesSaga = telemetryInstalledPackagesSaga;
            function getInstalledPackages(param) {
                var managementDriver = param.managementDriver;
                return __awaiter(this, void 0, void 0, function() {
                    var installedPackages, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    managementDriver.getInstalledPackages()
                                ];
                            case 1:
                                installedPackages = _state.sent();
                                return [
                                    2,
                                    installedPackages
                                ];
                            case 2:
                                error = _state.sent();
                                throw error;
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.getInstalledPackages = getInstalledPackages;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/deviceTelemetrySaga.js
    var require_deviceTelemetrySaga2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/deviceTelemetrySaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceTelemetrySaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceVolumeTelemetrySagas_1 = require_deviceVolumeTelemetrySagas();
            var brightnessTelemetrySagas_1 = require_brightnessTelemetrySagas();
            var deviceResolutionTelemetrySagas_1 = require_deviceResolutionTelemetrySagas();
            var deviceOrientationTelemetrySagas_1 = require_deviceOrientationTelemetrySagas();
            var deviceRemoteControlTelemetrySagas_1 = require_deviceRemoteControlTelemetrySagas();
            var deviceApplicationTelemetrySagas_1 = require_deviceApplicationTelemetrySagas();
            var deviceFirmwareTelemetrySagas_1 = require_deviceFirmwareTelemetrySagas();
            var deviceDebugTelemetrySagas_1 = require_deviceDebugTelemetrySagas();
            var deviceDateTimeTelemetrySagas_1 = require_deviceDateTimeTelemetrySagas();
            var devicePowerActionTelemetrySagas_1 = require_devicePowerActionTelemetrySagas();
            var deviceTimerTelemetrySagas_1 = require_deviceTimerTelemetrySagas();
            var temperatureTelemetrySagas_1 = require_temperatureTelemetrySagas();
            var deviceBundledAppletTelemetrySagas_1 = require_deviceBundledAppletTelemetrySagas();
            var deviceProxyTelemetrySaga_1 = require_deviceProxyTelemetrySaga();
            var deviceWifiStrengthTelemetrySaga_1 = require_deviceWifiStrengthTelemetrySaga();
            var autoRecoveryTelemetrySaga_1 = require_autoRecoveryTelemetrySaga();
            var peerRecoveryTelemetrySaga_1 = require_peerRecoveryTelemetrySaga();
            var deviceCapabilitiesTelemetrySagas_1 = require_deviceCapabilitiesTelemetrySagas();
            var extendedManagementTelemetrySagas_1 = require_extendedManagementTelemetrySagas();
            var deviceNetworkTelemetrySaga_1 = require_deviceNetworkTelemetrySaga();
            var telemetryDisplayPowerOnSaga_1 = require_telemetryDisplayPowerOnSaga();
            var telemetryAppModulesSaga_1 = require_telemetryAppModulesSaga();
            var deviceFeatureFlegsTelemetrySaga_1 = require_deviceFeatureFlegsTelemetrySaga();
            var deviceCryphotraphicTelemetrySaga_1 = require_deviceCryphotraphicTelemetrySaga();
            var devicePluginTelemetrySaga_1 = require_devicePluginTelemetrySaga();
            var deviceRunnerTelemetrySaga_1 = require_deviceRunnerTelemetrySaga();
            var deviceRunnerCustomTelemetrySaga_1 = require_deviceRunnerCustomTelemetrySaga();
            var cpuUsageTelemetrySagas_1 = require_cpuUsageTelemetrySagas();
            var memoryUsageTelemetrySagas_1 = require_memoryUsageTelemetrySagas();
            var installedPackagesTelemetrySagas_1 = require_installedPackagesTelemetrySagas();
            var deviceTelemetrySaga = function(responsibilities, getNativeDriver, propertyStorage, proprietaryTimerStorage, applicationVersion, powerActionTimer) {
                return function deviceTelemetrySaga() {
                    var _this, powerActionRules, telemetrySagas, telemetrySagaIterators;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _this = this;
                                powerActionRules = function() {
                                    return __awaiter(_this, void 0, void 0, function() {
                                        return _ts_generator(this, function(_state) {
                                            switch(_state.label){
                                                case 0:
                                                    return [
                                                        4,
                                                        powerActionTimer.rules()
                                                    ];
                                                case 1:
                                                    return [
                                                        2,
                                                        _state.sent()
                                                    ];
                                            }
                                        });
                                    });
                                };
                                telemetrySagas = [
                                    deviceVolumeTelemetrySagas_1.telemetryDeviceVolumeSaga,
                                    brightnessTelemetrySagas_1.telemetryBrightnessSettingsSaga,
                                    deviceResolutionTelemetrySagas_1.telemetryResolutionSaga,
                                    deviceOrientationTelemetrySagas_1.telemetryOrientationSaga,
                                    deviceRemoteControlTelemetrySagas_1.telemetryDeviceRemoteControlSaga,
                                    deviceApplicationTelemetrySagas_1.telemetryDeviceApplicationSaga,
                                    deviceFirmwareTelemetrySagas_1.telemetryDeviceFirmwareSaga,
                                    deviceDebugTelemetrySagas_1.telemetryDeviceDebugSaga,
                                    deviceDateTimeTelemetrySagas_1.telemetryDeviceDateTimeSaga,
                                    devicePowerActionTelemetrySagas_1.telemetryDevicePowerActionsSaga,
                                    deviceTimerTelemetrySagas_1.telemetryDeviceTimerSaga,
                                    deviceTimerTelemetrySagas_1.telemetryDeviceProprietaryTimerSaga,
                                    temperatureTelemetrySagas_1.telemetryTemperatureSettingsSaga,
                                    deviceBundledAppletTelemetrySagas_1.telemetryDeviceBundledAppletSaga,
                                    deviceNetworkTelemetrySaga_1.telemetryNetworkInfo,
                                    deviceProxyTelemetrySaga_1.telemetryDeviceProxySaga,
                                    deviceWifiStrengthTelemetrySaga_1.telemetryDeviceWifiStrenghtSaga,
                                    autoRecoveryTelemetrySaga_1.telemetryDeviceAutoRecoverySaga,
                                    peerRecoveryTelemetrySaga_1.telemetryDevicePeerRecoverySaga,
                                    deviceCapabilitiesTelemetrySagas_1.telemetryManagementCapabilitiesSaga,
                                    extendedManagementTelemetrySagas_1.telemetryExtendedManagementSettingsSaga,
                                    telemetryDisplayPowerOnSaga_1.telemetryDisplayPowerOnSaga,
                                    telemetryAppModulesSaga_1.telemetryAppModulesSaga,
                                    deviceFeatureFlegsTelemetrySaga_1.telemetryFeatureFlagsSaga,
                                    deviceCryphotraphicTelemetrySaga_1.telemetryCryptographicSaga,
                                    devicePluginTelemetrySaga_1.telemetryPluginsSaga,
                                    deviceRunnerTelemetrySaga_1.telemetryRunnerSaga,
                                    deviceRunnerCustomTelemetrySaga_1.telemetryRunnerCustomSaga,
                                    cpuUsageTelemetrySagas_1.telemetryCpuUsageSettingsSaga,
                                    memoryUsageTelemetrySagas_1.telemetryMemoryUsageSettingsSaga,
                                    installedPackagesTelemetrySagas_1.telemetryInstalledPackagesSaga
                                ];
                                telemetrySagaIterators = telemetrySagas.map(function(saga) {
                                    return saga(responsibilities, getNativeDriver, propertyStorage, proprietaryTimerStorage, powerActionRules, applicationVersion);
                                });
                                return [
                                    4,
                                    (0, effects_1.all)(telemetrySagaIterators)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                };
            };
            exports.deviceTelemetrySaga = deviceTelemetrySaga;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Temperature/deviceTemperatureActions.js
    var require_deviceTemperatureActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Temperature/deviceTemperatureActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.RecordTemperature = void 0;
            exports.RecordTemperature = "Device.Temperature.RecordTemperature";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Temperature/deviceTemperatureSaga.js
    var require_deviceTemperatureSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Temperature/deviceTemperatureSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceTemperatureSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceTemperatureActions_1 = require_deviceTemperatureActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            function deviceTemperatureSaga(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].TEMPERATURE)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].TEMPERATURE, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "telemetryIntervals"
                                ], function(param) {
                                    var managementDriver, telemetryIntervals, _a2, periodMs;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, telemetryIntervals = param.telemetryIntervals;
                                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals.temperature) !== null && _a2 !== void 0 ? _a2 : 0;
                                                return [
                                                    4,
                                                    (0, deviceTelemetryHelper_1.registerTelemetry)("TEMPERATURE", periodMs, function() {
                                                        var temperature, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        3,
                                                                        ,
                                                                        4
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        managementDriver.getCurrentTemperature()
                                                                    ];
                                                                case 1:
                                                                    temperature = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: deviceTemperatureActions_1.RecordTemperature,
                                                                            temperature: temperature
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 3:
                                                                    error = _state.sent();
                                                                    console.error("deviceTemperatureSaga", error);
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceTemperatureSaga = deviceTemperatureSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Timer/deviceTimerSettingsSagas.js
    var require_deviceTimerSettingsSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Timer/deviceTimerSettingsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.setNativeTimer = exports.syncDeviceTimerSettingsSaga = exports.setDeviceTimerSettingsCallback = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceTimerActions_1 = require_deviceTimerActions();
            var convertWeekday_1 = require_convertWeekday();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceProprietaryTimerSagas_1 = require_deviceProprietaryTimerSagas();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var TimerLevel_1 = require_TimerLevel();
            var TimerType_1 = __importDefault(require_TimerType());
            function setDeviceTimerSettingsCallback(getNativeDriver, proprietaryTimerStorage, action) {
                var nativeDriver, supportsNativeTimers, supportsProprietaryTimers, error, error1;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].TIMERS_NATIVE)
                            ];
                        case 1:
                            supportsNativeTimers = _state.sent();
                            return [
                                4,
                                nativeDriver.managementSupports(ManagementCapability_1["default"].TIMERS_PROPRIETARY)
                            ];
                        case 2:
                            supportsProprietaryTimers = _state.sent();
                            if (!(supportsNativeTimers && action.level === TimerLevel_1.TimerLevel.Native)) return [
                                3,
                                9
                            ];
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                6,
                                ,
                                8
                            ]);
                            return [
                                4,
                                (0, effects_1.call)(setNativeTimer, nativeDriver, action)
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTimerActions_1.SetDeviceTimerSettingsSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 5:
                            _state.sent();
                            return [
                                3,
                                8
                            ];
                        case 6:
                            error = _state.sent();
                            console.error("syncTimerSettingsSaga", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTimerActions_1.SetDeviceTimerSettingsFailed,
                                    uid: action.uid
                                })
                            ];
                        case 7:
                            _state.sent();
                            return [
                                3,
                                8
                            ];
                        case 8:
                            return [
                                3,
                                15
                            ];
                        case 9:
                            if (!supportsProprietaryTimers) return [
                                3,
                                15
                            ];
                            _state.label = 10;
                        case 10:
                            _state.trys.push([
                                10,
                                13,
                                ,
                                15
                            ]);
                            return [
                                4,
                                (0, effects_1.call)(deviceProprietaryTimerSagas_1.setProprietaryTimer, proprietaryTimerStorage, action)
                            ];
                        case 11:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTimerActions_1.SetDeviceTimerSettingsSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 12:
                            _state.sent();
                            return [
                                3,
                                15
                            ];
                        case 13:
                            error1 = _state.sent();
                            console.error("syncTimerSettingsSaga", error1);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceTimerActions_1.SetDeviceTimerSettingsFailed,
                                    uid: action.uid
                                })
                            ];
                        case 14:
                            _state.sent();
                            return [
                                3,
                                15
                            ];
                        case 15:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceTimerSettingsCallback = setDeviceTimerSettingsCallback;
            function syncDeviceTimerSettingsSaga(getNativeDriver, responsibilities, proprietaryTimerStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].TIMERS)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.takeEveryAndBindWhenPlatform)(deviceTimerActions_1.SetDeviceTimerSettings, setDeviceTimerSettingsCallback, getNativeDriver, proprietaryTimerStorage)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.syncDeviceTimerSettingsSaga = syncDeviceTimerSettingsSaga;
            function setNativeTimer(nativeDriver, action) {
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    nativeDriver.setTimer(TimerType_1["default"][action.timerType], action.timeOn, action.timeOff, convertWeekday_1.convertWeekday.fromShort(action.weekdays).toTimerWeekday(), action.volume)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.setNativeTimer = setNativeTimer;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/deviceSagas.js
    var require_deviceSagas3 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/deviceSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.notifyDeviceApplicationVersion = exports.notifyDeviceSaga = void 0;
            var socketActionCreator_1 = require_socketActionCreator();
            var authenticationActions_1 = require_authenticationActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var deviceSagas_1 = require_deviceSagas();
            function notifyDeviceSaga(getNativeDriver, responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].DEVICE)) return [
                                3,
                                2
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, deviceSagas_1.notifyDeviceInfo, getNativeDriver)
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            if (!responsibilities.has(Responsibility_1["default"].PROXY)) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, deviceSagas_1.notifyDeviceProxyInfo, getNativeDriver)
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceSaga = notifyDeviceSaga;
            function notifyDeviceApplicationVersion(getNativeDriver, responsibilities, applicationVersion) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].APP)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, deviceSagas_1.notifyDeviceApplicationVersionCommon, getNativeDriver, applicationVersion)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.notifyDeviceApplicationVersion = notifyDeviceApplicationVersion;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Extended/extendedManagementSagas.js
    var require_extendedManagementSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Extended/extendedManagementSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.deviceExtendedManagementSaga = exports.setDeviceExtendedManagementCallback = void 0;
            var deviceExtendedManagementActions_1 = require_deviceExtendedManagementActions();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var socketActionCreator_1 = require_socketActionCreator();
            function setDeviceExtendedManagementCallback(getNativeDriver, action) {
                var nativeDriver, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _state.trys.push([
                                0,
                                3,
                                ,
                                5
                            ]);
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                (0, effects_1.apply)(nativeDriver, nativeDriver.setExtendedManagementUrl, [
                                    action.url
                                ])
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceExtendedManagementActions_1.SetExtendedManagementUrlSucceeded,
                                    uid: action.uid
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            error = _state.sent();
                            console.error("deviceVolumeSaga", error);
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceExtendedManagementActions_1.SetExtendedManagementUrlFailed,
                                    uid: action.uid
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 5:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceExtendedManagementCallback = setDeviceExtendedManagementCallback;
            function deviceExtendedManagementSaga(getNativeDriver, responsibilities) {
                var supports;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].EXTENDED_MANAGEMENT)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceExtendedManagementActions_1.SetExtendedManagementUrl)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                getNativeDriver().managementSupports(ManagementCapability_1["default"].EXTENDED_MANAGEMENT)
                            ];
                        case 2:
                            supports = _state.sent();
                            if (!supports) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceExtendedManagementActions_1.SetExtendedManagementUrl, setDeviceExtendedManagementCallback, getNativeDriver)
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.deviceExtendedManagementSaga = deviceExtendedManagementSaga;
        }
    });
    // node_modules/@signageos/actions/dist/Device/Screenshot/deviceScreenshotActions.js
    var require_deviceScreenshotActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/Screenshot/deviceScreenshotActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TakeInstantScreenshot = void 0;
            exports.TakeInstantScreenshot = "Device.Screenshot.TakeInstantScreenshot";
        }
    });
    // node_modules/@signageos/actions/dist/Screen/screenshotActions.js
    var require_screenshotActions = __commonJS({
        "node_modules/@signageos/actions/dist/Screen/screenshotActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SaveTakenScreenshot = void 0;
            exports.SaveTakenScreenshot = "Screen.SaveTakenScreenshot";
        }
    });
    // node_modules/@signageos/front-display/es6/Util/isOnline.js
    var require_isOnline = __commonJS({
        "node_modules/@signageos/front-display/es6/Util/isOnline.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.isOnline = void 0;
            var PING = "/ping";
            function isOnline(getConfigUrl) {
                return __awaiter(this, void 0, void 0, function() {
                    var configUrl, pingUrl, e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _state.trys.push([
                                    0,
                                    2,
                                    ,
                                    3
                                ]);
                                return [
                                    4,
                                    getConfigUrl()
                                ];
                            case 1:
                                configUrl = _state.sent();
                                pingUrl = configUrl + PING;
                                return [
                                    2,
                                    Promise.race([
                                        fetch(pingUrl, {
                                            method: "HEAD",
                                            mode: "no-cors"
                                        }).then(function() {
                                            return true;
                                        })["catch"](function() {
                                            return false;
                                        }),
                                        new Promise(function(resolve) {
                                            return setTimeout(function() {
                                                return resolve(false);
                                            }, 2e3);
                                        })
                                    ])
                                ];
                            case 2:
                                e = _state.sent();
                                return [
                                    2,
                                    false
                                ];
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.isOnline = isOnline;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Screen/screenshotSaga.js
    var require_screenshotSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Screen/screenshotSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.instantScreenshotSaga = exports.periodicScreenshotSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceScreenshotActions_1 = require_deviceScreenshotActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var screenshotActions_1 = require_screenshotActions();
            var socketActionCreator_1 = require_socketActionCreator();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var isOnline_1 = require_isOnline();
            var RECOVERING_DELAY = 30 * 6e4;
            function periodicScreenshotSaga(responsibilities, getConfigUrl) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SCREENSHOT)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SCREENSHOT_UPLOAD, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "uploadBaseUrl",
                                    "telemetryIntervals",
                                    "featureFlags",
                                    "screenshotRotationPortrait"
                                ], function(param) {
                                    var managementDriver, uploadBaseUrl, telemetryIntervals, featureFlags, screenshotRotationPortrait, _a2, periodMs, tryRecoverScreenshotsWhenFirewallBlocks;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, uploadBaseUrl = param.uploadBaseUrl, telemetryIntervals = param.telemetryIntervals, featureFlags = param.featureFlags, screenshotRotationPortrait = param.screenshotRotationPortrait;
                                                periodMs = (_a2 = telemetryIntervals === null || telemetryIntervals === void 0 ? void 0 : telemetryIntervals.screenshots) !== null && _a2 !== void 0 ? _a2 : 0;
                                                tryRecoverScreenshotsWhenFirewallBlocks = false;
                                                return [
                                                    4,
                                                    (0, deviceTelemetryHelper_1.registerTelemetry)("SCREENSHOT", periodMs, function() {
                                                        var _a3, _b2, onLine, isOnlineOrRecovering, isScreenshotCaptureEnabled, computeAHash2, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        4,
                                                                        ,
                                                                        5
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(isOnline_1.isOnline, getConfigUrl)
                                                                    ];
                                                                case 1:
                                                                    onLine = _state.sent();
                                                                    isOnlineOrRecovering = onLine || tryRecoverScreenshotsWhenFirewallBlocks;
                                                                    isScreenshotCaptureEnabled = (_a3 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.screenshotCapture) !== null && _a3 !== void 0 ? _a3 : true;
                                                                    computeAHash2 = (_b2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.screenshotAnalysis) !== null && _b2 !== void 0 ? _b2 : true;
                                                                    if (!(isOnlineOrRecovering && isScreenshotCaptureEnabled)) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        takeScreenshot(managementDriver, uploadBaseUrl, computeAHash2, screenshotRotationPortrait !== null && screenshotRotationPortrait !== void 0 ? screenshotRotationPortrait : void 0)
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                case 4:
                                                                    error = _state.sent();
                                                                    tryRecoverScreenshotsWhenFirewallBlocks = false;
                                                                    setTimeout(function() {
                                                                        return tryRecoverScreenshotsWhenFirewallBlocks = true;
                                                                    }, RECOVERING_DELAY);
                                                                    console.error("screenshotSaga", error);
                                                                    return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                case 5:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.periodicScreenshotSaga = periodicScreenshotSaga;
            function instantScreenshotSaga(responsibilities) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SCREENSHOT)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(deviceScreenshotActions_1.TakeInstantScreenshot)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SCREENSHOT_UPLOAD, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "uploadBaseUrl",
                                    "featureFlags",
                                    "screenshotRotationPortrait"
                                ], function(param) {
                                    var managementDriver, uploadBaseUrl, featureFlags, screenshotRotationPortrait, _a2;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, uploadBaseUrl = param.uploadBaseUrl, featureFlags = param.featureFlags, screenshotRotationPortrait = param.screenshotRotationPortrait;
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.screenshotCapture) !== null && _a2 !== void 0 ? _a2 : true)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(deviceScreenshotActions_1.TakeInstantScreenshot, function() {
                                                        var _a3, computeAHash2, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        2,
                                                                        ,
                                                                        3
                                                                    ]);
                                                                    computeAHash2 = (_a3 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.screenshotAnalysis) !== null && _a3 !== void 0 ? _a3 : true;
                                                                    return [
                                                                        4,
                                                                        takeScreenshot(managementDriver, uploadBaseUrl, computeAHash2, screenshotRotationPortrait !== null && screenshotRotationPortrait !== void 0 ? screenshotRotationPortrait : void 0)
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 2:
                                                                    error = _state.sent();
                                                                    console.error("instantScreenshotSaga", error);
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 3:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.instantScreenshotSaga = instantScreenshotSaga;
            function takeScreenshot(nativeDriver, uploadBaseUrl, computeHash, screenshotRotationPortrait) {
                var screenshotUri;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                nativeDriver.screenshotUpload({
                                    baseUrl: uploadBaseUrl,
                                    computeHash: computeHash,
                                    screenshotRotationPortrait: screenshotRotationPortrait
                                })
                            ];
                        case 1:
                            screenshotUri = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: screenshotActions_1.SaveTakenScreenshot,
                                    screenshotUri: screenshotUri.url,
                                    imageHashes: Object.assign({}, screenshotUri.imageInformations)
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/actions/dist/Servlet/servletActions.js
    var require_servletActions = __commonJS({
        "node_modules/@signageos/actions/dist/Servlet/servletActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.UpdateActiveServlets = exports.SubscribeActiveServlet = void 0;
            exports.SubscribeActiveServlet = "Servlet.SubscribeActiveServlet";
            exports.UpdateActiveServlets = "Servlet.UpdateActiveServlets";
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Servlet/servletSagas.js
    var require_servletSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Servlet/servletSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.runServlets = exports.runBundledServlet = exports.subscribeActiveServlets = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceVerificationActions_1 = require_deviceVerificationActions();
            var servletActions_1 = require_servletActions();
            var authenticationActions_1 = require_authenticationActions();
            var socketActionCreator_1 = require_socketActionCreator();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var HashAlgorithm_1 = __importDefault(require_HashAlgorithm());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            function subscribeActiveServlets(getState, responsibilities, getNativeDriver) {
                var driver, supportsServlet;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SERVLET)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)([
                                    authenticationActions_1.AuthenticationSucceed,
                                    deviceVerificationActions_1.VerificationSucceeded
                                ])
                            ];
                        case 1:
                            _state.sent();
                            driver = getNativeDriver();
                            return [
                                4,
                                driver.managementSupports(ManagementCapability_1["default"].SERVLET)
                            ];
                        case 2:
                            supportsServlet = _state.sent();
                            if (!supportsServlet) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, effects_1.takeEvery)([
                                    authenticationActions_1.AuthenticationSucceed,
                                    deviceVerificationActions_1.VerificationSucceeded
                                ], function(action) {
                                    var _, state, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    7,
                                                    ,
                                                    8
                                                ]);
                                                _ = action.type;
                                                switch(_){
                                                    case authenticationActions_1.AuthenticationSucceed:
                                                        return [
                                                            3,
                                                            1
                                                        ];
                                                    case deviceVerificationActions_1.VerificationSucceeded:
                                                        return [
                                                            3,
                                                            4
                                                        ];
                                                }
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 1:
                                                state = getState();
                                                if (!state.deviceVerification.verified) return [
                                                    3,
                                                    3
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: servletActions_1.SubscribeActiveServlet
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                _state.label = 3;
                                            case 3:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 4:
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: servletActions_1.SubscribeActiveServlet
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 7:
                                                error = _state.sent();
                                                console.error("subscribeActiveServlets failed", error);
                                                return [
                                                    3,
                                                    8
                                                ];
                                            case 8:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.subscribeActiveServlets = subscribeActiveServlets;
            function runBundledServlet(responsibilities, bundledServlet) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SERVLET)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SERVLET, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver"
                                ], function(param) {
                                    var managementDriver, options;
                                    return _ts_generator(this, function(_state) {
                                        managementDriver = param.managementDriver;
                                        if (bundledServlet) {
                                            try {
                                                options = {
                                                    env: bundledServlet.env,
                                                    healthcheck: bundledServlet.healthcheck
                                                };
                                                managementDriver.servletRunner.run(bundledServlet.filePath, options);
                                            } catch (error) {
                                                console.error("runServlets", error);
                                            }
                                        }
                                        return [
                                            2
                                        ];
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.runBundledServlet = runBundledServlet;
            function runServlets(responsibilities, offlineCache) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].SERVLET)) {
                                return [
                                    2
                                ];
                            }
                            return [
                                4,
                                (0, socketActionCreator_1.bindWhenPlatform)(servletActions_1.UpdateActiveServlets)
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].SERVLET, (0, dependencyInjection_1.withDependencies)([
                                    "staticBaseUrl",
                                    "managementDriver"
                                ], function(param) {
                                    var staticBaseUrl, managementDriver;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                staticBaseUrl = param.staticBaseUrl, managementDriver = param.managementDriver;
                                                return [
                                                    4,
                                                    (0, effects_1.takeEvery)(servletActions_1.UpdateActiveServlets, function(action) {
                                                        var _this, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _this = this;
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        3,
                                                                        ,
                                                                        4
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        Promise.all(action.servlets.map(function(servlet) {
                                                                            return __awaiter(_this, void 0, void 0, function() {
                                                                                var options;
                                                                                return _ts_generator(this, function(_state) {
                                                                                    switch(_state.label){
                                                                                        case 0:
                                                                                            return [
                                                                                                4,
                                                                                                downloadAndExtractServlet(offlineCache, staticBaseUrl, servlet.uid, servlet.version, servlet.checksum)
                                                                                            ];
                                                                                        case 1:
                                                                                            _state.sent();
                                                                                            options = {
                                                                                                env: servlet.env
                                                                                            };
                                                                                            return [
                                                                                                4,
                                                                                                runServlet(managementDriver, offlineCache, servlet.uid, servlet.version, options)
                                                                                            ];
                                                                                        case 2:
                                                                                            _state.sent();
                                                                                            return [
                                                                                                2
                                                                                            ];
                                                                                    }
                                                                                });
                                                                            });
                                                                        }))
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 3:
                                                                    error = _state.sent();
                                                                    console.error("runServlets", error);
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.runServlets = runServlets;
            function downloadAndExtractServlet(offlineCache, staticBaseUrl, servletUid, servletVersion, servletChecksum) {
                return __awaiter(this, void 0, void 0, function() {
                    var EXTRACT_METHOD, servletDirectoryName, servletArchiveFileName, servletDirectoryExists, error;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                EXTRACT_METHOD = "zip";
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    8,
                                    ,
                                    9
                                ]);
                                servletDirectoryName = getServletDirectoryName(servletUid, servletVersion);
                                servletArchiveFileName = getServletArchiveFileName(servletUid, servletVersion);
                                return [
                                    4,
                                    offlineCache.fileExists(servletDirectoryName)
                                ];
                            case 2:
                                servletDirectoryExists = _state.sent();
                                if (!!servletDirectoryExists) return [
                                    3,
                                    7
                                ];
                                return [
                                    4,
                                    downloadServletArchiveToLocalStorage(offlineCache, staticBaseUrl, servletUid, servletVersion)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    validateServletArchiveChecksum(offlineCache, servletArchiveFileName, servletChecksum)
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    offlineCache.extractFile(servletArchiveFileName, servletDirectoryName, EXTRACT_METHOD, true)
                                ];
                            case 5:
                                _state.sent();
                                return [
                                    4,
                                    offlineCache.deleteFile(servletArchiveFileName, false)
                                ];
                            case 6:
                                _state.sent();
                                _state.label = 7;
                            case 7:
                                return [
                                    3,
                                    9
                                ];
                            case 8:
                                error = _state.sent();
                                console.error("Error while downloading servlet archive", "uid: " + servletUid + ", version: " + servletVersion, error);
                                return [
                                    3,
                                    9
                                ];
                            case 9:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function validateServletArchiveChecksum(offlineCache, archiveFileName, expectedChecksum) {
                return __awaiter(this, void 0, void 0, function() {
                    var CHECKSUM_HASH_ALGORITHM, servletArchiveChecksum;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                CHECKSUM_HASH_ALGORITHM = HashAlgorithm_1["default"].MD5;
                                return [
                                    4,
                                    offlineCache.getFileChecksum(archiveFileName, CHECKSUM_HASH_ALGORITHM)
                                ];
                            case 1:
                                servletArchiveChecksum = _state.sent();
                                if (servletArchiveChecksum !== expectedChecksum) {
                                    throw new Error("Checksum of downloaded servlet archive doesn't match expected checksum");
                                }
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function downloadServletArchiveToLocalStorage(offlineCache, staticBaseUrl, servletUid, servletVersion) {
                return __awaiter(this, void 0, void 0, function() {
                    var servletArchiveFileName, servletArchiveUri, DOWNLOAD_RETRIES;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                servletArchiveFileName = getServletArchiveFileName(servletUid, servletVersion);
                                servletArchiveUri = getServletArchiveDownloadUri(staticBaseUrl, servletUid, servletVersion);
                                DOWNLOAD_RETRIES = 5;
                                return [
                                    4,
                                    offlineCache.retriableDownloadFile(DOWNLOAD_RETRIES, servletArchiveFileName, servletArchiveUri, void 0, true)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    offlineCache.getFile(servletArchiveFileName)
                                ];
                            case 2:
                                return [
                                    2,
                                    _state.sent()
                                ];
                        }
                    });
                });
            }
            function runServlet(managementDriver, offlineCache, servletUid, servletVersion, options) {
                return __awaiter(this, void 0, void 0, function() {
                    var servletDirectory, servletPackageJson, servletPackageJsonExists, servletPackageJsonContents, mainFileName, mainFile, mainFilePath;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                servletDirectory = getServletDirectoryName(servletUid, servletVersion);
                                servletPackageJson = servletDirectory + "/package.json";
                                return [
                                    4,
                                    offlineCache.fileExists(servletPackageJson)
                                ];
                            case 1:
                                servletPackageJsonExists = _state.sent();
                                if (!servletPackageJsonExists) {
                                    throw new Error("Servlet package is not a valid npm module, missing package.json");
                                }
                                return [
                                    4,
                                    offlineCache.readFile(servletPackageJson)
                                ];
                            case 2:
                                servletPackageJsonContents = _state.sent();
                                mainFileName = JSON.parse(servletPackageJsonContents).main || "index.js";
                                mainFile = servletDirectory + "/" + mainFileName;
                                return [
                                    4,
                                    offlineCache.getFullFilePath(mainFile)
                                ];
                            case 3:
                                mainFilePath = _state.sent();
                                managementDriver.servletRunner.run(mainFilePath, options);
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function getServletArchiveFileName(servletUid, servletVersion) {
                return "servlet/".concat(servletUid, "/").concat(servletVersion, ".zip");
            }
            function getServletDirectoryName(servletUid, servletVersion) {
                return "servlet/".concat(servletUid, "/").concat(servletVersion);
            }
            function getServletArchiveDownloadUri(staticBaseUrl, servletUid, servletVersion) {
                return "".concat(staticBaseUrl, "/servlet/").concat(servletUid, "/").concat(servletVersion, ".zip");
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/SystemLogs/systemLogsSagas.js
    var require_systemLogsSagas2 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/SystemLogs/systemLogsSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.systemLogsSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var deviceTelemetryActions_1 = require_deviceTelemetryActions();
            var DeviceSettingsType_1 = require_DeviceSettingsType();
            var systemLogs_1 = require_systemLogs();
            var systemLogActionFactory_1 = require_systemLogActionFactory();
            function systemLogsSaga() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.takeEvery)(deviceTelemetryActions_1.UpdateDeviceTelemetryRecord, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!(action.name === DeviceSettingsType_1.DeviceSettingsType.DATETIME)) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                        type: systemLogs_1.TimeSettingsChanged
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.systemLogsSaga = systemLogsSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Tests/AudioTest.js
    var require_AudioTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Tests/AudioTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var t = __importStar(require_TestFramework());
            var should_1 = __importDefault(require_should2());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTestActions_1 = require_deviceTestActions();
            exports["default"] = function(nativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.AUDIO, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("Should set the volume", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var originalVolume, _;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].SET_VOLUME)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].SET_VOLUME], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.getVolume()
                                                                    ];
                                                                case 2:
                                                                    originalVolume = _state.sent();
                                                                    (0, should_1["default"])(originalVolume).be.greaterThanOrEqual(0);
                                                                    (0, should_1["default"])(originalVolume).be.lessThanOrEqual(100);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.setVolume(10)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    _ = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.getVolume()
                                                                    ];
                                                                case 4:
                                                                    _.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).equal(10);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.setVolume(originalVolume)
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Tests/BatteryTest.js
    var require_BatteryTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Tests/BatteryTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var t = __importStar(require_TestFramework());
            var should_1 = __importDefault(require_should2());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTestActions_1 = require_deviceTestActions();
            exports["default"] = function(nativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.BATTERY, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("Should get battery status", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var batteryStatus;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].BATTERY_STATUS)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].BATTERY_STATUS], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.batteryGetStatus()
                                                                    ];
                                                                case 2:
                                                                    batteryStatus = _state.sent();
                                                                    (0, should_1["default"])(batteryStatus.percentage).be.greaterThanOrEqual(0);
                                                                    (0, should_1["default"])(batteryStatus.percentage).be.lessThanOrEqual(100);
                                                                    (0, should_1["default"])(batteryStatus.chargeType).be.oneOf("AC", "NONE", "USB");
                                                                    should_1["default"].exist(batteryStatus.isCharging);
                                                                    should_1["default"].exist(batteryStatus.lastChargingTime);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Tests/DebugTest.js
    var require_DebugTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Tests/DebugTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var should_1 = __importDefault(require_should2());
            var t = __importStar(require_TestFramework());
            var deviceTestActions_1 = require_deviceTestActions();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            exports["default"] = function(nativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.DEBUG, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.beforeEach("skip if debug not provided", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].SET_DEBUG)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].SET_DEBUG], '" capability'));
                                                                    }
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should set native debug on", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var _;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.setDebug(true)
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    _ = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.isDebugEnabled()
                                                                    ];
                                                                case 2:
                                                                    _.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).be["true"]("expected debug to be enabled but it's disabled");
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should set native debug off", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var _;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.setDebug(false)
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    _ = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.isDebugEnabled()
                                                                    ];
                                                                case 2:
                                                                    _.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).be["false"]("expected debug to be disabled but it's enabled");
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Tests/DisplayTest.js
    var require_DisplayTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Tests/DisplayTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var t = __importStar(require_TestFramework());
            var should_1 = __importDefault(require_should2());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTestActions_1 = require_deviceTestActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            exports["default"] = function(nativeDriver, responsibilities) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.DISPLAY, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("Should power on/off display", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var isOn, _, _1, _2, _3;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    if (!responsibilities.has(Responsibility_1["default"].POWER)) {
                                                                        t.skip("Power management tests are disabled on this device.");
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].DISPLAY_POWER)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"].DISPLAY_POWER, '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayIsPowerOn()
                                                                    ];
                                                                case 2:
                                                                    isOn = _state.sent();
                                                                    if (!isOn) return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayPowerOff()
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    _ = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayIsPowerOn()
                                                                    ];
                                                                case 4:
                                                                    _.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).be["false"]();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayPowerOn()
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    _1 = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayIsPowerOn()
                                                                    ];
                                                                case 6:
                                                                    _1.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).be["true"]();
                                                                    return [
                                                                        3,
                                                                        12
                                                                    ];
                                                                case 7:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayPowerOn()
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    _2 = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayIsPowerOn()
                                                                    ];
                                                                case 9:
                                                                    _2.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).be["true"]();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayPowerOff()
                                                                    ];
                                                                case 10:
                                                                    _state.sent();
                                                                    _3 = (0, should_1["default"]);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.displayIsPowerOn()
                                                                    ];
                                                                case 11:
                                                                    _3.apply(void 0, [
                                                                        _state.sent()
                                                                    ]).be["false"]();
                                                                    _state.label = 12;
                                                                case 12:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should set the screen brightness", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var br, newBrightness, newBrightness1;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].SET_BRIGHTNESS)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].SET_BRIGHTNESS], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.screenGetBrightness()
                                                                    ];
                                                                case 2:
                                                                    br = _state.sent();
                                                                    (0, should_1["default"])(br).be.ok();
                                                                    should_1["default"].exist(br.timeFrom1);
                                                                    should_1["default"].exist(br.brightness1);
                                                                    should_1["default"].exist(br.timeFrom2);
                                                                    should_1["default"].exist(br.brightness2);
                                                                    return [
                                                                        4,
                                                                        nativeDriver.screenSetBrightness("00:00:00", 90, "23:59:59", 30)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].BRIGHTNESS_SCHEDULING)
                                                                    ];
                                                                case 4:
                                                                    if (!_state.sent()) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.screenGetBrightness()
                                                                    ];
                                                                case 5:
                                                                    newBrightness = _state.sent();
                                                                    (0, should_1["default"])(newBrightness).be.ok();
                                                                    (0, should_1["default"])(newBrightness.timeFrom1).containEql("00:00");
                                                                    (0, should_1["default"])(newBrightness.brightness1).equal(90);
                                                                    (0, should_1["default"])(newBrightness.timeFrom2).containEql("23:59");
                                                                    (0, should_1["default"])(newBrightness.brightness2).equal(30);
                                                                    return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                case 6:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.screenGetBrightness()
                                                                    ];
                                                                case 7:
                                                                    newBrightness1 = _state.sent();
                                                                    (0, should_1["default"])(newBrightness1.brightness1).equal(90);
                                                                    _state.label = 8;
                                                                case 8:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.screenSetBrightness(br.timeFrom1, br.brightness1, br.timeFrom2, br.brightness2)
                                                                    ];
                                                                case 9:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Tests/InfoTest.js
    var require_InfoTest = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Tests/InfoTest.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var t = __importStar(require_TestFramework());
            var should_1 = __importDefault(require_should2());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var deviceTestActions_1 = require_deviceTestActions();
            exports["default"] = function(nativeDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        return [
                            2,
                            t.describe(deviceTestActions_1.TestCase.INFO, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                t.it("Should get serial number", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var sn;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].SERIAL_NUMBER)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].SERIAL_NUMBER], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.systemInfo.getSerialNumber()
                                                                    ];
                                                                case 2:
                                                                    sn = _state.sent();
                                                                    (0, should_1["default"])(sn).ok();
                                                                    (0, should_1["default"])(sn.length).be.greaterThanOrEqual(2);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get model", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var model;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].MODEL)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].MODEL], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.systemInfo.getModel()
                                                                    ];
                                                                case 2:
                                                                    model = _state.sent();
                                                                    (0, should_1["default"])(model).ok();
                                                                    (0, should_1["default"])(model.length).be.greaterThanOrEqual(2);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get brand", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var brand;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].BRAND)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].BRAND], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.systemInfo.getBrand()
                                                                    ];
                                                                case 2:
                                                                    brand = _state.sent();
                                                                    (0, should_1["default"])(brand).ok();
                                                                    (0, should_1["default"])(brand.length).be.greaterThanOrEqual(2);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get firmware version", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var fw;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.firmwareGetVersion()
                                                                    ];
                                                                case 1:
                                                                    fw = _state.sent();
                                                                    (0, should_1["default"])(fw).be.ok();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get application type", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var appType;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.getApplicationType()
                                                                    ];
                                                                case 1:
                                                                    appType = _state.sent();
                                                                    (0, should_1["default"])(appType).be.ok();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get network info", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var networkInterfaces, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, networkInterface;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].NETWORK_INFO)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].NETWORK_INFO], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.network.listInterfaces()
                                                                    ];
                                                                case 2:
                                                                    networkInterfaces = _state.sent();
                                                                    (0, should_1["default"])(networkInterfaces).be.Array();
                                                                    (0, should_1["default"])(networkInterfaces).be.not.empty();
                                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                                    try {
                                                                        for(_iterator = networkInterfaces[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                                                            networkInterface = _step.value;
                                                                            (0, should_1["default"])(networkInterface.type).be.oneOf([
                                                                                "wifi",
                                                                                "ethernet"
                                                                            ]);
                                                                            should_1["default"].exist(networkInterface.macAddress);
                                                                            if (networkInterface.localAddress) {
                                                                                should_1["default"].exist(networkInterface.netmask);
                                                                                should_1["default"].exist(networkInterface.gateway);
                                                                            } else {
                                                                                should_1["default"].not.exist(networkInterface.netmask);
                                                                                should_1["default"].not.exist(networkInterface.gateway);
                                                                            }
                                                                        }
                                                                    } catch (err) {
                                                                        _didIteratorError = true;
                                                                        _iteratorError = err;
                                                                    } finally{
                                                                        try {
                                                                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                                _iterator["return"]();
                                                                            }
                                                                        } finally{
                                                                            if (_didIteratorError) {
                                                                                throw _iteratorError;
                                                                            }
                                                                        }
                                                                    }
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 6:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get current temperature", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var temp;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].TEMPERATURE)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].TEMPERATURE], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.getCurrentTemperature()
                                                                    ];
                                                                case 2:
                                                                    temp = _state.sent();
                                                                    (0, should_1["default"])(temp).be.greaterThan(0);
                                                                    (0, should_1["default"])(temp).be.lessThan(999);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 7:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get current cpu usage", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var systemCpuUsage;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].SYSTEM_CPU)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].SYSTEM_CPU], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.systemInfo.getCpuUsage()
                                                                    ];
                                                                case 2:
                                                                    systemCpuUsage = _state.sent();
                                                                    (0, should_1["default"])(systemCpuUsage).be.ok();
                                                                    (0, should_1["default"])(systemCpuUsage).be.greaterThanOrEqual(0);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 8:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get current memory usage", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var systemMemoryUsage;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].SYSTEM_MEMORY)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].SYSTEM_MEMORY], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.systemInfo.getMemoryUsage()
                                                                    ];
                                                                case 2:
                                                                    systemMemoryUsage = _state.sent();
                                                                    (0, should_1["default"])(systemMemoryUsage).be.ok();
                                                                    (0, should_1["default"])(systemMemoryUsage.total).be.greaterThanOrEqual(0);
                                                                    (0, should_1["default"])(systemMemoryUsage.usage).be.greaterThanOrEqual(0);
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 9:
                                            _state.sent();
                                            return [
                                                4,
                                                t.it("Should get proxy connect status", function() {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var proxyInfo, proxyUri;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        nativeDriver.managementSupports(ManagementCapability_1["default"].PROXY)
                                                                    ];
                                                                case 1:
                                                                    if (!_state.sent()) {
                                                                        t.skip('The device does not provide "'.concat(ManagementCapability_1["default"][ManagementCapability_1["default"].PROXY], '" capability'));
                                                                    }
                                                                    return [
                                                                        4,
                                                                        nativeDriver.proxy.isEnabled()
                                                                    ];
                                                                case 2:
                                                                    proxyInfo = _state.sent();
                                                                    (0, should_1["default"])(proxyInfo).is.Boolean();
                                                                    if (!proxyInfo) return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        nativeDriver.proxy.getConnectedTo()
                                                                    ];
                                                                case 3:
                                                                    proxyUri = _state.sent();
                                                                    (0, should_1["default"])(proxyUri).not.be.undefined();
                                                                    _state.label = 4;
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 10:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            })
                        ];
                    });
                });
            };
        }
    });
    // node_modules/@signageos/actions/dist/Device/VPN/deviceVPNActions.js
    var require_deviceVPNActions = __commonJS({
        "node_modules/@signageos/actions/dist/Device/VPN/deviceVPNActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.SetVPNFailed = exports.SetVPNSucceed = exports.SetDeviceConnectionToVPN = exports.PushVPNConfig = void 0;
            exports.PushVPNConfig = "Device.VPN.PushVPNConfig";
            exports.SetDeviceConnectionToVPN = "Device.VPN.SetDeviceConnectionToVPN";
            exports.SetVPNSucceed = "Device.VPN.SetVPNSucceed";
            exports.SetVPNFailed = "Device.VPN.SetVPNFailed";
        }
    });
    // node_modules/@signageos/front-display/es6/VPN/vpnSaga.js
    var require_vpnSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/VPN/vpnSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.vpnSaga = exports.setDeviceVPN = void 0;
            var Responsibility_1 = __importDefault(require_Responsibility());
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var socketActionCreator_1 = require_socketActionCreator();
            var deviceVPNActions_1 = require_deviceVPNActions();
            function setDeviceVPN(getNativeDriver, action) {
                var nativeDriver, error;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = getNativeDriver();
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                7,
                                ,
                                9
                            ]);
                            if (!action.enabled) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                nativeDriver.vpn.connect()
                            ];
                        case 2:
                            _state.sent();
                            return [
                                3,
                                5
                            ];
                        case 3:
                            return [
                                4,
                                nativeDriver.vpn.disconnect()
                            ];
                        case 4:
                            _state.sent();
                            _state.label = 5;
                        case 5:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceVPNActions_1.SetVPNSucceed,
                                    uid: action.uid
                                })
                            ];
                        case 6:
                            _state.sent();
                            return [
                                3,
                                9
                            ];
                        case 7:
                            error = _state.sent();
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: deviceVPNActions_1.SetVPNFailed,
                                    uid: action.uid
                                })
                            ];
                        case 8:
                            _state.sent();
                            return [
                                3,
                                9
                            ];
                        case 9:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.setDeviceVPN = setDeviceVPN;
            function vpnSaga(getNativeDriver, responsibilities) {
                var nativeDriver, supportPRenabled;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            if (!responsibilities.has(Responsibility_1["default"].VPN)) {
                                return [
                                    2
                                ];
                            }
                            nativeDriver = getNativeDriver();
                            return [
                                4,
                                (0, effects_1.call)([
                                    nativeDriver,
                                    "managementSupports"
                                ], ManagementCapability_1["default"].VPN)
                            ];
                        case 1:
                            supportPRenabled = _state.sent();
                            if (!supportPRenabled) return [
                                3,
                                4
                            ];
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(deviceVPNActions_1.SetDeviceConnectionToVPN, setDeviceVPN, getNativeDriver)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(deviceVPNActions_1.PushVPNConfig, function(action) {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    3,
                                                    ,
                                                    5
                                                ]);
                                                return [
                                                    4,
                                                    nativeDriver.vpn.saveConfig(action.config)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceVPNActions_1.SetVPNSucceed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: deviceVPNActions_1.SetVPNFailed,
                                                        uid: action.uid
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    5
                                                ];
                                            case 5:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 3:
                            _state.sent();
                            _state.label = 4;
                        case 4:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.vpnSaga = vpnSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/CustomScripts/CustomScriptDownloader.js
    var require_CustomScriptDownloader = __commonJS({
        "node_modules/@signageos/front-display/es6/CustomScripts/CustomScriptDownloader.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.CustomScriptDownloader = void 0;
            var CustomScriptDownloader = /*#__PURE__*/ function() {
                function CustomScriptDownloader(offlineCache, getStaticBaseUrl) {
                    _class_call_check(this, CustomScriptDownloader);
                    this.offlineCache = offlineCache;
                    this.getStaticBaseUrl = getStaticBaseUrl;
                }
                _create_class(CustomScriptDownloader, [
                    {
                        key: "getOrDownloadCustomScript",
                        value: function getOrDownloadCustomScript(archiveUri, mainFileName, md5Checksum) {
                            return __awaiter(this, void 0, void 0, function() {
                                var customScriptLocalFolder, existsCustomScriptFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            customScriptLocalFolder = this.getCustomScriptDirectory(archiveUri, md5Checksum);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(customScriptLocalFolder)
                                            ];
                                        case 1:
                                            existsCustomScriptFile = _state.sent();
                                            if (!!existsCustomScriptFile) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.downloadCustomScriptToLocalStorage(archiveUri, customScriptLocalFolder, mainFileName)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                4,
                                                this.offlineCache.getFile(customScriptLocalFolder + "/" + mainFileName)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadCustomScriptToLocalStorage",
                        value: function downloadCustomScriptToLocalStorage(customScriptFilePath, localDirPath, mainFileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var relativePath, mainFilePath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            relativePath = this.removeStaticUrl(customScriptFilePath);
                                            return [
                                                4,
                                                this.ensureCustomScriptIsDownloaded(relativePath)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.ensureCustomScriptIsExtracted(relativePath, localDirPath)
                                            ];
                                        case 2:
                                            _state.sent();
                                            mainFilePath = localDirPath + "/" + mainFileName;
                                            return [
                                                4,
                                                this.offlineCache.getFile(mainFilePath)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureCustomScriptIsDownloaded",
                        value: function ensureCustomScriptIsDownloaded(customScriptFileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var existsCustomScriptFolder, staticBaseUrl, customScriptUri;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.offlineCache.fileExists(customScriptFileName)
                                            ];
                                        case 1:
                                            existsCustomScriptFolder = _state.sent();
                                            if (!!existsCustomScriptFolder) return [
                                                3,
                                                3
                                            ];
                                            staticBaseUrl = this.getStaticBaseUrl();
                                            customScriptUri = staticBaseUrl + "/custom-script/" + customScriptFileName;
                                            return [
                                                4,
                                                this.offlineCache.retriableDownloadFile(5, customScriptFileName, customScriptUri, void 0, true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureCustomScriptIsExtracted",
                        value: function ensureCustomScriptIsExtracted(customScriptFilePath, customScriptDirectoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                var existsCustomScript, customScriptFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.offlineCache.fileExists(customScriptDirectoryPath)
                                            ];
                                        case 1:
                                            existsCustomScript = _state.sent();
                                            return [
                                                4,
                                                this.offlineCache.getFile(customScriptFilePath)
                                            ];
                                        case 2:
                                            customScriptFile = _state.sent();
                                            if (!(!existsCustomScript && customScriptFile)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.offlineCache.extractFile(customScriptFilePath, customScriptDirectoryPath, "zip", true)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getCustomScriptDirectory",
                        value: function getCustomScriptDirectory(archiveUri, md5Checksum) {
                            var relativePath = this.removeStaticUrl(archiveUri);
                            return relativePath.substring(0, relativePath.lastIndexOf("/")) + "/" + md5Checksum;
                        }
                    },
                    {
                        key: "removeStaticUrl",
                        value: function removeStaticUrl(archiveUri) {
                            var matches = archiveUri.match(/custom-script\/(.+)$/);
                            return matches ? matches[1] : archiveUri;
                        }
                    }
                ]);
                return CustomScriptDownloader;
            }();
            exports.CustomScriptDownloader = CustomScriptDownloader;
        }
    });
    // node_modules/@signageos/front-display/es6/Experimental/experimentalActions.js
    var require_experimentalActions = __commonJS({
        "node_modules/@signageos/front-display/es6/Experimental/experimentalActions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.putExperimental = exports.bindAndTakeEveryOnlyWhenPlatformExperimental = void 0;
            var activeAppletActions_1 = require_activeAppletActions();
            var socketActionCreator_1 = require_socketActionCreator();
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            function getExperimentalActionType(actionType) {
                return "sos.experimental.".concat(actionType);
            }
            function bindAndTakeEveryOnlyWhenPlatformExperimental(actionType, callback) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(activeAppletActions_1.DispatchCommandToApplet, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (!(action.command.type === getExperimentalActionType(actionType))) return [
                                                    3,
                                                    2
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.call)(callback, Object.assign(Object.assign({}, action.command), {
                                                        type: actionType
                                                    }))
                                                ];
                                            case 1:
                                                _state.sent();
                                                _state.label = 2;
                                            case 2:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(actionType, function(action) {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(callback, action)
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.bindAndTakeEveryOnlyWhenPlatformExperimental = bindAndTakeEveryOnlyWhenPlatformExperimental;
            function putExperimental(action) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: activeAppletActions_1.ActiveAppletDispatchCommand,
                                    appletUid: "",
                                    timingChecksum: "",
                                    command: Object.assign(Object.assign({}, action), {
                                        type: getExperimentalActionType(action.type)
                                    })
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.put)(action)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.putExperimental = putExperimental;
        }
    });
    // node_modules/@signageos/front-display/es6/CustomScripts/utils.js
    var require_utils6 = __commonJS({
        "node_modules/@signageos/front-display/es6/CustomScripts/utils.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getConfiguration = void 0;
            var getConfiguration = function(config, encryptedFields, managementDriver) {
                return __awaiter(void 0, void 0, void 0, function() {
                    var result17, _tmp, _tmp1, _i, key, jweGeneral;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                result17 = {};
                                _tmp = [];
                                for(_tmp1 in config)_tmp.push(_tmp1);
                                _i = 0;
                                _state.label = 1;
                            case 1:
                                if (!(_i < _tmp.length)) return [
                                    3,
                                    5
                                ];
                                key = _tmp[_i];
                                if (!encryptedFields.includes(key)) return [
                                    3,
                                    3
                                ];
                                jweGeneral = JSON.parse(import_buffer.Buffer.from(config[key], "base64").toString("utf-8"));
                                return [
                                    4,
                                    managementDriver.secretManager.decryptJweGeneralToUtf8(jweGeneral)
                                ];
                            case 2:
                                result17[key] = _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 3:
                                result17[key] = config[key];
                                _state.label = 4;
                            case 4:
                                _i++;
                                return [
                                    3,
                                    1
                                ];
                            case 5:
                                return [
                                    2,
                                    result17
                                ];
                        }
                    });
                });
            };
            exports.getConfiguration = getConfiguration;
        }
    });
    // node_modules/@signageos/front-display/es6/CustomScripts/customScriptsSaga.js
    var require_customScriptsSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/CustomScripts/customScriptsSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.customScriptsSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var debug_1 = __importDefault(require_browser2());
            var capable_1 = require_capable();
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var dependencyInjection_1 = require_dependencyInjection();
            var deviceCustomScriptActions_1 = require_deviceCustomScriptActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var responsible_1 = require_responsible();
            var CustomScript_1 = require_CustomScript();
            var CustomScriptDownloader_1 = require_CustomScriptDownloader();
            var browserRuntime_1 = require_browserRuntime();
            var experimentalActions_1 = require_experimentalActions();
            var utils_1 = require_utils6();
            var AppletBinaryDownloader_1 = require_AppletBinaryDownloader();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:CustomScripts:customScriptsSaga");
            exports.customScriptsSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].CUSTOM_SCRIPTS, (0, capable_1.whenCapable)(ManagementCapabilities_1.ManagementCapabilities.CUSTOM_SCRIPTS, customScriptsSagaDefault));
            function customScriptsSagaDefault(offlineCache) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].CUSTOM_SCRIPTS, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "staticBaseUrl",
                                    "featureFlags"
                                ], function(param) {
                                    var managementDriver, staticBaseUrl, featureFlags, _a2, getStaticBaseUrl, customScriptDownloader, appletBinaryDownloader, browserRuntime;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl, featureFlags = param.featureFlags;
                                                getStaticBaseUrl = function() {
                                                    return staticBaseUrl;
                                                };
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.customScripts) !== null && _a2 !== void 0 ? _a2 : true)) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                customScriptDownloader = new CustomScriptDownloader_1.CustomScriptDownloader(offlineCache, getStaticBaseUrl);
                                                appletBinaryDownloader = new AppletBinaryDownloader_1.AppletBinaryDownloader(false, offlineCache, getStaticBaseUrl);
                                                browserRuntime = new browserRuntime_1.BrowserRuntime();
                                                return [
                                                    4,
                                                    (0, experimentalActions_1.bindAndTakeEveryOnlyWhenPlatformExperimental)(deviceCustomScriptActions_1.ExecuteCustomScript, function(action) {
                                                        var _a3, customScriptFile, appletJsFile, configuration, result17, _tmp, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    debug4("execute custom script", action);
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        12,
                                                                        ,
                                                                        14
                                                                    ]);
                                                                    customScriptFile = void 0;
                                                                    if (!(0, CustomScript_1.isArchiveCustomScript)(action.customScript)) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (_a3 = customScriptDownloader.getOrDownloadCustomScript(action.customScript.archiveUri, action.customScript.mainFile, action.customScript.md5Checksum)) !== null && _a3 !== void 0 ? _a3 : void 0
                                                                    ];
                                                                case 2:
                                                                    customScriptFile = _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    appletJsFile = void 0;
                                                                    if (!(action.customScript.runtime === "browser" && action.frontAppletVersion)) return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        appletBinaryDownloader.getOrDownloadFrontAppletJsFile(action.frontAppletVersion)
                                                                    ];
                                                                case 4:
                                                                    appletJsFile = _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    debug4("customScriptFile", customScriptFile);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, action.configuration, action.encryptedConfigurationFields || [], managementDriver)
                                                                    ];
                                                                case 6:
                                                                    configuration = _state.sent();
                                                                    debug4("configuration", configuration);
                                                                    if (!(action.customScript.runtime === "browser")) return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(browserRuntime.runScriptInBrowser, managementDriver, action.customScript, configuration, customScriptFile, appletJsFile)
                                                                    ];
                                                                case 7:
                                                                    _tmp = _state.sent();
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 8:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)([
                                                                            managementDriver.scripts,
                                                                            managementDriver.scripts.execute
                                                                        ], action.customScript, configuration, void 0, customScriptFile)
                                                                    ];
                                                                case 9:
                                                                    _tmp = _state.sent();
                                                                    _state.label = 10;
                                                                case 10:
                                                                    result17 = _tmp;
                                                                    debug4("result", result17);
                                                                    return [
                                                                        4,
                                                                        (0, experimentalActions_1.putExperimental)({
                                                                            type: deviceCustomScriptActions_1.ExecuteCustomScriptSucceeded,
                                                                            uid: action.uid,
                                                                            result: result17
                                                                        })
                                                                    ];
                                                                case 11:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                case 12:
                                                                    error = _state.sent();
                                                                    debug4("error", error);
                                                                    return [
                                                                        4,
                                                                        (0, experimentalActions_1.putExperimental)({
                                                                            type: deviceCustomScriptActions_1.ExecuteCustomScriptFailed,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 13:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                case 14:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/DisplayManager/displayManagerSaga.js
    var require_displayManagerSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/DisplayManager/displayManagerSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.displayManagerSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var Responsibility_1 = __importDefault(require_Responsibility());
            var responsible_1 = require_responsible();
            var capable_1 = require_capable();
            var dependencyInjection_1 = require_dependencyInjection();
            var systemLogActionFactory_1 = require_systemLogActionFactory();
            var systemLogs_1 = require_systemLogs();
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Management:Device:DisplayManagerSaga");
            exports.displayManagerSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].DISPLAY_MANAGER, (0, capable_1.whenCapable)(ManagementCapability_1["default"].DISPLAY_MANAGER, displayManagerSagaDefault));
            function displayManagerSagaDefault() {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].DISPLAY_MANAGER, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "featureFlags"
                                ], function(param) {
                                    var managementDriver, featureFlags, _a2, connectedDisplay, error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, featureFlags = param.featureFlags;
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.systemLogs) !== null && _a2 !== void 0 ? _a2 : true)) return [
                                                    3,
                                                    6
                                                ];
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                return [
                                                    4,
                                                    managementDriver.displayManager.getConnectedDisplay()
                                                ];
                                            case 2:
                                                connectedDisplay = _state.sent();
                                                if (!(typeof connectedDisplay !== "undefined")) return [
                                                    3,
                                                    4
                                                ];
                                                debug4("Connected display: ".concat(connectedDisplay));
                                                return [
                                                    4,
                                                    (0, effects_1.put)((0, systemLogActionFactory_1.createSystemLogAction)({
                                                        type: systemLogs_1.DisplayConnectedOverSerial,
                                                        display: connectedDisplay
                                                    }))
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.warn("Failed to connect to display over serial. Reconnect the display and restart application.\nError: ".concat(error.message));
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Plugins/pluginDownloader.js
    var require_pluginDownloader = __commonJS({
        "node_modules/@signageos/front-display/es6/Plugins/pluginDownloader.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PluginDownloader = void 0;
            var PluginDownloader = /*#__PURE__*/ function() {
                function PluginDownloader(offlineCache, getStaticBaseUrl) {
                    _class_call_check(this, PluginDownloader);
                    this.offlineCache = offlineCache;
                    this.getStaticBaseUrl = getStaticBaseUrl;
                }
                _create_class(PluginDownloader, [
                    {
                        key: "getOrDownloadPlugin",
                        value: function getOrDownloadPlugin(archiveUri, mainFileName, md5Checksum) {
                            return __awaiter(this, void 0, void 0, function() {
                                var pluginLocalFolder, existsPluginFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            pluginLocalFolder = this.getPluginDirectory(archiveUri, md5Checksum);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(pluginLocalFolder)
                                            ];
                                        case 1:
                                            existsPluginFile = _state.sent();
                                            if (!!existsPluginFile) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.downloadPluginToLocalStorage(archiveUri, pluginLocalFolder, mainFileName)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                4,
                                                this.offlineCache.getFile(pluginLocalFolder + "/" + mainFileName)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadPluginToLocalStorage",
                        value: function downloadPluginToLocalStorage(pluginFilePath, localDirPath, mainFileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var relativePath, mainFilePath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            relativePath = this.removeStaticUrl(pluginFilePath);
                                            return [
                                                4,
                                                this.ensurePluginIsDownloaded(relativePath)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.ensurePluginIsExtracted(relativePath, localDirPath)
                                            ];
                                        case 2:
                                            _state.sent();
                                            mainFilePath = localDirPath + "/" + mainFileName;
                                            return [
                                                4,
                                                this.offlineCache.getFile(mainFilePath)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensurePluginIsDownloaded",
                        value: function ensurePluginIsDownloaded(pluginFileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var existsPluginFolder, staticBaseUrl, pluginUri;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.offlineCache.fileExists(pluginFileName)
                                            ];
                                        case 1:
                                            existsPluginFolder = _state.sent();
                                            if (!!existsPluginFolder) return [
                                                3,
                                                3
                                            ];
                                            staticBaseUrl = this.getStaticBaseUrl();
                                            pluginUri = staticBaseUrl + "/plugin/" + pluginFileName;
                                            return [
                                                4,
                                                this.offlineCache.retriableDownloadFile(5, pluginFileName, pluginUri, void 0, true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensurePluginIsExtracted",
                        value: function ensurePluginIsExtracted(pluginFilePath, pluginDirectoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                var existsPlugin, pluginFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.offlineCache.fileExists(pluginDirectoryPath)
                                            ];
                                        case 1:
                                            existsPlugin = _state.sent();
                                            return [
                                                4,
                                                this.offlineCache.getFile(pluginFilePath)
                                            ];
                                        case 2:
                                            pluginFile = _state.sent();
                                            if (!(!existsPlugin && pluginFile)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.offlineCache.extractFile(pluginFilePath, pluginDirectoryPath, "zip", true)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getPluginDirectory",
                        value: function getPluginDirectory(archiveUri, md5Checksum) {
                            var relativePath = this.removeStaticUrl(archiveUri);
                            return relativePath.substring(0, relativePath.lastIndexOf("/")) + "/" + md5Checksum;
                        }
                    },
                    {
                        key: "removeStaticUrl",
                        value: function removeStaticUrl(archiveUri) {
                            var matches = archiveUri.match(/plugin\/(.+)$/);
                            return matches ? matches[1] : archiveUri;
                        }
                    }
                ]);
                return PluginDownloader;
            }();
            exports.PluginDownloader = PluginDownloader;
        }
    });
    // node_modules/@signageos/front-display/es6/Plugins/pluginsSaga.js
    var require_pluginsSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Plugins/pluginsSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.pluginsSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var debug_1 = __importDefault(require_browser2());
            var capable_1 = require_capable();
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var dependencyInjection_1 = require_dependencyInjection();
            var pluginActions_1 = require_pluginActions();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var responsible_1 = require_responsible();
            var utils_1 = require_utils6();
            var AppletBinaryDownloader_1 = require_AppletBinaryDownloader();
            var socketActionCreator_1 = require_socketActionCreator();
            var pluginDownloader_1 = require_pluginDownloader();
            var browserRuntime_1 = require_browserRuntime();
            var Property_1 = __importDefault(require_Property());
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var PLUGIN_WAIT_TIMEOUT = 2e3;
            var PLUGIN_CHECK_INTERVAL = 200;
            var PLUGIN_MAX_RETRIES = 20;
            function hasPluginArchiveChanged(stored, plugin) {
                return stored.archiveUri !== plugin.archiveUri || stored.md5Checksum !== plugin.md5Checksum;
            }
            function hasAppletVersionChanged(stored, assignment) {
                return assignment.frontAppletVersion && stored.pluginVersion !== assignment.pluginVersion;
            }
            function removePluginIframe(md5Checksum) {
                var iframe = document.getElementById(md5Checksum);
                if (iframe === null || iframe === void 0 ? void 0 : iframe.parentNode) {
                    iframe.parentNode.removeChild(iframe);
                }
            }
            function updatePluginArchive(pluginDownloader, pluginAssignment, updatedPlugin) {
                var pluginFile;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                pluginDownloader.getOrDownloadPlugin(pluginAssignment.archiveUri, pluginAssignment.mainFile, pluginAssignment.md5Checksum)
                            ];
                        case 1:
                            pluginFile = _state.sent();
                            return [
                                2,
                                Object.assign(Object.assign({}, updatedPlugin), {
                                    archiveUri: pluginAssignment.archiveUri,
                                    mainFile: pluginAssignment.mainFile,
                                    md5Checksum: pluginAssignment.md5Checksum,
                                    pluginFile: pluginFile,
                                    active: false,
                                    iframeId: void 0
                                })
                            ];
                    }
                });
            }
            function updateAppletVersion(appletBinaryDownloader, assignment, updatedPlugin) {
                var appletJsFile;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                appletBinaryDownloader.getOrDownloadFrontAppletJsFile(assignment.frontAppletVersion)
                            ];
                        case 1:
                            appletJsFile = _state.sent();
                            return [
                                2,
                                Object.assign(Object.assign({}, updatedPlugin), {
                                    appletJsFile: appletJsFile,
                                    pluginVersion: assignment.pluginVersion
                                })
                            ];
                    }
                });
            }
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Plugins:pluginsSaga");
            function getAllAssignedPlugins(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_PLUGINS, {})
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function getAssignedPlugin(propertyStorage, assignmentUid) {
                var assignedPlugins;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                5,
                                _ts_values(__yieldStar(getAllAssignedPlugins(propertyStorage)))
                            ];
                        case 1:
                            assignedPlugins = _state.sent();
                            return [
                                2,
                                assignedPlugins[assignmentUid] || null
                            ];
                    }
                });
            }
            function savePlugin(propertyStorage, assignmentUid, pluginData) {
                var currentPlugins, updatedPlugins;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                5,
                                _ts_values(__yieldStar(getAllAssignedPlugins(propertyStorage)))
                            ];
                        case 1:
                            currentPlugins = _state.sent();
                            updatedPlugins = Object.assign(Object.assign({}, currentPlugins), _define_property({}, assignmentUid, Object.assign(Object.assign({}, pluginData), {
                                assignedAt: /* @__PURE__ */ new Date().toISOString()
                            })));
                            return [
                                4,
                                propertyStorage.setValue(Property_1["default"].DEVICE_PLUGINS, updatedPlugins)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            function removePlugin(propertyStorage, assignmentUid) {
                var currentPlugins, _a2, _b2, _removed, remainingPlugins;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                5,
                                _ts_values(__yieldStar(getAllAssignedPlugins(propertyStorage)))
                            ];
                        case 1:
                            currentPlugins = _state.sent();
                            _a2 = currentPlugins, _b2 = assignmentUid, _removed = _a2[_b2], remainingPlugins = __rest(_a2, [
                                (typeof _b2 === "undefined" ? "undefined" : _type_of(_b2)) === "symbol" ? _b2 : _b2 + ""
                            ]);
                            return [
                                4,
                                propertyStorage.setValue(Property_1["default"].DEVICE_PLUGINS, remainingPlugins)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            function waitForSosPlugin(iframeId, pluginUid) {
                var methodName, iframe, iframeWindow, waitForModule;
                var _arguments = arguments;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            methodName = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : "set";
                            iframe = document.getElementById(iframeId);
                            if (!(iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow)) {
                                throw new Error("Iframe with id ".concat(iframeId, " not found or has no contentWindow"));
                            }
                            iframeWindow = iframe.contentWindow;
                            waitForModule = function() {
                                var retries = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : PLUGIN_MAX_RETRIES;
                                return new Promise(function(resolve, reject) {
                                    var checkModule = function() {
                                        var _a2;
                                        if ((_a2 = iframeWindow === null || iframeWindow === void 0 ? void 0 : iframeWindow.sosPlugin) === null || _a2 === void 0 ? void 0 : _a2[methodName]) {
                                            resolve(iframeWindow.sosPlugin);
                                        } else if (retries > 0) {
                                            setTimeout(checkModule, PLUGIN_CHECK_INTERVAL);
                                            retries--;
                                        } else {
                                            reject(new Error("sosPlugin.".concat(methodName, " not available for plugin ").concat(pluginUid)));
                                        }
                                    };
                                    checkModule();
                                });
                            };
                            return [
                                4,
                                (0, effects_1.call)(waitForModule)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function getPluginIframeWindow(iframeId) {
                var iframe = document.getElementById(iframeId);
                var iframeWindow = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow;
                return {
                    iframe: iframe,
                    iframeWindow: iframeWindow
                };
            }
            function createAndRunPlugin(browserRuntime, managementDriver, plugin, configuration) {
                var messageChannel, messagesHandler, iframeId, binMessages;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            messageChannel = (0, redux_saga_1.channel)(redux_saga_1.buffers.dropping(100));
                            messagesHandler = function(event) {
                                messageChannel.put(event);
                            };
                            return [
                                4,
                                (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, plugin, configuration, plugin.pluginFile, plugin.appletJsFile, messagesHandler)
                            ];
                        case 1:
                            _state.sent();
                            iframeId = plugin.md5Checksum;
                            return [
                                4,
                                (0, effects_1.fork)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, iframeId)
                            ];
                        case 2:
                            binMessages = _state.sent();
                            return [
                                4,
                                new Promise(function(resolve) {
                                    return setTimeout(resolve, PLUGIN_WAIT_TIMEOUT);
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                2,
                                {
                                    iframeId: iframeId,
                                    binMessages: binMessages
                                }
                            ];
                    }
                });
            }
            function cleanupPluginIframe(iframeId, binMessages) {
                var iframe;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            iframe = getPluginIframeWindow(iframeId).iframe;
                            if (!(iframe === null || iframe === void 0 ? void 0 : iframe.parentNode)) return [
                                3,
                                2
                            ];
                            iframe.parentNode.removeChild(iframe);
                            return [
                                4,
                                (0, effects_1.cancel)(binMessages)
                            ];
                        case 1:
                            _state.sent();
                            _state.label = 2;
                        case 2:
                            return [
                                2
                            ];
                    }
                });
            }
            exports.pluginsSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].PLUGINS, (0, capable_1.whenCapable)(ManagementCapabilities_1.ManagementCapabilities.PLUGINS, pluginsSagaDefault));
            function pluginsSagaDefault(offlineCache) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].PLUGINS, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "staticBaseUrl",
                                    "propertyStorage",
                                    "featureFlags"
                                ], function(param) {
                                    var managementDriver, staticBaseUrl, propertyStorage, featureFlags, _a2, getStaticBaseUrl, browserRuntime, pluginDownloader, appletBinaryDownloader;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl, propertyStorage = param.propertyStorage, featureFlags = param.featureFlags;
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.plugins) !== null && _a2 !== void 0 ? _a2 : true)) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                getStaticBaseUrl = function() {
                                                    return staticBaseUrl;
                                                };
                                                browserRuntime = new browserRuntime_1.BrowserRuntime();
                                                pluginDownloader = new pluginDownloader_1.PluginDownloader(offlineCache, getStaticBaseUrl);
                                                appletBinaryDownloader = new AppletBinaryDownloader_1.AppletBinaryDownloader(false, offlineCache, getStaticBaseUrl);
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.UpdateAssignedPlugins, function(action) {
                                                        var assignedPlugins, incomingAssignments, newAssignments, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, assignment, pluginFile, pluginData, error, err;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(getAllAssignedPlugins(propertyStorage)))
                                                                    ];
                                                                case 1:
                                                                    assignedPlugins = _state.sent();
                                                                    incomingAssignments = action.assignments || [];
                                                                    newAssignments = incomingAssignments.filter(function(assignment) {
                                                                        return !assignedPlugins[assignment.assignmentUid];
                                                                    });
                                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                                    _state.label = 2;
                                                                case 2:
                                                                    _state.trys.push([
                                                                        2,
                                                                        10,
                                                                        11,
                                                                        12
                                                                    ]);
                                                                    _iterator = newAssignments[Symbol.iterator]();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                    assignment = _step.value;
                                                                    _state.label = 4;
                                                                case 4:
                                                                    _state.trys.push([
                                                                        4,
                                                                        7,
                                                                        ,
                                                                        8
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        pluginDownloader.getOrDownloadPlugin(assignment.plugin.archiveUri, assignment.plugin.mainFile, assignment.plugin.md5Checksum)
                                                                    ];
                                                                case 5:
                                                                    pluginFile = _state.sent();
                                                                    pluginData = {
                                                                        archiveUri: assignment.plugin.archiveUri,
                                                                        mainFile: assignment.plugin.mainFile,
                                                                        md5Checksum: assignment.plugin.md5Checksum,
                                                                        runtime: assignment.plugin.runtime,
                                                                        pluginVersion: assignment.pluginVersion,
                                                                        pluginUid: assignment.pluginUid,
                                                                        assignmentUid: assignment.assignmentUid,
                                                                        configuration: assignment.configuration,
                                                                        encryptedConfigurationFields: assignment.encryptedConfigurationFields,
                                                                        pluginFile: pluginFile,
                                                                        active: false
                                                                    };
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(savePlugin(propertyStorage, assignment.assignmentUid, pluginData)))
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                case 7:
                                                                    error = _state.sent();
                                                                    console.error("Error when processing ".concat(assignment.assignmentUid, ":"), error);
                                                                    return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                case 8:
                                                                    _iteratorNormalCompletion = true;
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 9:
                                                                    return [
                                                                        3,
                                                                        12
                                                                    ];
                                                                case 10:
                                                                    err = _state.sent();
                                                                    _didIteratorError = true;
                                                                    _iteratorError = err;
                                                                    return [
                                                                        3,
                                                                        12
                                                                    ];
                                                                case 11:
                                                                    try {
                                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                            _iterator["return"]();
                                                                        }
                                                                    } finally{
                                                                        if (_didIteratorError) {
                                                                            throw _iteratorError;
                                                                        }
                                                                    }
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 12:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.PluginSet, function(action) {
                                                        var _a3, _b2, iframeId, binMessages, plugin, configuration, result17, sosPlugin, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    iframeId = null;
                                                                    binMessages = null;
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        10,
                                                                        12,
                                                                        15
                                                                    ]);
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(getAssignedPlugin(propertyStorage, action.assignmentUid)))
                                                                    ];
                                                                case 2:
                                                                    plugin = _state.sent();
                                                                    if (!!plugin) return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginSetFailed,
                                                                            uid: action.uid,
                                                                            error: "Plugin with assignment UID ".concat(action.assignmentUid, " not found.")
                                                                        })
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, (_a3 = plugin.configuration) !== null && _a3 !== void 0 ? _a3 : {}, (_b2 = plugin.encryptedConfigurationFields) !== null && _b2 !== void 0 ? _b2 : [], managementDriver)
                                                                    ];
                                                                case 5:
                                                                    configuration = _state.sent();
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(createAndRunPlugin(browserRuntime, managementDriver, plugin, configuration)))
                                                                    ];
                                                                case 6:
                                                                    result17 = _state.sent();
                                                                    if (!result17) {
                                                                        throw new Error("Failed to create and run plugin");
                                                                    }
                                                                    iframeId = result17.iframeId;
                                                                    binMessages = result17.binMessages;
                                                                    if (!iframeId) {
                                                                        throw new Error("IframeId is null");
                                                                    }
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(waitForSosPlugin(iframeId, plugin.pluginUid)))
                                                                    ];
                                                                case 7:
                                                                    sosPlugin = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(sosPlugin.set, action.data)
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginSetSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 9:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        15
                                                                    ];
                                                                case 10:
                                                                    error = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginSetFailed,
                                                                            uid: action.uid,
                                                                            error: error.message
                                                                        })
                                                                    ];
                                                                case 11:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        15
                                                                    ];
                                                                case 12:
                                                                    if (!(iframeId && binMessages)) return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(cleanupPluginIframe(iframeId, binMessages)))
                                                                    ];
                                                                case 13:
                                                                    _state.sent();
                                                                    _state.label = 14;
                                                                case 14:
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 15:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.PluginGet, function(action) {
                                                        var _a3, _b2, iframeId, binMessages, plugin, configuration, result17, sosPlugin, getData, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    iframeId = null;
                                                                    binMessages = null;
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        10,
                                                                        12,
                                                                        15
                                                                    ]);
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(getAssignedPlugin(propertyStorage, action.assignmentUid)))
                                                                    ];
                                                                case 2:
                                                                    plugin = _state.sent();
                                                                    if (!!plugin) return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginGetFailed,
                                                                            uid: action.uid,
                                                                            error: "Plugin with assignment UID ".concat(action.assignmentUid, " not found.")
                                                                        })
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, (_a3 = plugin.configuration) !== null && _a3 !== void 0 ? _a3 : {}, (_b2 = plugin.encryptedConfigurationFields) !== null && _b2 !== void 0 ? _b2 : [], managementDriver)
                                                                    ];
                                                                case 5:
                                                                    configuration = _state.sent();
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(createAndRunPlugin(browserRuntime, managementDriver, plugin, configuration)))
                                                                    ];
                                                                case 6:
                                                                    result17 = _state.sent();
                                                                    if (!result17) {
                                                                        throw new Error("Failed to create and run plugin");
                                                                    }
                                                                    iframeId = result17.iframeId;
                                                                    binMessages = result17.binMessages;
                                                                    if (!iframeId) {
                                                                        throw new Error("IframeId is null");
                                                                    }
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(waitForSosPlugin(iframeId, plugin.pluginUid, "get")))
                                                                    ];
                                                                case 7:
                                                                    sosPlugin = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(sosPlugin.get)
                                                                    ];
                                                                case 8:
                                                                    getData = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginGetSucceeded,
                                                                            uid: action.uid,
                                                                            data: getData
                                                                        })
                                                                    ];
                                                                case 9:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        15
                                                                    ];
                                                                case 10:
                                                                    error = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginGetFailed,
                                                                            uid: action.uid,
                                                                            error: error.message
                                                                        })
                                                                    ];
                                                                case 11:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        15
                                                                    ];
                                                                case 12:
                                                                    if (!(iframeId && binMessages)) return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(cleanupPluginIframe(iframeId, binMessages)))
                                                                    ];
                                                                case 13:
                                                                    _state.sent();
                                                                    _state.label = 14;
                                                                case 14:
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 15:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.AssignDevicePlugin, function(action) {
                                                        var pluginFile, error, appletJsFile;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        2,
                                                                        ,
                                                                        3
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        pluginDownloader.getOrDownloadPlugin(action.plugin.archiveUri, action.plugin.mainFile, action.plugin.md5Checksum)
                                                                    ];
                                                                case 1:
                                                                    pluginFile = _state.sent();
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 2:
                                                                    error = _state.sent();
                                                                    console.error("Failed to download plugin: ".concat(error));
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 3:
                                                                    appletJsFile = void 0;
                                                                    if (!action.frontAppletVersion) return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        appletBinaryDownloader.getOrDownloadFrontAppletJsFile(action.frontAppletVersion)
                                                                    ];
                                                                case 4:
                                                                    appletJsFile = _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    debug4("appletJsFile", appletJsFile);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(savePlugin, propertyStorage, action.assignmentUid, {
                                                                            archiveUri: action.plugin.archiveUri,
                                                                            mainFile: action.plugin.mainFile,
                                                                            pluginFile: pluginFile,
                                                                            appletJsFile: appletJsFile,
                                                                            pluginUid: action.pluginUid,
                                                                            pluginVersion: action.pluginVersion,
                                                                            md5Checksum: action.plugin.md5Checksum,
                                                                            runtime: action.plugin.runtime,
                                                                            configuration: action.configuration,
                                                                            encryptedConfigurationFields: action.encryptedConfigurationFields,
                                                                            active: false,
                                                                            iframeId: action.plugin.md5Checksum,
                                                                            lastExecuted: void 0
                                                                        })
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.UnAssignDevicePlugin, function(action) {
                                                        var error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        2,
                                                                        ,
                                                                        3
                                                                    ]);
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(removePlugin(propertyStorage, action.assignmentUid)))
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 2:
                                                                    error = _state.sent();
                                                                    console.error("UnAssignDevicePlugin error:", error);
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 3:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.UpdateAssignDevicePlugin, function(action) {
                                                        var existingPlugin, updatedPlugin, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        3,
                                                                        ,
                                                                        4
                                                                    ]);
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(getAssignedPlugin(propertyStorage, action.assignmentUid)))
                                                                    ];
                                                                case 1:
                                                                    existingPlugin = _state.sent();
                                                                    if (!existingPlugin) {
                                                                        console.error("Plugin with assignment UID ".concat(action.assignmentUid, " not found for update."));
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    updatedPlugin = Object.assign(Object.assign(Object.assign({}, existingPlugin), action), {
                                                                        configuration: action.configuration,
                                                                        encryptedConfigurationFields: action.encryptedConfigurationFields
                                                                    });
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(savePlugin(propertyStorage, action.assignmentUid, updatedPlugin)))
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 3:
                                                                    error = _state.sent();
                                                                    console.error("UpdateAssignDevicePlugin error:", error);
                                                                    return [
                                                                        3,
                                                                        4
                                                                    ];
                                                                case 4:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(pluginActions_1.ReloadPlugin, function(action) {
                                                        var assignedPlugins, storedPlugin, needsUpdate, updatedPlugin, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        9,
                                                                        ,
                                                                        10
                                                                    ]);
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(getAllAssignedPlugins(propertyStorage)))
                                                                    ];
                                                                case 1:
                                                                    assignedPlugins = _state.sent();
                                                                    storedPlugin = assignedPlugins[action.assignmentUid];
                                                                    if (!storedPlugin) {
                                                                        console.warn("Plugin with assignment UID ".concat(action.assignmentUid, " not found for reload"));
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    needsUpdate = false;
                                                                    updatedPlugin = Object.assign(Object.assign({}, storedPlugin), action.plugin);
                                                                    if (!hasPluginArchiveChanged(storedPlugin, action.plugin)) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    needsUpdate = true;
                                                                    removePluginIframe(storedPlugin.md5Checksum);
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(updatePluginArchive(pluginDownloader, action.plugin, updatedPlugin)))
                                                                    ];
                                                                case 2:
                                                                    updatedPlugin = _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!hasAppletVersionChanged(storedPlugin, action.assignmentUid)) return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                    needsUpdate = true;
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(updateAppletVersion(appletBinaryDownloader, action.assignmentUid, updatedPlugin)))
                                                                    ];
                                                                case 4:
                                                                    updatedPlugin = _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    if (!needsUpdate) return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                    return [
                                                                        5,
                                                                        _ts_values(__yieldStar(savePlugin(propertyStorage, action.assignmentUid, updatedPlugin)))
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    _state.label = 7;
                                                                case 7:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: pluginActions_1.PluginReloadSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 9:
                                                                    error = _state.sent();
                                                                    console.error("Error in ReloadPlugin handler:", error);
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 10:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 7:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Runner/runnerDownloader.js
    var require_runnerDownloader = __commonJS({
        "node_modules/@signageos/front-display/es6/Runner/runnerDownloader.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.RunnerDownloader = void 0;
            var RunnerDownloader = /*#__PURE__*/ function() {
                function RunnerDownloader(offlineCache, getStaticBaseUrl) {
                    _class_call_check(this, RunnerDownloader);
                    this.offlineCache = offlineCache;
                    this.getStaticBaseUrl = getStaticBaseUrl;
                }
                _create_class(RunnerDownloader, [
                    {
                        key: "getOrDownloadRunner",
                        value: function getOrDownloadRunner(archiveUri, mainFileName, md5Checksum) {
                            return __awaiter(this, void 0, void 0, function() {
                                var runnerLocalFolder, existsRunnerFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            runnerLocalFolder = this.getRunnerDirectory(archiveUri, md5Checksum);
                                            return [
                                                4,
                                                this.offlineCache.fileExists(runnerLocalFolder)
                                            ];
                                        case 1:
                                            existsRunnerFile = _state.sent();
                                            if (!!existsRunnerFile) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.downloadRunnerToLocalStorage(archiveUri, runnerLocalFolder, mainFileName)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                4,
                                                this.offlineCache.getFile(runnerLocalFolder + "/" + mainFileName)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadRunnerToLocalStorage",
                        value: function downloadRunnerToLocalStorage(runnerFilePath, localDirPath, mainFileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var relativePath, mainFilePath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            relativePath = this.removeStaticUrl(runnerFilePath);
                                            return [
                                                4,
                                                this.ensureRunnerIsDownloaded(relativePath)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.ensureRunnerIsExtracted(relativePath, localDirPath)
                                            ];
                                        case 2:
                                            _state.sent();
                                            mainFilePath = localDirPath + "/" + mainFileName;
                                            return [
                                                4,
                                                this.offlineCache.getFile(mainFilePath)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureRunnerIsDownloaded",
                        value: function ensureRunnerIsDownloaded(runnerFileName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var existsRunnerFolder, staticBaseUrl, runnerUri;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.offlineCache.fileExists(runnerFileName)
                                            ];
                                        case 1:
                                            existsRunnerFolder = _state.sent();
                                            if (!!existsRunnerFolder) return [
                                                3,
                                                3
                                            ];
                                            staticBaseUrl = this.getStaticBaseUrl();
                                            runnerUri = staticBaseUrl + "/runner/" + runnerFileName;
                                            return [
                                                4,
                                                this.offlineCache.retriableDownloadFile(5, runnerFileName, runnerUri, void 0, true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureRunnerIsExtracted",
                        value: function ensureRunnerIsExtracted(runnerFilePath, runnerDirectoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                var existsRunner, runnerFile;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.offlineCache.fileExists(runnerDirectoryPath)
                                            ];
                                        case 1:
                                            existsRunner = _state.sent();
                                            return [
                                                4,
                                                this.offlineCache.getFile(runnerFilePath)
                                            ];
                                        case 2:
                                            runnerFile = _state.sent();
                                            if (!(!existsRunner && runnerFile)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.offlineCache.extractFile(runnerFilePath, runnerDirectoryPath, "zip", true)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getRunnerDirectory",
                        value: function getRunnerDirectory(archiveUri, md5Checksum) {
                            var relativePath = this.removeStaticUrl(archiveUri);
                            return relativePath.substring(0, relativePath.lastIndexOf("/")) + "/" + md5Checksum;
                        }
                    },
                    {
                        key: "removeStaticUrl",
                        value: function removeStaticUrl(archiveUri) {
                            var matches = archiveUri.match(/runner\/(.+)$/);
                            return matches ? matches[1] : archiveUri;
                        }
                    }
                ]);
                return RunnerDownloader;
            }();
            exports.RunnerDownloader = RunnerDownloader;
        }
    });
    // node_modules/@signageos/front-display/es6/Runner/runnerSaga.js
    var require_runnerSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Runner/runnerSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.runnersSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var capable_1 = require_capable();
            var ManagementCapabilities_1 = require_ManagementCapabilities();
            var ManagementCapability_1 = __importDefault(require_ManagementCapability());
            var dependencyInjection_1 = require_dependencyInjection();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var responsible_1 = require_responsible();
            var utils_1 = require_utils6();
            var AppletBinaryDownloader_1 = require_AppletBinaryDownloader();
            var socketActionCreator_1 = require_socketActionCreator();
            var runnerDownloader_1 = require_runnerDownloader();
            var runnerActions_1 = require_runnerActions();
            var browserRuntime_1 = require_browserRuntime();
            var Property_1 = __importDefault(require_Property());
            var redux_saga_1 = require_redux_saga_core_npm_proxy_cjs();
            var authenticationActions_1 = require_authenticationActions();
            var RUNNER_CHECK_INTERVAL = 200;
            var RUNNER_MAX_RETRIES = 20;
            function getAssignedRunners(propertyStorage) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function saveRunner(propertyStorage, assignmentUid, runnerData) {
                var currentRunners, updatedRunners;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                getAssignedRunners(propertyStorage)
                            ];
                        case 1:
                            currentRunners = _state.sent();
                            updatedRunners = Object.assign(Object.assign({}, currentRunners), _define_property({}, assignmentUid, Object.assign(Object.assign({}, runnerData), {
                                assignedAt: /* @__PURE__ */ new Date().toISOString()
                            })));
                            return [
                                4,
                                propertyStorage.setValue(Property_1["default"].DEVICE_RUNNERS, updatedRunners)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            function removeRunner(propertyStorage, assignmentUid) {
                var currentRunners, _a2, _b2, _removed, remainingRunners;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                getAssignedRunners(propertyStorage)
                            ];
                        case 1:
                            currentRunners = _state.sent();
                            _a2 = currentRunners, _b2 = assignmentUid, _removed = _a2[_b2], remainingRunners = __rest(_a2, [
                                (typeof _b2 === "undefined" ? "undefined" : _type_of(_b2)) === "symbol" ? _b2 : _b2 + ""
                            ]);
                            return [
                                4,
                                propertyStorage.setValue(Property_1["default"].DEVICE_RUNNERS, remainingRunners)
                            ];
                        case 2:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            function waitForSosRunner(iframeId, runnerUid) {
                var methodName, iframe, iframeWindow, waitForModule;
                var _arguments = arguments;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            methodName = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : "run";
                            iframe = document.getElementById(iframeId);
                            if (!(iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow)) {
                                throw new Error("Iframe with id ".concat(iframeId, " not found or has no contentWindow"));
                            }
                            iframeWindow = iframe.contentWindow;
                            waitForModule = function() {
                                var retries = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : RUNNER_MAX_RETRIES;
                                return new Promise(function(resolve, reject) {
                                    var checkModule = function() {
                                        var _a2;
                                        if ((_a2 = iframeWindow === null || iframeWindow === void 0 ? void 0 : iframeWindow.sosRunner) === null || _a2 === void 0 ? void 0 : _a2[methodName]) {
                                            resolve(iframeWindow.sosRunner);
                                        } else if (retries > 0) {
                                            setTimeout(checkModule, RUNNER_CHECK_INTERVAL);
                                            retries--;
                                        } else {
                                            reject(new Error("sosRunner.".concat(methodName, " not available for runner ").concat(runnerUid || "unknown")));
                                        }
                                    };
                                    checkModule();
                                });
                            };
                            return [
                                4,
                                (0, effects_1.call)(waitForModule)
                            ];
                        case 1:
                            return [
                                2,
                                _state.sent()
                            ];
                    }
                });
            }
            function getIframeWindow(iframeId) {
                var iframe = document.getElementById(iframeId);
                var iframeWindow = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow;
                return {
                    iframe: iframe,
                    iframeWindow: iframeWindow
                };
            }
            function executeRunnerMethod(runnerData, methodName, data) {
                var _getIframeWindow, iframe, iframeWindow, sosRunner;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _getIframeWindow = getIframeWindow(runnerData.md5Checksum), iframe = _getIframeWindow.iframe, iframeWindow = _getIframeWindow.iframeWindow;
                            if (!iframe || !iframeWindow) {
                                throw new Error("Iframe not found for runner ".concat(runnerData.runnerUid));
                            }
                            return [
                                4,
                                waitForSosRunner(runnerData.md5Checksum, runnerData.runnerUid, methodName)
                            ];
                        case 1:
                            sosRunner = _state.sent();
                            if (!(methodName === "set" && data !== void 0)) return [
                                3,
                                3
                            ];
                            return [
                                4,
                                (0, effects_1.call)(sosRunner.set, data)
                            ];
                        case 2:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 3:
                            if (!(methodName === "get")) return [
                                3,
                                5
                            ];
                            return [
                                4,
                                (0, effects_1.call)(sosRunner.get)
                            ];
                        case 4:
                            return [
                                2,
                                _state.sent()
                            ];
                        case 5:
                            throw new Error("Unsupported method: ".concat(methodName));
                    }
                });
            }
            exports.runnersSaga = (0, responsible_1.whenResponsible)(Responsibility_1["default"].RUNNERS, (0, capable_1.whenCapable)(ManagementCapabilities_1.ManagementCapabilities.RUNNERS, runnersSagaDefault));
            function runnersSagaDefault(offlineCache) {
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            return [
                                4,
                                (0, effects_1.fork)((0, capable_1.whenCapable)(ManagementCapability_1["default"].RUNNERS, (0, dependencyInjection_1.withDependencies)([
                                    "managementDriver",
                                    "staticBaseUrl",
                                    "propertyStorage",
                                    "featureFlags"
                                ], function(param) {
                                    var managementDriver, staticBaseUrl, propertyStorage, featureFlags, _a2, getStaticBaseUrl, browserRuntime, runnerDownloader, appletBinaryDownloader;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                managementDriver = param.managementDriver, staticBaseUrl = param.staticBaseUrl, propertyStorage = param.propertyStorage, featureFlags = param.featureFlags;
                                                if (!((_a2 = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.runners) !== null && _a2 !== void 0 ? _a2 : true)) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                getStaticBaseUrl = function() {
                                                    return staticBaseUrl;
                                                };
                                                browserRuntime = new browserRuntime_1.BrowserRuntime();
                                                runnerDownloader = new runnerDownloader_1.RunnerDownloader(offlineCache, getStaticBaseUrl);
                                                appletBinaryDownloader = new AppletBinaryDownloader_1.AppletBinaryDownloader(false, offlineCache, getStaticBaseUrl);
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(runnerActions_1.RunnerSet, function(action) {
                                                        var _a3, assignedRunners, findRunner, encryptedDataFields, _getIframeWindow, iframe, iframeWindow, error, configuration, error1, error2;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        22,
                                                                        ,
                                                                        24
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    findRunner = assignedRunners[action.assignmentUid];
                                                                    if (!!findRunner) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerSetFailed,
                                                                            uid: action.uid,
                                                                            error: "Runner with assignment UID ".concat(action.assignmentUid, " not found.")
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                                case 3:
                                                                    encryptedDataFields = Object.assign({}, action.data);
                                                                    if (!(action.encryptedDataFields && action.encryptedDataFields.length > 0)) return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, action.data, action.encryptedDataFields, managementDriver)
                                                                    ];
                                                                case 4:
                                                                    encryptedDataFields = _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    _getIframeWindow = getIframeWindow(findRunner.md5Checksum), iframe = _getIframeWindow.iframe, iframeWindow = _getIframeWindow.iframeWindow;
                                                                    if (!(iframe && iframeWindow)) return [
                                                                        3,
                                                                        12
                                                                    ];
                                                                    _state.label = 6;
                                                                case 6:
                                                                    _state.trys.push([
                                                                        6,
                                                                        9,
                                                                        ,
                                                                        11
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        executeRunnerMethod(findRunner, "set", encryptedDataFields)
                                                                    ];
                                                                case 7:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerSetSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                case 9:
                                                                    error = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerSetFailed,
                                                                            uid: action.uid,
                                                                            error: error.message
                                                                        })
                                                                    ];
                                                                case 10:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                case 11:
                                                                    return [
                                                                        3,
                                                                        21
                                                                    ];
                                                                case 12:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, (_a3 = findRunner.configuration) !== null && _a3 !== void 0 ? _a3 : {}, findRunner.encryptedConfigurationFields || [], managementDriver)
                                                                    ];
                                                                case 13:
                                                                    configuration = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, findRunner, configuration !== null && configuration !== void 0 ? configuration : {}, findRunner.runnerFile, findRunner.appletJsFile)
                                                                    ];
                                                                case 14:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve) {
                                                                            return setTimeout(resolve, 2e3);
                                                                        })
                                                                    ];
                                                                case 15:
                                                                    _state.sent();
                                                                    _state.label = 16;
                                                                case 16:
                                                                    _state.trys.push([
                                                                        16,
                                                                        19,
                                                                        ,
                                                                        21
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        executeRunnerMethod(findRunner, "set", encryptedDataFields)
                                                                    ];
                                                                case 17:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerSetSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 18:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        21
                                                                    ];
                                                                case 19:
                                                                    error1 = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerSetFailed,
                                                                            uid: action.uid,
                                                                            error: error1.message
                                                                        })
                                                                    ];
                                                                case 20:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        21
                                                                    ];
                                                                case 21:
                                                                    return [
                                                                        3,
                                                                        24
                                                                    ];
                                                                case 22:
                                                                    error2 = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerSetFailed,
                                                                            uid: action.uid,
                                                                            error: error2.message
                                                                        })
                                                                    ];
                                                                case 23:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        24
                                                                    ];
                                                                case 24:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(runnerActions_1.RunnerGet, function(action) {
                                                        var _a3, assignedRunners, findRunner, _getIframeWindow, iframe, iframeWindow, result17, error, configuration, getData, error1, error2;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        20,
                                                                        ,
                                                                        22
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    findRunner = assignedRunners[action.assignmentUid];
                                                                    if (!!findRunner) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    console.error("Runner with assignment UID ".concat(action.assignmentUid, " not found."));
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerGetFailed,
                                                                            uid: action.uid,
                                                                            error: "Runner with assignment UID ".concat(action.assignmentUid, " not found.")
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                                case 3:
                                                                    _getIframeWindow = getIframeWindow(findRunner.md5Checksum), iframe = _getIframeWindow.iframe, iframeWindow = _getIframeWindow.iframeWindow;
                                                                    if (!(iframe && iframeWindow)) return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                    _state.label = 4;
                                                                case 4:
                                                                    _state.trys.push([
                                                                        4,
                                                                        7,
                                                                        ,
                                                                        9
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        executeRunnerMethod(findRunner, "get")
                                                                    ];
                                                                case 5:
                                                                    result17 = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerGetSucceeded,
                                                                            uid: action.uid,
                                                                            data: result17
                                                                        })
                                                                    ];
                                                                case 6:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 7:
                                                                    error = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerGetFailed,
                                                                            uid: action.uid,
                                                                            error: error.message
                                                                        })
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 9:
                                                                    return [
                                                                        3,
                                                                        19
                                                                    ];
                                                                case 10:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, (_a3 = findRunner.configuration) !== null && _a3 !== void 0 ? _a3 : {}, findRunner.encryptedConfigurationFields || [], managementDriver)
                                                                    ];
                                                                case 11:
                                                                    configuration = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, findRunner, configuration !== null && configuration !== void 0 ? configuration : {}, findRunner.runnerFile, findRunner.appletJsFile)
                                                                    ];
                                                                case 12:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        new Promise(function(resolve) {
                                                                            return setTimeout(resolve, 2e3);
                                                                        })
                                                                    ];
                                                                case 13:
                                                                    _state.sent();
                                                                    _state.label = 14;
                                                                case 14:
                                                                    _state.trys.push([
                                                                        14,
                                                                        17,
                                                                        ,
                                                                        19
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        executeRunnerMethod(findRunner, "get")
                                                                    ];
                                                                case 15:
                                                                    getData = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerGetSucceeded,
                                                                            uid: action.uid,
                                                                            data: getData
                                                                        })
                                                                    ];
                                                                case 16:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        19
                                                                    ];
                                                                case 17:
                                                                    error1 = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerGetFailed,
                                                                            uid: action.uid,
                                                                            error: error1.message
                                                                        })
                                                                    ];
                                                                case 18:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        19
                                                                    ];
                                                                case 19:
                                                                    return [
                                                                        3,
                                                                        22
                                                                    ];
                                                                case 20:
                                                                    error2 = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerGetFailed,
                                                                            uid: action.uid,
                                                                            error: error2.message
                                                                        })
                                                                    ];
                                                                case 21:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        22
                                                                    ];
                                                                case 22:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEvery)(runnerActions_1.AssignDeviceRunner, function(action) {
                                                        var runnerFile, appletJsFile, iframeId, messageChannel, messagesHandler, telemetry, configuration, error, runner, error1;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        runnerDownloader.getOrDownloadRunner(action.runner.archiveUri, action.runner.mainFile, action.runner.md5Checksum)
                                                                    ];
                                                                case 1:
                                                                    runnerFile = _state.sent();
                                                                    appletJsFile = void 0;
                                                                    if (!action.frontAppletVersion) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        appletBinaryDownloader.getOrDownloadFrontAppletJsFile(action.frontAppletVersion)
                                                                    ];
                                                                case 2:
                                                                    appletJsFile = _state.sent();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(saveRunner, propertyStorage, action.assignmentUid, {
                                                                            archiveUri: action.runner.archiveUri,
                                                                            mainFile: action.runner.mainFile,
                                                                            runnerFile: runnerFile,
                                                                            appletJsFile: appletJsFile,
                                                                            assignmentUid: action.assignmentUid,
                                                                            runnerUid: action.runnerUid,
                                                                            runnerVersion: action.runnerVersion,
                                                                            md5Checksum: action.runner.md5Checksum,
                                                                            runtime: action.runner.runtime,
                                                                            configuration: action.configuration,
                                                                            encryptedConfigurationFields: action.encryptedConfigurationFields,
                                                                            active: false,
                                                                            iframeId: void 0,
                                                                            lastExecuted: void 0
                                                                        })
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    messageChannel = (0, redux_saga_1.channel)();
                                                                    messagesHandler = function(event) {
                                                                        messageChannel.put(event);
                                                                    };
                                                                    telemetry = function(keyOrObject, value) {
                                                                        var messageResult;
                                                                        if ((typeof keyOrObject === "undefined" ? "undefined" : _type_of(keyOrObject)) === "object") {
                                                                            messageResult = keyOrObject;
                                                                        } else {
                                                                            messageResult = _define_property({}, keyOrObject, value);
                                                                        }
                                                                        parent.postMessage({
                                                                            telemetryData: messageResult,
                                                                            assignmentUid: action.assignmentUid
                                                                        }, "*");
                                                                    };
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, action.configuration, action.encryptedConfigurationFields || [], managementDriver)
                                                                    ];
                                                                case 5:
                                                                    configuration = _state.sent();
                                                                    _state.label = 6;
                                                                case 6:
                                                                    _state.trys.push([
                                                                        6,
                                                                        8,
                                                                        ,
                                                                        9
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, action.runner, configuration, runnerFile, appletJsFile, messagesHandler, telemetry)
                                                                    ];
                                                                case 7:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 8:
                                                                    error = _state.sent();
                                                                    console.error("Error occurred while running plugin in browser: ".concat(error));
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 9:
                                                                    iframeId = action.runner.md5Checksum;
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.fork)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, iframeId)
                                                                    ];
                                                                case 10:
                                                                    _state.sent();
                                                                    _state.label = 11;
                                                                case 11:
                                                                    _state.trys.push([
                                                                        11,
                                                                        15,
                                                                        ,
                                                                        16
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        waitForSosRunner(iframeId, action.runner.runtime)
                                                                    ];
                                                                case 12:
                                                                    runner = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(runner.run)
                                                                    ];
                                                                case 13:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(saveRunner, propertyStorage, action.assignmentUid, {
                                                                            archiveUri: action.runner.archiveUri,
                                                                            mainFile: action.runner.mainFile,
                                                                            runnerFile: runnerFile,
                                                                            assignmentUid: action.assignmentUid,
                                                                            appletJsFile: appletJsFile,
                                                                            runnerUid: action.runnerUid,
                                                                            runnerVersion: action.runnerVersion,
                                                                            md5Checksum: action.runner.md5Checksum,
                                                                            runtime: action.runner.runtime,
                                                                            configuration: action.configuration,
                                                                            encryptedConfigurationFields: action.encryptedConfigurationFields,
                                                                            active: true,
                                                                            iframeId: action.runner.md5Checksum,
                                                                            lastExecuted: void 0
                                                                        })
                                                                    ];
                                                                case 14:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        16
                                                                    ];
                                                                case 15:
                                                                    error1 = _state.sent();
                                                                    console.error("Failed to initialize runner ".concat(action.runner.runtime, ": ").concat(error1.message));
                                                                    return [
                                                                        3,
                                                                        16
                                                                    ];
                                                                case 16:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(runnerActions_1.UnAssignDeviceRunner, function(action) {
                                                        var assignedRunners, findRunner, iframeId, iframe;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    findRunner = assignedRunners[action.assignmentUid];
                                                                    if (!!findRunner) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(removeRunner, propertyStorage, action.assignmentUid)
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                                case 3:
                                                                    iframeId = findRunner.md5Checksum;
                                                                    iframe = document.getElementById(iframeId);
                                                                    if (iframe.parentNode) {
                                                                        iframe.parentNode.removeChild(iframe);
                                                                    }
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(removeRunner, propertyStorage, action.assignmentUid)
                                                                    ];
                                                                case 4:
                                                                    _state.sent();
                                                                    _state.label = 5;
                                                                case 5:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(runnerActions_1.UpdateAssignDeviceRunner, function(action) {
                                                        var assignedRunners, existingRunner, updatedRunner, newConfiguration, _getIframeWindow, iframe, iframeWindow, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    existingRunner = assignedRunners[action.assignmentUid];
                                                                    if (!existingRunner) {
                                                                        console.error("Runner with assignment UID ".concat(action.assignmentUid, " not found for update."));
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    updatedRunner = Object.assign(Object.assign(Object.assign({}, existingRunner), action), {
                                                                        configuration: action.configuration,
                                                                        encryptedConfigurationFields: action.encryptedConfigurationFields
                                                                    });
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, action.configuration, action.encryptedConfigurationFields || [], managementDriver)
                                                                    ];
                                                                case 2:
                                                                    newConfiguration = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(saveRunner, propertyStorage, action.assignmentUid, updatedRunner)
                                                                    ];
                                                                case 3:
                                                                    _state.sent();
                                                                    if (!(existingRunner.active && existingRunner.iframeId)) return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                    _getIframeWindow = getIframeWindow(existingRunner.md5Checksum), iframe = _getIframeWindow.iframe, iframeWindow = _getIframeWindow.iframeWindow;
                                                                    if (!(iframe && iframeWindow)) return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                    if (!iframeWindow.onConfigChange) return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                    _state.label = 4;
                                                                case 4:
                                                                    _state.trys.push([
                                                                        4,
                                                                        6,
                                                                        ,
                                                                        7
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(iframeWindow.onConfigChange, newConfiguration)
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                case 6:
                                                                    error = _state.sent();
                                                                    console.warn("Error calling configuration change listener:", error);
                                                                    return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                case 7:
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 8:
                                                                    console.warn("onConfigChange listener not found in iframe");
                                                                    _state.label = 9;
                                                                case 9:
                                                                    return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                case 10:
                                                                    console.warn("Iframe not found for active runner: ".concat(existingRunner.md5Checksum));
                                                                    _state.label = 11;
                                                                case 11:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 5:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(authenticationActions_1.AuthenticationSucceed, function() {
                                                        var _a3, assignedRunners, runnerEntries, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    runnerEntries = Object.entries(assignedRunners);
                                                                    if (runnerEntries.length === 0) {
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                                    _state.label = 2;
                                                                case 2:
                                                                    _state.trys.push([
                                                                        2,
                                                                        7,
                                                                        8,
                                                                        9
                                                                    ]);
                                                                    _loop = function() {
                                                                        var _step_value, assignmentUid, runner, iframeId, iframe, messageChannel, messagesHandler, telemetry, newConfiguration, iframeRunner, _tmp, error, error1;
                                                                        return _ts_generator(this, function(_state) {
                                                                            switch(_state.label){
                                                                                case 0:
                                                                                    _step_value = _sliced_to_array(_step.value, 2), assignmentUid = _step_value[0], runner = _step_value[1];
                                                                                    _state.label = 1;
                                                                                case 1:
                                                                                    _state.trys.push([
                                                                                        1,
                                                                                        13,
                                                                                        ,
                                                                                        14
                                                                                    ]);
                                                                                    iframeId = runner.md5Checksum;
                                                                                    iframe = getIframeWindow(iframeId).iframe;
                                                                                    if (!!iframe) return [
                                                                                        3,
                                                                                        6
                                                                                    ];
                                                                                    messageChannel = (0, redux_saga_1.channel)();
                                                                                    messagesHandler = function(event) {
                                                                                        if (event.data.assignmentUid) {
                                                                                            window.localStorage.setItem("runner_".concat(event.data.assignmentUid), JSON.stringify(event.data));
                                                                                        }
                                                                                        messageChannel.put(event);
                                                                                    };
                                                                                    telemetry = function(keyOrObject, value) {
                                                                                        var messageResult;
                                                                                        if ((typeof keyOrObject === "undefined" ? "undefined" : _type_of(keyOrObject)) === "object") {
                                                                                            messageResult = keyOrObject;
                                                                                        } else {
                                                                                            messageResult = _define_property({}, keyOrObject, value);
                                                                                        }
                                                                                        parent.postMessage({
                                                                                            telemetryData: messageResult,
                                                                                            assignmentUid: assignmentUid
                                                                                        }, "*");
                                                                                    };
                                                                                    return [
                                                                                        4,
                                                                                        (0, effects_1.call)(utils_1.getConfiguration, (_a3 = runner.configuration) !== null && _a3 !== void 0 ? _a3 : {}, runner.encryptedConfigurationFields || [], managementDriver)
                                                                                    ];
                                                                                case 2:
                                                                                    newConfiguration = _state.sent();
                                                                                    return [
                                                                                        4,
                                                                                        (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, runner, newConfiguration, runner.runnerFile, runner.appletJsFile, messagesHandler, telemetry)
                                                                                    ];
                                                                                case 3:
                                                                                    _state.sent();
                                                                                    return [
                                                                                        4,
                                                                                        (0, effects_1.fork)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, iframeId)
                                                                                    ];
                                                                                case 4:
                                                                                    _state.sent();
                                                                                    return [
                                                                                        4,
                                                                                        new Promise(function(resolve) {
                                                                                            return setTimeout(resolve, 2e3);
                                                                                        })
                                                                                    ];
                                                                                case 5:
                                                                                    _state.sent();
                                                                                    _state.label = 6;
                                                                                case 6:
                                                                                    _state.trys.push([
                                                                                        6,
                                                                                        11,
                                                                                        ,
                                                                                        12
                                                                                    ]);
                                                                                    return [
                                                                                        4,
                                                                                        waitForSosRunner(iframeId, runner.runnerUid)
                                                                                    ];
                                                                                case 7:
                                                                                    iframeRunner = _state.sent();
                                                                                    return [
                                                                                        4,
                                                                                        (0, effects_1.call)(iframeRunner.run)
                                                                                    ];
                                                                                case 8:
                                                                                    _state.sent();
                                                                                    return [
                                                                                        4,
                                                                                        (0, effects_1.call)(saveRunner, propertyStorage, assignmentUid, Object.assign(Object.assign({}, runner), {
                                                                                            active: true,
                                                                                            iframeId: runner.md5Checksum,
                                                                                            lastExecuted: void 0
                                                                                        }))
                                                                                    ];
                                                                                case 9:
                                                                                    _state.sent();
                                                                                    _tmp = {};
                                                                                    return [
                                                                                        4,
                                                                                        iframeRunner.run()
                                                                                    ];
                                                                                case 10:
                                                                                    return [
                                                                                        2,
                                                                                        (_tmp.v = _state.sent(), _tmp)
                                                                                    ];
                                                                                case 11:
                                                                                    error = _state.sent();
                                                                                    console.warn("Failed to initialize runner ".concat(runner.runnerUid, ": ").concat(error.message));
                                                                                    return [
                                                                                        3,
                                                                                        12
                                                                                    ];
                                                                                case 12:
                                                                                    return [
                                                                                        3,
                                                                                        14
                                                                                    ];
                                                                                case 13:
                                                                                    error1 = _state.sent();
                                                                                    console.warn("Failed to get telemetry from runner ".concat(runner.runnerUid, ":"), error1);
                                                                                    return [
                                                                                        3,
                                                                                        14
                                                                                    ];
                                                                                case 14:
                                                                                    return [
                                                                                        2
                                                                                    ];
                                                                            }
                                                                        });
                                                                    };
                                                                    _iterator = runnerEntries[Symbol.iterator]();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                                        3,
                                                                        6
                                                                    ];
                                                                    return [
                                                                        5,
                                                                        _ts_values(_loop())
                                                                    ];
                                                                case 4:
                                                                    _ret = _state.sent();
                                                                    if (_type_of(_ret) === "object") return [
                                                                        2,
                                                                        _ret.v
                                                                    ];
                                                                    _state.label = 5;
                                                                case 5:
                                                                    _iteratorNormalCompletion = true;
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 6:
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 7:
                                                                    err = _state.sent();
                                                                    _didIteratorError = true;
                                                                    _iteratorError = err;
                                                                    return [
                                                                        3,
                                                                        9
                                                                    ];
                                                                case 8:
                                                                    try {
                                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                            _iterator["return"]();
                                                                        }
                                                                    } finally{
                                                                        if (_didIteratorError) {
                                                                            throw _iteratorError;
                                                                        }
                                                                    }
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 9:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 6:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(runnerActions_1.ReloadRunner, function(action) {
                                                        var _a3, assignedRunners, assignmentUid, storedRunner, needsUpdate, existingIframe, runnerFile, appletJsFile, updatedRunner, messageChannel, messagesHandler, configuration, sosRunner, error, error1;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        16,
                                                                        ,
                                                                        18
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        propertyStorage.getValueOrDefault(Property_1["default"].DEVICE_RUNNERS, {})
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    assignmentUid = action.assignmentUid;
                                                                    storedRunner = assignedRunners[assignmentUid];
                                                                    if (!storedRunner) {
                                                                        console.warn("Runner with assignmentUid ".concat(assignmentUid, " not found for reload"));
                                                                        return [
                                                                            2
                                                                        ];
                                                                    }
                                                                    needsUpdate = false;
                                                                    if (action.runner && (action.runner.archiveUri !== storedRunner.archiveUri || action.runner.mainFile !== storedRunner.mainFile || action.runner.md5Checksum !== storedRunner.md5Checksum)) {
                                                                        needsUpdate = true;
                                                                    }
                                                                    if (!!needsUpdate) return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerReloadSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 2:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                                case 3:
                                                                    existingIframe = document.getElementById(storedRunner.md5Checksum);
                                                                    if (existingIframe === null || existingIframe === void 0 ? void 0 : existingIframe.parentNode) {
                                                                        existingIframe.parentNode.removeChild(existingIframe);
                                                                    }
                                                                    return [
                                                                        4,
                                                                        runnerDownloader.getOrDownloadRunner(action.runner.archiveUri, action.runner.mainFile, action.runner.md5Checksum)
                                                                    ];
                                                                case 4:
                                                                    runnerFile = _state.sent();
                                                                    appletJsFile = storedRunner.appletJsFile;
                                                                    updatedRunner = Object.assign(Object.assign(Object.assign({}, storedRunner), action.runner), {
                                                                        runnerFile: runnerFile,
                                                                        appletJsFile: appletJsFile,
                                                                        active: false,
                                                                        iframeId: void 0,
                                                                        lastExecuted: void 0
                                                                    });
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(saveRunner, propertyStorage, assignmentUid, updatedRunner)
                                                                    ];
                                                                case 5:
                                                                    _state.sent();
                                                                    messageChannel = (0, redux_saga_1.channel)();
                                                                    messagesHandler = function(event) {
                                                                        messageChannel.put(event);
                                                                    };
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(utils_1.getConfiguration, (_a3 = storedRunner.configuration) !== null && _a3 !== void 0 ? _a3 : {}, storedRunner.encryptedConfigurationFields || [], managementDriver)
                                                                    ];
                                                                case 6:
                                                                    configuration = _state.sent();
                                                                    _state.label = 7;
                                                                case 7:
                                                                    _state.trys.push([
                                                                        7,
                                                                        14,
                                                                        ,
                                                                        15
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(browserRuntime.runPluginInBrowser, managementDriver, updatedRunner, configuration, runnerFile, appletJsFile, messagesHandler)
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.fork)(browserRuntime.bindCustomScriptsMessages, messageChannel, window, updatedRunner.md5Checksum)
                                                                    ];
                                                                case 9:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        waitForSosRunner(updatedRunner.md5Checksum, updatedRunner.runnerUid)
                                                                    ];
                                                                case 10:
                                                                    sosRunner = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(sosRunner.run)
                                                                    ];
                                                                case 11:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(saveRunner, propertyStorage, assignmentUid, Object.assign(Object.assign({}, updatedRunner), {
                                                                            active: true,
                                                                            iframeId: updatedRunner.md5Checksum
                                                                        }))
                                                                    ];
                                                                case 12:
                                                                    _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerReloadSucceeded,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 13:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        15
                                                                    ];
                                                                case 14:
                                                                    error = _state.sent();
                                                                    console.error("Failed to reload runner ".concat(updatedRunner.runnerUid, ":"), error);
                                                                    return [
                                                                        3,
                                                                        15
                                                                    ];
                                                                case 15:
                                                                    return [
                                                                        3,
                                                                        18
                                                                    ];
                                                                case 16:
                                                                    error1 = _state.sent();
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.put)({
                                                                            type: runnerActions_1.RunnerReloadFailed,
                                                                            uid: action.uid
                                                                        })
                                                                    ];
                                                                case 17:
                                                                    _state.sent();
                                                                    console.error("Error in ReloadRunner handler:", error1);
                                                                    return [
                                                                        3,
                                                                        18
                                                                    ];
                                                                case 18:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 7:
                                                _state.sent();
                                                return [
                                                    4,
                                                    (0, socketActionCreator_1.bindAndTakeEveryOnlyWhenPlatform)(runnerActions_1.UpdateAssignedRunner, function(action) {
                                                        var assignedRunners, incomingAssignments, newAssignments, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, assignment, runnerFile, appletJsFile, runnerData, error, err, error1;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        15,
                                                                        ,
                                                                        16
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        getAssignedRunners(propertyStorage)
                                                                    ];
                                                                case 1:
                                                                    assignedRunners = _state.sent();
                                                                    incomingAssignments = action.assignments || [];
                                                                    newAssignments = incomingAssignments.filter(function(assignment) {
                                                                        return !assignedRunners[assignment.assignmentUid];
                                                                    });
                                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                                    _state.label = 2;
                                                                case 2:
                                                                    _state.trys.push([
                                                                        2,
                                                                        12,
                                                                        13,
                                                                        14
                                                                    ]);
                                                                    _iterator = newAssignments[Symbol.iterator]();
                                                                    _state.label = 3;
                                                                case 3:
                                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                                        3,
                                                                        11
                                                                    ];
                                                                    assignment = _step.value;
                                                                    _state.label = 4;
                                                                case 4:
                                                                    _state.trys.push([
                                                                        4,
                                                                        9,
                                                                        ,
                                                                        10
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        runnerDownloader.getOrDownloadRunner(assignment.runner.archiveUri, assignment.runner.mainFile, assignment.runner.md5Checksum)
                                                                    ];
                                                                case 5:
                                                                    runnerFile = _state.sent();
                                                                    appletJsFile = void 0;
                                                                    if (!assignment.frontAppletVersion) return [
                                                                        3,
                                                                        7
                                                                    ];
                                                                    return [
                                                                        4,
                                                                        appletBinaryDownloader.getOrDownloadFrontAppletJsFile(assignment.frontAppletVersion)
                                                                    ];
                                                                case 6:
                                                                    appletJsFile = _state.sent();
                                                                    _state.label = 7;
                                                                case 7:
                                                                    runnerData = {
                                                                        archiveUri: assignment.runner.archiveUri,
                                                                        mainFile: assignment.runner.mainFile,
                                                                        runnerFile: runnerFile,
                                                                        assignmentUid: assignment.assignmentUid,
                                                                        appletJsFile: appletJsFile,
                                                                        runnerUid: assignment.runnerUid,
                                                                        runnerVersion: assignment.runnerVersion,
                                                                        md5Checksum: assignment.runner.md5Checksum,
                                                                        runtime: assignment.runner.runtime,
                                                                        configuration: assignment.configuration,
                                                                        encryptedConfigurationFields: assignment.encryptedConfigurationFields,
                                                                        active: false,
                                                                        iframeId: void 0,
                                                                        lastExecuted: void 0
                                                                    };
                                                                    return [
                                                                        4,
                                                                        (0, effects_1.call)(saveRunner, propertyStorage, assignment.assignmentUid, runnerData)
                                                                    ];
                                                                case 8:
                                                                    _state.sent();
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 9:
                                                                    error = _state.sent();
                                                                    console.error("Failed to download ".concat(assignment.assignmentUid, ":"), error);
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 10:
                                                                    _iteratorNormalCompletion = true;
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 11:
                                                                    return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                case 12:
                                                                    err = _state.sent();
                                                                    _didIteratorError = true;
                                                                    _iteratorError = err;
                                                                    return [
                                                                        3,
                                                                        14
                                                                    ];
                                                                case 13:
                                                                    try {
                                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                            _iterator["return"]();
                                                                        }
                                                                    } finally{
                                                                        if (_didIteratorError) {
                                                                            throw _iteratorError;
                                                                        }
                                                                    }
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 14:
                                                                    return [
                                                                        3,
                                                                        16
                                                                    ];
                                                                case 15:
                                                                    error1 = _state.sent();
                                                                    console.error("Error processing UpdateAssignedRunner:", error1);
                                                                    return [
                                                                        3,
                                                                        16
                                                                    ];
                                                                case 16:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    })
                                                ];
                                            case 8:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/periodicTelemetryInvalidationSaga.js
    var require_periodicTelemetryInvalidationSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/periodicTelemetryInvalidationSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.periodicTelemetryInvalidationSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var authenticationActions_1 = require_authenticationActions();
            var debug_1 = __importDefault(require_browser2());
            var constants_1 = require_constants();
            var Property_1 = __importDefault(require_Property());
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var socketActionCreator_1 = require_socketActionCreator();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Device:Telemetry:periodicTelemetryInvalidation");
            var VARIABLE_PERIOD = constants_1.MAX_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL - constants_1.MIN_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL;
            function periodicTelemetryInvalidationSaga(propertyStorage) {
                var scheduledTask;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            scheduledTask = null;
                            return [
                                4,
                                (0, socketActionCreator_1.bindAndTakeEvery)(authenticationActions_1.AuthenticationSucceed, function() {
                                    var stored, now2, target, e;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                _state.trys.push([
                                                    0,
                                                    10,
                                                    ,
                                                    11
                                                ]);
                                                return [
                                                    4,
                                                    (0, effects_1.call)([
                                                        propertyStorage,
                                                        propertyStorage.getValueOrDefault
                                                    ], Property_1["default"].TELEMETRY_NEXT_INVALIDATION_AT, null)
                                                ];
                                            case 1:
                                                stored = _state.sent();
                                                now2 = Date.now();
                                                if (!(typeof stored === "number" && now2 < stored)) return [
                                                    3,
                                                    2
                                                ];
                                                target = stored;
                                                debug4("Telemetry will be invalidated at ".concat(new Date(target).toISOString(), " (persisted)"));
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 2:
                                                if (!(typeof stored === "number")) return [
                                                    3,
                                                    4
                                                ];
                                                debug4("Persisted invalidation time elapsed during downtime; invalidating telemetry now");
                                                return [
                                                    4,
                                                    (0, effects_1.put)({
                                                        type: Property_1["default"].TELEMETRY_INVALIDATION
                                                    })
                                                ];
                                            case 3:
                                                _state.sent();
                                                _state.label = 4;
                                            case 4:
                                                return [
                                                    4,
                                                    (0, effects_1.call)(scheduleNextTarget, propertyStorage)
                                                ];
                                            case 5:
                                                target = _state.sent();
                                                _state.label = 6;
                                            case 6:
                                                if (!scheduledTask) return [
                                                    3,
                                                    8
                                                ];
                                                return [
                                                    4,
                                                    (0, effects_1.cancel)(scheduledTask)
                                                ];
                                            case 7:
                                                _state.sent();
                                                _state.label = 8;
                                            case 8:
                                                return [
                                                    4,
                                                    (0, effects_1.fork)(invalidateWhenDue, propertyStorage, target)
                                                ];
                                            case 9:
                                                scheduledTask = _state.sent();
                                                return [
                                                    3,
                                                    11
                                                ];
                                            case 10:
                                                e = _state.sent();
                                                debug4("Failed to perform telemetry invalidation check", e);
                                                return [
                                                    3,
                                                    11
                                                ];
                                            case 11:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                })
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.periodicTelemetryInvalidationSaga = periodicTelemetryInvalidationSaga;
            function invalidateWhenDue(propertyStorage, target) {
                var nextTarget, e;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nextTarget = target;
                            _state.label = 1;
                        case 1:
                            if (!true) return [
                                3,
                                8
                            ];
                            _state.label = 2;
                        case 2:
                            _state.trys.push([
                                2,
                                6,
                                ,
                                7
                            ]);
                            return [
                                4,
                                (0, effects_1.delay)(Math.max(0, nextTarget - Date.now()))
                            ];
                        case 3:
                            _state.sent();
                            debug4("Scheduled telemetry invalidation timer elapsed; invalidating telemetry now");
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: Property_1["default"].TELEMETRY_INVALIDATION
                                })
                            ];
                        case 4:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(scheduleNextTarget, propertyStorage)
                            ];
                        case 5:
                            nextTarget = _state.sent();
                            return [
                                3,
                                7
                            ];
                        case 6:
                            e = _state.sent();
                            debug4("Failed to invalidate telemetry on scheduled timer", e);
                            return [
                                2
                            ];
                        case 7:
                            return [
                                3,
                                1
                            ];
                        case 8:
                            return [
                                2
                            ];
                    }
                });
            }
            function scheduleNextTarget(propertyStorage) {
                var delayInterval, target;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            delayInterval = (0, deviceTelemetryHelper_1.increaseConstantByRandomValueFromInterval)(constants_1.MIN_PERIODIC_TELEMETRY_INVALIDATION_INTERVAL, VARIABLE_PERIOD);
                            target = Date.now() + delayInterval;
                            return [
                                4,
                                (0, effects_1.call)([
                                    propertyStorage,
                                    propertyStorage.setValue
                                ], Property_1["default"].TELEMETRY_NEXT_INVALIDATION_AT, target)
                            ];
                        case 1:
                            _state.sent();
                            debug4("Saved next telemetry invalidation target: ".concat(new Date(target).toISOString()));
                            return [
                                2,
                                target
                            ];
                    }
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Telemetry/centralizedTelemetryInvalidationSaga.js
    var require_centralizedTelemetryInvalidationSaga = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Telemetry/centralizedTelemetryInvalidationSaga.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.removeCachedTelemetryData = exports.sequentialTelemetryInvalidation = exports.centralizedTelemetryInvalidationSaga = void 0;
            var debug_1 = __importDefault(require_browser2());
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var wait_1 = __importDefault(require_wait());
            var DeviceTelemetryType_1 = require_DeviceTelemetryType();
            var dependencyInjection_1 = require_dependencyInjection();
            var Property_1 = __importDefault(require_Property());
            var deviceTelemetrySagas_1 = require_deviceTelemetrySagas();
            var constants_1 = require_constants();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Device:Telemetry:centralizedTelemetryInvalidation");
            var warn = (0, debug_1["default"])("@signageos/front-display:Device:Telemetry:centralizedTelemetryInvalidation:warn");
            var telemetryTypes = Object.values(DeviceTelemetryType_1.DeviceTelemetryType).filter(function(value) {
                return typeof value === "string";
            });
            var centralizedTelemetryInvalidationSaga = function(propertyStorage) {
                return (0, dependencyInjection_1.withDependencies)([
                    "telemetryInvalidatedAt"
                ], function(param) {
                    var telemetryInvalidatedAt, storedTelemetryInvalidatedAt;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                telemetryInvalidatedAt = param.telemetryInvalidatedAt;
                                if (!telemetryInvalidatedAt) {
                                    return [
                                        2
                                    ];
                                }
                                return [
                                    4,
                                    (0, effects_1.call)([
                                        propertyStorage,
                                        propertyStorage.getValueOrDefault
                                    ], Property_1["default"].TELEMETRY_INVALIDATED_AT, null)
                                ];
                            case 1:
                                storedTelemetryInvalidatedAt = _state.sent();
                                debug4("Telemetry invalidatedAt received", {
                                    telemetryInvalidatedAt: telemetryInvalidatedAt,
                                    storedTelemetryInvalidatedAt: storedTelemetryInvalidatedAt
                                });
                                if (!(telemetryInvalidatedAt !== storedTelemetryInvalidatedAt)) return [
                                    3,
                                    5
                                ];
                                debug4("Telemetry invalidatedAt changed, purging cached telemetry data");
                                return [
                                    4,
                                    (0, effects_1.call)(removeCachedTelemetryData, propertyStorage)
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    4,
                                    (0, effects_1.call)([
                                        propertyStorage,
                                        propertyStorage.setValue
                                    ], Property_1["default"].TELEMETRY_INVALIDATED_AT, telemetryInvalidatedAt)
                                ];
                            case 3:
                                _state.sent();
                                debug4("Triggering sequential telemetry invalidation");
                                return [
                                    4,
                                    (0, effects_1.call)(sequentialTelemetryInvalidation)
                                ];
                            case 4:
                                _state.sent();
                                _state.label = 5;
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.centralizedTelemetryInvalidationSaga = centralizedTelemetryInvalidationSaga;
            function sequentialTelemetryInvalidation() {
                var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, telemetryType, err;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                7,
                                8,
                                9
                            ]);
                            _iterator = telemetryTypes[Symbol.iterator]();
                            _state.label = 2;
                        case 2:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                6
                            ];
                            telemetryType = _step.value;
                            debug4("Invalidating telemetry type: ".concat(telemetryType));
                            return [
                                4,
                                (0, effects_1.put)({
                                    type: Property_1["default"].TELEMETRY_TYPE_INVALIDATION,
                                    name: telemetryType
                                })
                            ];
                        case 3:
                            _state.sent();
                            return [
                                4,
                                (0, effects_1.call)(wait_1["default"], constants_1.FREQUENTLY)
                            ];
                        case 4:
                            _state.sent();
                            _state.label = 5;
                        case 5:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                2
                            ];
                        case 6:
                            return [
                                3,
                                9
                            ];
                        case 7:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                9
                            ];
                        case 8:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 9:
                            debug4("Sequential telemetry invalidation complete");
                            return [
                                2
                            ];
                    }
                });
            }
            exports.sequentialTelemetryInvalidation = sequentialTelemetryInvalidation;
            function removeCachedTelemetryData(propertyStorage) {
                var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, telemetryType, property, error, err;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            _state.label = 1;
                        case 1:
                            _state.trys.push([
                                1,
                                8,
                                9,
                                10
                            ]);
                            _iterator = telemetryTypes[Symbol.iterator]();
                            _state.label = 2;
                        case 2:
                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                3,
                                7
                            ];
                            telemetryType = _step.value;
                            _state.label = 3;
                        case 3:
                            _state.trys.push([
                                3,
                                5,
                                ,
                                6
                            ]);
                            property = (0, deviceTelemetrySagas_1.getTelemetryPropertyName)(telemetryType, "LATEST_REPORTED_SETTINGS");
                            return [
                                4,
                                (0, effects_1.call)([
                                    propertyStorage,
                                    propertyStorage.removeValue
                                ], property)
                            ];
                        case 4:
                            _state.sent();
                            debug4("Removed cached telemetry for ".concat(telemetryType));
                            return [
                                3,
                                6
                            ];
                        case 5:
                            error = _state.sent();
                            warn("Skipping telemetry cache removal for ".concat(telemetryType), error);
                            return [
                                3,
                                6
                            ];
                        case 6:
                            _iteratorNormalCompletion = true;
                            return [
                                3,
                                2
                            ];
                        case 7:
                            return [
                                3,
                                10
                            ];
                        case 8:
                            err = _state.sent();
                            _didIteratorError = true;
                            _iteratorError = err;
                            return [
                                3,
                                10
                            ];
                        case 9:
                            try {
                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                    _iterator["return"]();
                                }
                            } finally{
                                if (_didIteratorError) {
                                    throw _iteratorError;
                                }
                            }
                            return [
                                7
                            ];
                        case 10:
                            return [
                                4,
                                (0, effects_1.call)([
                                    propertyStorage,
                                    propertyStorage.removeValue
                                ], Property_1["default"].TELEMETRY_STACK_STORAGE)
                            ];
                        case 11:
                            _state.sent();
                            debug4("Removed telemetry stack storage");
                            return [
                                2
                            ];
                    }
                });
            }
            exports.removeCachedTelemetryData = removeCachedTelemetryData;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/managementSagas.js
    var require_managementSagas = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/managementSagas.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.managementSaga = void 0;
            var effects_1 = require_redux_saga_effects_npm_proxy_cjs();
            var startApplicationSaga_1 = __importDefault(require_startApplicationSaga());
            var authenticationSagas_1 = require_authenticationSagas();
            var dependenciesSaga_1 = require_dependenciesSaga();
            var debugSagas_1 = require_debugSagas();
            var deviceConfigurationSagas_1 = require_deviceConfigurationSagas();
            var deviceAliveSaga_1 = require_deviceAliveSaga();
            var deviceVerificationSagas_1 = require_deviceVerificationSagas();
            var deviceSagas_1 = require_deviceSagas();
            var timerControllerSagas_1 = require_timerControllerSagas();
            var deviceSchedulePowerActionSagas_1 = require_deviceSchedulePowerActionSagas3();
            var offlineActionsSagas_1 = require_offlineActionsSagas();
            var OfflineCache_1 = __importDefault(require_OfflineCache());
            var remoteDesktopSaga_1 = require_remoteDesktopSaga();
            var socketHealthCheckSagas_1 = require_socketHealthCheckSagas();
            var socketSagas_1 = require_socketSagas();
            var commonSystemLogsSagas_1 = require_commonSystemLogsSagas();
            var testSagas_1 = require_testSagas();
            var pingSagas_1 = require_pingSagas();
            var deviceApplicationSagas_1 = require_deviceApplicationSagas();
            var deviceVolumeSagas_1 = require_deviceVolumeSagas();
            var autoRecoverySagas_1 = require_autoRecoverySagas();
            var deviceBatterySaga_1 = require_deviceBatterySaga();
            var brightnessControllerSagas_1 = require_brightnessControllerSagas();
            var deviceBrightnessSagas_1 = require_deviceBrightnessSagas();
            var currentTimeSyncSagas_1 = require_currentTimeSyncSagas3();
            var deviceDebugSettingsSagas_1 = require_deviceDebugSettingsSagas2();
            var deviceDeprovisionSagas_1 = require_deviceDeprovisionSagas2();
            var deviceFirmwareSagas_1 = require_deviceFirmwareSagas();
            var devicePackageSagas_1 = require_devicePackageSagas();
            var peerRecoverySaga_1 = require_peerRecoverySaga();
            var devicePolicySaga_1 = require_devicePolicySaga();
            var devicePolicySagas_1 = require_devicePolicySagas();
            var devicePowerActionSagas_1 = require_devicePowerActionSagas2();
            var deviceRemoteControlSagas_1 = require_deviceRemoteControlSagas2();
            var deviceScreenResizeSagas_1 = require_deviceScreenResizeSagas();
            var deviceStorageSaga_1 = require_deviceStorageSaga();
            var deviceTelemetryHelper_1 = require_deviceTelemetryHelper();
            var deviceTelemetrySaga_1 = require_deviceTelemetrySaga2();
            var deviceTemperatureSaga_1 = require_deviceTemperatureSaga();
            var deviceTimerSettingsSagas_1 = require_deviceTimerSettingsSagas();
            var deviceSagas_2 = require_deviceSagas3();
            var extendedManagementSagas_1 = require_extendedManagementSagas();
            var screenshotSaga_1 = require_screenshotSaga();
            var servletSagas_1 = require_servletSagas();
            var systemLogsSagas_1 = require_systemLogsSagas2();
            var AudioTest_1 = __importDefault(require_AudioTest());
            var BatteryTest_1 = __importDefault(require_BatteryTest());
            var DebugTest_1 = __importDefault(require_DebugTest());
            var DisplayTest_1 = __importDefault(require_DisplayTest());
            var InfoTest_1 = __importDefault(require_InfoTest());
            var vpnSaga_1 = require_vpnSaga();
            var timerResolverFactory_1 = require_timerResolverFactory();
            var networkSagas_1 = require_networkSagas();
            var customScriptsSaga_1 = require_customScriptsSaga();
            var combinedDriver_1 = require_combinedDriver();
            var displayManagerSaga_1 = require_displayManagerSaga();
            var deviceCryptographicSaga_1 = require_deviceCryptographicSaga();
            var pluginsSaga_1 = require_pluginsSaga();
            var runnerSaga_1 = require_runnerSaga();
            var periodicTelemetryInvalidationSaga_1 = require_periodicTelemetryInvalidationSaga();
            var centralizedTelemetryInvalidationSaga_1 = require_centralizedTelemetryInvalidationSaga();
            function managementSaga(defaultConfig, param, getState, propertyStorage, getConfigUrl) {
                var nativeDriver, publicKey, sessionIdKey, frontDisplayVersion, autoVerification, applicationVersion, bundledApplet, bundledServlet, responsibilities, managementExtraTests, _param_logOfflineActions, logOfflineActions, _ref, managementDriver, cacheDriver, offlineCache, getNativeDriver, getManagementDriver, proprietaryTimerStorage, proprietaryTimerManager, _managementDriver_powerExecutors, powerActionTimer, powerKernel, powerExecutorFacade, socketName;
                return _ts_generator(this, function(_state) {
                    switch(_state.label){
                        case 0:
                            nativeDriver = param.nativeDriver, publicKey = param.publicKey, sessionIdKey = param.sessionIdKey, frontDisplayVersion = param.frontDisplayVersion, autoVerification = param.autoVerification, applicationVersion = param.applicationVersion, bundledApplet = param.bundledApplet, bundledServlet = param.bundledServlet, responsibilities = param.responsibilities, managementExtraTests = param.managementExtraTests, _param_logOfflineActions = param.logOfflineActions, logOfflineActions = _param_logOfflineActions === void 0 ? true : _param_logOfflineActions;
                            _ref = (0, combinedDriver_1.normalizeManagementCacheDriver)(nativeDriver), managementDriver = _ref.managementDriver, cacheDriver = _ref.cacheDriver;
                            offlineCache = new OfflineCache_1["default"](managementDriver.fileSystem);
                            getNativeDriver = function() {
                                return nativeDriver;
                            };
                            getManagementDriver = function() {
                                return managementDriver;
                            };
                            proprietaryTimerStorage = managementDriver.proprietaryTimerStorage;
                            proprietaryTimerManager = (0, timerResolverFactory_1.createProprietaryTimerManagerForManagement)(responsibilities, proprietaryTimerStorage, function() {
                                return managementDriver.displayIsPowerOn();
                            });
                            _managementDriver_powerExecutors = managementDriver.powerExecutors, powerActionTimer = _managementDriver_powerExecutors.powerActionTimer, powerKernel = _managementDriver_powerExecutors.powerKernel, powerExecutorFacade = _managementDriver_powerExecutors.powerExecutorFacade;
                            socketName = "management";
                            return [
                                4,
                                (0, effects_1.all)([
                                    // create DI container as first
                                    (0, dependenciesSaga_1.dependencyInjection)({
                                        applicationVersion: applicationVersion,
                                        managementDriver: managementDriver,
                                        cacheDriver: cacheDriver,
                                        propertyStorage: propertyStorage,
                                        responsibilities: responsibilities,
                                        proprietaryTimerStorage: proprietaryTimerStorage,
                                        bundledApplet: bundledApplet,
                                        powerActionTimer: powerActionTimer,
                                        telemetryInitialTimeoutMs: (0, deviceTelemetryHelper_1.calculateInitialTelemetryTimeoutMs)(),
                                        frontPowerActionsDisabled: false
                                    }),
                                    // shared sagas
                                    (0, socketSagas_1.socketPlatformCreate)(getManagementDriver, socketName, function() {
                                        return managementDriver.timeManager.getEpochMillis();
                                    }, defaultConfig, powerKernel),
                                    // Must be first saga
                                    (0, socketHealthCheckSagas_1.healthChecking)(),
                                    (0, deviceConfigurationSagas_1.updatingConfiguration)(getManagementDriver, getManagementDriver, propertyStorage, defaultConfig, publicKey, socketName),
                                    (0, authenticationSagas_1.autoDeviceAuthentication)(sessionIdKey, getManagementDriver),
                                    (0, authenticationSagas_1.storeDeviceSession)(sessionIdKey, getManagementDriver),
                                    (0, authenticationSagas_1.fallbackDeviceUidAuthentication)(getManagementDriver),
                                    (0, authenticationSagas_1.afterRegistrationDeviceUidAuthentication)(getManagementDriver),
                                    (0, deviceSagas_1.fallbackDeviceRegistration)(getManagementDriver, autoVerification),
                                    (0, deviceVerificationSagas_1.deviceVerification)(getManagementDriver),
                                    // management sagas
                                    (0, deviceApplicationSagas_1.syncApplicationVersionSaga)(responsibilities),
                                    (0, brightnessControllerSagas_1.brightnessRefresh)(getManagementDriver, propertyStorage),
                                    (0, devicePowerActionSagas_1.deviceDisplayPowerAction)(getManagementDriver),
                                    (0, devicePowerActionSagas_1.devicePerformScheduledPowerAction)(powerExecutorFacade),
                                    (0, deviceSchedulePowerActionSagas_1.deviceSchedulePowerAction)(getManagementDriver, responsibilities, powerActionTimer),
                                    (0, timerControllerSagas_1.displayTimerChecking)(responsibilities, proprietaryTimerManager),
                                    (0, currentTimeSyncSagas_1.startupDeviceDateTimeSettings)(),
                                    (0, deviceSagas_2.notifyDeviceSaga)(getManagementDriver, responsibilities),
                                    (0, deviceSagas_1.notifyDeviceFrontDisplayVersion)(frontDisplayVersion),
                                    (0, deviceSagas_2.notifyDeviceApplicationVersion)(getManagementDriver, responsibilities, applicationVersion),
                                    (0, pingSagas_1.pinging)(),
                                    (0, deviceFirmwareSagas_1.deviceFirmwareNotify)(responsibilities, function() {
                                        return managementDriver.getDeviceUid();
                                    }),
                                    (0, deviceFirmwareSagas_1.deviceFirmwareUpgrade)(responsibilities, function() {
                                        return managementDriver.getDeviceUid();
                                    }),
                                    (0, deviceVolumeSagas_1.deviceVolumeSaga)(getManagementDriver, responsibilities),
                                    (0, deviceBrightnessSagas_1.syncBrightnessSettingsSaga)(getManagementDriver, responsibilities, propertyStorage),
                                    (0, devicePackageSagas_1.installPackageSaga)(responsibilities),
                                    (0, devicePackageSagas_1.stopPackageSaga)(responsibilities),
                                    (0, devicePackageSagas_1.clearPackageDataSaga)(responsibilities),
                                    (0, deviceDeprovisionSagas_1.deviceDeprovision)(getNativeDriver, responsibilities, sessionIdKey),
                                    (0, devicePowerActionSagas_1.devicePerformPowerAction)(getManagementDriver, responsibilities, powerExecutorFacade),
                                    (0, deviceTimerSettingsSagas_1.syncDeviceTimerSettingsSaga)(getManagementDriver, responsibilities, proprietaryTimerStorage),
                                    (0, deviceScreenResizeSagas_1.resizeScreen)(responsibilities),
                                    (0, deviceScreenResizeSagas_1.reportScreen)(responsibilities),
                                    (0, deviceRemoteControlSagas_1.syncRemoteControlSettingsSaga)(getManagementDriver, responsibilities),
                                    (0, extendedManagementSagas_1.deviceExtendedManagementSaga)(getManagementDriver, responsibilities),
                                    (0, currentTimeSyncSagas_1.updateTimeSettingsSaga)(),
                                    (0, deviceDebugSettingsSagas_1.devicePerformDebugSettings)(getManagementDriver, responsibilities),
                                    (0, deviceBatterySaga_1.deviceBatterySaga)()(),
                                    (0, deviceStorageSaga_1.createDeviceStorageSaga)()(),
                                    (0, deviceTemperatureSaga_1.deviceTemperatureSaga)(responsibilities),
                                    (0, screenshotSaga_1.periodicScreenshotSaga)(responsibilities, getConfigUrl),
                                    (0, screenshotSaga_1.instantScreenshotSaga)(responsibilities),
                                    (0, testSagas_1.runTestsSaga)([
                                        (0, AudioTest_1["default"])(managementDriver),
                                        (0, BatteryTest_1["default"])(managementDriver),
                                        (0, DebugTest_1["default"])(managementDriver),
                                        (0, DisplayTest_1["default"])(managementDriver, responsibilities),
                                        (0, InfoTest_1["default"])(managementDriver)
                                    ].concat(_to_consumable_array(managementExtraTests !== null && managementExtraTests !== void 0 ? managementExtraTests : []))),
                                    (0, servletSagas_1.subscribeActiveServlets)(getState, responsibilities, getManagementDriver),
                                    (0, commonSystemLogsSagas_1.commonSystemLogsSaga)(socketName),
                                    (0, systemLogsSagas_1.systemLogsSaga)()
                                ].concat(_to_consumable_array(logOfflineActions ? [
                                    (0, offlineActionsSagas_1.offlineActionsSaga)(socketName, getManagementDriver, getManagementDriver)
                                ] : []), [
                                    (0, servletSagas_1.runServlets)(responsibilities, offlineCache),
                                    (0, servletSagas_1.runBundledServlet)(responsibilities, bundledServlet),
                                    (0, deviceTelemetrySaga_1.deviceTelemetrySaga)(responsibilities, getManagementDriver, propertyStorage, proprietaryTimerStorage, applicationVersion, powerActionTimer)(),
                                    (0, periodicTelemetryInvalidationSaga_1.periodicTelemetryInvalidationSaga)(propertyStorage),
                                    (0, centralizedTelemetryInvalidationSaga_1.centralizedTelemetryInvalidationSaga)(propertyStorage)(),
                                    (0, devicePolicySaga_1.devicePolicySaga)(),
                                    (0, devicePolicySagas_1.subscribeDevicePolicy)(responsibilities, getState),
                                    (0, devicePolicySagas_1.updateDevicePolicy)(responsibilities, propertyStorage),
                                    (0, remoteDesktopSaga_1.remoteDesktopSaga)(),
                                    (0, debugSagas_1.debugAllActions)(),
                                    (0, startApplicationSaga_1["default"])(),
                                    (0, deviceAliveSaga_1.notifyDeviceStatus)(),
                                    (0, autoRecoverySagas_1.autoRecoverySaga)(getManagementDriver, responsibilities),
                                    (0, peerRecoverySaga_1.peerRecoverySaga)(getManagementDriver, responsibilities),
                                    (0, vpnSaga_1.vpnSaga)(getManagementDriver, responsibilities),
                                    (0, networkSagas_1.checkingStatusChange)(getManagementDriver),
                                    (0, customScriptsSaga_1.customScriptsSaga)(offlineCache),
                                    (0, displayManagerSaga_1.displayManagerSaga)(),
                                    (0, deviceCryptographicSaga_1.cryptographySaga)(getManagementDriver, responsibilities),
                                    (0, pluginsSaga_1.pluginsSaga)(offlineCache, getManagementDriver, defaultConfig.staticBaseUrl, propertyStorage),
                                    (0, runnerSaga_1.runnersSaga)(offlineCache, getManagementDriver, defaultConfig.staticBaseUrl, propertyStorage)
                                ]))
                            ];
                        case 1:
                            _state.sent();
                            return [
                                2
                            ];
                    }
                });
            }
            exports.managementSaga = managementSaga;
        }
    });
    // node_modules/@signageos/front-display/es6/BackupRestart/backupRestart.js
    var require_backupRestart = __commonJS({
        "node_modules/@signageos/front-display/es6/BackupRestart/backupRestart.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.startBackupRestartChecking = void 0;
            var debug_1 = __importDefault(require_browser2());
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var fetch_1 = require_fetch();
            var constants_1 = require_constants();
            var wait_1 = __importDefault(require_wait2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:BackupRestart");
            var LEGACY_RESTART_STATUS_CODE = 299;
            var BACKUP_RESTART_STATUS_CODE = 200;
            function startBackupRestartChecking(managementDriver, getConfigUrl) {
                var fetchFn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fetch_1.fetch, interval = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : constants_1.RARELY;
                return __awaiter(this, void 0, void 0, function() {
                    var _ref, response, timeout, e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!true) return [
                                    3,
                                    7
                                ];
                                _state.label = 1;
                            case 1:
                                _state.trys.push([
                                    1,
                                    5,
                                    ,
                                    6
                                ]);
                                debug4("Waiting %d ms before next backup restart check", interval);
                                return [
                                    4,
                                    (0, wait_1["default"])(interval)
                                ];
                            case 2:
                                _state.sent();
                                debug4("Checking for backup restart...");
                                return [
                                    4,
                                    fetchBackupRestartUrl(managementDriver, getConfigUrl, fetchFn)
                                ];
                            case 3:
                                _ref = _state.sent(), response = _ref.response, timeout = _ref.timeout;
                                return [
                                    4,
                                    evaluateResponseAndPerformReboot(managementDriver, response, timeout, fetchFn)
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    3,
                                    6
                                ];
                            case 5:
                                e = _state.sent();
                                console.warn("backup restart check failed", e);
                                return [
                                    3,
                                    6
                                ];
                            case 6:
                                return [
                                    3,
                                    0
                                ];
                            case 7:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            exports.startBackupRestartChecking = startBackupRestartChecking;
            function fetchBackupRestartUrl(managementDriver, getConfigUrl) {
                var fetchFn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    var type, deviceUid, getBackUpRestartUrl, cachedUrl, response;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                type = PowerActionType_1["default"][PowerActionType_1["default"].BACKUP_RESTART];
                                return [
                                    4,
                                    managementDriver.getDeviceUid()
                                ];
                            case 1:
                                deviceUid = _state.sent();
                                getBackUpRestartUrl = function(uri) {
                                    return uri + "/power-action/" + type + "/" + deviceUid;
                                };
                                return [
                                    4,
                                    getConfigUrl(fetchFn)
                                ];
                            case 2:
                                cachedUrl = _state.sent();
                                if (!cachedUrl) {
                                    throw new Error("Failed to retrieve configUrl");
                                }
                                return [
                                    4,
                                    fetchFn(getBackUpRestartUrl(cachedUrl), void 0, constants_1.NORMALLY)
                                ];
                            case 3:
                                response = _state.sent();
                                return [
                                    2,
                                    {
                                        response: response,
                                        timeout: constants_1.NORMALLY
                                    }
                                ];
                        }
                    });
                });
            }
            function evaluateResponseAndPerformReboot(managementDriver, response, timeout) {
                var fetchFn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                debug4("Backup restart response status:", response.status);
                                if (!(response.status === LEGACY_RESTART_STATUS_CODE)) return [
                                    3,
                                    2
                                ];
                                return [
                                    4,
                                    legacyReboot(managementDriver, response, timeout, fetchFn)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    3,
                                    4
                                ];
                            case 2:
                                if (!(response.status === BACKUP_RESTART_STATUS_CODE)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    newReboot(managementDriver, response, timeout, fetchFn)
                                ];
                            case 3:
                                _state.sent();
                                _state.label = 4;
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function legacyReboot(managementDriver, response, timeout) {
                var fetchFn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                debug4("Performing legacy reboot via URL:", response.url);
                                return [
                                    4,
                                    fetchFn(response.url, {
                                        method: "POST"
                                    }, timeout)
                                ];
                            case 1:
                                _state.sent();
                                debug4("Legacy reboot request sent, rebooting now...");
                                return [
                                    4,
                                    managementDriver.systemReboot()
                                ];
                            case 2:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function newReboot(managementDriver, response, timeout) {
                var fetchFn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : fetch_1.fetch;
                return __awaiter(this, void 0, void 0, function() {
                    var responseBody, _ref, status, ok;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    response.json()
                                ];
                            case 1:
                                responseBody = _state.sent();
                                debug4("Backup restart response body:", responseBody);
                                if (!(responseBody && responseBody.confirmationUrl && URL.canParse(responseBody.confirmationUrl))) return [
                                    3,
                                    5
                                ];
                                debug4("Confirming reboot via URL:", responseBody.confirmationUrl);
                                return [
                                    4,
                                    fetchFn(responseBody.confirmationUrl, {
                                        method: "POST"
                                    }, timeout)
                                ];
                            case 2:
                                _ref = _state.sent(), status = _ref.status, ok = _ref.ok;
                                if (!ok) return [
                                    3,
                                    4
                                ];
                                debug4("Reboot confirmed, rebooting now...");
                                return [
                                    4,
                                    managementDriver.systemReboot()
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                debug4("Reboot confirmation failed with status:", status);
                                _state.label = 5;
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Management/management.js
    var require_management = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/management.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var lodash_1 = require_lodash();
            var applicationFactory_1 = require_applicationFactory();
            var Responsibilities_1 = require_Responsibilities();
            var Responsibility_1 = __importDefault(require_Responsibility());
            var combinedDriver_1 = require_combinedDriver();
            var propertyStorage_1 = __importDefault(require_propertyStorage());
            var telemetryStackStorage_1 = require_telemetryStackStorage();
            var managementReducers_1 = require_managementReducers();
            var managementSagas_1 = require_managementSagas();
            var backupRestart_1 = require_backupRestart();
            var deviceConfigurationHelper_1 = require_deviceConfigurationHelper();
            exports["default"] = function(options) {
                return __awaiter(void 0, void 0, void 0, function() {
                    var _ref, managementDriver, cacheDriver, responsibilities, getConfigUrl, propertyStorage, subscriptionType, _2, newOptions, _a2, configUrls, platformUri, staticBaseUrl, uploadBaseUrl, checkInterval, weinreUri, extendedManagementUrl, sagaOptions, config, lastSagaError, _ref1, store, storeEmitter, stop;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                _ref = (0, combinedDriver_1.normalizeManagementCacheDriver)(options.nativeDriver), managementDriver = _ref.managementDriver, cacheDriver = _ref.cacheDriver;
                                responsibilities = (0, Responsibilities_1.createAbsentResponsibilities).apply(this, _to_consumable_array(options.excludedResponsibilities));
                                getConfigUrl = (0, deviceConfigurationHelper_1.createGetConfigUrl)(managementDriver, {
                                    configUrls: options.configUrls
                                });
                                if (responsibilities.has(Responsibility_1["default"].POWER)) {
                                    (0, backupRestart_1.startBackupRestartChecking)(managementDriver, getConfigUrl);
                                }
                                propertyStorage = (0, propertyStorage_1["default"])(function() {
                                    return cacheDriver;
                                });
                                (0, telemetryStackStorage_1.initializeTelemetryStackStorage)(propertyStorage);
                                subscriptionType = options.subscriptionType;
                                _2 = options.excludedResponsibilities, newOptions = __rest(options, [
                                    "excludedResponsibilities"
                                ]);
                                _a2 = Object.assign({
                                    responsibilities: responsibilities
                                }, newOptions), configUrls = _a2.configUrls, platformUri = _a2.platformUri, staticBaseUrl = _a2.staticBaseUrl, uploadBaseUrl = _a2.uploadBaseUrl, checkInterval = _a2.checkInterval, weinreUri = _a2.weinreServerUrl, extendedManagementUrl = _a2.extendedManagementUrl, sagaOptions = __rest(_a2, [
                                    "configUrls",
                                    "platformUri",
                                    "staticBaseUrl",
                                    "uploadBaseUrl",
                                    "checkInterval",
                                    "weinreServerUrl",
                                    "extendedManagementUrl"
                                ]);
                                config = {
                                    configUrls: configUrls,
                                    platformUri: platformUri,
                                    staticBaseUrl: staticBaseUrl,
                                    uploadBaseUrl: uploadBaseUrl,
                                    weinreUri: weinreUri,
                                    extendedManagementUrl: extendedManagementUrl,
                                    subscriptionType: subscriptionType,
                                    checkInterval: checkInterval
                                };
                                return [
                                    4,
                                    (0, applicationFactory_1.createApplication)(managementReducers_1.managementReducer, function(storage) {
                                        return (0, managementSagas_1.managementSaga)(config, sagaOptions, storage.getState, propertyStorage, getConfigUrl);
                                    }, function() {
                                        return managementDriver;
                                    }, function(e) {
                                        lastSagaError = (0, lodash_1.cloneDeep)(e);
                                        console.warn("Sagas broken", e);
                                    })
                                ];
                            case 1:
                                _ref1 = _state.sent(), store = _ref1.store, storeEmitter = _ref1.storeEmitter, stop = _ref1.stop;
                                if (typeof window !== "undefined") {
                                    window.__management = Object.assign(Object.assign({}, options), {
                                        store: store,
                                        storeEmitter: storeEmitter,
                                        lastSagaError: lastSagaError,
                                        stop: stop
                                    });
                                }
                                return [
                                    2,
                                    {
                                        stop: stop
                                    }
                                ];
                        }
                    });
                });
            };
        }
    });
    // node_modules/@signageos/front-display/es6/WebWorker/WebWorkerType.js
    var require_WebWorkerType = __commonJS({
        "node_modules/@signageos/front-display/es6/WebWorker/WebWorkerType.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var WebWorkerType;
            (function(WebWorkerType2) {
                WebWorkerType2[WebWorkerType2["APPLET_TIMING_CONTROLLER"] = 0] = "APPLET_TIMING_CONTROLLER";
            })(WebWorkerType || (WebWorkerType = {}));
            exports["default"] = WebWorkerType;
        }
    });
    // node_modules/@signageos/front-display/es6/Front/AppletTiming/AppletTimingController.js
    var require_AppletTimingController = __commonJS({
        "node_modules/@signageos/front-display/es6/Front/AppletTiming/AppletTimingController.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.showNext = exports.iterate = void 0;
            var appletTimingActions_1 = require_appletTimingActions();
            var TimingFinishEventType_1 = __importDefault(require_TimingFinishEventType());
            var wait_1 = __importDefault(require_wait());
            var constants_1 = require_constants();
            var defaultModel = {
                definitions: null,
                currentDefinitionIndex: null,
                startTimestamp: null,
                lastInteractionTimestamp: null,
                triggersPausedTimestamp: null,
                lastPutUpdateActiveAppletBinary: null,
                lastPutPrepareNextAppletTiming: null,
                authHash: null,
                deviceInConnectedMode: null
            };
            var AppletTimingController = /*#__PURE__*/ function() {
                function AppletTimingController(getCurrentTimestamp, postMessage) {
                    _class_call_check(this, AppletTimingController);
                    this.getCurrentTimestamp = getCurrentTimestamp;
                    this.postMessage = postMessage;
                    this.model = defaultModel;
                }
                _create_class(AppletTimingController, [
                    {
                        key: "setModel",
                        value: function setModel(model) {
                            this.model = model;
                        }
                    },
                    {
                        key: "run",
                        value: function run() {
                            return __awaiter(this, void 0, void 0, function() {
                                var message2, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!true) return [
                                                3,
                                                6
                                            ];
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                2,
                                                3,
                                                5
                                            ]);
                                            message2 = iterate(this.model, this.getCurrentTimestamp);
                                            if (message2) {
                                                this.postMessage(message2);
                                            }
                                            return [
                                                3,
                                                5
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            return [
                                                3,
                                                5
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                (0, wait_1["default"])(constants_1.QUICKLY)
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                7
                                            ];
                                        case 5:
                                            return [
                                                3,
                                                0
                                            ];
                                        case 6:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return AppletTimingController;
            }();
            function iterate(model, getCurrentTimestamp) {
                if (model.definitions === null || model.definitions.length === 0) {
                    return;
                } else if (model.triggersPausedTimestamp !== null) {
                    return;
                } else if (model.currentDefinitionIndex === null) {
                    return {
                        type: appletTimingActions_1.ShowNextAppletTiming
                    };
                } else if (model.startTimestamp === null) {
                    throw new Error("Unexpected state - start timestamp is null");
                } else {
                    var currentDefinition = model.definitions[model.currentDefinitionIndex];
                    if (showNext(currentDefinition, model.startTimestamp, model.lastInteractionTimestamp, getCurrentTimestamp())) {
                        return {
                            type: appletTimingActions_1.ShowNextAppletTiming
                        };
                    }
                }
            }
            exports.iterate = iterate;
            function showNext(currentDefinition, startTimestamp, lastInteractionTimestamp, currentTimestamp) {
                switch(TimingFinishEventType_1["default"][currentDefinition.finishEvent.type]){
                    case TimingFinishEventType_1["default"].DURATION:
                        return startTimestamp + parseFinishEventData(currentDefinition) <= currentTimestamp;
                    case TimingFinishEventType_1["default"].IDLE_TIMEOUT:
                        if (lastInteractionTimestamp !== null && lastInteractionTimestamp > startTimestamp) {
                            return lastInteractionTimestamp + parseFinishEventData(currentDefinition) <= currentTimestamp;
                        }
                        return startTimestamp + parseFinishEventData(currentDefinition) <= currentTimestamp;
                    case TimingFinishEventType_1["default"].SCREEN_TAP:
                        return lastInteractionTimestamp !== null && lastInteractionTimestamp <= currentTimestamp;
                    default:
                        throw new Error("Invalid timing finish event type: " + currentDefinition.finishEvent.type);
                }
            }
            exports.showNext = showNext;
            function parseFinishEventData(definition) {
                switch(TimingFinishEventType_1["default"][definition.finishEvent.type]){
                    case TimingFinishEventType_1["default"].DURATION:
                        return definition.finishEvent.data !== null ? parseInt(definition.finishEvent.data) : 6e4;
                    case TimingFinishEventType_1["default"].IDLE_TIMEOUT:
                        return definition.finishEvent.data !== null ? parseInt(definition.finishEvent.data) : 3e4;
                    case TimingFinishEventType_1["default"].SCREEN_TAP:
                        throw new Error("Unsupported event data for type: " + definition.finishEvent.type);
                    default:
                        throw new Error("Unrecognized type of finishEvent: " + definition.finishEvent.type);
                }
            }
            exports["default"] = AppletTimingController;
        }
    });
    // node_modules/@signageos/front-display/es6/WebWorker/webWorkerFactory.js
    var require_webWorkerFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/WebWorker/webWorkerFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createAppletTimingControllerWebWorker = void 0;
            var AppletTimingController_1 = __importDefault(require_AppletTimingController());
            function createAppletTimingControllerWebWorker(postMessage) {
                var appletTimingController = new AppletTimingController_1["default"](function() {
                    return /* @__PURE__ */ new Date().valueOf();
                }, postMessage);
                return {
                    start: function() {
                        return appletTimingController.run();
                    },
                    onMessage: function(model) {
                        return appletTimingController.setModel(model);
                    }
                };
            }
            exports.createAppletTimingControllerWebWorker = createAppletTimingControllerWebWorker;
        }
    });
    // node_modules/@signageos/front-display/es6/WebWorker/masterWebWorkerFactory.js
    var require_masterWebWorkerFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/WebWorker/masterWebWorkerFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSameThreadWebWorkerFactory = exports.createWebWorkerFactory = void 0;
            var events_1 = require_events();
            var WebWorkerType_1 = __importDefault(require_WebWorkerType());
            var webWorkerFactory_1 = require_webWorkerFactory();
            var WEB_WORKER_FILE_PATH = "webWorker.js";
            function createWebWorkerFactory(appVersion, createWebWorkerInstance) {
                return {
                    createAppletTimingController: function() {
                        return createWebWorker(WebWorkerType_1["default"].APPLET_TIMING_CONTROLLER, appVersion, createWebWorkerInstance);
                    }
                };
            }
            exports.createWebWorkerFactory = createWebWorkerFactory;
            function createSameThreadWebWorkerFactory() {
                return {
                    createAppletTimingController: function() {
                        return createSameThreadWebWorker(function(postMessage) {
                            return (0, webWorkerFactory_1.createAppletTimingControllerWebWorker)(postMessage);
                        });
                    }
                };
            }
            exports.createSameThreadWebWorkerFactory = createSameThreadWebWorkerFactory;
            function createWebWorker(type, appVersion, createWebWorkerInstance) {
                var webWorkerPath = WEB_WORKER_FILE_PATH + "?v=" + appVersion;
                var webWorker = createWebWorkerInstance ? createWebWorkerInstance() : new Worker(webWorkerPath);
                return {
                    start: function(initData) {
                        return webWorker.postMessage(createStartMessage(type, initData));
                    },
                    postMessage: function(message2) {
                        return webWorker.postMessage(createMessageMessage(message2));
                    },
                    onMessage: function(callback) {
                        webWorker.addEventListener("message", function(event) {
                            switch(event.data.name){
                                case "console":
                                    var _console;
                                    (_console = console)[event.data.level].apply(_console, _to_consumable_array(event.data.args));
                                    break;
                                case "error":
                                    var error = new Error(event.data.errorMessage);
                                    error.name = event.data.errorName;
                                    error.stack = event.data.errorStack;
                                    throw error;
                                case "message":
                                    callback(event.data.message);
                                    break;
                                default:
                                    throw new Error("invalid message name: " + event.data.name);
                            }
                        });
                    }
                };
            }
            function createMessageMessage(message2) {
                return {
                    name: "message",
                    message: message2
                };
            }
            function createStartMessage(type, initData) {
                return {
                    name: "start",
                    type: type,
                    initData: initData
                };
            }
            function createSameThreadWebWorker(createWebWorkerLocal) {
                var eventEmitter = new events_1.EventEmitter();
                var webWorker = createWebWorkerLocal(function(message2) {
                    return eventEmitter.emit("message", message2);
                });
                return {
                    start: function(initData) {
                        return webWorker.start(initData);
                    },
                    postMessage: function(message2) {
                        return webWorker.onMessage(message2);
                    },
                    onMessage: function(callback) {
                        eventEmitter.addListener("message", callback);
                    }
                };
            }
        }
    });
    // node_modules/raven-js/vendor/json-stringify-safe/stringify.js
    var require_stringify2 = __commonJS({
        "node_modules/raven-js/vendor/json-stringify-safe/stringify.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports = module.exports = stringify;
            exports.getSerialize = serializer;
            function indexOf(haystack, needle) {
                for(var i = 0; i < haystack.length; ++i){
                    if (haystack[i] === needle) return i;
                }
                return -1;
            }
            function stringify(obj, replacer, spaces, cycleReplacer) {
                return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);
            }
            function stringifyError(value) {
                var err = {
                    // These properties are implemented as magical getters and don't show up in for in
                    stack: value.stack,
                    message: value.message,
                    name: value.name
                };
                for(var i in value){
                    if (Object.prototype.hasOwnProperty.call(value, i)) {
                        err[i] = value[i];
                    }
                }
                return err;
            }
            function serializer(replacer, cycleReplacer) {
                var stack = [];
                var keys = [];
                if (cycleReplacer == null) {
                    cycleReplacer = function cycleReplacer(key, value) {
                        if (stack[0] === value) {
                            return "[Circular ~]";
                        }
                        return "[Circular ~." + keys.slice(0, indexOf(stack, value)).join(".") + "]";
                    };
                }
                return function(key, value) {
                    if (stack.length > 0) {
                        var thisPos = indexOf(stack, this);
                        ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
                        ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
                        if (~indexOf(stack, value)) {
                            value = cycleReplacer.call(this, key, value);
                        }
                    } else {
                        stack.push(value);
                    }
                    return replacer == null ? value instanceof Error ? stringifyError(value) : value : replacer.call(this, key, value);
                };
            }
        }
    });
    // node_modules/raven-js/src/utils.js
    var require_utils7 = __commonJS({
        "node_modules/raven-js/src/utils.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var stringify = require_stringify2();
            var _window = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : {};
            function isObject2(what) {
                return (typeof what === "undefined" ? "undefined" : _type_of(what)) === "object" && what !== null;
            }
            function isError(value) {
                switch(Object.prototype.toString.call(value)){
                    case "[object Error]":
                        return true;
                    case "[object Exception]":
                        return true;
                    case "[object DOMException]":
                        return true;
                    default:
                        return value instanceof Error;
                }
            }
            function isErrorEvent(value) {
                return Object.prototype.toString.call(value) === "[object ErrorEvent]";
            }
            function isDOMError(value) {
                return Object.prototype.toString.call(value) === "[object DOMError]";
            }
            function isDOMException(value) {
                return Object.prototype.toString.call(value) === "[object DOMException]";
            }
            function isUndefined2(what) {
                return what === void 0;
            }
            function isFunction(what) {
                return typeof what === "function";
            }
            function isPlainObject(what) {
                return Object.prototype.toString.call(what) === "[object Object]";
            }
            function isString(what) {
                return Object.prototype.toString.call(what) === "[object String]";
            }
            function isArray(what) {
                return Object.prototype.toString.call(what) === "[object Array]";
            }
            function isEmptyObject(what) {
                if (!isPlainObject(what)) return false;
                for(var _2 in what){
                    if (what.hasOwnProperty(_2)) {
                        return false;
                    }
                }
                return true;
            }
            function supportsErrorEvent() {
                try {
                    new ErrorEvent("");
                    return true;
                } catch (e) {
                    return false;
                }
            }
            function supportsDOMError() {
                try {
                    new DOMError("");
                    return true;
                } catch (e) {
                    return false;
                }
            }
            function supportsDOMException() {
                try {
                    new DOMException("");
                    return true;
                } catch (e) {
                    return false;
                }
            }
            function supportsFetch() {
                if (!("fetch" in _window)) return false;
                try {
                    new Headers();
                    new Request("");
                    new Response();
                    return true;
                } catch (e) {
                    return false;
                }
            }
            function supportsReferrerPolicy() {
                if (!supportsFetch()) return false;
                try {
                    new Request("pickleRick", {
                        referrerPolicy: "origin"
                    });
                    return true;
                } catch (e) {
                    return false;
                }
            }
            function supportsPromiseRejectionEvent() {
                return typeof PromiseRejectionEvent === "function";
            }
            function wrappedCallback(callback) {
                function dataCallback(data, original) {
                    var normalizedData = callback(data) || data;
                    if (original) {
                        return original(normalizedData) || normalizedData;
                    }
                    return normalizedData;
                }
                return dataCallback;
            }
            function each(obj, callback) {
                var i, j;
                if (isUndefined2(obj.length)) {
                    for(i in obj){
                        if (hasKey(obj, i)) {
                            callback.call(null, i, obj[i]);
                        }
                    }
                } else {
                    j = obj.length;
                    if (j) {
                        for(i = 0; i < j; i++){
                            callback.call(null, i, obj[i]);
                        }
                    }
                }
            }
            function objectMerge(obj1, obj2) {
                if (!obj2) {
                    return obj1;
                }
                each(obj2, function(key, value) {
                    obj1[key] = value;
                });
                return obj1;
            }
            function objectFrozen(obj) {
                if (!Object.isFrozen) {
                    return false;
                }
                return Object.isFrozen(obj);
            }
            function truncate(str, max) {
                if (typeof max !== "number") {
                    throw new Error("2nd argument to `truncate` function should be a number");
                }
                if (typeof str !== "string" || max === 0) {
                    return str;
                }
                return str.length <= max ? str : str.substr(0, max) + "\u2026";
            }
            function hasKey(object, key) {
                return Object.prototype.hasOwnProperty.call(object, key);
            }
            function joinRegExp(patterns) {
                var sources = [], i = 0, len = patterns.length, pattern2;
                for(; i < len; i++){
                    pattern2 = patterns[i];
                    if (isString(pattern2)) {
                        sources.push(pattern2.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"));
                    } else if (pattern2 && pattern2.source) {
                        sources.push(pattern2.source);
                    }
                }
                return new RegExp(sources.join("|"), "i");
            }
            function urlencode(o) {
                var pairs = [];
                each(o, function(key, value) {
                    pairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
                });
                return pairs.join("&");
            }
            function parseUrl(url) {
                if (typeof url !== "string") return {};
                var match = url.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);
                var query = match[6] || "";
                var fragment = match[8] || "";
                return {
                    protocol: match[2],
                    host: match[4],
                    path: match[5],
                    relative: match[5] + query + fragment
                };
            }
            function uuid4() {
                var crypto2 = _window.crypto || _window.msCrypto;
                if (!isUndefined2(crypto2) && crypto2.getRandomValues) {
                    var arr = new Uint16Array(8);
                    crypto2.getRandomValues(arr);
                    arr[3] = arr[3] & 4095 | 16384;
                    arr[4] = arr[4] & 16383 | 32768;
                    var pad = function pad(num) {
                        var v = num.toString(16);
                        while(v.length < 4){
                            v = "0" + v;
                        }
                        return v;
                    };
                    return pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]);
                } else {
                    return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(c) {
                        var r = Math.random() * 16 | 0, v = c === "x" ? r : r & 3 | 8;
                        return v.toString(16);
                    });
                }
            }
            function htmlTreeAsString(elem) {
                var MAX_TRAVERSE_HEIGHT = 5, MAX_OUTPUT_LEN = 80, out = [], height = 0, len = 0, separator = " > ", sepLength = separator.length, nextStr;
                while(elem && height++ < MAX_TRAVERSE_HEIGHT){
                    nextStr = htmlElementAsString(elem);
                    if (nextStr === "html" || height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) {
                        break;
                    }
                    out.push(nextStr);
                    len += nextStr.length;
                    elem = elem.parentNode;
                }
                return out.reverse().join(separator);
            }
            function htmlElementAsString(elem) {
                var out = [], className, classes, key, attr, i;
                if (!elem || !elem.tagName) {
                    return "";
                }
                out.push(elem.tagName.toLowerCase());
                if (elem.id) {
                    out.push("#" + elem.id);
                }
                className = elem.className;
                if (className && isString(className)) {
                    classes = className.split(/\s+/);
                    for(i = 0; i < classes.length; i++){
                        out.push("." + classes[i]);
                    }
                }
                var attrWhitelist = [
                    "type",
                    "name",
                    "title",
                    "alt"
                ];
                for(i = 0; i < attrWhitelist.length; i++){
                    key = attrWhitelist[i];
                    attr = elem.getAttribute(key);
                    if (attr) {
                        out.push("[" + key + '="' + attr + '"]');
                    }
                }
                return out.join("");
            }
            function isOnlyOneTruthy(a, b) {
                return !!(!!a ^ !!b);
            }
            function isBothUndefined(a, b) {
                return isUndefined2(a) && isUndefined2(b);
            }
            function isSameException(ex1, ex2) {
                if (isOnlyOneTruthy(ex1, ex2)) return false;
                ex1 = ex1.values[0];
                ex2 = ex2.values[0];
                if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false;
                if (isBothUndefined(ex1.stacktrace, ex2.stacktrace)) return false;
                return isSameStacktrace(ex1.stacktrace, ex2.stacktrace);
            }
            function isSameStacktrace(stack1, stack2) {
                if (isOnlyOneTruthy(stack1, stack2)) return false;
                var frames1 = stack1.frames;
                var frames2 = stack2.frames;
                if (frames1 === void 0 || frames2 === void 0) return false;
                if (frames1.length !== frames2.length) return false;
                var a, b;
                for(var i = 0; i < frames1.length; i++){
                    a = frames1[i];
                    b = frames2[i];
                    if (a.filename !== b.filename || a.lineno !== b.lineno || a.colno !== b.colno || a["function"] !== b["function"]) return false;
                }
                return true;
            }
            function fill(obj, name, replacement, track) {
                if (obj == null) return;
                var orig = obj[name];
                obj[name] = replacement(orig);
                obj[name].__raven__ = true;
                obj[name].__orig__ = orig;
                if (track) {
                    track.push([
                        obj,
                        name,
                        orig
                    ]);
                }
            }
            function safeJoin(input, delimiter) {
                if (!isArray(input)) return "";
                var output = [];
                for(var i = 0; i < input.length; i++){
                    try {
                        output.push(String(input[i]));
                    } catch (e) {
                        output.push("[value cannot be serialized]");
                    }
                }
                return output.join(delimiter);
            }
            var MAX_SERIALIZE_EXCEPTION_DEPTH = 3;
            var MAX_SERIALIZE_EXCEPTION_SIZE = 50 * 1024;
            var MAX_SERIALIZE_KEYS_LENGTH = 40;
            function utf8Length(value) {
                return ~-encodeURI(value).split(/%..|./).length;
            }
            function jsonSize(value) {
                return utf8Length(JSON.stringify(value));
            }
            function serializeValue(value) {
                if (typeof value === "string") {
                    var maxLength = 40;
                    return truncate(value, maxLength);
                } else if (typeof value === "number" || typeof value === "boolean" || typeof value === "undefined") {
                    return value;
                }
                var type = Object.prototype.toString.call(value);
                if (type === "[object Object]") return "[Object]";
                if (type === "[object Array]") return "[Array]";
                if (type === "[object Function]") return value.name ? "[Function: " + value.name + "]" : "[Function]";
                return value;
            }
            function serializeObject(value, depth) {
                if (depth === 0) return serializeValue(value);
                if (isPlainObject(value)) {
                    return Object.keys(value).reduce(function(acc, key) {
                        acc[key] = serializeObject(value[key], depth - 1);
                        return acc;
                    }, {});
                } else if (Array.isArray(value)) {
                    return value.map(function(val) {
                        return serializeObject(val, depth - 1);
                    });
                }
                return serializeValue(value);
            }
            function serializeException(ex, depth, maxSize) {
                if (!isPlainObject(ex)) return ex;
                depth = typeof depth !== "number" ? MAX_SERIALIZE_EXCEPTION_DEPTH : depth;
                maxSize = typeof depth !== "number" ? MAX_SERIALIZE_EXCEPTION_SIZE : maxSize;
                var serialized = serializeObject(ex, depth);
                if (jsonSize(stringify(serialized)) > maxSize) {
                    return serializeException(ex, depth - 1);
                }
                return serialized;
            }
            function serializeKeysForMessage(keys, maxLength) {
                if (typeof keys === "number" || typeof keys === "string") return keys.toString();
                if (!Array.isArray(keys)) return "";
                keys = keys.filter(function(key) {
                    return typeof key === "string";
                });
                if (keys.length === 0) return "[object has no keys]";
                maxLength = typeof maxLength !== "number" ? MAX_SERIALIZE_KEYS_LENGTH : maxLength;
                if (keys[0].length >= maxLength) return keys[0];
                for(var usedKeys = keys.length; usedKeys > 0; usedKeys--){
                    var serialized = keys.slice(0, usedKeys).join(", ");
                    if (serialized.length > maxLength) continue;
                    if (usedKeys === keys.length) return serialized;
                    return serialized + "\u2026";
                }
                return "";
            }
            function sanitize(input, sanitizeKeys) {
                if (!isArray(sanitizeKeys) || isArray(sanitizeKeys) && sanitizeKeys.length === 0) return input;
                var sanitizeRegExp = joinRegExp(sanitizeKeys);
                var sanitizeMask = "********";
                var safeInput;
                try {
                    safeInput = JSON.parse(stringify(input));
                } catch (o_O) {
                    return input;
                }
                function sanitizeWorker(workerInput) {
                    if (isArray(workerInput)) {
                        return workerInput.map(function(val) {
                            return sanitizeWorker(val);
                        });
                    }
                    if (isPlainObject(workerInput)) {
                        return Object.keys(workerInput).reduce(function(acc, k) {
                            if (sanitizeRegExp.test(k)) {
                                acc[k] = sanitizeMask;
                            } else {
                                acc[k] = sanitizeWorker(workerInput[k]);
                            }
                            return acc;
                        }, {});
                    }
                    return workerInput;
                }
                return sanitizeWorker(safeInput);
            }
            module.exports = {
                isObject: isObject2,
                isError: isError,
                isErrorEvent: isErrorEvent,
                isDOMError: isDOMError,
                isDOMException: isDOMException,
                isUndefined: isUndefined2,
                isFunction: isFunction,
                isPlainObject: isPlainObject,
                isString: isString,
                isArray: isArray,
                isEmptyObject: isEmptyObject,
                supportsErrorEvent: supportsErrorEvent,
                supportsDOMError: supportsDOMError,
                supportsDOMException: supportsDOMException,
                supportsFetch: supportsFetch,
                supportsReferrerPolicy: supportsReferrerPolicy,
                supportsPromiseRejectionEvent: supportsPromiseRejectionEvent,
                wrappedCallback: wrappedCallback,
                each: each,
                objectMerge: objectMerge,
                truncate: truncate,
                objectFrozen: objectFrozen,
                hasKey: hasKey,
                joinRegExp: joinRegExp,
                urlencode: urlencode,
                uuid4: uuid4,
                htmlTreeAsString: htmlTreeAsString,
                htmlElementAsString: htmlElementAsString,
                isSameException: isSameException,
                isSameStacktrace: isSameStacktrace,
                parseUrl: parseUrl,
                fill: fill,
                safeJoin: safeJoin,
                serializeException: serializeException,
                serializeKeysForMessage: serializeKeysForMessage,
                sanitize: sanitize
            };
        }
    });
    // node_modules/raven-js/vendor/TraceKit/tracekit.js
    var require_tracekit = __commonJS({
        "node_modules/raven-js/vendor/TraceKit/tracekit.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils7();
            var TraceKit = {
                collectWindowErrors: true,
                debug: false
            };
            var _window = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : {};
            var _slice = [].slice;
            var UNKNOWN_FUNCTION = "?";
            var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;
            function getLocationHref() {
                if (typeof document === "undefined" || document.location == null) return "";
                return document.location.href;
            }
            function getLocationOrigin() {
                if (typeof document === "undefined" || document.location == null) return "";
                if (!document.location.origin) {
                    return document.location.protocol + "//" + document.location.hostname + (document.location.port ? ":" + document.location.port : "");
                }
                return document.location.origin;
            }
            TraceKit.report = function reportModuleWrapper() {
                var handlers = [], lastArgs = null, lastException = null, lastExceptionStack = null;
                function subscribe(handler) {
                    installGlobalHandler();
                    handlers.push(handler);
                }
                function unsubscribe(handler) {
                    for(var i = handlers.length - 1; i >= 0; --i){
                        if (handlers[i] === handler) {
                            handlers.splice(i, 1);
                        }
                    }
                }
                function unsubscribeAll() {
                    uninstallGlobalHandler();
                    handlers = [];
                }
                function notifyHandlers(stack, isWindowError) {
                    var exception = null;
                    if (isWindowError && !TraceKit.collectWindowErrors) {
                        return;
                    }
                    for(var i in handlers){
                        if (handlers.hasOwnProperty(i)) {
                            try {
                                handlers[i].apply(null, [
                                    stack
                                ].concat(_slice.call(arguments, 2)));
                            } catch (inner) {
                                exception = inner;
                            }
                        }
                    }
                    if (exception) {
                        throw exception;
                    }
                }
                var _oldOnerrorHandler, _onErrorHandlerInstalled;
                function traceKitWindowOnError(msg, url, lineNo, colNo, ex) {
                    var stack = null;
                    var exception = utils.isErrorEvent(ex) ? ex.error : ex;
                    var message2 = utils.isErrorEvent(msg) ? msg.message : msg;
                    if (lastExceptionStack) {
                        TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message2);
                        processLastException();
                    } else if (exception && utils.isError(exception)) {
                        stack = TraceKit.computeStackTrace(exception);
                        notifyHandlers(stack, true);
                    } else {
                        var location2 = {
                            url: url,
                            line: lineNo,
                            column: colNo
                        };
                        var name = void 0;
                        var groups;
                        if (({}).toString.call(message2) === "[object String]") {
                            var groups = message2.match(ERROR_TYPES_RE);
                            if (groups) {
                                name = groups[1];
                                message2 = groups[2];
                            }
                        }
                        location2.func = UNKNOWN_FUNCTION;
                        stack = {
                            name: name,
                            message: message2,
                            url: getLocationHref(),
                            stack: [
                                location2
                            ]
                        };
                        notifyHandlers(stack, true);
                    }
                    if (_oldOnerrorHandler) {
                        return _oldOnerrorHandler.apply(this, arguments);
                    }
                    return false;
                }
                function installGlobalHandler() {
                    if (_onErrorHandlerInstalled) {
                        return;
                    }
                    _oldOnerrorHandler = _window.onerror;
                    _window.onerror = traceKitWindowOnError;
                    _onErrorHandlerInstalled = true;
                }
                function uninstallGlobalHandler() {
                    if (!_onErrorHandlerInstalled) {
                        return;
                    }
                    _window.onerror = _oldOnerrorHandler;
                    _onErrorHandlerInstalled = false;
                    _oldOnerrorHandler = void 0;
                }
                function processLastException() {
                    var _lastExceptionStack = lastExceptionStack, _lastArgs = lastArgs;
                    lastArgs = null;
                    lastExceptionStack = null;
                    lastException = null;
                    notifyHandlers.apply(null, [
                        _lastExceptionStack,
                        false
                    ].concat(_lastArgs));
                }
                function report(ex, rethrow) {
                    var args = _slice.call(arguments, 1);
                    if (lastExceptionStack) {
                        if (lastException === ex) {
                            return;
                        } else {
                            processLastException();
                        }
                    }
                    var stack = TraceKit.computeStackTrace(ex);
                    lastExceptionStack = stack;
                    lastException = ex;
                    lastArgs = args;
                    setTimeout(function() {
                        if (lastException === ex) {
                            processLastException();
                        }
                    }, stack.incomplete ? 2e3 : 0);
                    if (rethrow !== false) {
                        throw ex;
                    }
                }
                report.subscribe = subscribe;
                report.unsubscribe = unsubscribe;
                report.uninstall = unsubscribeAll;
                return report;
            }();
            TraceKit.computeStackTrace = function computeStackTraceWrapper() {
                function computeStackTraceFromStackProp(ex) {
                    if (typeof ex.stack === "undefined" || !ex.stack) return;
                    var chrome2 = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
                    var winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
                    var gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i;
                    var geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
                    var chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/;
                    var lines = ex.stack.split("\n");
                    var stack = [];
                    var submatch;
                    var parts;
                    var element;
                    var reference = /^(.*) is undefined$/.exec(ex.message);
                    for(var i = 0, j = lines.length; i < j; ++i){
                        if (parts = chrome2.exec(lines[i])) {
                            var isNative = parts[2] && parts[2].indexOf("native") === 0;
                            var isEval = parts[2] && parts[2].indexOf("eval") === 0;
                            if (isEval && (submatch = chromeEval.exec(parts[2]))) {
                                parts[2] = submatch[1];
                                parts[3] = submatch[2];
                                parts[4] = submatch[3];
                            }
                            element = {
                                url: !isNative ? parts[2] : null,
                                func: parts[1] || UNKNOWN_FUNCTION,
                                args: isNative ? [
                                    parts[2]
                                ] : [],
                                line: parts[3] ? +parts[3] : null,
                                column: parts[4] ? +parts[4] : null
                            };
                        } else if (parts = winjs.exec(lines[i])) {
                            element = {
                                url: parts[2],
                                func: parts[1] || UNKNOWN_FUNCTION,
                                args: [],
                                line: +parts[3],
                                column: parts[4] ? +parts[4] : null
                            };
                        } else if (parts = gecko.exec(lines[i])) {
                            var isEval = parts[3] && parts[3].indexOf(" > eval") > -1;
                            if (isEval && (submatch = geckoEval.exec(parts[3]))) {
                                parts[3] = submatch[1];
                                parts[4] = submatch[2];
                                parts[5] = null;
                            } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== "undefined") {
                                stack[0].column = ex.columnNumber + 1;
                            }
                            element = {
                                url: parts[3],
                                func: parts[1] || UNKNOWN_FUNCTION,
                                args: parts[2] ? parts[2].split(",") : [],
                                line: parts[4] ? +parts[4] : null,
                                column: parts[5] ? +parts[5] : null
                            };
                        } else {
                            continue;
                        }
                        if (!element.func && element.line) {
                            element.func = UNKNOWN_FUNCTION;
                        }
                        if (element.url && element.url.substr(0, 5) === "blob:") {
                            var xhr = new XMLHttpRequest();
                            xhr.open("GET", element.url, false);
                            xhr.send(null);
                            if (xhr.status === 200) {
                                var source = xhr.responseText || "";
                                source = source.slice(-300);
                                var sourceMaps = source.match(/\/\/# sourceMappingURL=(.*)$/);
                                if (sourceMaps) {
                                    var sourceMapAddress = sourceMaps[1];
                                    if (sourceMapAddress.charAt(0) === "~") {
                                        sourceMapAddress = getLocationOrigin() + sourceMapAddress.slice(1);
                                    }
                                    element.url = sourceMapAddress.slice(0, -4);
                                }
                            }
                        }
                        stack.push(element);
                    }
                    if (!stack.length) {
                        return null;
                    }
                    return {
                        name: ex.name,
                        message: ex.message,
                        url: getLocationHref(),
                        stack: stack
                    };
                }
                function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message2) {
                    var initial = {
                        url: url,
                        line: lineNo
                    };
                    if (initial.url && initial.line) {
                        stackInfo.incomplete = false;
                        if (!initial.func) {
                            initial.func = UNKNOWN_FUNCTION;
                        }
                        if (stackInfo.stack.length > 0) {
                            if (stackInfo.stack[0].url === initial.url) {
                                if (stackInfo.stack[0].line === initial.line) {
                                    return false;
                                } else if (!stackInfo.stack[0].line && stackInfo.stack[0].func === initial.func) {
                                    stackInfo.stack[0].line = initial.line;
                                    return false;
                                }
                            }
                        }
                        stackInfo.stack.unshift(initial);
                        stackInfo.partial = true;
                        return true;
                    } else {
                        stackInfo.incomplete = true;
                    }
                    return false;
                }
                function computeStackTraceByWalkingCallerChain(ex, depth) {
                    var functionName = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i, stack = [], funcs = {}, recursion = false, parts, item, source;
                    for(var curr = computeStackTraceByWalkingCallerChain.caller; curr && !recursion; curr = curr.caller){
                        if (curr === computeStackTrace || curr === TraceKit.report) {
                            continue;
                        }
                        item = {
                            url: null,
                            func: UNKNOWN_FUNCTION,
                            line: null,
                            column: null
                        };
                        if (curr.name) {
                            item.func = curr.name;
                        } else if (parts = functionName.exec(curr.toString())) {
                            item.func = parts[1];
                        }
                        if (typeof item.func === "undefined") {
                            try {
                                item.func = parts.input.substring(0, parts.input.indexOf("{"));
                            } catch (e) {}
                        }
                        if (funcs["" + curr]) {
                            recursion = true;
                        } else {
                            funcs["" + curr] = true;
                        }
                        stack.push(item);
                    }
                    if (depth) {
                        stack.splice(0, depth);
                    }
                    var result17 = {
                        name: ex.name,
                        message: ex.message,
                        url: getLocationHref(),
                        stack: stack
                    };
                    augmentStackTraceWithInitialElement(result17, ex.sourceURL || ex.fileName, ex.line || ex.lineNumber, ex.message || ex.description);
                    return result17;
                }
                function computeStackTrace(ex, depth) {
                    var stack = null;
                    depth = depth == null ? 0 : +depth;
                    try {
                        stack = computeStackTraceFromStackProp(ex);
                        if (stack) {
                            return stack;
                        }
                    } catch (e) {
                        if (TraceKit.debug) {
                            throw e;
                        }
                    }
                    try {
                        stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);
                        if (stack) {
                            return stack;
                        }
                    } catch (e) {
                        if (TraceKit.debug) {
                            throw e;
                        }
                    }
                    return {
                        name: ex.name,
                        message: ex.message,
                        url: getLocationHref()
                    };
                }
                computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;
                computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;
                return computeStackTrace;
            }();
            module.exports = TraceKit;
        }
    });
    // node_modules/raven-js/vendor/md5/md5.js
    var require_md53 = __commonJS({
        "node_modules/raven-js/vendor/md5/md5.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function safeAdd(x, y) {
                var lsw = (x & 65535) + (y & 65535);
                var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
                return msw << 16 | lsw & 65535;
            }
            function bitRotateLeft(num, cnt) {
                return num << cnt | num >>> 32 - cnt;
            }
            function md5cmn(q, a, b, x, s, t) {
                return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
            }
            function md5ff(a, b, c, d, x, s, t) {
                return md5cmn(b & c | ~b & d, a, b, x, s, t);
            }
            function md5gg(a, b, c, d, x, s, t) {
                return md5cmn(b & d | c & ~d, a, b, x, s, t);
            }
            function md5hh(a, b, c, d, x, s, t) {
                return md5cmn(b ^ c ^ d, a, b, x, s, t);
            }
            function md5ii(a, b, c, d, x, s, t) {
                return md5cmn(c ^ (b | ~d), a, b, x, s, t);
            }
            function binlMD5(x, len) {
                x[len >> 5] |= 128 << len % 32;
                x[(len + 64 >>> 9 << 4) + 14] = len;
                var i;
                var olda;
                var oldb;
                var oldc;
                var oldd;
                var a = 1732584193;
                var b = -271733879;
                var c = -1732584194;
                var d = 271733878;
                for(i = 0; i < x.length; i += 16){
                    olda = a;
                    oldb = b;
                    oldc = c;
                    oldd = d;
                    a = md5ff(a, b, c, d, x[i], 7, -680876936);
                    d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
                    c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
                    b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
                    a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
                    d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
                    c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
                    b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
                    a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
                    d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
                    c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
                    b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
                    a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
                    d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
                    c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
                    b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
                    a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
                    d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
                    c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
                    b = md5gg(b, c, d, a, x[i], 20, -373897302);
                    a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
                    d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
                    c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
                    b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
                    a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
                    d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
                    c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
                    b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
                    a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
                    d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
                    c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
                    b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
                    a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
                    d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
                    c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
                    b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
                    a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
                    d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
                    c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
                    b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
                    a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
                    d = md5hh(d, a, b, c, x[i], 11, -358537222);
                    c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
                    b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
                    a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
                    d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
                    c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
                    b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
                    a = md5ii(a, b, c, d, x[i], 6, -198630844);
                    d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
                    c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
                    b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
                    a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
                    d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
                    c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
                    b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
                    a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
                    d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
                    c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
                    b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
                    a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
                    d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
                    c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
                    b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
                    a = safeAdd(a, olda);
                    b = safeAdd(b, oldb);
                    c = safeAdd(c, oldc);
                    d = safeAdd(d, oldd);
                }
                return [
                    a,
                    b,
                    c,
                    d
                ];
            }
            function binl2rstr(input) {
                var i;
                var output = "";
                var length32 = input.length * 32;
                for(i = 0; i < length32; i += 8){
                    output += String.fromCharCode(input[i >> 5] >>> i % 32 & 255);
                }
                return output;
            }
            function rstr2binl(input) {
                var i;
                var output = [];
                output[(input.length >> 2) - 1] = void 0;
                for(i = 0; i < output.length; i += 1){
                    output[i] = 0;
                }
                var length8 = input.length * 8;
                for(i = 0; i < length8; i += 8){
                    output[i >> 5] |= (input.charCodeAt(i / 8) & 255) << i % 32;
                }
                return output;
            }
            function rstrMD5(s) {
                return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));
            }
            function rstrHMACMD5(key, data) {
                var i;
                var bkey = rstr2binl(key);
                var ipad = [];
                var opad = [];
                var hash;
                ipad[15] = opad[15] = void 0;
                if (bkey.length > 16) {
                    bkey = binlMD5(bkey, key.length * 8);
                }
                for(i = 0; i < 16; i += 1){
                    ipad[i] = bkey[i] ^ 909522486;
                    opad[i] = bkey[i] ^ 1549556828;
                }
                hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
                return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
            }
            function rstr2hex(input) {
                var hexTab = "0123456789abcdef";
                var output = "";
                var x;
                var i;
                for(i = 0; i < input.length; i += 1){
                    x = input.charCodeAt(i);
                    output += hexTab.charAt(x >>> 4 & 15) + hexTab.charAt(x & 15);
                }
                return output;
            }
            function str2rstrUTF8(input) {
                return unescape(encodeURIComponent(input));
            }
            function rawMD5(s) {
                return rstrMD5(str2rstrUTF8(s));
            }
            function hexMD5(s) {
                return rstr2hex(rawMD5(s));
            }
            function rawHMACMD5(k, d) {
                return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));
            }
            function hexHMACMD5(k, d) {
                return rstr2hex(rawHMACMD5(k, d));
            }
            function md5(string5, key, raw) {
                if (!key) {
                    if (!raw) {
                        return hexMD5(string5);
                    }
                    return rawMD5(string5);
                }
                if (!raw) {
                    return hexHMACMD5(key, string5);
                }
                return rawHMACMD5(key, string5);
            }
            module.exports = md5;
        }
    });
    // node_modules/raven-js/src/configError.js
    var require_configError = __commonJS({
        "node_modules/raven-js/src/configError.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function RavenConfigError(message2) {
                this.name = "RavenConfigError";
                this.message = message2;
            }
            RavenConfigError.prototype = new Error();
            RavenConfigError.prototype.constructor = RavenConfigError;
            module.exports = RavenConfigError;
        }
    });
    // node_modules/raven-js/src/console.js
    var require_console = __commonJS({
        "node_modules/raven-js/src/console.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var utils = require_utils7();
            var wrapMethod = function wrapMethod(console2, level, callback) {
                var originalConsoleLevel = console2[level];
                var originalConsole = console2;
                if (!(level in console2)) {
                    return;
                }
                var sentryLevel = level === "warn" ? "warning" : level;
                console2[level] = function() {
                    var args = [].slice.call(arguments);
                    var msg = utils.safeJoin(args, " ");
                    var data = {
                        level: sentryLevel,
                        logger: "console",
                        extra: {
                            arguments: args
                        }
                    };
                    if (level === "assert") {
                        if (args[0] === false) {
                            msg = "Assertion failed: " + (utils.safeJoin(args.slice(1), " ") || "console.assert");
                            data.extra["arguments"] = args.slice(1);
                            callback && callback(msg, data);
                        }
                    } else {
                        callback && callback(msg, data);
                    }
                    if (originalConsoleLevel) {
                        Function.prototype.apply.call(originalConsoleLevel, originalConsole, args);
                    }
                };
            };
            module.exports = {
                wrapMethod: wrapMethod
            };
        }
    });
    // node_modules/raven-js/src/raven.js
    var require_raven = __commonJS({
        "node_modules/raven-js/src/raven.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var TraceKit = require_tracekit();
            var stringify = require_stringify2();
            var md5 = require_md53();
            var RavenConfigError = require_configError();
            var utils = require_utils7();
            var isErrorEvent = utils.isErrorEvent;
            var isDOMError = utils.isDOMError;
            var isDOMException = utils.isDOMException;
            var isError = utils.isError;
            var isObject2 = utils.isObject;
            var isPlainObject = utils.isPlainObject;
            var isUndefined2 = utils.isUndefined;
            var isFunction = utils.isFunction;
            var isString = utils.isString;
            var isArray = utils.isArray;
            var isEmptyObject = utils.isEmptyObject;
            var each = utils.each;
            var objectMerge = utils.objectMerge;
            var truncate = utils.truncate;
            var objectFrozen = utils.objectFrozen;
            var hasKey = utils.hasKey;
            var joinRegExp = utils.joinRegExp;
            var urlencode = utils.urlencode;
            var uuid4 = utils.uuid4;
            var htmlTreeAsString = utils.htmlTreeAsString;
            var isSameException = utils.isSameException;
            var isSameStacktrace = utils.isSameStacktrace;
            var parseUrl = utils.parseUrl;
            var fill = utils.fill;
            var supportsFetch = utils.supportsFetch;
            var supportsReferrerPolicy = utils.supportsReferrerPolicy;
            var serializeKeysForMessage = utils.serializeKeysForMessage;
            var serializeException = utils.serializeException;
            var sanitize = utils.sanitize;
            var wrapConsoleMethod = require_console().wrapMethod;
            var dsnKeys = "source protocol user pass host port path".split(" ");
            var dsnPattern = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/;
            function now2() {
                return +/* @__PURE__ */ new Date();
            }
            var _window = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : {};
            var _document = _window.document;
            var _navigator = _window.navigator;
            function keepOriginalCallback(original, callback) {
                return isFunction(callback) ? function(data) {
                    return callback(data, original);
                } : callback;
            }
            function Raven() {
                this._hasJSON = !!((typeof JSON === "undefined" ? "undefined" : _type_of(JSON)) === "object" && JSON.stringify);
                this._hasDocument = !isUndefined2(_document);
                this._hasNavigator = !isUndefined2(_navigator);
                this._lastCapturedException = null;
                this._lastData = null;
                this._lastEventId = null;
                this._globalServer = null;
                this._globalKey = null;
                this._globalProject = null;
                this._globalContext = {};
                this._globalOptions = {
                    // SENTRY_RELEASE can be injected by https://github.com/getsentry/sentry-webpack-plugin
                    release: _window.SENTRY_RELEASE && _window.SENTRY_RELEASE.id,
                    logger: "javascript",
                    ignoreErrors: [],
                    ignoreUrls: [],
                    whitelistUrls: [],
                    includePaths: [],
                    headers: null,
                    collectWindowErrors: true,
                    captureUnhandledRejections: true,
                    maxMessageLength: 0,
                    // By default, truncates URL values to 250 chars
                    maxUrlLength: 250,
                    stackTraceLimit: 50,
                    autoBreadcrumbs: true,
                    instrument: true,
                    sampleRate: 1,
                    sanitizeKeys: []
                };
                this._fetchDefaults = {
                    method: "POST",
                    // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default
                    // https://caniuse.com/#feat=referrer-policy
                    // It doesn't. And it throw exception instead of ignoring this parameter...
                    // REF: https://github.com/getsentry/raven-js/issues/1233
                    referrerPolicy: supportsReferrerPolicy() ? "origin" : ""
                };
                this._ignoreOnError = 0;
                this._isRavenInstalled = false;
                this._originalErrorStackTraceLimit = Error.stackTraceLimit;
                this._originalConsole = _window.console || {};
                this._originalConsoleMethods = {};
                this._plugins = [];
                this._startTime = now2();
                this._wrappedBuiltIns = [];
                this._breadcrumbs = [];
                this._lastCapturedEvent = null;
                this._keypressTimeout;
                this._location = _window.location;
                this._lastHref = this._location && this._location.href;
                this._resetBackoff();
                for(var method in this._originalConsole){
                    this._originalConsoleMethods[method] = this._originalConsole[method];
                }
            }
            Raven.prototype = {
                // Hardcode version string so that raven source can be loaded directly via
                // webpack (using a build step causes webpack #1617). Grunt verifies that
                // this value matches package.json during build.
                //   See: https://github.com/getsentry/raven-js/issues/465
                VERSION: "3.27.2",
                debug: false,
                TraceKit: TraceKit,
                // alias to TraceKit
                /*
           * Configure Raven with a DSN and extra options
           *
           * @param {string} dsn The public Sentry DSN
           * @param {object} options Set of global options [optional]
           * @return {Raven}
           */ config: function config(dsn, options) {
                    var self2 = this;
                    if (self2._globalServer) {
                        this._logDebug("error", "Error: Raven has already been configured");
                        return self2;
                    }
                    if (!dsn) return self2;
                    var globalOptions = self2._globalOptions;
                    if (options) {
                        each(options, function(key, value) {
                            if (key === "tags" || key === "extra" || key === "user") {
                                self2._globalContext[key] = value;
                            } else {
                                globalOptions[key] = value;
                            }
                        });
                    }
                    self2.setDSN(dsn);
                    globalOptions.ignoreErrors.push(/^Script error\.?$/);
                    globalOptions.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/);
                    globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors);
                    globalOptions.ignoreUrls = globalOptions.ignoreUrls.length ? joinRegExp(globalOptions.ignoreUrls) : false;
                    globalOptions.whitelistUrls = globalOptions.whitelistUrls.length ? joinRegExp(globalOptions.whitelistUrls) : false;
                    globalOptions.includePaths = joinRegExp(globalOptions.includePaths);
                    globalOptions.maxBreadcrumbs = Math.max(0, Math.min(globalOptions.maxBreadcrumbs || 100, 100));
                    var autoBreadcrumbDefaults = {
                        xhr: true,
                        console: true,
                        dom: true,
                        location: true,
                        sentry: true
                    };
                    var autoBreadcrumbs = globalOptions.autoBreadcrumbs;
                    if (({}).toString.call(autoBreadcrumbs) === "[object Object]") {
                        autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs);
                    } else if (autoBreadcrumbs !== false) {
                        autoBreadcrumbs = autoBreadcrumbDefaults;
                    }
                    globalOptions.autoBreadcrumbs = autoBreadcrumbs;
                    var instrumentDefaults = {
                        tryCatch: true
                    };
                    var instrument = globalOptions.instrument;
                    if (({}).toString.call(instrument) === "[object Object]") {
                        instrument = objectMerge(instrumentDefaults, instrument);
                    } else if (instrument !== false) {
                        instrument = instrumentDefaults;
                    }
                    globalOptions.instrument = instrument;
                    TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors;
                    return self2;
                },
                /*
           * Installs a global window.onerror error handler
           * to capture and report uncaught exceptions.
           * At this point, install() is required to be called due
           * to the way TraceKit is set up.
           *
           * @return {Raven}
           */ install: function install() {
                    var self2 = this;
                    if (self2.isSetup() && !self2._isRavenInstalled) {
                        TraceKit.report.subscribe(function() {
                            self2._handleOnErrorStackInfo.apply(self2, arguments);
                        });
                        if (self2._globalOptions.captureUnhandledRejections) {
                            self2._attachPromiseRejectionHandler();
                        }
                        self2._patchFunctionToString();
                        if (self2._globalOptions.instrument && self2._globalOptions.instrument.tryCatch) {
                            self2._instrumentTryCatch();
                        }
                        if (self2._globalOptions.autoBreadcrumbs) self2._instrumentBreadcrumbs();
                        self2._drainPlugins();
                        self2._isRavenInstalled = true;
                    }
                    Error.stackTraceLimit = self2._globalOptions.stackTraceLimit;
                    return this;
                },
                /*
           * Set the DSN (can be called multiple time unlike config)
           *
           * @param {string} dsn The public Sentry DSN
           */ setDSN: function setDSN(dsn) {
                    var self2 = this, uri = self2._parseDSN(dsn), lastSlash = uri.path.lastIndexOf("/"), path2 = uri.path.substr(1, lastSlash);
                    self2._dsn = dsn;
                    self2._globalKey = uri.user;
                    self2._globalSecret = uri.pass && uri.pass.substr(1);
                    self2._globalProject = uri.path.substr(lastSlash + 1);
                    self2._globalServer = self2._getGlobalServer(uri);
                    self2._globalEndpoint = self2._globalServer + "/" + path2 + "api/" + self2._globalProject + "/store/";
                    this._resetBackoff();
                },
                /*
           * Wrap code within a context so Raven can capture errors
           * reliably across domains that is executed immediately.
           *
           * @param {object} options A specific set of options for this context [optional]
           * @param {function} func The callback to be immediately executed within the context
           * @param {array} args An array of arguments to be called with the callback [optional]
           */ context: function context(options, func3, args) {
                    if (isFunction(options)) {
                        args = func3 || [];
                        func3 = options;
                        options = {};
                    }
                    return this.wrap(options, func3).apply(this, args);
                },
                /*
           * Wrap code within a context and returns back a new function to be executed
           *
           * @param {object} options A specific set of options for this context [optional]
           * @param {function} func The function to be wrapped in a new context
           * @param {function} _before A function to call before the try/catch wrapper [optional, private]
           * @return {function} The newly wrapped functions with a context
           */ wrap: function wrap(options, func3, _before) {
                    var self2 = this;
                    if (isUndefined2(func3) && !isFunction(options)) {
                        return options;
                    }
                    if (isFunction(options)) {
                        func3 = options;
                        options = void 0;
                    }
                    if (!isFunction(func3)) {
                        return func3;
                    }
                    try {
                        if (func3.__raven__) {
                            return func3;
                        }
                        if (func3.__raven_wrapper__) {
                            return func3.__raven_wrapper__;
                        }
                    } catch (e) {
                        return func3;
                    }
                    function wrapped() {
                        var args = [], i = arguments.length, deep = !options || options && options.deep !== false;
                        if (_before && isFunction(_before)) {
                            _before.apply(this, arguments);
                        }
                        while(i--)args[i] = deep ? self2.wrap(options, arguments[i]) : arguments[i];
                        try {
                            return func3.apply(this, args);
                        } catch (e) {
                            self2._ignoreNextOnError();
                            self2.captureException(e, options);
                            throw e;
                        }
                    }
                    for(var property in func3){
                        if (hasKey(func3, property)) {
                            wrapped[property] = func3[property];
                        }
                    }
                    wrapped.prototype = func3.prototype;
                    func3.__raven_wrapper__ = wrapped;
                    wrapped.__raven__ = true;
                    wrapped.__orig__ = func3;
                    return wrapped;
                },
                /**
         * Uninstalls the global error handler.
         *
         * @return {Raven}
         */ uninstall: function uninstall() {
                    TraceKit.report.uninstall();
                    this._detachPromiseRejectionHandler();
                    this._unpatchFunctionToString();
                    this._restoreBuiltIns();
                    this._restoreConsole();
                    Error.stackTraceLimit = this._originalErrorStackTraceLimit;
                    this._isRavenInstalled = false;
                    return this;
                },
                /**
         * Callback used for `unhandledrejection` event
         *
         * @param {PromiseRejectionEvent} event An object containing
         *   promise: the Promise that was rejected
         *   reason: the value with which the Promise was rejected
         * @return void
         */ _promiseRejectionHandler: function _promiseRejectionHandler(event) {
                    this._logDebug("debug", "Raven caught unhandled promise rejection:", event);
                    this.captureException(event.reason, {
                        mechanism: {
                            type: "onunhandledrejection",
                            handled: false
                        }
                    });
                },
                /**
         * Installs the global promise rejection handler.
         *
         * @return {raven}
         */ _attachPromiseRejectionHandler: function _attachPromiseRejectionHandler() {
                    this._promiseRejectionHandler = this._promiseRejectionHandler.bind(this);
                    _window.addEventListener && _window.addEventListener("unhandledrejection", this._promiseRejectionHandler);
                    return this;
                },
                /**
         * Uninstalls the global promise rejection handler.
         *
         * @return {raven}
         */ _detachPromiseRejectionHandler: function _detachPromiseRejectionHandler() {
                    _window.removeEventListener && _window.removeEventListener("unhandledrejection", this._promiseRejectionHandler);
                    return this;
                },
                /**
         * Manually capture an exception and send it over to Sentry
         *
         * @param {error} ex An exception to be logged
         * @param {object} options A specific set of options for this error [optional]
         * @return {Raven}
         */ captureException: function captureException(ex, options) {
                    options = objectMerge({
                        trimHeadFrames: 0
                    }, options ? options : {});
                    if (isErrorEvent(ex) && ex.error) {
                        ex = ex.error;
                    } else if (isDOMError(ex) || isDOMException(ex)) {
                        var name = ex.name || (isDOMError(ex) ? "DOMError" : "DOMException");
                        var message2 = ex.message ? name + ": " + ex.message : name;
                        return this.captureMessage(message2, objectMerge(options, {
                            // neither DOMError or DOMException provide stack trace and we most likely wont get it this way as well
                            // but it's barely any overhead so we may at least try
                            stacktrace: true,
                            trimHeadFrames: options.trimHeadFrames + 1
                        }));
                    } else if (isError(ex)) {
                        ex = ex;
                    } else if (isPlainObject(ex)) {
                        options = this._getCaptureExceptionOptionsFromPlainObject(options, ex);
                        ex = new Error(options.message);
                    } else {
                        return this.captureMessage(ex, objectMerge(options, {
                            stacktrace: true,
                            // if we fall back to captureMessage, default to attempting a new trace
                            trimHeadFrames: options.trimHeadFrames + 1
                        }));
                    }
                    this._lastCapturedException = ex;
                    try {
                        var stack = TraceKit.computeStackTrace(ex);
                        this._handleStackInfo(stack, options);
                    } catch (ex1) {
                        if (ex !== ex1) {
                            throw ex1;
                        }
                    }
                    return this;
                },
                _getCaptureExceptionOptionsFromPlainObject: function _getCaptureExceptionOptionsFromPlainObject(currentOptions, ex) {
                    var exKeys = Object.keys(ex).sort();
                    var options = objectMerge(currentOptions, {
                        message: "Non-Error exception captured with keys: " + serializeKeysForMessage(exKeys),
                        fingerprint: [
                            md5(exKeys)
                        ],
                        extra: currentOptions.extra || {}
                    });
                    options.extra.__serialized__ = serializeException(ex);
                    return options;
                },
                /*
           * Manually send a message to Sentry
           *
           * @param {string} msg A plain message to be captured in Sentry
           * @param {object} options A specific set of options for this message [optional]
           * @return {Raven}
           */ captureMessage: function captureMessage(msg, options) {
                    if (!!this._globalOptions.ignoreErrors.test && this._globalOptions.ignoreErrors.test(msg)) {
                        return;
                    }
                    options = options || {};
                    msg = msg + "";
                    var data = objectMerge({
                        message: msg
                    }, options);
                    var ex;
                    try {
                        throw new Error(msg);
                    } catch (ex1) {
                        ex = ex1;
                    }
                    ex.name = null;
                    var stack = TraceKit.computeStackTrace(ex);
                    var initialCall = isArray(stack.stack) && stack.stack[1];
                    if (initialCall && initialCall.func === "Raven.captureException") {
                        initialCall = stack.stack[2];
                    }
                    var fileurl = initialCall && initialCall.url || "";
                    if (!!this._globalOptions.ignoreUrls.test && this._globalOptions.ignoreUrls.test(fileurl)) {
                        return;
                    }
                    if (!!this._globalOptions.whitelistUrls.test && !this._globalOptions.whitelistUrls.test(fileurl)) {
                        return;
                    }
                    if (this._globalOptions.stacktrace || options.stacktrace || data.message === "") {
                        data.fingerprint = data.fingerprint == null ? msg : data.fingerprint;
                        options = objectMerge({
                            trimHeadFrames: 0
                        }, options);
                        options.trimHeadFrames += 1;
                        var frames = this._prepareFrames(stack, options);
                        data.stacktrace = {
                            // Sentry expects frames oldest to newest
                            frames: frames.reverse()
                        };
                    }
                    if (data.fingerprint) {
                        data.fingerprint = isArray(data.fingerprint) ? data.fingerprint : [
                            data.fingerprint
                        ];
                    }
                    this._send(data);
                    return this;
                },
                captureBreadcrumb: function captureBreadcrumb(obj) {
                    var crumb = objectMerge({
                        timestamp: now2() / 1e3
                    }, obj);
                    if (isFunction(this._globalOptions.breadcrumbCallback)) {
                        var result17 = this._globalOptions.breadcrumbCallback(crumb);
                        if (isObject2(result17) && !isEmptyObject(result17)) {
                            crumb = result17;
                        } else if (result17 === false) {
                            return this;
                        }
                    }
                    this._breadcrumbs.push(crumb);
                    if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) {
                        this._breadcrumbs.shift();
                    }
                    return this;
                },
                addPlugin: function addPlugin(plugin) {
                    var pluginArgs = [].slice.call(arguments, 1);
                    this._plugins.push([
                        plugin,
                        pluginArgs
                    ]);
                    if (this._isRavenInstalled) {
                        this._drainPlugins();
                    }
                    return this;
                },
                /*
           * Set/clear a user to be sent along with the payload.
           *
           * @param {object} user An object representing user data [optional]
           * @return {Raven}
           */ setUserContext: function setUserContext(user) {
                    this._globalContext.user = user;
                    return this;
                },
                /*
           * Merge extra attributes to be sent along with the payload.
           *
           * @param {object} extra An object representing extra data [optional]
           * @return {Raven}
           */ setExtraContext: function setExtraContext(extra) {
                    this._mergeContext("extra", extra);
                    return this;
                },
                /*
           * Merge tags to be sent along with the payload.
           *
           * @param {object} tags An object representing tags [optional]
           * @return {Raven}
           */ setTagsContext: function setTagsContext(tags) {
                    this._mergeContext("tags", tags);
                    return this;
                },
                /*
           * Clear all of the context.
           *
           * @return {Raven}
           */ clearContext: function clearContext() {
                    this._globalContext = {};
                    return this;
                },
                /*
           * Get a copy of the current context. This cannot be mutated.
           *
           * @return {object} copy of context
           */ getContext: function getContext() {
                    return JSON.parse(stringify(this._globalContext));
                },
                /*
           * Set environment of application
           *
           * @param {string} environment Typically something like 'production'.
           * @return {Raven}
           */ setEnvironment: function setEnvironment(environment) {
                    this._globalOptions.environment = environment;
                    return this;
                },
                /*
           * Set release version of application
           *
           * @param {string} release Typically something like a git SHA to identify version
           * @return {Raven}
           */ setRelease: function setRelease(release2) {
                    this._globalOptions.release = release2;
                    return this;
                },
                /*
           * Set the dataCallback option
           *
           * @param {function} callback The callback to run which allows the
           *                            data blob to be mutated before sending
           * @return {Raven}
           */ setDataCallback: function setDataCallback(callback) {
                    var original = this._globalOptions.dataCallback;
                    this._globalOptions.dataCallback = keepOriginalCallback(original, callback);
                    return this;
                },
                /*
           * Set the breadcrumbCallback option
           *
           * @param {function} callback The callback to run which allows filtering
           *                            or mutating breadcrumbs
           * @return {Raven}
           */ setBreadcrumbCallback: function setBreadcrumbCallback(callback) {
                    var original = this._globalOptions.breadcrumbCallback;
                    this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback);
                    return this;
                },
                /*
           * Set the shouldSendCallback option
           *
           * @param {function} callback The callback to run which allows
           *                            introspecting the blob before sending
           * @return {Raven}
           */ setShouldSendCallback: function setShouldSendCallback(callback) {
                    var original = this._globalOptions.shouldSendCallback;
                    this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback);
                    return this;
                },
                /**
         * Override the default HTTP transport mechanism that transmits data
         * to the Sentry server.
         *
         * @param {function} transport Function invoked instead of the default
         *                             `makeRequest` handler.
         *
         * @return {Raven}
         */ setTransport: function setTransport(transport) {
                    this._globalOptions.transport = transport;
                    return this;
                },
                /*
           * Get the latest raw exception that was captured by Raven.
           *
           * @return {error}
           */ lastException: function lastException() {
                    return this._lastCapturedException;
                },
                /*
           * Get the last event id
           *
           * @return {string}
           */ lastEventId: function lastEventId() {
                    return this._lastEventId;
                },
                /*
           * Determine if Raven is setup and ready to go.
           *
           * @return {boolean}
           */ isSetup: function isSetup() {
                    if (!this._hasJSON) return false;
                    if (!this._globalServer) {
                        if (!this.ravenNotConfiguredError) {
                            this.ravenNotConfiguredError = true;
                            this._logDebug("error", "Error: Raven has not been configured.");
                        }
                        return false;
                    }
                    return true;
                },
                afterLoad: function afterLoad() {
                    var RavenConfig = _window.RavenConfig;
                    if (RavenConfig) {
                        this.config(RavenConfig.dsn, RavenConfig.config).install();
                    }
                },
                showReportDialog: function showReportDialog(options) {
                    if (!_document) return;
                    options = objectMerge({
                        eventId: this.lastEventId(),
                        dsn: this._dsn,
                        user: this._globalContext.user || {}
                    }, options);
                    if (!options.eventId) {
                        throw new RavenConfigError("Missing eventId");
                    }
                    if (!options.dsn) {
                        throw new RavenConfigError("Missing DSN");
                    }
                    var encode3 = encodeURIComponent;
                    var encodedOptions = [];
                    for(var key in options){
                        if (key === "user") {
                            var user = options.user;
                            if (user.name) encodedOptions.push("name=" + encode3(user.name));
                            if (user.email) encodedOptions.push("email=" + encode3(user.email));
                        } else {
                            encodedOptions.push(encode3(key) + "=" + encode3(options[key]));
                        }
                    }
                    var globalServer = this._getGlobalServer(this._parseDSN(options.dsn));
                    var script = _document.createElement("script");
                    script.async = true;
                    script.src = globalServer + "/api/embed/error-page/?" + encodedOptions.join("&");
                    (_document.head || _document.body).appendChild(script);
                },
                /**** Private functions ****/ _ignoreNextOnError: function _ignoreNextOnError() {
                    var self2 = this;
                    this._ignoreOnError += 1;
                    setTimeout(function() {
                        self2._ignoreOnError -= 1;
                    });
                },
                _triggerEvent: function _triggerEvent(eventType, options) {
                    var evt, key;
                    if (!this._hasDocument) return;
                    options = options || {};
                    eventType = "raven" + eventType.substr(0, 1).toUpperCase() + eventType.substr(1);
                    if (_document.createEvent) {
                        evt = _document.createEvent("HTMLEvents");
                        evt.initEvent(eventType, true, true);
                    } else {
                        evt = _document.createEventObject();
                        evt.eventType = eventType;
                    }
                    for(key in options)if (hasKey(options, key)) {
                        evt[key] = options[key];
                    }
                    if (_document.createEvent) {
                        _document.dispatchEvent(evt);
                    } else {
                        try {
                            _document.fireEvent("on" + evt.eventType.toLowerCase(), evt);
                        } catch (e) {}
                    }
                },
                /**
         * Wraps addEventListener to capture UI breadcrumbs
         * @param evtName the event name (e.g. "click")
         * @returns {Function}
         * @private
         */ _breadcrumbEventHandler: function _breadcrumbEventHandler(evtName) {
                    var self2 = this;
                    return function(evt) {
                        self2._keypressTimeout = null;
                        if (self2._lastCapturedEvent === evt) return;
                        self2._lastCapturedEvent = evt;
                        var target;
                        try {
                            target = htmlTreeAsString(evt.target);
                        } catch (e) {
                            target = "<unknown>";
                        }
                        self2.captureBreadcrumb({
                            category: "ui." + evtName,
                            // e.g. ui.click, ui.input
                            message: target
                        });
                    };
                },
                /**
         * Wraps addEventListener to capture keypress UI events
         * @returns {Function}
         * @private
         */ _keypressEventHandler: function _keypressEventHandler() {
                    var self2 = this, debounceDuration = 1e3;
                    return function(evt) {
                        var target;
                        try {
                            target = evt.target;
                        } catch (e) {
                            return;
                        }
                        var tagName = target && target.tagName;
                        if (!tagName || tagName !== "INPUT" && tagName !== "TEXTAREA" && !target.isContentEditable) return;
                        var timeout = self2._keypressTimeout;
                        if (!timeout) {
                            self2._breadcrumbEventHandler("input")(evt);
                        }
                        clearTimeout(timeout);
                        self2._keypressTimeout = setTimeout(function() {
                            self2._keypressTimeout = null;
                        }, debounceDuration);
                    };
                },
                /**
         * Captures a breadcrumb of type "navigation", normalizing input URLs
         * @param to the originating URL
         * @param from the target URL
         * @private
         */ _captureUrlChange: function _captureUrlChange(from, to) {
                    var parsedLoc = parseUrl(this._location.href);
                    var parsedTo = parseUrl(to);
                    var parsedFrom = parseUrl(from);
                    this._lastHref = to;
                    if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) to = parsedTo.relative;
                    if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) from = parsedFrom.relative;
                    this.captureBreadcrumb({
                        category: "navigation",
                        data: {
                            to: to,
                            from: from
                        }
                    });
                },
                _patchFunctionToString: function _patchFunctionToString() {
                    var self2 = this;
                    self2._originalFunctionToString = Function.prototype.toString;
                    Function.prototype.toString = function() {
                        if (typeof this === "function" && this.__raven__) {
                            return self2._originalFunctionToString.apply(this.__orig__, arguments);
                        }
                        return self2._originalFunctionToString.apply(this, arguments);
                    };
                },
                _unpatchFunctionToString: function _unpatchFunctionToString() {
                    if (this._originalFunctionToString) {
                        Function.prototype.toString = this._originalFunctionToString;
                    }
                },
                /**
         * Wrap timer functions and event targets to catch errors and provide
         * better metadata.
         */ _instrumentTryCatch: function _instrumentTryCatch() {
                    var self2 = this;
                    var wrappedBuiltIns = self2._wrappedBuiltIns;
                    function wrapTimeFn(orig) {
                        return function(fn, t) {
                            var args = new Array(arguments.length);
                            for(var i2 = 0; i2 < args.length; ++i2){
                                args[i2] = arguments[i2];
                            }
                            var originalCallback = args[0];
                            if (isFunction(originalCallback)) {
                                args[0] = self2.wrap({
                                    mechanism: {
                                        type: "instrument",
                                        data: {
                                            "function": orig.name || "<anonymous>"
                                        }
                                    }
                                }, originalCallback);
                            }
                            if (orig.apply) {
                                return orig.apply(this, args);
                            } else {
                                return orig(args[0], args[1]);
                            }
                        };
                    }
                    var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;
                    function wrapEventTarget(global2) {
                        var proto = _window[global2] && _window[global2].prototype;
                        if (proto && proto.hasOwnProperty && proto.hasOwnProperty("addEventListener")) {
                            fill(proto, "addEventListener", function(orig) {
                                return function(evtName, fn, capture, secure) {
                                    try {
                                        if (fn && fn.handleEvent) {
                                            fn.handleEvent = self2.wrap({
                                                mechanism: {
                                                    type: "instrument",
                                                    data: {
                                                        target: global2,
                                                        "function": "handleEvent",
                                                        handler: fn && fn.name || "<anonymous>"
                                                    }
                                                }
                                            }, fn.handleEvent);
                                        }
                                    } catch (err) {}
                                    var before, clickHandler, keypressHandler;
                                    if (autoBreadcrumbs && autoBreadcrumbs.dom && (global2 === "EventTarget" || global2 === "Node")) {
                                        clickHandler = self2._breadcrumbEventHandler("click");
                                        keypressHandler = self2._keypressEventHandler();
                                        before = function before(evt) {
                                            if (!evt) return;
                                            var eventType;
                                            try {
                                                eventType = evt.type;
                                            } catch (e) {
                                                return;
                                            }
                                            if (eventType === "click") return clickHandler(evt);
                                            else if (eventType === "keypress") return keypressHandler(evt);
                                        };
                                    }
                                    return orig.call(this, evtName, self2.wrap({
                                        mechanism: {
                                            type: "instrument",
                                            data: {
                                                target: global2,
                                                "function": "addEventListener",
                                                handler: fn && fn.name || "<anonymous>"
                                            }
                                        }
                                    }, fn, before), capture, secure);
                                };
                            }, wrappedBuiltIns);
                            fill(proto, "removeEventListener", function(orig) {
                                return function(evt, fn, capture, secure) {
                                    try {
                                        fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn);
                                    } catch (e) {}
                                    return orig.call(this, evt, fn, capture, secure);
                                };
                            }, wrappedBuiltIns);
                        }
                    }
                    fill(_window, "setTimeout", wrapTimeFn, wrappedBuiltIns);
                    fill(_window, "setInterval", wrapTimeFn, wrappedBuiltIns);
                    if (_window.requestAnimationFrame) {
                        fill(_window, "requestAnimationFrame", function(orig) {
                            return function(cb) {
                                return orig(self2.wrap({
                                    mechanism: {
                                        type: "instrument",
                                        data: {
                                            "function": "requestAnimationFrame",
                                            handler: orig && orig.name || "<anonymous>"
                                        }
                                    }
                                }, cb));
                            };
                        }, wrappedBuiltIns);
                    }
                    var eventTargets = [
                        "EventTarget",
                        "Window",
                        "Node",
                        "ApplicationCache",
                        "AudioTrackList",
                        "ChannelMergerNode",
                        "CryptoOperation",
                        "EventSource",
                        "FileReader",
                        "HTMLUnknownElement",
                        "IDBDatabase",
                        "IDBRequest",
                        "IDBTransaction",
                        "KeyOperation",
                        "MediaController",
                        "MessagePort",
                        "ModalWindow",
                        "Notification",
                        "SVGElementInstance",
                        "Screen",
                        "TextTrack",
                        "TextTrackCue",
                        "TextTrackList",
                        "WebSocket",
                        "WebSocketWorker",
                        "Worker",
                        "XMLHttpRequest",
                        "XMLHttpRequestEventTarget",
                        "XMLHttpRequestUpload"
                    ];
                    for(var i = 0; i < eventTargets.length; i++){
                        wrapEventTarget(eventTargets[i]);
                    }
                },
                /**
         * Instrument browser built-ins w/ breadcrumb capturing
         *  - XMLHttpRequests
         *  - DOM interactions (click/typing)
         *  - window.location changes
         *  - console
         *
         * Can be disabled or individually configured via the `autoBreadcrumbs` config option
         */ _instrumentBreadcrumbs: function _instrumentBreadcrumbs() {
                    var self2 = this;
                    var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;
                    var wrappedBuiltIns = self2._wrappedBuiltIns;
                    function wrapProp(prop, xhr) {
                        if (prop in xhr && isFunction(xhr[prop])) {
                            fill(xhr, prop, function(orig) {
                                return self2.wrap({
                                    mechanism: {
                                        type: "instrument",
                                        data: {
                                            "function": prop,
                                            handler: orig && orig.name || "<anonymous>"
                                        }
                                    }
                                }, orig);
                            });
                        }
                    }
                    if (autoBreadcrumbs.xhr && "XMLHttpRequest" in _window) {
                        var xhrproto = _window.XMLHttpRequest && _window.XMLHttpRequest.prototype;
                        fill(xhrproto, "open", function(origOpen) {
                            return function(method, url) {
                                if (isString(url) && url.indexOf(self2._globalKey) === -1) {
                                    this.__raven_xhr = {
                                        method: method,
                                        url: url,
                                        status_code: null
                                    };
                                }
                                return origOpen.apply(this, arguments);
                            };
                        }, wrappedBuiltIns);
                        fill(xhrproto, "send", function(origSend) {
                            return function() {
                                var xhr = this;
                                function onreadystatechangeHandler() {
                                    if (xhr.__raven_xhr && xhr.readyState === 4) {
                                        try {
                                            xhr.__raven_xhr.status_code = xhr.status;
                                        } catch (e) {}
                                        self2.captureBreadcrumb({
                                            type: "http",
                                            category: "xhr",
                                            data: xhr.__raven_xhr
                                        });
                                    }
                                }
                                var props = [
                                    "onload",
                                    "onerror",
                                    "onprogress"
                                ];
                                for(var j = 0; j < props.length; j++){
                                    wrapProp(props[j], xhr);
                                }
                                if ("onreadystatechange" in xhr && isFunction(xhr.onreadystatechange)) {
                                    fill(xhr, "onreadystatechange", function(orig) {
                                        return self2.wrap({
                                            mechanism: {
                                                type: "instrument",
                                                data: {
                                                    "function": "onreadystatechange",
                                                    handler: orig && orig.name || "<anonymous>"
                                                }
                                            }
                                        }, orig, onreadystatechangeHandler);
                                    });
                                } else {
                                    xhr.onreadystatechange = onreadystatechangeHandler;
                                }
                                return origSend.apply(this, arguments);
                            };
                        }, wrappedBuiltIns);
                    }
                    if (autoBreadcrumbs.xhr && supportsFetch()) {
                        fill(_window, "fetch", function(origFetch) {
                            return function() {
                                var args = new Array(arguments.length);
                                for(var i = 0; i < args.length; ++i){
                                    args[i] = arguments[i];
                                }
                                var fetchInput = args[0];
                                var method = "GET";
                                var url;
                                if (typeof fetchInput === "string") {
                                    url = fetchInput;
                                } else if ("Request" in _window && fetchInput instanceof _window.Request) {
                                    url = fetchInput.url;
                                    if (fetchInput.method) {
                                        method = fetchInput.method;
                                    }
                                } else {
                                    url = "" + fetchInput;
                                }
                                if (url.indexOf(self2._globalKey) !== -1) {
                                    return origFetch.apply(this, args);
                                }
                                if (args[1] && args[1].method) {
                                    method = args[1].method;
                                }
                                var fetchData = {
                                    method: method,
                                    url: url,
                                    status_code: null
                                };
                                return origFetch.apply(this, args).then(function(response) {
                                    fetchData.status_code = response.status;
                                    self2.captureBreadcrumb({
                                        type: "http",
                                        category: "fetch",
                                        data: fetchData
                                    });
                                    return response;
                                })["catch"](function(err) {
                                    self2.captureBreadcrumb({
                                        type: "http",
                                        category: "fetch",
                                        data: fetchData,
                                        level: "error"
                                    });
                                    throw err;
                                });
                            };
                        }, wrappedBuiltIns);
                    }
                    if (autoBreadcrumbs.dom && this._hasDocument) {
                        if (_document.addEventListener) {
                            _document.addEventListener("click", self2._breadcrumbEventHandler("click"), false);
                            _document.addEventListener("keypress", self2._keypressEventHandler(), false);
                        } else if (_document.attachEvent) {
                            _document.attachEvent("onclick", self2._breadcrumbEventHandler("click"));
                            _document.attachEvent("onkeypress", self2._keypressEventHandler());
                        }
                    }
                    var chrome2 = _window.chrome;
                    var isChromePackagedApp = chrome2 && chrome2.app && chrome2.app.runtime;
                    var hasPushAndReplaceState = !isChromePackagedApp && _window.history && _window.history.pushState && _window.history.replaceState;
                    if (autoBreadcrumbs.location && hasPushAndReplaceState) {
                        var oldOnPopState = _window.onpopstate;
                        _window.onpopstate = function() {
                            var currentHref = self2._location.href;
                            self2._captureUrlChange(self2._lastHref, currentHref);
                            if (oldOnPopState) {
                                return oldOnPopState.apply(this, arguments);
                            }
                        };
                        var historyReplacementFunction = function historyReplacementFunction(origHistFunction) {
                            return function() {
                                var url = arguments.length > 2 ? arguments[2] : void 0;
                                if (url) {
                                    self2._captureUrlChange(self2._lastHref, url + "");
                                }
                                return origHistFunction.apply(this, arguments);
                            };
                        };
                        fill(_window.history, "pushState", historyReplacementFunction, wrappedBuiltIns);
                        fill(_window.history, "replaceState", historyReplacementFunction, wrappedBuiltIns);
                    }
                    if (autoBreadcrumbs.console && "console" in _window && console.log) {
                        var consoleMethodCallback = function consoleMethodCallback(msg, data) {
                            self2.captureBreadcrumb({
                                message: msg,
                                level: data.level,
                                category: "console"
                            });
                        };
                        each([
                            "debug",
                            "info",
                            "warn",
                            "error",
                            "log"
                        ], function(_2, level) {
                            wrapConsoleMethod(console, level, consoleMethodCallback);
                        });
                    }
                },
                _restoreBuiltIns: function _restoreBuiltIns() {
                    var builtin;
                    while(this._wrappedBuiltIns.length){
                        builtin = this._wrappedBuiltIns.shift();
                        var obj = builtin[0], name = builtin[1], orig = builtin[2];
                        obj[name] = orig;
                    }
                },
                _restoreConsole: function _restoreConsole() {
                    for(var method in this._originalConsoleMethods){
                        this._originalConsole[method] = this._originalConsoleMethods[method];
                    }
                },
                _drainPlugins: function _drainPlugins() {
                    var self2 = this;
                    each(this._plugins, function(_2, plugin) {
                        var installer = plugin[0];
                        var args = plugin[1];
                        installer.apply(self2, [
                            self2
                        ].concat(args));
                    });
                },
                _parseDSN: function _parseDSN(str) {
                    var m = dsnPattern.exec(str), dsn = {}, i = 7;
                    try {
                        while(i--)dsn[dsnKeys[i]] = m[i] || "";
                    } catch (e) {
                        throw new RavenConfigError("Invalid DSN: " + str);
                    }
                    if (dsn.pass && !this._globalOptions.allowSecretKey) {
                        throw new RavenConfigError("Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key");
                    }
                    return dsn;
                },
                _getGlobalServer: function _getGlobalServer(uri) {
                    var globalServer = "//" + uri.host + (uri.port ? ":" + uri.port : "");
                    if (uri.protocol) {
                        globalServer = uri.protocol + ":" + globalServer;
                    }
                    return globalServer;
                },
                _handleOnErrorStackInfo: function _handleOnErrorStackInfo(stackInfo, options) {
                    options = options || {};
                    options.mechanism = options.mechanism || {
                        type: "onerror",
                        handled: false
                    };
                    if (!this._ignoreOnError) {
                        this._handleStackInfo(stackInfo, options);
                    }
                },
                _handleStackInfo: function _handleStackInfo(stackInfo, options) {
                    var frames = this._prepareFrames(stackInfo, options);
                    this._triggerEvent("handle", {
                        stackInfo: stackInfo,
                        options: options
                    });
                    this._processException(stackInfo.name, stackInfo.message, stackInfo.url, stackInfo.lineno, frames, options);
                },
                _prepareFrames: function _prepareFrames(stackInfo, options) {
                    var self2 = this;
                    var frames = [];
                    if (stackInfo.stack && stackInfo.stack.length) {
                        each(stackInfo.stack, function(i, stack) {
                            var frame = self2._normalizeFrame(stack, stackInfo.url);
                            if (frame) {
                                frames.push(frame);
                            }
                        });
                        if (options && options.trimHeadFrames) {
                            for(var j = 0; j < options.trimHeadFrames && j < frames.length; j++){
                                frames[j].in_app = false;
                            }
                        }
                    }
                    frames = frames.slice(0, this._globalOptions.stackTraceLimit);
                    return frames;
                },
                _normalizeFrame: function _normalizeFrame(frame, stackInfoUrl) {
                    var normalized = {
                        filename: frame.url,
                        lineno: frame.line,
                        colno: frame.column,
                        "function": frame.func || "?"
                    };
                    if (!frame.url) {
                        normalized.filename = stackInfoUrl;
                    }
                    normalized.in_app = !// first we check the global includePaths list.
                    (!!this._globalOptions.includePaths.test && !this._globalOptions.includePaths.test(normalized.filename) || // Now we check for fun, if the function name is Raven or TraceKit
                    /(Raven|TraceKit)\./.test(normalized["function"]) || // finally, we do a last ditch effort and check for raven.min.js
                    /raven\.(min\.)?js$/.test(normalized.filename));
                    return normalized;
                },
                _processException: function _processException(type, message2, fileurl, lineno, frames, options) {
                    var prefixedMessage = (type ? type + ": " : "") + (message2 || "");
                    if (!!this._globalOptions.ignoreErrors.test && (this._globalOptions.ignoreErrors.test(message2) || this._globalOptions.ignoreErrors.test(prefixedMessage))) {
                        return;
                    }
                    var stacktrace;
                    if (frames && frames.length) {
                        fileurl = frames[0].filename || fileurl;
                        frames.reverse();
                        stacktrace = {
                            frames: frames
                        };
                    } else if (fileurl) {
                        stacktrace = {
                            frames: [
                                {
                                    filename: fileurl,
                                    lineno: lineno,
                                    in_app: true
                                }
                            ]
                        };
                    }
                    if (!!this._globalOptions.ignoreUrls.test && this._globalOptions.ignoreUrls.test(fileurl)) {
                        return;
                    }
                    if (!!this._globalOptions.whitelistUrls.test && !this._globalOptions.whitelistUrls.test(fileurl)) {
                        return;
                    }
                    var data = objectMerge({
                        // sentry.interfaces.Exception
                        exception: {
                            values: [
                                {
                                    type: type,
                                    value: message2,
                                    stacktrace: stacktrace
                                }
                            ]
                        },
                        transaction: fileurl
                    }, options);
                    var ex = data.exception.values[0];
                    if (ex.type == null && ex.value === "") {
                        ex.value = "Unrecoverable error caught";
                    }
                    if (!data.exception.mechanism && data.mechanism) {
                        data.exception.mechanism = data.mechanism;
                        delete data.mechanism;
                    }
                    data.exception.mechanism = objectMerge({
                        type: "generic",
                        handled: true
                    }, data.exception.mechanism || {});
                    this._send(data);
                },
                _trimPacket: function _trimPacket(data) {
                    var max = this._globalOptions.maxMessageLength;
                    if (data.message) {
                        data.message = truncate(data.message, max);
                    }
                    if (data.exception) {
                        var exception = data.exception.values[0];
                        exception.value = truncate(exception.value, max);
                    }
                    var request = data.request;
                    if (request) {
                        if (request.url) {
                            request.url = truncate(request.url, this._globalOptions.maxUrlLength);
                        }
                        if (request.Referer) {
                            request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength);
                        }
                    }
                    if (data.breadcrumbs && data.breadcrumbs.values) this._trimBreadcrumbs(data.breadcrumbs);
                    return data;
                },
                /**
         * Truncate breadcrumb values (right now just URLs)
         */ _trimBreadcrumbs: function _trimBreadcrumbs(breadcrumbs) {
                    var urlProps = [
                        "to",
                        "from",
                        "url"
                    ], urlProp, crumb, data;
                    for(var i = 0; i < breadcrumbs.values.length; ++i){
                        crumb = breadcrumbs.values[i];
                        if (!crumb.hasOwnProperty("data") || !isObject2(crumb.data) || objectFrozen(crumb.data)) continue;
                        data = objectMerge({}, crumb.data);
                        for(var j = 0; j < urlProps.length; ++j){
                            urlProp = urlProps[j];
                            if (data.hasOwnProperty(urlProp) && data[urlProp]) {
                                data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength);
                            }
                        }
                        breadcrumbs.values[i].data = data;
                    }
                },
                _getHttpData: function _getHttpData() {
                    if (!this._hasNavigator && !this._hasDocument) return;
                    var httpData = {};
                    if (this._hasNavigator && _navigator.userAgent) {
                        httpData.headers = {
                            "User-Agent": _navigator.userAgent
                        };
                    }
                    if (_window.location && _window.location.href) {
                        httpData.url = _window.location.href;
                    }
                    if (this._hasDocument && _document.referrer) {
                        if (!httpData.headers) httpData.headers = {};
                        httpData.headers.Referer = _document.referrer;
                    }
                    return httpData;
                },
                _resetBackoff: function _resetBackoff() {
                    this._backoffDuration = 0;
                    this._backoffStart = null;
                },
                _shouldBackoff: function _shouldBackoff() {
                    return this._backoffDuration && now2() - this._backoffStart < this._backoffDuration;
                },
                /**
         * Returns true if the in-process data payload matches the signature
         * of the previously-sent data
         *
         * NOTE: This has to be done at this level because TraceKit can generate
         *       data from window.onerror WITHOUT an exception object (IE8, IE9,
         *       other old browsers). This can take the form of an "exception"
         *       data object with a single frame (derived from the onerror args).
         */ _isRepeatData: function _isRepeatData(current2) {
                    var last = this._lastData;
                    if (!last || current2.message !== last.message || // defined for captureMessage
                    current2.transaction !== last.transaction) return false;
                    if (current2.stacktrace || last.stacktrace) {
                        return isSameStacktrace(current2.stacktrace, last.stacktrace);
                    } else if (current2.exception || last.exception) {
                        return isSameException(current2.exception, last.exception);
                    } else if (current2.fingerprint || last.fingerprint) {
                        return Boolean(current2.fingerprint && last.fingerprint) && JSON.stringify(current2.fingerprint) === JSON.stringify(last.fingerprint);
                    }
                    return true;
                },
                _setBackoffState: function _setBackoffState(request) {
                    if (this._shouldBackoff()) {
                        return;
                    }
                    var status = request.status;
                    if (!(status === 400 || status === 401 || status === 429)) return;
                    var retry2;
                    try {
                        if (supportsFetch()) {
                            retry2 = request.headers.get("Retry-After");
                        } else {
                            retry2 = request.getResponseHeader("Retry-After");
                        }
                        retry2 = parseInt(retry2, 10) * 1e3;
                    } catch (e) {}
                    this._backoffDuration = retry2 ? // If Sentry server returned a Retry-After value, use it
                    retry2 : // Otherwise, double the last backoff duration (starts at 1 sec)
                    this._backoffDuration * 2 || 1e3;
                    this._backoffStart = now2();
                },
                _send: function _send(data) {
                    var globalOptions = this._globalOptions;
                    var baseData = {
                        project: this._globalProject,
                        logger: globalOptions.logger,
                        platform: "javascript"
                    }, httpData = this._getHttpData();
                    if (httpData) {
                        baseData.request = httpData;
                    }
                    if (data.trimHeadFrames) delete data.trimHeadFrames;
                    data = objectMerge(baseData, data);
                    data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags);
                    data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra);
                    data.extra["session:duration"] = now2() - this._startTime;
                    if (this._breadcrumbs && this._breadcrumbs.length > 0) {
                        data.breadcrumbs = {
                            values: [].slice.call(this._breadcrumbs, 0)
                        };
                    }
                    if (this._globalContext.user) {
                        data.user = this._globalContext.user;
                    }
                    if (globalOptions.environment) data.environment = globalOptions.environment;
                    if (globalOptions.release) data.release = globalOptions.release;
                    if (globalOptions.serverName) data.server_name = globalOptions.serverName;
                    data = this._sanitizeData(data);
                    Object.keys(data).forEach(function(key) {
                        if (data[key] == null || data[key] === "" || isEmptyObject(data[key])) {
                            delete data[key];
                        }
                    });
                    if (isFunction(globalOptions.dataCallback)) {
                        data = globalOptions.dataCallback(data) || data;
                    }
                    if (!data || isEmptyObject(data)) {
                        return;
                    }
                    if (isFunction(globalOptions.shouldSendCallback) && !globalOptions.shouldSendCallback(data)) {
                        return;
                    }
                    if (this._shouldBackoff()) {
                        this._logDebug("warn", "Raven dropped error due to backoff: ", data);
                        return;
                    }
                    if (typeof globalOptions.sampleRate === "number") {
                        if (Math.random() < globalOptions.sampleRate) {
                            this._sendProcessedPayload(data);
                        }
                    } else {
                        this._sendProcessedPayload(data);
                    }
                },
                _sanitizeData: function _sanitizeData(data) {
                    return sanitize(data, this._globalOptions.sanitizeKeys);
                },
                _getUuid: function _getUuid() {
                    return uuid4();
                },
                _sendProcessedPayload: function _sendProcessedPayload(data, callback) {
                    var self2 = this;
                    var globalOptions = this._globalOptions;
                    if (!this.isSetup()) return;
                    data = this._trimPacket(data);
                    if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) {
                        this._logDebug("warn", "Raven dropped repeat event: ", data);
                        return;
                    }
                    this._lastEventId = data.event_id || (data.event_id = this._getUuid());
                    this._lastData = data;
                    this._logDebug("debug", "Raven about to send:", data);
                    var auth = {
                        sentry_version: "7",
                        sentry_client: "raven-js/" + this.VERSION,
                        sentry_key: this._globalKey
                    };
                    if (this._globalSecret) {
                        auth.sentry_secret = this._globalSecret;
                    }
                    var exception = data.exception && data.exception.values[0];
                    if (this._globalOptions.autoBreadcrumbs && this._globalOptions.autoBreadcrumbs.sentry) {
                        this.captureBreadcrumb({
                            category: "sentry",
                            message: exception ? (exception.type ? exception.type + ": " : "") + exception.value : data.message,
                            event_id: data.event_id,
                            level: data.level || "error"
                        });
                    }
                    var url = this._globalEndpoint;
                    (globalOptions.transport || this._makeRequest).call(this, {
                        url: url,
                        auth: auth,
                        data: data,
                        options: globalOptions,
                        onSuccess: function success() {
                            self2._resetBackoff();
                            self2._triggerEvent("success", {
                                data: data,
                                src: url
                            });
                            callback && callback();
                        },
                        onError: function failure(error) {
                            self2._logDebug("error", "Raven transport failed to send: ", error);
                            if (error.request) {
                                self2._setBackoffState(error.request);
                            }
                            self2._triggerEvent("failure", {
                                data: data,
                                src: url
                            });
                            error = error || new Error("Raven send failed (no additional details provided)");
                            callback && callback(error);
                        }
                    });
                },
                _makeRequest: function _makeRequest(opts) {
                    var url = opts.url + "?" + urlencode(opts.auth);
                    var evaluatedHeaders = null;
                    var evaluatedFetchParameters = {};
                    if (opts.options.headers) {
                        evaluatedHeaders = this._evaluateHash(opts.options.headers);
                    }
                    if (opts.options.fetchParameters) {
                        evaluatedFetchParameters = this._evaluateHash(opts.options.fetchParameters);
                    }
                    if (supportsFetch()) {
                        evaluatedFetchParameters.body = stringify(opts.data);
                        var defaultFetchOptions = objectMerge({}, this._fetchDefaults);
                        var fetchOptions = objectMerge(defaultFetchOptions, evaluatedFetchParameters);
                        if (evaluatedHeaders) {
                            fetchOptions.headers = evaluatedHeaders;
                        }
                        return _window.fetch(url, fetchOptions).then(function(response) {
                            if (response.ok) {
                                opts.onSuccess && opts.onSuccess();
                            } else {
                                var error = new Error("Sentry error code: " + response.status);
                                error.request = response;
                                opts.onError && opts.onError(error);
                            }
                        })["catch"](function() {
                            opts.onError && opts.onError(new Error("Sentry error code: network unavailable"));
                        });
                    }
                    var request = _window.XMLHttpRequest && new _window.XMLHttpRequest();
                    if (!request) return;
                    var hasCORS = "withCredentials" in request || typeof XDomainRequest !== "undefined";
                    if (!hasCORS) return;
                    if ("withCredentials" in request) {
                        request.onreadystatechange = function() {
                            if (request.readyState !== 4) {
                                return;
                            } else if (request.status === 200) {
                                opts.onSuccess && opts.onSuccess();
                            } else if (opts.onError) {
                                var err = new Error("Sentry error code: " + request.status);
                                err.request = request;
                                opts.onError(err);
                            }
                        };
                    } else {
                        request = new XDomainRequest();
                        url = url.replace(/^https?:/, "");
                        if (opts.onSuccess) {
                            request.onload = opts.onSuccess;
                        }
                        if (opts.onError) {
                            request.onerror = function() {
                                var err = new Error("Sentry error code: XDomainRequest");
                                err.request = request;
                                opts.onError(err);
                            };
                        }
                    }
                    request.open("POST", url);
                    if (evaluatedHeaders) {
                        each(evaluatedHeaders, function(key, value) {
                            request.setRequestHeader(key, value);
                        });
                    }
                    request.send(stringify(opts.data));
                },
                _evaluateHash: function _evaluateHash(hash) {
                    var evaluated = {};
                    for(var key in hash){
                        if (hash.hasOwnProperty(key)) {
                            var value = hash[key];
                            evaluated[key] = typeof value === "function" ? value() : value;
                        }
                    }
                    return evaluated;
                },
                _logDebug: function _logDebug(level) {
                    if (this._originalConsoleMethods[level] && (this.debug || this._globalOptions.debug)) {
                        Function.prototype.apply.call(this._originalConsoleMethods[level], this._originalConsole, [].slice.call(arguments, 1));
                    }
                },
                _mergeContext: function _mergeContext(key, context) {
                    if (isUndefined2(context)) {
                        delete this._globalContext[key];
                    } else {
                        this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context);
                    }
                }
            };
            Raven.prototype.setUser = Raven.prototype.setUserContext;
            Raven.prototype.setReleaseContext = Raven.prototype.setRelease;
            module.exports = Raven;
        }
    });
    // node_modules/raven-js/src/singleton.js
    var require_singleton = __commonJS({
        "node_modules/raven-js/src/singleton.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var RavenConstructor = require_raven();
            var _window = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : {};
            var _Raven = _window.Raven;
            var Raven = new RavenConstructor();
            Raven.noConflict = function() {
                _window.Raven = _Raven;
                return Raven;
            };
            Raven.afterLoad();
            module.exports = Raven;
            module.exports.Client = RavenConstructor;
        }
    });
    // node_modules/@signageos/front-display/es6/Browser/iframeHelper.js
    var require_iframeHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/Browser/iframeHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.isUrlInDomain = exports.isUrlAllowed = exports.forbidUrlChangeByAcl = exports.createAclValidator = void 0;
            var URL2 = __importStar(require_url());
            var debug_1 = __importDefault(require_browser2());
            var constants_1 = require_constants();
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Browser:IframeBrowser");
            var createAclValidator = function(iframe, aclMode, aclDomains, denyCallback, allowCallback) {
                return function() {
                    if (!iframe.contentWindow) {
                        throw new Error("New window is not available: ".concat(iframe.src));
                    }
                    debug4("load iframe url", iframe.contentWindow.location.href);
                    if (!isUrlAllowed(iframe.contentWindow.location.href, aclMode, aclDomains)) {
                        denyCallback();
                    } else {
                        allowCallback === null || allowCallback === void 0 ? void 0 : allowCallback();
                    }
                };
            };
            exports.createAclValidator = createAclValidator;
            function forbidUrlChangeByAcl(iframe, defaultUri, aclMode, aclDomains, denyCallback) {
                var allowCallback = function() {
                    return forbidUrlChangeByAcl(iframe, defaultUri, aclMode, aclDomains, denyCallback);
                };
                var aclValidator = (0, exports.createAclValidator)(iframe, aclMode, aclDomains, denyCallback, allowCallback);
                if (!iframe.contentWindow) {
                    throw new Error("Current window is not available: ".concat(iframe.src));
                }
                var currentContentWindow = iframe.contentWindow;
                var unloadListener = function() {
                    currentContentWindow.removeEventListener("unload", unloadListener);
                    debug4("unload iframe url", currentContentWindow.location.href);
                    setTimeout(aclValidator, constants_1.IMMEDIATELY);
                };
                iframe.contentWindow.addEventListener("unload", unloadListener);
            }
            exports.forbidUrlChangeByAcl = forbidUrlChangeByAcl;
            function isUrlAllowed(url, aclMode, aclDomains) {
                if (!url) {
                    return false;
                }
                var urlMatchRules = (aclDomains === null || aclDomains === void 0 ? void 0 : aclDomains.findIndex(function(aclDomain) {
                    return isUrlInDomain(url, aclDomain);
                })) > -1;
                return aclMode === "blacklist" ? !urlMatchRules : urlMatchRules;
            }
            exports.isUrlAllowed = isUrlAllowed;
            function isUrlInDomain(url, domain) {
                var parsedUrl = URL2.parse(url);
                var urlDomain = parsedUrl.hostname;
                return urlDomain === null || urlDomain === void 0 ? void 0 : urlDomain.endsWith(domain);
            }
            exports.isUrlInDomain = isUrlInDomain;
        }
    });
    // node_modules/@signageos/front-display/es6/Browser/IframeBrowser.js
    var require_IframeBrowser = __commonJS({
        "node_modules/@signageos/front-display/es6/Browser/IframeBrowser.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var _a2;
            var _b2;
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var debugDecorator_1 = require_debugDecorator();
            var IBrowser_1 = require_IBrowser();
            var iframeHelper_1 = require_iframeHelper();
            var constants_1 = require_constants();
            var DEBUG_NAMESPACE3 = "@signageos/front-display:Browser:IframeBrowser";
            var InternalEvent;
            (function(InternalEvent2) {
                InternalEvent2["NewIframe"] = "new_iframe";
            })(InternalEvent || (InternalEvent = {}));
            var IframeBrowser2 = /*#__PURE__*/ function() {
                function IframeBrowser2(window2) {
                    _class_call_check(this, IframeBrowser2);
                    this.window = window2;
                    this.iframe = null;
                    this.aclInterval = null;
                    this.events = new events_1.EventEmitter();
                    this.internalEvents = new events_1.EventEmitter();
                }
                _create_class(IframeBrowser2, [
                    {
                        key: "open",
                        value: function open(uri, options) {
                            var _a3, _b3, _c;
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, iframe, _options_coordinates, x, y, width, height, denyCallback, aclValidator;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    if ((options === null || options === void 0 ? void 0 : options.aclMode) && !(0, iframeHelper_1.isUrlAllowed)(uri, options.aclMode, (_a3 = options.aclDomains) !== null && _a3 !== void 0 ? _a3 : [])) {
                                        throw new Error("Default URL of browser ".concat(uri, " is not allowed."));
                                    }
                                    if (this.iframe) {
                                        this.removeIframe();
                                    }
                                    if (options && options.coordinates) {
                                        _options_coordinates = options.coordinates, x = _options_coordinates.x, y = _options_coordinates.y, width = _options_coordinates.width, height = _options_coordinates.height;
                                        iframe = this.createWindowedIframe(uri, x, y, width, height);
                                    } else {
                                        iframe = this.createFullscreenIframe(uri);
                                    }
                                    this.window.document.body.appendChild(iframe);
                                    this.iframe = iframe;
                                    this.internalEvents.emit(InternalEvent.NewIframe, this.iframe);
                                    if (options === null || options === void 0 ? void 0 : options.aclMode) {
                                        denyCallback = function() {
                                            return _this.open(uri, options);
                                        };
                                        (0, iframeHelper_1.forbidUrlChangeByAcl)(iframe, uri, options.aclMode, (_b3 = options.aclDomains) !== null && _b3 !== void 0 ? _b3 : [], denyCallback);
                                        aclValidator = (0, iframeHelper_1.createAclValidator)(iframe, options.aclMode, (_c = options.aclDomains) !== null && _c !== void 0 ? _c : [], denyCallback);
                                        this.aclInterval = setInterval(aclValidator, constants_1.OFTEN);
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "close",
                        value: function close() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    if (this.iframe) {
                                        this.removeIframe();
                                        this.events.emit(IBrowser_1.EventType.CLOSE, {
                                            type: IBrowser_1.EventType.CLOSE,
                                            reason: IBrowser_1.CloseReason.API
                                        });
                                    }
                                    if (this.aclInterval) {
                                        clearInterval(this.aclInterval);
                                        this.aclInterval = null;
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "addListener",
                        value: function addListener(eventName, listener) {
                            this.events.addListener(eventName, listener);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(eventName, listener) {
                            this.events.removeListener(eventName, listener);
                        }
                    },
                    {
                        key: "onElementCreated",
                        value: function onElementCreated(listener) {
                            this.internalEvents.on(InternalEvent.NewIframe, listener);
                        }
                    },
                    {
                        key: "isSupported",
                        value: function isSupported() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        true
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "createFullscreenIframe",
                        value: function createFullscreenIframe(uri) {
                            var iframe = this.createBaseIframe(uri);
                            iframe.style.width = this.window.document.body.clientWidth + "px";
                            iframe.style.height = this.window.document.body.clientHeight + "px";
                            iframe.style.border = "0";
                            iframe.style.top = "0";
                            iframe.style.left = "0";
                            iframe.style.background = "#ffffff";
                            return iframe;
                        }
                    },
                    {
                        key: "createWindowedIframe",
                        value: function createWindowedIframe(uri, x, y, width, height) {
                            var iframe = this.createBaseIframe(uri);
                            iframe.style.width = width + "px";
                            iframe.style.height = height + "px";
                            iframe.style.border = "0";
                            iframe.style.top = y + "px";
                            iframe.style.left = x + "px";
                            iframe.style.background = "#ffffff";
                            return iframe;
                        }
                    },
                    {
                        key: "createBaseIframe",
                        value: function createBaseIframe(uri) {
                            var iframe = this.window.document.createElement("iframe");
                            iframe.src = uri;
                            iframe.style.width = "100vw";
                            iframe.style.height = "100vh";
                            iframe.style.position = "absolute";
                            iframe.style.border = "0";
                            iframe.style.zIndex = "100";
                            iframe.style.webkitTransform = "translateZ(0)";
                            iframe.style.transform = "translateZ(0)";
                            iframe.style.background = "#ffffff";
                            try {
                                iframe.sandbox.value = "allow-forms allow-scripts allow-same-origin";
                            } catch (error) {
                                console.warn("Cannot set sandbox value of iframe", error);
                            }
                            return iframe;
                        }
                    },
                    {
                        key: "removeIframe",
                        value: function removeIframe() {
                            if (!this.iframe) {
                                throw new Error("iframe doesn't exist");
                            }
                            this.window.document.body.removeChild(this.iframe);
                            this.iframe = null;
                        }
                    }
                ]);
                return IframeBrowser2;
            }();
            exports["default"] = IframeBrowser2;
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], IframeBrowser2.prototype, "open", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], IframeBrowser2.prototype, "close", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    typeof (_a2 = typeof TType !== "undefined" && TType) === "function" ? _a2 : Object,
                    Function
                ]),
                __metadata("design:returntype", void 0)
            ], IframeBrowser2.prototype, "addListener", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    typeof (_b2 = typeof TType !== "undefined" && TType) === "function" ? _b2 : Object,
                    Function
                ]),
                __metadata("design:returntype", void 0)
            ], IframeBrowser2.prototype, "removeListener", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Function
                ]),
                __metadata("design:returntype", void 0)
            ], IframeBrowser2.prototype, "onElementCreated", null);
        }
    });
    // node_modules/@signageos/front-display/es6/Cache/ProprietaryCache.js
    var require_ProprietaryCache = __commonJS({
        "node_modules/@signageos/front-display/es6/Cache/ProprietaryCache.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var CACHE_PREFIX = "default.native_device.cache.";
            var ProprietaryCache2 = /*#__PURE__*/ function() {
                function ProprietaryCache2(storage, defaultTotalSizeBytes) {
                    _class_call_check(this, ProprietaryCache2);
                    this.storage = storage;
                    this.defaultTotalSizeBytes = defaultTotalSizeBytes;
                }
                _create_class(ProprietaryCache2, [
                    {
                        key: "fetchAllUids",
                        value: function fetchAllUids() {
                            return __awaiter(this, void 0, void 0, function() {
                                var uids, key, uid;
                                return _ts_generator(this, function(_state) {
                                    if (this.storage) {
                                        uids = [];
                                        for(var key in this.storage){
                                            if (key.indexOf(CACHE_PREFIX) === 0) {
                                                uid = key.substring(CACHE_PREFIX.length);
                                                uids.push(uid);
                                            }
                                        }
                                        return [
                                            2,
                                            uids
                                        ];
                                    }
                                    console.warn(new Error("Not implemented cache get all"));
                                    return [
                                        2,
                                        []
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "fetchAll",
                        value: function fetchAll() {
                            var _this = this;
                            return new Promise(function(resolve) {
                                if (_this.storage) {
                                    var contents = {};
                                    for(var key in _this.storage){
                                        if (key.indexOf(CACHE_PREFIX) === 0) {
                                            var value = _this.storage.getItem(key);
                                            var uid = key.substring(CACHE_PREFIX.length);
                                            contents[uid] = value;
                                        }
                                    }
                                    return resolve(contents);
                                } else {
                                    console.warn(new Error("Not implemented cache get all"));
                                    return resolve({});
                                }
                            });
                        }
                    },
                    {
                        key: "fetchOne",
                        value: function fetchOne(uid) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                if (_this.storage) {
                                    var content = _this.storage.getItem(CACHE_PREFIX + uid);
                                    if (content !== null) {
                                        resolve(content);
                                    } else {
                                        reject(new Error("Content " + uid + " was not found"));
                                    }
                                } else {
                                    console.warn(new Error("Not implemented cache get"));
                                    return reject(new Error("Content " + uid + " was not found"));
                                }
                            });
                        }
                    },
                    {
                        key: "deleteOne",
                        value: function deleteOne(uid) {
                            if (this.storage) {
                                this.storage.removeItem(CACHE_PREFIX + uid);
                            } else {
                                console.warn(new Error("Not implemented cache delete"));
                            }
                            return Promise.resolve();
                        }
                    },
                    {
                        key: "saveOne",
                        value: function saveOne(uid, content) {
                            if (this.storage) {
                                if (typeof content === "undefined") {
                                    throw new Error("Store content as undefined is not allowed from uid ".concat(uid));
                                }
                                if (content.length < 1 * 1024 * 1024) {
                                    this.storage.setItem(CACHE_PREFIX + uid, content);
                                } else {
                                    console.warn("Max size for default cache saved content is 1MB");
                                }
                            } else {
                                console.warn(new Error("Not implemented cache saveOne"));
                            }
                            return Promise.resolve();
                        }
                    },
                    {
                        key: "getStorageInfo",
                        value: function getStorageInfo() {
                            return __awaiter(this, void 0, void 0, function() {
                                var contents, usedBytes, totalSizeBytes, availableBytes;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fetchAll()
                                            ];
                                        case 1:
                                            contents = _state.sent();
                                            usedBytes = Object.keys(contents).reduce(// TODO is not real bytes because UTF-8 character can has more then 1 byte (Buffer is not optimized)
                                            function(sum, key) {
                                                return sum + key.length + (contents[key] ? contents[key].length : 0);
                                            }, 0);
                                            totalSizeBytes = Math.max(usedBytes, this.defaultTotalSizeBytes);
                                            availableBytes = totalSizeBytes - usedBytes;
                                            return [
                                                2,
                                                {
                                                    totalSizeBytes: totalSizeBytes,
                                                    availableBytes: availableBytes,
                                                    usedBytes: usedBytes
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return ProprietaryCache2;
            }();
            exports["default"] = ProprietaryCache2;
        }
    });
    // node_modules/@signageos/front-display/es6/Stream/ReconnectStreamPlayer.js
    var require_ReconnectStreamPlayer = __commonJS({
        "node_modules/@signageos/front-display/es6/Stream/ReconnectStreamPlayer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var debug_1 = __importDefault(require_browser2());
            var DEFAULT_RECONNECT_INTERVAL_MS = 3e4;
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Stream:ReconnectStreamPlayer");
            var ReconnectStreamPlayer2 = /*#__PURE__*/ function() {
                function ReconnectStreamPlayer2(streamPlayer) {
                    _class_call_check(this, ReconnectStreamPlayer2);
                    this.streamPlayer = streamPlayer;
                    this.streamsProperties = {};
                }
                _create_class(ReconnectStreamPlayer2, [
                    {
                        key: "prepare",
                        value: function prepare(uri, x, y, width, height, options) {
                            debug4("prepare", uri, x, y, width, height, options);
                            return this.streamPlayer.prepare(uri, x, y, width, height, options);
                        }
                    },
                    {
                        key: "play",
                        value: function play(uri, x, y, width, height, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var streamProperties;
                                return _ts_generator(this, function(_state) {
                                    streamProperties = this.getStreamProperties(uri, x, y, width, height, options);
                                    debug4("play", streamProperties);
                                    if ((options === null || options === void 0 ? void 0 : options.autoReconnectInterval) && options.autoReconnectInterval < 1e4) {
                                        throw new Error("Auto reconnect interval must be at least 10000 ms");
                                    }
                                    this.streamConnect(streamProperties);
                                    return [
                                        2,
                                        streamProperties.emitter
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop(uri, x, y, width, height) {
                            var _a2;
                            return __awaiter(this, void 0, void 0, function() {
                                var streamProperties;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            streamProperties = this.getStreamProperties(uri, x, y, width, height);
                                            debug4("stop", streamProperties);
                                            (_a2 = streamProperties.stream) === null || _a2 === void 0 ? void 0 : _a2.removeAllListeners();
                                            this.cancelStreamReconnectSchedule(streamProperties);
                                            return [
                                                4,
                                                this.streamPlayer.stop(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.emitEvent("closed", streamProperties);
                                            this.clearStreamProperties(streamProperties);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            debug4("pause", uri, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.pause(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resume",
                        value: function resume(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            debug4("resume", uri, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.resume(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clearAll",
                        value: function clearAll() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            Object.keys(this.streamsProperties).forEach(function(key) {
                                                return _this.cancelStreamReconnectSchedule(_this.streamsProperties[key]);
                                            });
                                            return [
                                                4,
                                                this.streamPlayer.clearAll()
                                            ];
                                        case 1:
                                            _state.sent();
                                            Object.keys(this.streamsProperties).forEach(function(key) {
                                                return _this.clearStreamProperties(_this.streamsProperties[key]);
                                            });
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getTracks",
                        value: function getTracks(videoId) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.streamPlayer.getTracks(videoId)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "selectTrack",
                        value: function selectTrack(videoId, trackType, groupId, trackIndex) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.streamPlayer.selectTrack(videoId, trackType, groupId, trackIndex)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resetTrack",
                        value: function resetTrack(videoId, trackType, groupId) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.streamPlayer.resetTrack(videoId, trackType, groupId)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "streamConnect",
                        value: function streamConnect(streamProperties) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, _streamProperties_props, uri, x, y, width, height, options, _a2;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            debug4("stream connect", streamProperties);
                                            _streamProperties_props = streamProperties.props, uri = _streamProperties_props.uri, x = _streamProperties_props.x, y = _streamProperties_props.y, width = _streamProperties_props.width, height = _streamProperties_props.height, options = _streamProperties_props.options;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                this.streamPlayer.play(uri, x, y, width, height, options)
                                            ];
                                        case 2:
                                            streamProperties.stream = _state.sent();
                                            streamProperties.stream.on("connected", function() {
                                                debug4("connected", streamProperties);
                                                _this.emitEvent("connected", streamProperties);
                                            });
                                            streamProperties.stream.once("error", function() {
                                                debug4("error", streamProperties);
                                                _this.emitEvent("error", streamProperties);
                                                _this.emitEvent("disconnected", streamProperties);
                                                _this.scheduleStreamReconnect(streamProperties);
                                            });
                                            streamProperties.stream.once("disconnected", function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    return _ts_generator(this, function(_state) {
                                                        debug4("disconnected", streamProperties);
                                                        this.emitEvent("disconnected", streamProperties);
                                                        this.scheduleStreamReconnect(streamProperties);
                                                        return [
                                                            2
                                                        ];
                                                    });
                                                });
                                            });
                                            streamProperties.stream.on("tracks_changed", function(event) {
                                                debug4("tracks_changed", streamProperties, event);
                                                streamProperties.props.tracks = event.tracks;
                                                _this.emitEvent("tracks_changed", streamProperties);
                                            });
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            _a2 = _state.sent();
                                            debug4("error", streamProperties);
                                            this.scheduleStreamReconnect(streamProperties);
                                            return [
                                                3,
                                                4
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "scheduleStreamReconnect",
                        value: function scheduleStreamReconnect(streamProperties) {
                            var _this = this;
                            var _a2, _b2, _c, _d;
                            var autoReconnectEnabled = (_b2 = (_a2 = streamProperties.props.options) === null || _a2 === void 0 ? void 0 : _a2.autoReconnect) !== null && _b2 !== void 0 ? _b2 : false;
                            if (autoReconnectEnabled) {
                                var reconnectIntervalMs = (_d = (_c = streamProperties.props.options) === null || _c === void 0 ? void 0 : _c.autoReconnectInterval) !== null && _d !== void 0 ? _d : DEFAULT_RECONNECT_INTERVAL_MS;
                                if (!streamProperties.reconnectTimeoutHandler) {
                                    streamProperties.reconnectTimeoutHandler = setTimeout(function() {
                                        delete streamProperties.reconnectTimeoutHandler;
                                        _this.streamReconnect(streamProperties);
                                    }, reconnectIntervalMs);
                                } else {
                                    console.warn("Reconnect is already scheduled", streamProperties.props);
                                }
                            }
                        }
                    },
                    {
                        key: "streamReconnect",
                        value: function streamReconnect(streamProperties) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _streamProperties_props, uri, x, y, width, height;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _streamProperties_props = streamProperties.props, uri = _streamProperties_props.uri, x = _streamProperties_props.x, y = _streamProperties_props.y, width = _streamProperties_props.width, height = _streamProperties_props.height;
                                            this.emitEvent("reconnect", streamProperties);
                                            return [
                                                4,
                                                this.streamPlayer.stop(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.streamConnect(streamProperties)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getKeyForProperties",
                        value: function getKeyForProperties(uri, x, y, width, height) {
                            return "".concat(uri, "_").concat(x, "_").concat(y, "_").concat(width, "_").concat(height);
                        }
                    },
                    {
                        key: "getStreamProperties",
                        value: function getStreamProperties(uri, x, y, width, height, options) {
                            var propertiesKey = this.getKeyForProperties(uri, x, y, width, height);
                            if (!this.streamsProperties.hasOwnProperty(propertiesKey)) {
                                this.streamsProperties[propertiesKey] = {
                                    props: {
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height,
                                        options: options
                                    },
                                    emitter: new events_1.EventEmitter()
                                };
                                this.streamsProperties[propertiesKey].emitter.on("error", function() {});
                            }
                            return this.streamsProperties[propertiesKey];
                        }
                    },
                    {
                        key: "cancelStreamReconnectSchedule",
                        value: function cancelStreamReconnectSchedule(streamProperties) {
                            var _a2;
                            var _streamProperties_props = streamProperties.props, uri = _streamProperties_props.uri, x = _streamProperties_props.x, y = _streamProperties_props.y, width = _streamProperties_props.width, height = _streamProperties_props.height;
                            var propertiesKey = this.getKeyForProperties(uri, x, y, width, height);
                            if ((_a2 = this.streamsProperties[propertiesKey]) === null || _a2 === void 0 ? void 0 : _a2.reconnectTimeoutHandler) {
                                clearTimeout(this.streamsProperties[propertiesKey].reconnectTimeoutHandler);
                                delete this.streamsProperties[propertiesKey].reconnectTimeoutHandler;
                            }
                        }
                    },
                    {
                        key: "clearStreamProperties",
                        value: function clearStreamProperties(streamProperties) {
                            var _streamProperties_props = streamProperties.props, uri = _streamProperties_props.uri, x = _streamProperties_props.x, y = _streamProperties_props.y, width = _streamProperties_props.width, height = _streamProperties_props.height;
                            var propertiesKey = this.getKeyForProperties(uri, x, y, width, height);
                            if (this.streamsProperties.hasOwnProperty(propertiesKey)) {
                                this.cancelStreamReconnectSchedule(streamProperties);
                                this.streamsProperties[propertiesKey].emitter.removeAllListeners();
                                delete this.streamsProperties[propertiesKey];
                            }
                        }
                    },
                    {
                        key: "emitEvent",
                        value: function emitEvent(type, streamProperties) {
                            var _streamProperties_props = streamProperties.props, uri = _streamProperties_props.uri, x = _streamProperties_props.x, y = _streamProperties_props.y, width = _streamProperties_props.width, height = _streamProperties_props.height, options = _streamProperties_props.options, tracks = _streamProperties_props.tracks;
                            var emitter = streamProperties.emitter;
                            switch(type){
                                case "error":
                                    emitter.emit("error", {
                                        type: "error",
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height,
                                        protocol: options === null || options === void 0 ? void 0 : options.protocol,
                                        errorMessage: "Stream playback failed"
                                    });
                                    break;
                                case "connected":
                                    emitter.emit("connected", {
                                        type: "connected",
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height
                                    });
                                    break;
                                case "disconnected":
                                    emitter.emit("disconnected", {
                                        type: "disconnected",
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height
                                    });
                                    break;
                                case "closed":
                                    emitter.emit("closed", {
                                        type: "closed",
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height
                                    });
                                    break;
                                case "reconnect":
                                    emitter.emit("reconnect", {
                                        type: "reconnect",
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height
                                    });
                                    break;
                                case "tracks_changed":
                                    emitter.emit("tracks_changed", {
                                        type: "tracks_changed",
                                        uri: uri,
                                        x: x,
                                        y: y,
                                        width: width,
                                        height: height,
                                        tracks: tracks
                                    });
                                    break;
                                default:
                                    break;
                            }
                        }
                    }
                ]);
                return ReconnectStreamPlayer2;
            }();
            exports["default"] = ReconnectStreamPlayer2;
        }
    });
    // node_modules/@signageos/front-display/es6/Video/VideoWithState.js
    var require_VideoWithState = __commonJS({
        "node_modules/@signageos/front-display/es6/Video/VideoWithState.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var VideoState;
            (function(VideoState2) {
                VideoState2[VideoState2["IDLE"] = 0] = "IDLE";
                VideoState2[VideoState2["PREPARED"] = 1] = "PREPARED";
                VideoState2[VideoState2["PLAYING"] = 2] = "PLAYING";
            })(VideoState || (VideoState = {}));
            var VideoWithState = /*#__PURE__*/ function() {
                function VideoWithState(video) {
                    _class_call_check(this, VideoWithState);
                    this.video = video;
                    this.state = VideoState.IDLE;
                    this.args = null;
                    this.resolveOnceIdleCallbacks = [];
                }
                _create_class(VideoWithState, [
                    {
                        key: "prepare",
                        value: function prepare(uri, x, y, width, height, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.video.prepare(uri, x, y, width, height, options)
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.state = VideoState.PREPARED;
                                            this.args = {
                                                uri: uri,
                                                x: x,
                                                y: y,
                                                width: width,
                                                height: height
                                            };
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.video.play()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.state = VideoState.PLAYING;
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause() {
                            return this.video.pause();
                        }
                    },
                    {
                        key: "resume",
                        value: function resume() {
                            return this.video.resume();
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.video.stop()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.state = VideoState.IDLE;
                                            this.args = null;
                                            this.resolveWaitUntilIdlePromises();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "waitUntilIdle",
                        value: function waitUntilIdle() {
                            var _this = this;
                            return new Promise(function(resolve) {
                                _this.resolveOnceIdleCallbacks.push(resolve);
                            });
                        }
                    },
                    {
                        key: "addEventListener",
                        value: function addEventListener(eventName, listener) {
                            this.video.addEventListener(eventName, listener);
                        }
                    },
                    {
                        key: "removeAllEventListeners",
                        value: function removeAllEventListeners() {
                            this.video.removeAllEventListeners();
                        }
                    },
                    {
                        key: "isIdle",
                        value: function isIdle() {
                            return this.state === VideoState.IDLE;
                        }
                    },
                    {
                        key: "isPrepared",
                        value: function isPrepared() {
                            return this.state === VideoState.PREPARED;
                        }
                    },
                    {
                        key: "getArguments",
                        value: function getArguments() {
                            return this.args;
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration() {
                            return this.video.getDuration();
                        }
                    },
                    {
                        key: "resolveWaitUntilIdlePromises",
                        value: function resolveWaitUntilIdlePromises() {
                            for(var i = 0; i < this.resolveOnceIdleCallbacks.length; i++){
                                this.resolveOnceIdleCallbacks[i]();
                            }
                            this.resolveOnceIdleCallbacks = [];
                        }
                    }
                ]);
                return VideoWithState;
            }();
            exports["default"] = VideoWithState;
        }
    });
    // node_modules/@signageos/front-display/es6/Video/VideoOptions.js
    var require_VideoOptions = __commonJS({
        "node_modules/@signageos/front-display/es6/Video/VideoOptions.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var VideoOptions = /*#__PURE__*/ function() {
                function VideoOptions() {
                    _class_call_check(this, VideoOptions);
                    this.videoOptions = {};
                }
                _create_class(VideoOptions, [
                    {
                        key: "getOptions",
                        value: function getOptions(uri, x, y, width, height) {
                            var optionsKey = this.getKeyForProperties(uri, x, y, width, height);
                            return this.hasOptions(uri, x, y, width, height) ? this.videoOptions[optionsKey] : void 0;
                        }
                    },
                    {
                        key: "setOptions",
                        value: function setOptions(uri, x, y, width, height, options) {
                            var optionsKey = this.getKeyForProperties(uri, x, y, width, height);
                            this.videoOptions[optionsKey] = options;
                        }
                    },
                    {
                        key: "clearOptions",
                        value: function clearOptions(uri, x, y, width, height) {
                            var optionsKey = this.getKeyForProperties(uri, x, y, width, height);
                            if (this.hasOptions(uri, x, y, width, height)) {
                                delete this.videoOptions[optionsKey];
                            }
                        }
                    },
                    {
                        key: "hasOptions",
                        value: function hasOptions(uri, x, y, width, height) {
                            var _a2;
                            var optionsKey = this.getKeyForProperties(uri, x, y, width, height);
                            return (_a2 = this.videoOptions) === null || _a2 === void 0 ? void 0 : _a2.hasOwnProperty(optionsKey);
                        }
                    },
                    {
                        key: "getKeyForProperties",
                        value: function getKeyForProperties(uri, x, y, width, height) {
                            return "".concat(uri, "_").concat(x, "_").concat(y, "_").concat(width, "_").concat(height);
                        }
                    }
                ]);
                return VideoOptions;
            }();
            exports["default"] = VideoOptions;
        }
    });
    // node_modules/@signageos/front-display/es6/Video/ProprietaryVideoPlayer.js
    var require_ProprietaryVideoPlayer = __commonJS({
        "node_modules/@signageos/front-display/es6/Video/ProprietaryVideoPlayer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var lockedDecorator_1 = require_lockedDecorator();
            var events_1 = require_events();
            var videoErrors_1 = require_videoErrors();
            var debugDecorator_1 = require_debugDecorator();
            var VideoWithState_1 = __importDefault(require_VideoWithState());
            var VideoOptions_1 = __importDefault(require_VideoOptions());
            var LOCK_KEY = "ProprietaryVideoPlayer.video";
            var DEBUG_NAMESPACE3 = "@signageos/front-display:Video:ProprietaryVideoPlayer";
            var ProprietaryVideoPlayer3 = /*#__PURE__*/ function() {
                function ProprietaryVideoPlayer3(videos) {
                    _class_call_check(this, ProprietaryVideoPlayer3);
                    this.videos = videos.map(function(video) {
                        return new VideoWithState_1["default"](video);
                    });
                    this.videoOptions = new VideoOptions_1["default"]();
                }
                _create_class(ProprietaryVideoPlayer3, [
                    {
                        key: "getMaxVideoCount",
                        value: function getMaxVideoCount() {
                            return this.videos.length;
                        }
                    },
                    {
                        key: "prepare",
                        value: function prepare(uri, x, y, width, height, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if ((typeof options === "undefined" ? "undefined" : _type_of(options)) === "object") {
                                                this.videoOptions.setOptions(uri, x, y, width, height, options);
                                            }
                                            return [
                                                4,
                                                this.prepareVideoIfNotPrepared(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            return [
                                                4,
                                                this.playVideo(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            if (error instanceof videoErrors_1.NoMoreAvailableVideosError) {
                                                return [
                                                    2,
                                                    this.playVideoOnceAvailable(uri, x, y, width, height)
                                                ];
                                            } else {
                                                throw error;
                                            }
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var playingVideo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            try {
                                                playingVideo = this.getVideoByArgumentsOrThrowException(uri, x, y, width, height);
                                            } catch (error) {
                                                console.warn("Attempt to stop video that's not playing");
                                                return [
                                                    2
                                                ];
                                            }
                                            return [
                                                4,
                                                playingVideo.stop()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.videoOptions.clearOptions(uri, x, y, width, height);
                                            playingVideo.removeAllEventListeners();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var playingVideo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            playingVideo = this.getVideoByArgumentsOrThrowException(uri, x, y, width, height);
                                            return [
                                                4,
                                                playingVideo.pause()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resume",
                        value: function resume(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var playingVideo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            playingVideo = this.getVideoByArgumentsOrThrowException(uri, x, y, width, height);
                                            return [
                                                4,
                                                playingVideo.resume()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clearAll",
                        value: function clearAll() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                Promise.all(this.videos.map(function(video) {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var args, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        2,
                                                                        ,
                                                                        3
                                                                    ]);
                                                                    return [
                                                                        4,
                                                                        video.stop()
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    args = video.getArguments();
                                                                    if (args) {
                                                                        this.videoOptions.clearOptions(args === null || args === void 0 ? void 0 : args.uri, args === null || args === void 0 ? void 0 : args.x, args === null || args === void 0 ? void 0 : args.y, args === null || args === void 0 ? void 0 : args.width, args === null || args === void 0 ? void 0 : args.height);
                                                                    }
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 2:
                                                                    error = _state.sent();
                                                                    console.warn("failed to clear video", error);
                                                                    return [
                                                                        3,
                                                                        3
                                                                    ];
                                                                case 3:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                }))
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var video, duration;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            video = this.getIdleVideoOrThrowException();
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                ,
                                                3,
                                                5
                                            ]);
                                            return [
                                                4,
                                                this.prepareVideo(video, uri, x, y, width, height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            duration = video.getDuration();
                                            return [
                                                2,
                                                duration
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                video.stop()
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                7
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "playVideo",
                        value: function playVideo(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var video;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.prepareVideoIfNotPrepared(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            video = _state.sent();
                                            return [
                                                4,
                                                video.play()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                this.createVideoEventEmitter(video)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "prepareVideoIfNotPrepared",
                        value: function prepareVideoIfNotPrepared(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var video, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                1,
                                                ,
                                                3
                                            ]);
                                            video = this.getVideoByArgumentsOrThrowException(uri, x, y, width, height);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 1:
                                            error = _state.sent();
                                            video = this.getIdleVideoOrThrowException();
                                            return [
                                                4,
                                                this.prepareVideo(video, uri, x, y, width, height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                video
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "prepareVideo",
                        value: function prepareVideo(video, uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var options;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            options = this.videoOptions.getOptions(uri, x, y, width, height);
                                            return [
                                                4,
                                                video.prepare(uri, x, y, width, height, options)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2,
                                                video
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "playVideoOnceAvailable",
                        value: function playVideoOnceAvailable(uri, x, y, width, height) {
                            var _this = this;
                            var videoEventEmitter = new events_1.EventEmitter();
                            this.waitUntilSomeVideoBecomesIdle().then(function() {
                                return __awaiter(_this, void 0, void 0, function() {
                                    var video;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.play(uri, x, y, width, height)
                                                ];
                                            case 1:
                                                video = _state.sent();
                                                video.addListener("playing", function(event) {
                                                    return videoEventEmitter.emit("playing", event);
                                                });
                                                video.addListener("ended", function(event) {
                                                    return videoEventEmitter.emit("ended", event);
                                                });
                                                video.addListener("error", function(event) {
                                                    return videoEventEmitter.emit("error", event);
                                                });
                                                video.addListener("stopped", function(event) {
                                                    return videoEventEmitter.emit("stopped", event);
                                                });
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                            return videoEventEmitter;
                        }
                    },
                    {
                        key: "waitUntilSomeVideoBecomesIdle",
                        value: function waitUntilSomeVideoBecomesIdle() {
                            return Promise.race(this.videos.map(function(video) {
                                return video.waitUntilIdle();
                            }));
                        }
                    },
                    {
                        key: "getIdleVideoOrThrowException",
                        value: function getIdleVideoOrThrowException() {
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this.videos[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var video = _step.value;
                                    if (video.isIdle()) {
                                        return video;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                            try {
                                for(var _iterator1 = this.videos[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                    var video1 = _step1.value;
                                    if (video1.isPrepared()) {
                                        return video1;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError1 = true;
                                _iteratorError1 = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                        _iterator1["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError1) {
                                        throw _iteratorError1;
                                    }
                                }
                            }
                            throw new videoErrors_1.NoMoreAvailableVideosError();
                        }
                    },
                    {
                        key: "getVideoByArgumentsOrThrowException",
                        value: function getVideoByArgumentsOrThrowException(uri, x, y, width, height) {
                            var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                            try {
                                for(var _iterator = this.videos[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                    var video = _step.value;
                                    var videoArguments = video.getArguments();
                                    if (videoArguments && videoArguments.uri === uri && videoArguments.x === x && videoArguments.y === y && videoArguments.width === width && videoArguments.height === height) {
                                        return video;
                                    }
                                }
                            } catch (err) {
                                _didIteratorError = true;
                                _iteratorError = err;
                            } finally{
                                try {
                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                        _iterator["return"]();
                                    }
                                } finally{
                                    if (_didIteratorError) {
                                        throw _iteratorError;
                                    }
                                }
                            }
                            throw new Error("Video with arguments " + JSON.stringify({
                                uri: uri,
                                x: x,
                                y: y,
                                width: width,
                                height: height
                            }) + " not found");
                        }
                    },
                    {
                        key: "createVideoEventEmitter",
                        value: function createVideoEventEmitter(video) {
                            var videoEventEmitter = new events_1.EventEmitter();
                            var videoEvent = {
                                srcArguments: video.getArguments()
                            };
                            video.addEventListener("playing", function() {
                                videoEventEmitter.emit("playing", Object.assign({
                                    type: "playing"
                                }, videoEvent));
                            });
                            video.addEventListener("ended", function() {
                                videoEventEmitter.emit("ended", Object.assign({
                                    type: "ended"
                                }, videoEvent));
                            });
                            video.addEventListener("error", function() {
                                videoEventEmitter.emit("error", Object.assign({
                                    type: "error"
                                }, videoEvent));
                            });
                            video.addEventListener("stopped", function() {
                                videoEventEmitter.emit("stopped", Object.assign({
                                    type: "stopped"
                                }, videoEvent));
                            });
                            return videoEventEmitter;
                        }
                    }
                ]);
                return ProprietaryVideoPlayer3;
            }();
            exports["default"] = ProprietaryVideoPlayer3;
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Number,
                    Number,
                    Number,
                    Number,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "prepare", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Number,
                    Number,
                    Number,
                    Number
                ]),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "play", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Number,
                    Number,
                    Number,
                    Number
                ]),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "stop", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Number,
                    Number,
                    Number,
                    Number
                ]),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "pause", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Number,
                    Number,
                    Number,
                    Number
                ]),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "resume", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "clearAll", null);
            __decorate([
                (0, lockedDecorator_1.locked)(LOCK_KEY),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Number,
                    Number,
                    Number,
                    Number
                ]),
                __metadata("design:returntype", Promise)
            ], ProprietaryVideoPlayer3.prototype, "getDuration", null);
        }
    });
    // src/IDCAP/IDCAP.ts
    var IDCAP;
    var init_IDCAP = __esm({
        "src/IDCAP/IDCAP.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            IDCAP = /*#__PURE__*/ function() {
                "use strict";
                function IDCAP(window2) {
                    _class_call_check(this, IDCAP);
                    this.window = window2;
                }
                _create_class(IDCAP, [
                    {
                        key: "request",
                        value: function request(uri, parameters2) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                _this.window.idcap.request(uri, {
                                    parameters: parameters2,
                                    onSuccess: resolve,
                                    onFailure: reject
                                });
                            });
                        }
                    }
                ]);
                return IDCAP;
            }();
        }
    });
    // src/Settings/WebosSettingsManager.ts
    var import_Orientation, import_VideoOrientation, PREFIX, ORIENTATION_KEY, VIDEO_ORIENTATION_KEY, DEBUG_KEY, WebosSettingsManager;
    var init_WebosSettingsManager = __esm({
        "src/Settings/WebosSettingsManager.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_Orientation = __toESM(require_Orientation());
            import_VideoOrientation = __toESM(require_VideoOrientation());
            PREFIX = "settings_manager.";
            ORIENTATION_KEY = PREFIX + "orientation";
            VIDEO_ORIENTATION_KEY = PREFIX + "video_orientation";
            DEBUG_KEY = PREFIX + "debug";
            WebosSettingsManager = /*#__PURE__*/ function() {
                "use strict";
                function WebosSettingsManager(storage) {
                    _class_call_check(this, WebosSettingsManager);
                    this.storage = storage;
                }
                _create_class(WebosSettingsManager, [
                    {
                        key: "getOrientation",
                        value: function getOrientation() {
                            var key = this.storage.getItem(ORIENTATION_KEY);
                            if (key && typeof import_Orientation["default"][key] !== "undefined") {
                                return import_Orientation["default"][key];
                            } else {
                                return import_Orientation["default"].LANDSCAPE;
                            }
                        }
                    },
                    {
                        key: "getVideoOrientation",
                        value: function getVideoOrientation() {
                            var key = this.storage.getItem(VIDEO_ORIENTATION_KEY);
                            if (key && typeof import_VideoOrientation["default"][key] !== "undefined") {
                                return import_VideoOrientation["default"][key];
                            } else {
                                return null;
                            }
                        }
                    },
                    {
                        key: "setOrientation",
                        value: function setOrientation(orientation, videoOrientation) {
                            this.storage.setItem(ORIENTATION_KEY, import_Orientation["default"][orientation]);
                            if (typeof videoOrientation !== "undefined") {
                                this.storage.setItem(VIDEO_ORIENTATION_KEY, import_VideoOrientation["default"][videoOrientation]);
                            } else {
                                this.storage.removeItem(VIDEO_ORIENTATION_KEY);
                            }
                        }
                    },
                    {
                        key: "isDebugEnabled",
                        value: function isDebugEnabled() {
                            var value = this.storage.getItem(DEBUG_KEY);
                            return value === "1";
                        }
                    },
                    {
                        key: "setDebug",
                        value: function setDebug(enabled) {
                            if (enabled) {
                                this.storage.setItem(DEBUG_KEY, "1");
                            } else {
                                this.storage.removeItem(DEBUG_KEY);
                            }
                        }
                    }
                ]);
                return WebosSettingsManager;
            }();
        }
    });
    // node_modules/@signageos/front-display/es6/Stream/StreamURI.js
    var require_StreamURI = __commonJS({
        "node_modules/@signageos/front-display/es6/Stream/StreamURI.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var StreamURI3 = {
                "internal://hdmi": "HDMI1",
                "internal://hdmi1": "HDMI1",
                "internal://hdmi2": "HDMI2",
                "internal://hdmi3": "HDMI3",
                "internal://hdmi4": "HDMI4",
                "internal://pc": "PC",
                "internal://dvi": "DVI",
                "internal://dp": "DP"
            };
            exports["default"] = StreamURI3;
        }
    });
    // node_modules/@signageos/lib/dist/Timer/wait.js
    var require_wait4 = __commonJS({
        "node_modules/@signageos/lib/dist/Timer/wait.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports["default"] = wait6;
            function wait6(timeout, _a2) {
                var _b2 = _a2 === void 0 ? {} : _a2, signal = _b2.signal;
                var timer = void 0;
                var rejectCallback = null;
                var promise3 = new Promise(function(resolve, reject) {
                    rejectCallback = reject;
                    timer = setTimeout(function() {
                        rejectCallback = null;
                        resolve();
                    }, timeout);
                });
                promise3.cancel = function() {
                    if (timer) {
                        clearTimeout(timer);
                        timer = void 0;
                        if (rejectCallback) {
                            rejectCallback(new Error("Wait cancelled"));
                        }
                        rejectCallback = null;
                    }
                };
                signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", function() {
                    return promise3.cancel();
                });
                return promise3;
            }
        }
    });
    // node_modules/@signageos/lib/dist/Timer/increasingInterval.js
    var require_increasingInterval = __commonJS({
        "node_modules/@signageos/lib/dist/Timer/increasingInterval.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __generator = exports && exports.__generator || function(thisArg, body) {
                var _2 = {
                    label: 0,
                    sent: function sent() {
                        if (t[0] & 1) throw t[1];
                        return t[1];
                    },
                    trys: [],
                    ops: []
                }, f, y, t, g;
                return g = {
                    next: verb(0),
                    "throw": verb(1),
                    "return": verb(2)
                }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                }), g;
                function verb(n) {
                    return function(v) {
                        return step([
                            n,
                            v
                        ]);
                    };
                }
                function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    while(g && (g = 0, op[0] && (_2 = 0)), _2)try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        if (y = 0, t) op = [
                            op[0] & 2,
                            t.value
                        ];
                        switch(op[0]){
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _2.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _2.label++;
                                y = op[1];
                                op = [
                                    0
                                ];
                                continue;
                            case 7:
                                op = _2.ops.pop();
                                _2.trys.pop();
                                continue;
                            default:
                                if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _2 = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                    _2.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _2.label < t[1]) {
                                    _2.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _2.label < t[2]) {
                                    _2.label = t[2];
                                    _2.ops.push(op);
                                    break;
                                }
                                if (t[2]) _2.ops.pop();
                                _2.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _2);
                    } catch (e) {
                        op = [
                            6,
                            e
                        ];
                        y = 0;
                    } finally{
                        f = t = 0;
                    }
                    if (op[0] & 5) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: true
                    };
                }
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.setIncreasingInterval = setIncreasingInterval2;
            exports.clearIncreasingInterval = clearIncreasingInterval2;
            var wait_1 = __importDefault(require_wait4());
            var lastId = 0;
            var intervals = [];
            function setIncreasingInterval2(startInterval, increase, maxInterval, callback) {
                if (startInterval <= 0) {
                    throw new Error("Starting interval must be a positive number");
                }
                if (typeof maxInterval === "number" && maxInterval < startInterval) {
                    throw new Error("Max interval must be higher than or equal to start interval");
                }
                if (typeof increase === "number" && increase < 0) {
                    throw new Error("Increase must be a non-negative number");
                }
                var id = ++lastId;
                intervals.push(id);
                handler(id, startInterval, increase, maxInterval, callback)["catch"](function() {
                    return clearIncreasingInterval2(id);
                });
                return id;
            }
            function clearIncreasingInterval2(clearId) {
                intervals = intervals.filter(function(id) {
                    return id !== clearId;
                });
            }
            function handler(id, startInterval, increase, maxInterval, callback) {
                return __awaiter(this, void 0, void 0, function() {
                    var interval;
                    return __generator(this, function(_a2) {
                        switch(_a2.label){
                            case 0:
                                interval = startInterval;
                                _a2.label = 1;
                            case 1:
                                if (false) return [
                                    3,
                                    3
                                ];
                                return [
                                    4,
                                    (0, wait_1["default"])(interval)
                                ];
                            case 2:
                                _a2.sent();
                                if (intervals.indexOf(id) < 0) {
                                    return [
                                        3,
                                        3
                                    ];
                                }
                                callback();
                                interval = increaseInterval(interval, increase, maxInterval);
                                return [
                                    3,
                                    1
                                ];
                            case 3:
                                return [
                                    2
                                ];
                        }
                    });
                });
            }
            function increaseInterval(previousInterval, increase, maxInterval) {
                var newInterval;
                if (typeof increase === "number") {
                    newInterval = previousInterval + increase;
                } else if (typeof increase === "function") {
                    newInterval = increase(previousInterval);
                } else {
                    throw new Error("Invalid increase value - must be either number or a function");
                }
                if (newInterval < previousInterval) {
                    throw new Error("Unexpected value: interval decreased");
                }
                if (typeof maxInterval === "number") {
                    return Math.min(newInterval, maxInterval);
                }
                return newInterval;
            }
        }
    });
    var import_events;
    var init_videoHelper = __esm({
        "src/Video/videoHelper.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_events = __toESM(require_events());
        }
    });
    // src/Video/WebosSCAPv12InternalPortVideo.ts
    var import_StreamURI, import_increasingInterval, VideoSources, WebosSCAPv12InternalPortVideo;
    var init_WebosSCAPv12InternalPortVideo = __esm({
        "src/Video/WebosSCAPv12InternalPortVideo.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_StreamURI = __toESM(require_StreamURI());
            import_increasingInterval = __toESM(require_increasingInterval());
            init_videoHelper();
            VideoSources = /* @__PURE__ */ function(VideoSources2) {
                VideoSources2["HDMI1"] = "ext://hdmi:1";
                VideoSources2["HDMI2"] = "ext://hdmi:2";
                VideoSources2["HDMI3"] = "ext://hdmi:3";
                VideoSources2["HDMI4"] = "ext://hdmi:4";
                VideoSources2["PC"] = "ext://pc:1";
                VideoSources2["DVI"] = "ext://dvi:1";
                VideoSources2["DP"] = "ext://dp:1";
                return VideoSources2;
            }(VideoSources || {});
            WebosSCAPv12InternalPortVideo = /*#__PURE__*/ function() {
                "use strict";
                function WebosSCAPv12InternalPortVideo(scap, window2, videoElement, wrapperElement, id) {
                    _class_call_check(this, WebosSCAPv12InternalPortVideo);
                    this.scap = scap;
                    this.window = window2;
                    this.videoElement = videoElement;
                    this.wrapperElement = wrapperElement;
                    this.id = id;
                    __publicField(this, "uri", null);
                    __publicField(this, "lastConnected", true);
                    __publicField(this, "eventEmitter");
                    __publicField(this, "interval", null);
                    this.eventEmitter = createSafeEventEmitter();
                }
                _create_class(WebosSCAPv12InternalPortVideo, [
                    {
                        key: "prepare",
                        value: function prepare(uri) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    this.uri = uri;
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (this.uri === null) {
                                                throw Error("Trying to play internal port without calling prepare first");
                                            }
                                            this.hideDefaultVideoElement();
                                            return [
                                                4,
                                                this.playInternalPort()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.setInternalCheckStatus();
                                            this.eventEmitter.emit("playing");
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            return __async(this, null, function() {
                                var videoElement;
                                return _ts_generator(this, function(_state) {
                                    try {
                                        if (this.uri) {
                                            videoElement = this.window.document.getElementById(this.id);
                                            if (videoElement) {
                                                this.wrapperElement.removeChild(videoElement);
                                                (0, import_increasingInterval.clearIncreasingInterval)(this.interval);
                                                this.eventEmitter.emit("stopped");
                                            }
                                        }
                                    } finally{
                                        this.uri = null;
                                        this.interval = null;
                                        this.showDefaultVideoElement();
                                        this.show();
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause() {
                            throw new Error("Can't pause internal port");
                        }
                    },
                    {
                        key: "addEventListener",
                        value: function addEventListener(eventName, listener) {
                            this.eventEmitter.addListener(eventName, listener);
                        }
                    },
                    {
                        key: "removeAllEventListeners",
                        value: function removeAllEventListeners() {
                            this.eventEmitter.removeAllListeners();
                        }
                    },
                    {
                        key: "playInternalPort",
                        value: function playInternalPort() {
                            var _this = this;
                            var videoSource = VideoSources[import_StreamURI["default"][this.uri]];
                            return new Promise(function(resolve, reject) {
                                return _this.scap.inputSource.initialize(function() {
                                    return console.info("stream source changed");
                                }, function(cbObject) {
                                    return reject(new Error("Error during streamPlay: " + cbObject.errorText));
                                }, {
                                    divId: _this.wrapperElement.id,
                                    videoId: _this.id,
                                    callback: resolve,
                                    src: videoSource
                                });
                            });
                        }
                    },
                    {
                        key: "setInternalCheckStatus",
                        value: function setInternalCheckStatus() {
                            var _this = this;
                            this.interval = (0, import_increasingInterval.setIncreasingInterval)(5e3, function(previous) {
                                return previous * 1.5;
                            }, 2e4, function() {
                                _this.scap.inputSource.getInputSourceStatus(function(status) {
                                    try {
                                        if (status.currentSignalState === "good" && !_this.lastConnected) {
                                            _this.lastConnected = true;
                                            _this.show();
                                            _this.eventEmitter.emit("playing");
                                        } else if (status.currentSignalState !== "good" && _this.lastConnected) {
                                            _this.lastConnected = false;
                                            _this.hide();
                                            _this.eventEmitter.emit("ended");
                                        }
                                    } catch (error) {
                                        console.error("Error while checking input source status:" + error.message);
                                    }
                                }, function(error) {
                                    return console.error("Error while checking input source status: " + error.errorText);
                                });
                            });
                        }
                    },
                    {
                        key: "show",
                        value: function show() {
                            this.wrapperElement.style.visibility = "visible";
                        }
                    },
                    {
                        key: "hide",
                        value: function hide() {
                            this.wrapperElement.style.visibility = "hidden";
                        }
                    },
                    {
                        key: "showDefaultVideoElement",
                        value: function showDefaultVideoElement() {
                            this.videoElement.style.display = "inline";
                        }
                    },
                    {
                        key: "hideDefaultVideoElement",
                        value: function hideDefaultVideoElement() {
                            this.videoElement.style.display = "none";
                        }
                    }
                ]);
                return WebosSCAPv12InternalPortVideo;
            }();
        }
    });
    // src/Video/WebosSCAPv16InternalPortVideo.ts
    var import_StreamURI2, WebosSCAPv16InternalPortVideo;
    var init_WebosSCAPv16InternalPortVideo = __esm({
        "src/Video/WebosSCAPv16InternalPortVideo.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_StreamURI2 = __toESM(require_StreamURI());
            init_WebosSCAPv12InternalPortVideo();
            WebosSCAPv16InternalPortVideo = /*#__PURE__*/ function(WebosSCAPv12InternalPortVideo) {
                "use strict";
                _inherits(WebosSCAPv16InternalPortVideo, WebosSCAPv12InternalPortVideo);
                var _super = _create_super(WebosSCAPv16InternalPortVideo);
                function WebosSCAPv16InternalPortVideo(scap, window2, videoElement, wrapperElement, id) {
                    _class_call_check(this, WebosSCAPv16InternalPortVideo);
                    return _super.call(this, scap, window2, videoElement, wrapperElement, id);
                }
                _create_class(WebosSCAPv16InternalPortVideo, [
                    {
                        key: "playInternalPort",
                        value: function playInternalPort() {
                            var _this = this;
                            var videoSource = VideoSources[import_StreamURI2["default"][this.uri]];
                            return new Promise(function(resolve, reject) {
                                return _this.scap.inputSource.initialize(function() {
                                    return console.info("stream source changed");
                                }, function(cbObject) {
                                    return reject(new Error("Error during streamPlay: " + cbObject.errorText));
                                }, {
                                    divId: _this.wrapperElement.id,
                                    videoId: _this.id,
                                    callback: resolve,
                                    src: videoSource,
                                    noaudio: false
                                });
                            });
                        }
                    }
                ]);
                return WebosSCAPv16InternalPortVideo;
            }(WebosSCAPv12InternalPortVideo);
        }
    });
    var supportedExtensions;
    var init_videoDetails = __esm({
        "src/Video/videoDetails.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            supportedExtensions = [
                "asf",
                "wmv",
                "avi",
                "mp4",
                "m4v",
                "mov",
                "3gp",
                "mkv",
                "ts",
                "mpeg",
                "mpg",
                "vob",
                "webm"
            ];
        }
    });
    // src/Video/WebosRegularVideo.ts
    var import_wait, _, DEFAULT_STALL_LOCAL_TIMEOUT_MS, DEFAULT_STALL_REMOTE_TIMEOUT_MS, WebosRegularVideo;
    var init_WebosRegularVideo = __esm({
        "src/Video/WebosRegularVideo.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_wait = __toESM(require_wait4());
            _ = __toESM(require_lodash());
            init_videoDetails();
            init_videoHelper();
            DEFAULT_STALL_LOCAL_TIMEOUT_MS = 3e3;
            DEFAULT_STALL_REMOTE_TIMEOUT_MS = 1e4;
            WebosRegularVideo = /*#__PURE__*/ function() {
                "use strict";
                function WebosRegularVideo(video, customStallTimeoutMs) {
                    var _this = this;
                    _class_call_check(this, WebosRegularVideo);
                    this.video = video;
                    this.customStallTimeoutMs = customStallTimeoutMs;
                    __publicField(this, "eventEmitter");
                    __publicField(this, "isRemote", false);
                    __publicField(this, "stallDebounce");
                    __publicField(this, "emitEnded", function() {
                        _this.eventEmitter.emit("ended");
                    });
                    __publicField(this, "cancelStallDebounce", function() {
                        _this.stallDebounce.cancel();
                        _this.video.removeEventListener("timeupdate", _this.stallDebounce);
                    });
                    __publicField(this, "afterPlayCallback", function() {
                        _this.eventEmitter.emit("playing");
                        _this.stallDebounce();
                    });
                    this.eventEmitter = createSafeEventEmitter();
                }
                _create_class(WebosRegularVideo, [
                    {
                        key: "prepare",
                        value: function prepare(uri) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.isRemote = !uri.startsWith("file://");
                                            this.stallDebounce = _.debounce(this.emitEnded, this.getCurrentStallTimeout());
                                            this.video.removeEventListener("ended", this.emitEnded);
                                            this.video.addEventListener("ended", this.emitEnded);
                                            this.video.removeEventListener("ended", this.cancelStallDebounce);
                                            this.video.addEventListener("ended", this.cancelStallDebounce);
                                            return [
                                                4,
                                                (0, import_wait["default"])(50)
                                            ];
                                        case 1:
                                            _state.sent();
                                            if (!supportedExtensions.some(function(extension) {
                                                return uri.endsWith(extension);
                                            })) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                loadVideo(this.video, uri)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                4,
                                                (0, import_wait["default"])(50)
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.isRemote) {
                                                this.stallDebounce();
                                            }
                                            this.video.currentTime = 0;
                                            return [
                                                4,
                                                this.video.play()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.setupTimeUpdateEvents();
                                            setTimeout(this.afterPlayCallback, 500);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.video.pause();
                                            this.video.removeAttribute("src");
                                            return [
                                                4,
                                                (0, import_wait["default"])(10)
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.video.load();
                                            return [
                                                4,
                                                (0, import_wait["default"])(10)
                                            ];
                                        case 2:
                                            _state.sent();
                                            this.eventEmitter.emit("stopped");
                                            this.cancelStallDebounce();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.video.pause()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "addEventListener",
                        value: function addEventListener(eventName, listener) {
                            this.eventEmitter.addListener(eventName, listener);
                        }
                    },
                    {
                        key: "removeAllEventListeners",
                        value: function removeAllEventListeners() {
                            this.eventEmitter.removeAllListeners();
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration() {
                            return this.video.duration * 1e3;
                        }
                    },
                    {
                        key: "getCurrentStallTimeout",
                        value: function getCurrentStallTimeout() {
                            var timeout = this.customStallTimeoutMs !== void 0 ? this.customStallTimeoutMs : this.isRemote ? DEFAULT_STALL_REMOTE_TIMEOUT_MS : DEFAULT_STALL_LOCAL_TIMEOUT_MS;
                            return timeout;
                        }
                    },
                    {
                        key: "setupTimeUpdateEvents",
                        value: function setupTimeUpdateEvents() {
                            this.video.removeEventListener("timeupdate", this.stallDebounce);
                            this.video.addEventListener("timeupdate", this.stallDebounce);
                        }
                    }
                ]);
                return WebosRegularVideo;
            }();
        }
    });
    // node_modules/@signageos/front-display/es6/Stream/StreamProtocol.js
    var require_StreamProtocol = __commonJS({
        "node_modules/@signageos/front-display/es6/Stream/StreamProtocol.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var StreamProtocol5;
            (function(StreamProtocol6) {
                StreamProtocol6[StreamProtocol6["HTTP"] = 0] = "HTTP";
                StreamProtocol6[StreamProtocol6["UDP"] = 1] = "UDP";
                StreamProtocol6[StreamProtocol6["RTMP"] = 2] = "RTMP";
                StreamProtocol6[StreamProtocol6["RTP"] = 3] = "RTP";
                StreamProtocol6[StreamProtocol6["HLS"] = 4] = "HLS";
                StreamProtocol6[StreamProtocol6["RTSP"] = 5] = "RTSP";
            })(StreamProtocol5 || (StreamProtocol5 = {}));
            exports["default"] = StreamProtocol5;
        }
    });
    // src/Video/WebosStreamVideo.ts
    var import_StreamProtocol, WebosStreamVideo;
    var init_WebosStreamVideo = __esm({
        "src/Video/WebosStreamVideo.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_StreamProtocol = __toESM(require_StreamProtocol());
            init_videoHelper();
            WebosStreamVideo = /*#__PURE__*/ function() {
                "use strict";
                function WebosStreamVideo(window2, video) {
                    var _this = this;
                    _class_call_check(this, WebosStreamVideo);
                    this.window = window2;
                    this.video = video;
                    __publicField(this, "sourceElement", null);
                    __publicField(this, "eventEmitter");
                    __publicField(this, "eventListener", function(event) {
                        var detail = JSON.parse(event.detail);
                        if (detail.info === "playing") {
                            setTimeout(function() {
                                return _this.eventEmitter.emit("playing");
                            }, 500);
                        }
                        if (detail.info === "endOfStream") {
                            _this.eventEmitter.emit("ended");
                        }
                        if (detail.info.errorCode) {
                            _this.eventEmitter.emit("ended");
                        }
                    });
                    this.eventEmitter = createSafeEventEmitter();
                }
                _create_class(WebosStreamVideo, [
                    {
                        key: "prepare",
                        value: function prepare(uri, protocolType) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    this.video.removeEventListener("umsmediainfo", this.eventListener);
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.sourceElement = _this.window.document.createElement("source");
                                            _this.sourceElement.setAttribute("src", uri);
                                            var options = {
                                                htmlMediaOption: {
                                                    useUMSMediaInfo: true
                                                },
                                                mediaTransportType: import_StreamProtocol["default"][protocolType]
                                            };
                                            _this.sourceElement.setAttribute("type", "video/mp4;mediaOption=" + encodeURI(JSON.stringify(options)));
                                            _this.video.appendChild(_this.sourceElement);
                                            var changeListeners;
                                            var mediaEventListener = function(event) {
                                                var detail = JSON.parse(event.detail);
                                                if (detail.info === "loadCompleted") {
                                                    changeListeners();
                                                    resolve();
                                                }
                                                if (detail.info.errorCode) {
                                                    _this.video.removeEventListener("umsmediainfo", mediaEventListener);
                                                    reject(new Error("Stream playback error"));
                                                }
                                            };
                                            changeListeners = function() {
                                                _this.video.removeEventListener("umsmediainfo", mediaEventListener);
                                                _this.video.addEventListener("umsmediainfo", _this.eventListener);
                                            };
                                            _this.video.addEventListener("umsmediainfo", mediaEventListener);
                                            _this.video.load();
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.video.play()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    if (this.sourceElement) {
                                        this.video.removeChild(this.sourceElement);
                                        this.sourceElement = null;
                                        this.eventEmitter.emit("stopped");
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause() {
                            throw new Error("Can't pause stream");
                        }
                    },
                    {
                        key: "addEventListener",
                        value: function addEventListener(eventName, listener) {
                            this.eventEmitter.addListener(eventName, listener);
                        }
                    },
                    {
                        key: "removeAllEventListeners",
                        value: function removeAllEventListeners() {
                            this.eventEmitter.removeAllListeners();
                        }
                    }
                ]);
                return WebosStreamVideo;
            }();
        }
    });
    // src/Video/WebosVideo.ts
    var WebosVideo;
    var init_WebosVideo = __esm({
        "src/Video/WebosVideo.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_WebosRegularVideo();
            init_WebosStreamVideo();
            WebosVideo = /*#__PURE__*/ function() {
                "use strict";
                function WebosVideo(id, window2, foregroundWrapperElement, backgroundWrapperElement, createInternalPortVideo) {
                    _class_call_check(this, WebosVideo);
                    this.id = id;
                    this.window = window2;
                    this.foregroundWrapperElement = foregroundWrapperElement;
                    this.backgroundWrapperElement = backgroundWrapperElement;
                    this.createInternalPortVideo = createInternalPortVideo;
                    __publicField(this, "videoWrapper");
                    __publicField(this, "videoElement");
                    __publicField(this, "video");
                    __publicField(this, "stream");
                    __publicField(this, "internalPort");
                    __publicField(this, "currentAdapter", null);
                    __publicField(this, "options");
                    this.createVideoWrapper();
                    this.createVideoElement();
                    this.createVideoAdapters();
                }
                _create_class(WebosVideo, [
                    {
                        key: "prepare",
                        value: function prepare(_0, _1, _2, _3, _4) {
                            return __async(this, arguments, function(uri, x, y, width, height) {
                                var options, _;
                                var _arguments = arguments;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            options = _arguments.length > 5 && _arguments[5] !== void 0 ? _arguments[5] : {};
                                            this.options = options;
                                            if (!this.currentAdapter) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.stop()
                                            ];
                                        case 1:
                                            _state.sent();
                                            _state.label = 2;
                                        case 2:
                                            this.setVideoWrapperCoordinates(x, y, width, height, options);
                                            this.videoElement.muted = true;
                                            _ = options.type;
                                            switch(_){
                                                case 1 /* STREAM */ :
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case 2 /* INTERNAL_PORT */ :
                                                    return [
                                                        3,
                                                        5
                                                    ];
                                                case 0 /* VIDEO */ :
                                                    return [
                                                        3,
                                                        7
                                                    ];
                                            }
                                            return [
                                                3,
                                                9
                                            ];
                                        case 3:
                                            if (typeof options.streamProtocol === "undefined") {
                                                throw new Error("Missing stream protocol");
                                            }
                                            return [
                                                4,
                                                this.stream.prepare(uri, options.streamProtocol)
                                            ];
                                        case 4:
                                            _state.sent();
                                            this.currentAdapter = this.stream;
                                            return [
                                                3,
                                                11
                                            ];
                                        case 5:
                                            return [
                                                4,
                                                this.internalPort.prepare(uri)
                                            ];
                                        case 6:
                                            _state.sent();
                                            this.currentAdapter = this.internalPort;
                                            return [
                                                3,
                                                11
                                            ];
                                        case 7:
                                            return [
                                                4,
                                                this.video.prepare(uri)
                                            ];
                                        case 8:
                                            _state.sent();
                                            this.currentAdapter = this.video;
                                            return [
                                                3,
                                                11
                                            ];
                                        case 9:
                                            return [
                                                4,
                                                this.video.prepare(uri)
                                            ];
                                        case 10:
                                            _state.sent();
                                            this.currentAdapter = this.video;
                                            return [
                                                3,
                                                11
                                            ];
                                        case 11:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.currentAdapter) {
                                                throw new Error("Trying to play video that's not prepared");
                                            }
                                            if (typeof this.options.volume !== "undefined") {
                                                this.setVolume(this.options.volume);
                                            } else {
                                                this.setVolume(100);
                                            }
                                            return [
                                                4,
                                                this.currentAdapter.play()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.show();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.clearVideoWrapperCoordinates();
                                            if (!this.currentAdapter) return [
                                                3,
                                                4
                                            ];
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                ,
                                                3,
                                                4
                                            ]);
                                            return [
                                                4,
                                                this.currentAdapter.stop()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            this.currentAdapter.removeAllEventListeners();
                                            this.currentAdapter = null;
                                            return [
                                                7
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.currentAdapter) {
                                                throw new Error("Trying to pause video that's not playing");
                                            }
                                            return [
                                                4,
                                                this.currentAdapter.pause()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resume",
                        value: function resume() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.currentAdapter) {
                                                throw new Error("Trying to resume video that's not playing");
                                            }
                                            return [
                                                4,
                                                this.currentAdapter.play()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "addEventListener",
                        value: function addEventListener(eventName, listener) {
                            if (this.currentAdapter) {
                                this.currentAdapter.addEventListener(eventName, listener);
                            }
                        }
                    },
                    {
                        key: "removeAllEventListeners",
                        value: function removeAllEventListeners() {
                            this.video.removeAllEventListeners();
                            this.stream.removeAllEventListeners();
                            this.internalPort.removeAllEventListeners();
                        }
                    },
                    {
                        key: "setVolume",
                        value: function setVolume(volumePercentage) {
                            this.videoElement.muted = volumePercentage === 0;
                            this.videoElement.volume = volumePercentage / 100;
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration() {
                            return this.video.getDuration();
                        }
                    },
                    {
                        key: "createVideoWrapper",
                        value: function createVideoWrapper() {
                            this.videoWrapper = this.window.document.createElement("div");
                            this.videoWrapper.id = "videoWrapper_" + this.id;
                            this.videoWrapper.style.background = "#000000";
                            this.videoWrapper.style.position = "absolute";
                            this.hide();
                            this.foregroundWrapperElement.appendChild(this.videoWrapper);
                        }
                    },
                    {
                        key: "setVideoWrapperCoordinates",
                        value: function setVideoWrapperCoordinates(x, y, width, height, options) {
                            this.videoWrapper.setAttribute("width", width.toString());
                            this.videoWrapper.setAttribute("height", height.toString());
                            this.videoWrapper.style.left = x + "px";
                            this.videoWrapper.style.top = y + "px";
                            this.videoWrapper.style.width = width + "px";
                            this.videoWrapper.style.height = height + "px";
                            if (options.background) {
                                this.backgroundWrapperElement.appendChild(this.videoWrapper);
                            } else {
                                this.foregroundWrapperElement.appendChild(this.videoWrapper);
                            }
                        }
                    },
                    {
                        key: "clearVideoWrapperCoordinates",
                        value: function clearVideoWrapperCoordinates() {
                            this.videoWrapper.style.left = "0px";
                            this.videoWrapper.style.top = "0px";
                            this.videoWrapper.style.width = "0px";
                            this.videoWrapper.style.height = "0px";
                            this.hide();
                        }
                    },
                    {
                        key: "hide",
                        value: function hide() {
                            this.videoWrapper.style.visibility = "hidden";
                        }
                    },
                    {
                        key: "show",
                        value: function show() {
                            this.videoWrapper.style.visibility = "visible";
                        }
                    },
                    {
                        key: "createVideoElement",
                        value: function createVideoElement() {
                            this.videoElement = this.window.document.createElement("video");
                            this.videoElement.setAttribute("class", "default-video");
                            this.videoElement.setAttribute("width", "100%");
                            this.videoElement.setAttribute("height", "100%");
                            this.videoElement.style.width = "100%";
                            this.videoWrapper.appendChild(this.videoElement);
                        }
                    },
                    {
                        key: "createVideoAdapters",
                        value: function createVideoAdapters() {
                            this.video = new WebosRegularVideo(this.videoElement);
                            this.stream = new WebosStreamVideo(this.window, this.videoElement);
                            this.internalPort = this.createInternalPortVideo(this.window, this.videoElement, this.videoWrapper, "internalPort_" + this.id);
                        }
                    }
                ]);
                return WebosVideo;
            }();
        }
    });
    // src/Video/WebosVideoPlayer.ts
    var WebosVideoPlayer;
    var init_WebosVideoPlayer = __esm({
        "src/Video/WebosVideoPlayer.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_WebosVideo();
            WebosVideoPlayer = /*#__PURE__*/ function() {
                "use strict";
                function WebosVideoPlayer(videoPlayer) {
                    var supports4k = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
                    _class_call_check(this, WebosVideoPlayer);
                    this.videoPlayer = videoPlayer;
                    this.supports4k = supports4k;
                }
                _create_class(WebosVideoPlayer, [
                    {
                        key: "getMaxVideoCount",
                        value: function getMaxVideoCount() {
                            return this.videoPlayer.getMaxVideoCount();
                        }
                    },
                    {
                        key: "prepare",
                        value: function prepare(_0, _1, _2, _3, _4) {
                            return __async(this, arguments, function(uri, x, y, width, height) {
                                var options;
                                var _arguments = arguments;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            options = _arguments.length > 5 && _arguments[5] !== void 0 ? _arguments[5] : {};
                                            if (options["4k"] && !this.supports4k) {
                                                throw new Error("4K video not supported at the moment");
                                            }
                                            return [
                                                4,
                                                this.videoPlayer.prepare(uri, x, y, width, height, __spreadProps(__spreadValues({}, options), {
                                                    type: 0 /* VIDEO */ 
                                                }))
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play(uri, x, y, width, height) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.videoPlayer.play(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop(uri, x, y, width, height) {
                            return this.videoPlayer.stop(uri, x, y, width, height);
                        }
                    },
                    {
                        key: "pause",
                        value: function pause(uri, x, y, width, height) {
                            return this.videoPlayer.pause(uri, x, y, width, height);
                        }
                    },
                    {
                        key: "resume",
                        value: function resume(uri, x, y, width, height) {
                            return this.videoPlayer.resume(uri, x, y, width, height);
                        }
                    },
                    {
                        key: "clearAll",
                        value: function clearAll() {
                            return this.videoPlayer.clearAll();
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration(uri, x, y, width, height) {
                            return this.videoPlayer.getDuration(uri, x, y, width, height);
                        }
                    }
                ]);
                return WebosVideoPlayer;
            }();
        }
    });
    // node_modules/@signageos/front-display/es6/Timer/TimerPropertyStorage.js
    var require_TimerPropertyStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/Timer/TimerPropertyStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __rest = exports && exports.__rest || function(s, e) {
                var t = {};
                for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
                }
                return t;
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var convertWeekday_1 = require_convertWeekday();
            var TimerPropertyStorage = /*#__PURE__*/ function() {
                function TimerPropertyStorage(propertyStorage, property) {
                    _class_call_check(this, TimerPropertyStorage);
                    this.propertyStorage = propertyStorage;
                    this.property = property;
                }
                _create_class(TimerPropertyStorage, [
                    {
                        /** @deprecated use replaceTimerSettings instead */ key: "replaceTimers",
                        value: function replaceTimers(newTimers) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.replaceShortTimers(this.convertTimers(newTimers))
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "replaceShortTimers",
                        value: function replaceShortTimers(timers) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.saveTimersToStorage(Object.assign({}, timers))
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /** @deprecated use setTimerSettings instead */ key: "setTimer",
                        value: function setTimer(newTimer) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.setShortTimer(this.convertTimer(newTimer))
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setShortTimer",
                        value: function setShortTimer(timer) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _, _1, _2, _3, _tmp, _4, _5;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _1 = (_ = this).saveTimersToStorage;
                                            _2 = Object.assign;
                                            _3 = Object.assign;
                                            _tmp = [
                                                {}
                                            ];
                                            _5 = (_4 = this).convertTimers;
                                            return [
                                                4,
                                                this.retrieveTimersFromStorage()
                                            ];
                                        case 1:
                                            return [
                                                4,
                                                _1.apply(_, [
                                                    _2.apply(Object, [
                                                        _3.apply(Object, _tmp.concat([
                                                            _5.apply(_4, [
                                                                _state.sent()
                                                            ])
                                                        ])),
                                                        _define_property({}, timer.type, timer)
                                                    ])
                                                ])
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /** @deprecated use getTimerSettings instead */ key: "getTimer",
                        value: function getTimer(timerType) {
                            return __awaiter(this, void 0, void 0, function() {
                                var timers;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getTimers()
                                            ];
                                        case 1:
                                            timers = _state.sent();
                                            return [
                                                2,
                                                timers[timerType]
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getShortTimer",
                        value: function getShortTimer(timerType) {
                            return __awaiter(this, void 0, void 0, function() {
                                var timers;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getShortTimers()
                                            ];
                                        case 1:
                                            timers = _state.sent();
                                            return [
                                                2,
                                                timers[timerType]
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /** @deprecated use getTimerSettings instead */ key: "getTimers",
                        value: function getTimers() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _1 = (_ = this).convertToDeprecatedTimers;
                                            return [
                                                4,
                                                this.retrieveTimersFromStorage()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _1.apply(_, [
                                                    _state.sent()
                                                ])
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getShortTimers",
                        value: function getShortTimers() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _, _1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _1 = (_ = this).convertTimers;
                                            return [
                                                4,
                                                this.retrieveTimersFromStorage()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _1.apply(_, [
                                                    _state.sent()
                                                ])
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /** @deprecated use deleteTimerSettings instead */ key: "deleteTimer",
                        value: function deleteTimer(timerType) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.deleteShortTimer(timerType)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "deleteShortTimer",
                        value: function deleteShortTimer(timerType) {
                            return __awaiter(this, void 0, void 0, function() {
                                var timers;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getShortTimers()
                                            ];
                                        case 1:
                                            timers = _state.sent();
                                            delete timers[timerType];
                                            this.saveTimersToStorage(timers);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "saveTimersToStorage",
                        value: function saveTimersToStorage(timers) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.propertyStorage.setValue(this.property, timers)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "retrieveTimersFromStorage",
                        value: function retrieveTimersFromStorage() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.propertyStorage.getValueOrDefault(this.property, {})
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "convertTimers",
                        value: function convertTimers(timers) {
                            var _this = this;
                            return Object.fromEntries(Object.entries(timers).map(function(param) {
                                var _param = _sliced_to_array(param, 2), k = _param[0], v = _param[1];
                                return [
                                    k,
                                    "weekdays" in v ? v : _this.convertTimer(v)
                                ];
                            }));
                        }
                    },
                    {
                        key: "convertTimer",
                        value: function convertTimer(t) {
                            var sun = t.sun, mon = t.mon, tue = t.tue, wed = t.wed, thu = t.thu, fri = t.fri, sat = t.sat, rest = __rest(t, [
                                "sun",
                                "mon",
                                "tue",
                                "wed",
                                "thu",
                                "fri",
                                "sat"
                            ]);
                            return Object.assign(Object.assign({}, rest), {
                                weekdays: convertWeekday_1.convertWeekday.fromLegacy({
                                    sun: sun,
                                    mon: mon,
                                    tue: tue,
                                    wed: wed,
                                    thu: thu,
                                    fri: fri,
                                    sat: sat
                                }).toShort()
                            });
                        }
                    },
                    {
                        /** @deprecated for BC only */ key: "convertToDeprecatedTimers",
                        value: function convertToDeprecatedTimers(timers) {
                            var _this = this;
                            return Object.fromEntries(Object.entries(timers).map(function(param) {
                                var _param = _sliced_to_array(param, 2), k = _param[0], v = _param[1];
                                return [
                                    k,
                                    "weekdays" in v ? _this.convertToDeprecatedTimer(v) : v
                                ];
                            }));
                        }
                    },
                    {
                        /** @deprecated for BC only */ key: "convertToDeprecatedTimer",
                        value: function convertToDeprecatedTimer(_a2) {
                            var weekdays = _a2.weekdays, rest = __rest(_a2, [
                                "weekdays"
                            ]);
                            return Object.assign(Object.assign({}, rest), convertWeekday_1.convertWeekday.fromShort(weekdays).toLegacy());
                        }
                    }
                ]);
                return TimerPropertyStorage;
            }();
            exports["default"] = TimerPropertyStorage;
        }
    });
    // node_modules/@signageos/front-display/es6/Timer/ProprietaryTimerPropertyStorage.js
    var require_ProprietaryTimerPropertyStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/Timer/ProprietaryTimerPropertyStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Property_1 = __importDefault(require_Property());
            var TimerPropertyStorage_1 = __importDefault(require_TimerPropertyStorage());
            var ProprietaryTimerPropertyStorage3 = /*#__PURE__*/ function(_TimerPropertyStorage_1_default) {
                _inherits(ProprietaryTimerPropertyStorage3, _TimerPropertyStorage_1_default);
                var _super = _create_super(ProprietaryTimerPropertyStorage3);
                function ProprietaryTimerPropertyStorage3(propertyStorage) {
                    _class_call_check(this, ProprietaryTimerPropertyStorage3);
                    return _super.call(this, propertyStorage, Property_1["default"].TIMER_SETTINGS);
                }
                return ProprietaryTimerPropertyStorage3;
            }(TimerPropertyStorage_1["default"]);
            exports["default"] = ProprietaryTimerPropertyStorage3;
        }
    });
    var init_fetch = __esm({
        "src/polyfills/fetch.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // src/Driver/NotImplementedHardware.ts
    var _a2, _b2, NotImplementedHardware;
    var init_NotImplementedHardware = __esm({
        "src/Driver/NotImplementedHardware.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            NotImplementedHardware = function NotImplementedHardware() {
                "use strict";
                _class_call_check(this, NotImplementedHardware);
                __publicField(this, "led", {
                    setColor: function() {
                        return __async(this, null, function() {
                            return _ts_generator(this, function(_state) {
                                console.warn(new Error("Not implemented hardware led set color"));
                                return [
                                    2
                                ];
                            });
                        });
                    }
                });
                __publicField(this, "serial", {
                    closeAll: function() {
                        throw new Error("Not implemented hardware serial close all");
                    },
                    openPort: function() {
                        throw new Error("Not implemented hardware serial open port");
                    }
                });
                __publicField(this, "barcodeScanner", {
                    getVersion: function() {
                        return __async(this, null, function() {
                            return _ts_generator(this, function(_state) {
                                throw new Error("Not implemented barcode scanner");
                            });
                        });
                    },
                    startScanning: function() {
                        return __async(this, null, function() {
                            return _ts_generator(this, function(_state) {
                                throw new Error("Not implemented barcode scanner");
                            });
                        });
                    },
                    stopScanning: function() {
                        return __async(this, null, function() {
                            return _ts_generator(this, function(_state) {
                                throw new Error("Not implemented barcode scanner");
                            });
                        });
                    }
                });
            };
        }
    });
    // node_modules/@signageos/lib/dist/Hash/checksum.js
    var require_checksum3 = __commonJS({
        "node_modules/@signageos/lib/dist/Hash/checksum.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.checksumString = checksumString2;
            var crypto_1 = require_crypto_browserify();
            function checksumString2(message2, length) {
                if (length === void 0) {
                    length = 50;
                }
                var hash = (0, crypto_1.createHash)("sha256");
                hash.update(message2);
                return hash.digest("hex").substring(0, length);
            }
        }
    });
    // node_modules/text-encoding-shim/index.js
    var require_text_encoding_shim = __commonJS({
        "node_modules/text-encoding-shim/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root, factory) {
                if (typeof define === "function" && define.amd) {
                    define([], factory);
                } else if ((typeof exports === "undefined" ? "undefined" : _type_of(exports)) === "object") {
                    module.exports = factory();
                } else {
                    var textEncoding = factory();
                    root.TextEncoder = textEncoding.TextEncoder;
                    root.TextDecoder = textEncoding.TextDecoder;
                }
            })(exports, function() {
                "use strict";
                var g = typeof globalThis !== "undefined" ? globalThis : self;
                if (typeof g.TextEncoder !== "undefined" && typeof g.TextDecoder !== "undefined") {
                    return {
                        TextEncoder: g.TextEncoder,
                        TextDecoder: g.TextDecoder
                    };
                }
                var utf8Encodings = [
                    "utf8",
                    "utf-8",
                    "unicode-1-1-utf-8"
                ];
                var TextEncoder3 = function TextEncoder3(encoding) {
                    if (utf8Encodings.indexOf(encoding) < 0 && typeof encoding !== "undefined" && encoding !== null) {
                        throw new RangeError("Invalid encoding type. Only utf-8 is supported");
                    } else {
                        this.encoding = "utf-8";
                        this.encode = function(str) {
                            if (typeof str !== "string") {
                                throw new TypeError("passed argument must be of type string");
                            }
                            var binstr = unescape(encodeURIComponent(str)), arr = new Uint8Array(binstr.length);
                            binstr.split("").forEach(function(char, i) {
                                arr[i] = char.charCodeAt(0);
                            });
                            return arr;
                        };
                    }
                };
                var TextDecoder3 = function TextDecoder3(encoding, options) {
                    if (utf8Encodings.indexOf(encoding) < 0 && typeof encoding !== "undefined" && encoding !== null) {
                        throw new RangeError("Invalid encoding type. Only utf-8 is supported");
                    }
                    this.encoding = "utf-8";
                    this.ignoreBOM = false;
                    this.fatal = typeof options !== "undefined" && "fatal" in options ? options.fatal : false;
                    if (typeof this.fatal !== "boolean") {
                        throw new TypeError("fatal flag must be boolean");
                    }
                    this.decode = function(view, options2) {
                        if (typeof view === "undefined") {
                            return "";
                        }
                        var stream = typeof options2 !== "undefined" && "stream" in options2 ? options2.stream : false;
                        if (typeof stream !== "boolean") {
                            throw new TypeError("stream option must be boolean");
                        }
                        if (!ArrayBuffer.isView(view)) {
                            throw new TypeError("passed argument must be an array buffer view");
                        } else {
                            var arr = new Uint8Array(view.buffer, view.byteOffset, view.byteLength), charArr = new Array(arr.length);
                            arr.forEach(function(charcode, i) {
                                charArr[i] = String.fromCharCode(charcode);
                            });
                            return decodeURIComponent(escape(charArr.join("")));
                        }
                    };
                };
                return {
                    TextEncoder: TextEncoder3,
                    TextDecoder: TextDecoder3
                };
            });
        }
    });
    // src/Driver/FileSystem/SCAPv12FileSystem.ts
    var import_basicErrors, import_HashAlgorithm, import_checksum, path, import_text_encoding_shim, CHUNK_LENGTH, _SCAPv12FileSystem, SCAPv12FileSystem;
    var init_SCAPv12FileSystem = __esm({
        "src/Driver/FileSystem/SCAPv12FileSystem.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_basicErrors = __toESM(require_basicErrors());
            import_HashAlgorithm = __toESM(require_HashAlgorithm());
            import_checksum = __toESM(require_checksum3());
            path = __toESM(require_path_browserify());
            import_text_encoding_shim = __toESM(require_text_encoding_shim());
            init_videoDetails();
            init_SCAPHelper();
            CHUNK_LENGTH = 10240;
            _SCAPv12FileSystem = /*#__PURE__*/ function() {
                "use strict";
                function _SCAPv12FileSystem(location2, getStoragePlugin, video, window2) {
                    var supportsArchiveInfo = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
                    _class_call_check(this, _SCAPv12FileSystem);
                    this.location = location2;
                    this.getStoragePlugin = getStoragePlugin;
                    this.video = video;
                    this.window = window2;
                    this.supportsArchiveInfo = supportsArchiveInfo;
                }
                _create_class(_SCAPv12FileSystem, [
                    {
                        key: "initialize",
                        value: function initialize() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.initService();
                                            return [
                                                4,
                                                this.ensureInternalRootDataDirectory()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "writeFile",
                        value: function writeFile(filePath, contents) {
                            return __async(this, null, function() {
                                var absolutePath, e;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            absolutePath = this.getAbsoluteFilePath(filePath);
                                            return [
                                                4,
                                                this.nativeWriteFile(absolutePath, contents, {
                                                    mode: "truncate"
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            e = _state.sent();
                                            throw new Error("Error during writeFile: ".concat(JSON.stringify(e), ",\n				file ").concat(filePath.storageUnit.type, " - ").concat(filePath.filePath));
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "appendFile",
                        value: function appendFile(filePath, contents) {
                            return __async(this, null, function() {
                                var absolutePath, e;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            absolutePath = this.getAbsoluteFilePath(filePath);
                                            return [
                                                4,
                                                this.nativeWriteFile(absolutePath, contents, {
                                                    mode: "append"
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            e = _state.sent();
                                            throw new Error("Error during appendFile: ".concat(JSON.stringify(e), ",\n				file ").concat(filePath.storageUnit.type, " - ").concat(filePath.filePath));
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "readFile",
                        value: function readFile(filePath) {
                            return __async(this, null, function() {
                                var _this, absolutePath, totalFileSize;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            absolutePath = this.getAbsoluteFilePath(filePath);
                                            return [
                                                4,
                                                this.getFileSize(absolutePath)
                                            ];
                                        case 1:
                                            totalFileSize = _state.sent();
                                            return [
                                                2,
                                                new Promise(function(resolve, reject) {
                                                    var readData = [];
                                                    var totalRead = 0;
                                                    var internalReadFileRecursion;
                                                    var successCb = function(cbObject) {
                                                        var binary_data = cbObject.data;
                                                        var byteLength = binary_data.byteLength;
                                                        if (byteLength === 0) {
                                                            resolve(new import_text_encoding_shim.TextDecoder().decode(new Uint8Array(readData)));
                                                        } else {
                                                            var tempUInt8Array = new Uint8Array(binary_data);
                                                            for(var i = 0; i < tempUInt8Array.length; i++){
                                                                readData.push(tempUInt8Array[i]);
                                                            }
                                                            totalRead += byteLength;
                                                            internalReadFileRecursion();
                                                        }
                                                    };
                                                    var errorCb = function(cbObject) {
                                                        reject(new Error("Error during writeFile: ".concat(cbObject.errorText, ",\n					file ").concat(filePath.storageUnit.type, " - ").concat(filePath.filePath)));
                                                    };
                                                    internalReadFileRecursion = function() {
                                                        var options = {
                                                            path: absolutePath,
                                                            position: totalRead,
                                                            encoding: "binary"
                                                        };
                                                        if (totalRead >= totalFileSize) {
                                                            resolve(new import_text_encoding_shim.TextDecoder().decode(new Uint8Array(readData)));
                                                        } else {
                                                            _this.getStoragePlugin().readFile(successCb, errorCb, options);
                                                        }
                                                    };
                                                    internalReadFileRecursion();
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "copyFile",
                        value: function copyFile(_0, _1) {
                            return __async(this, arguments, function(sourceFilePath, destinationFilePath) {
                                var _this, options, parentDirectoryPath, sourceCRC32Key, checksum, destCRC32Key, sourceArchiveExtractKey, archiveSize, destArchiveExtractKey, subSourceFilePaths;
                                var _arguments = arguments;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            options = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
                                            parentDirectoryPath = {
                                                storageUnit: destinationFilePath.storageUnit,
                                                filePath: path.dirname(destinationFilePath.filePath)
                                            };
                                            return [
                                                4,
                                                this.exists(parentDirectoryPath)
                                            ];
                                        case 1:
                                            if (!_state.sent()) {
                                                throw new Error("Parent directory doesn't exists: ".concat(parentDirectoryPath));
                                            }
                                            return [
                                                4,
                                                this.exists(destinationFilePath)
                                            ];
                                        case 2:
                                            if (!_state.sent()) return [
                                                3,
                                                5
                                            ];
                                            if (!options.overwrite) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.deleteFile(destinationFilePath, true)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            throw new Error("File already exists: ".concat(destinationFilePath));
                                        case 5:
                                            sourceCRC32Key = this.getCRC32ChecksumLocalStorageKey(sourceFilePath);
                                            if (this.window.localStorage.getItem(sourceCRC32Key) !== null) {
                                                checksum = this.window.localStorage.getItem(sourceCRC32Key);
                                                if (checksum) {
                                                    destCRC32Key = this.getCRC32ChecksumLocalStorageKey(destinationFilePath);
                                                    this.window.localStorage.setItem(destCRC32Key, checksum);
                                                }
                                            }
                                            if (this.supportsArchiveInfo) {
                                                sourceArchiveExtractKey = this.getArchiveExtractSizeLocalStorageKey(sourceFilePath);
                                                if (this.window.localStorage.getItem(sourceArchiveExtractKey) !== null) {
                                                    archiveSize = this.window.localStorage.getItem(sourceArchiveExtractKey);
                                                    if (archiveSize) {
                                                        destArchiveExtractKey = this.getArchiveExtractSizeLocalStorageKey(destinationFilePath);
                                                        this.window.localStorage.setItem(destArchiveExtractKey, archiveSize);
                                                    }
                                                }
                                            }
                                            return [
                                                4,
                                                this.isDirectory(sourceFilePath)
                                            ];
                                        case 6:
                                            if (!_state.sent()) return [
                                                3,
                                                10
                                            ];
                                            return [
                                                4,
                                                this.createDirectory(destinationFilePath)
                                            ];
                                        case 7:
                                            _state.sent();
                                            return [
                                                4,
                                                this.listFiles(sourceFilePath)
                                            ];
                                        case 8:
                                            subSourceFilePaths = _state.sent();
                                            return [
                                                4,
                                                Promise.all(subSourceFilePaths.map(function(subSourceFilePath) {
                                                    return __async(_this, null, function() {
                                                        var subDestinationFilePath;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    subDestinationFilePath = {
                                                                        storageUnit: destinationFilePath.storageUnit,
                                                                        filePath: "".concat(destinationFilePath.filePath, "/").concat(path.basename(subSourceFilePath.filePath))
                                                                    };
                                                                    return [
                                                                        4,
                                                                        this.copyFile(subSourceFilePath, subDestinationFilePath)
                                                                    ];
                                                                case 1:
                                                                    _state.sent();
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                }))
                                            ];
                                        case 9:
                                            _state.sent();
                                            return [
                                                3,
                                                12
                                            ];
                                        case 10:
                                            return [
                                                4,
                                                this.copyFileAbsolute(this.getAbsoluteFilePath(sourceFilePath), this.getAbsoluteFilePath(destinationFilePath))
                                            ];
                                        case 11:
                                            _state.sent();
                                            _state.label = 12;
                                        case 12:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "listFiles",
                        value: function listFiles(directoryPath) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    var filePaths = cbObject.files.map(function(fileInfo) {
                                        return {
                                            storageUnit: directoryPath.storageUnit,
                                            filePath: _this.trimSlashesAndDots("".concat(directoryPath.filePath, "/").concat(fileInfo.name))
                                        };
                                    });
                                    resolve(filePaths);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during listFiles: ".concat(cbObject.errorText, ", ").concat(directoryPath.storageUnit.type, " - ").concat(directoryPath.filePath)));
                                };
                                var options = {
                                    path: _this.getAbsoluteFilePath(directoryPath)
                                };
                                _this.getStoragePlugin().listFiles(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "getFile",
                        value: function getFile(filePath) {
                            return __async(this, null, function() {
                                var localUri, absolutePath, sizeBytes, _tmp;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.exists(filePath)
                                            ];
                                        case 1:
                                            if (!_state.sent()) return [
                                                3,
                                                5
                                            ];
                                            localUri = this.getFileUri(filePath);
                                            return [
                                                4,
                                                this.isDirectory(filePath)
                                            ];
                                        case 2:
                                            if (_state.sent()) {
                                                return [
                                                    2,
                                                    {
                                                        localUri: localUri
                                                    }
                                                ];
                                            }
                                            absolutePath = this.getAbsoluteFilePath(filePath);
                                            return [
                                                4,
                                                this.getFileSize(absolutePath)
                                            ];
                                        case 3:
                                            sizeBytes = _state.sent();
                                            _tmp = [
                                                {
                                                    localUri: localUri,
                                                    sizeBytes: sizeBytes
                                                }
                                            ];
                                            return [
                                                4,
                                                this.getExtendedDetails(localUri)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                __spreadValues.apply(void 0, _tmp.concat([
                                                    _state.sent()
                                                ]))
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                null
                                            ];
                                        case 6:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "exists",
                        value: function exists(filePath) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.existsAbsolute(this.getAbsoluteFilePath(filePath))
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "downloadFile",
                        value: function downloadFile(destinationFilePath, sourceUri, headers) {
                            return __async(this, null, function() {
                                var crc32Header, isZipFile, parentDirectoryPath, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                10,
                                                ,
                                                11
                                            ]);
                                            crc32Header = (headers == null ? void 0 : headers[_SCAPv12FileSystem.CHECKSUM_CRC32_HEADER]) === "enabled";
                                            isZipFile = sourceUri.endsWith("zip");
                                            parentDirectoryPath = {
                                                storageUnit: destinationFilePath.storageUnit,
                                                filePath: path.dirname(destinationFilePath.filePath)
                                            };
                                            return [
                                                4,
                                                this.exists(parentDirectoryPath)
                                            ];
                                        case 1:
                                            if (!_state.sent()) {
                                                throw new Error("Parent directory doesn't exists: ".concat(parentDirectoryPath));
                                            }
                                            if (!(crc32Header || isZipFile && this.supportsArchiveInfo)) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.downloadWithNode(destinationFilePath, sourceUri, headers)
                                            ];
                                        case 2:
                                            sourceUri = _state.sent();
                                            if (!crc32Header) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.handleComputingCRC32(destinationFilePath)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            if (!isZipFile) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.handleComputingArchizeExtractSize(destinationFilePath)
                                            ];
                                        case 5:
                                            _state.sent();
                                            _state.label = 6;
                                        case 6:
                                            return [
                                                4,
                                                this.downloadWithScap(destinationFilePath, sourceUri, headers)
                                            ];
                                        case 7:
                                            _state.sent();
                                            if (!(crc32Header || isZipFile && this.supportsArchiveInfo)) return [
                                                3,
                                                9
                                            ];
                                            return [
                                                4,
                                                this.deleteWithinNode(destinationFilePath)
                                            ];
                                        case 8:
                                            _state.sent();
                                            _state.label = 9;
                                        case 9:
                                            return [
                                                3,
                                                11
                                            ];
                                        case 10:
                                            error = _state.sent();
                                            throw error;
                                        case 11:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteFile",
                        value: function deleteFile(filePath, recursive) {
                            return __async(this, null, function() {
                                var _this, _tmp, _tmp1, crc32Key, archiveKey;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            _tmp1 = !recursive;
                                            if (!_tmp1) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.isDirectory(filePath)
                                            ];
                                        case 1:
                                            _tmp1 = _state.sent();
                                            _state.label = 2;
                                        case 2:
                                            _tmp = _tmp1;
                                            if (!_tmp) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.listFiles(filePath)
                                            ];
                                        case 3:
                                            _tmp = _state.sent().length === 0;
                                            _state.label = 4;
                                        case 4:
                                            if (_tmp) {
                                                recursive = true;
                                            }
                                            crc32Key = this.getCRC32ChecksumLocalStorageKey(filePath);
                                            if (this.window.localStorage.getItem(crc32Key) !== null) {
                                                this.window.localStorage.removeItem(crc32Key);
                                            }
                                            if (this.supportsArchiveInfo) {
                                                archiveKey = this.getArchiveExtractSizeLocalStorageKey(filePath);
                                                if (this.window.localStorage.getItem(archiveKey) !== null) {
                                                    this.window.localStorage.removeItem(archiveKey);
                                                }
                                            }
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    var successCb = function() {
                                                        return resolve();
                                                    };
                                                    var errorCb = function(cbObject) {
                                                        reject(new Error("Error during deleteFile: ".concat(cbObject.errorText, ", ").concat(filePath.storageUnit.type, " - ").concat(filePath.filePath)));
                                                    };
                                                    var options = {
                                                        file: _this.getAbsoluteFilePath(filePath),
                                                        recursive: recursive
                                                    };
                                                    _this.getStoragePlugin().removeFile(successCb, errorCb, options);
                                                })
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "moveFile",
                        value: function moveFile(_0, _1) {
                            return __async(this, arguments, function(sourceFilePath, destinationFilePath) {
                                var _this, options, sourceCRC32Key, checksum, destCRC32Key, sourceArchiveExtractKey, archiveSize, destArchiveExtractKey;
                                var _arguments = arguments;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            options = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
                                            return [
                                                4,
                                                this.exists(destinationFilePath)
                                            ];
                                        case 1:
                                            if (!_state.sent()) return [
                                                3,
                                                4
                                            ];
                                            if (!options.overwrite) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.deleteFile(destinationFilePath, true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            throw new Error("Destination path already exists: ".concat(sourceFilePath.storageUnit.type, " - ").concat(sourceFilePath.filePath, "\n					-> ").concat(destinationFilePath.storageUnit.type, " - ").concat(destinationFilePath.filePath));
                                        case 4:
                                            sourceCRC32Key = this.getCRC32ChecksumLocalStorageKey(sourceFilePath);
                                            if (this.window.localStorage.getItem(sourceCRC32Key) !== null) {
                                                checksum = this.window.localStorage.getItem(sourceCRC32Key);
                                                if (checksum) {
                                                    destCRC32Key = this.getCRC32ChecksumLocalStorageKey(destinationFilePath);
                                                    this.window.localStorage.setItem(destCRC32Key, checksum);
                                                    this.window.localStorage.removeItem(sourceCRC32Key);
                                                }
                                            }
                                            if (this.supportsArchiveInfo) {
                                                sourceArchiveExtractKey = this.getArchiveExtractSizeLocalStorageKey(sourceFilePath);
                                                if (this.window.localStorage.getItem(sourceArchiveExtractKey) !== null) {
                                                    archiveSize = this.window.localStorage.getItem(sourceArchiveExtractKey);
                                                    if (archiveSize) {
                                                        destArchiveExtractKey = this.getArchiveExtractSizeLocalStorageKey(destinationFilePath);
                                                        this.window.localStorage.setItem(destArchiveExtractKey, archiveSize);
                                                        this.window.localStorage.removeItem(sourceArchiveExtractKey);
                                                    }
                                                }
                                            }
                                            return [
                                                2,
                                                new Promise(function(resolve, reject) {
                                                    var successCb = function() {
                                                        return resolve();
                                                    };
                                                    var errorCb = function(cbObject) {
                                                        reject(new Error("Error during moveFile: ".concat(cbObject.errorText, ", ").concat(sourceFilePath.storageUnit.type, " - ").concat(sourceFilePath.filePath, "\n					-> ").concat(destinationFilePath.storageUnit.type, " - ").concat(destinationFilePath.filePath)));
                                                    };
                                                    _this.getStoragePlugin().moveFile(successCb, errorCb, {
                                                        oldPath: _this.getAbsoluteFilePath(sourceFilePath),
                                                        newPath: _this.getAbsoluteFilePath(destinationFilePath)
                                                    });
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "link",
                        value: function link(_sourceFilePath, _destinationFilePath) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new import_basicErrors.NotSupportedMethodError("link");
                                });
                            });
                        }
                    },
                    {
                        key: "getFileChecksum",
                        value: function getFileChecksum(filePath, hashType) {
                            return __async(this, null, function() {
                                var _this, crc32Key, crc32Checksum;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            if (hashType !== "md5" && hashType !== "crc32") {
                                                throw new Error("Unsupported checksum hash type ".concat(hashType));
                                            }
                                            return [
                                                4,
                                                this.isDirectory(filePath)
                                            ];
                                        case 1:
                                            if (_state.sent()) {
                                                throw new Error("File path for checksum must be a file: ".concat(filePath.storageUnit.type, " - ").concat(filePath.filePath));
                                            }
                                            if (hashType === import_HashAlgorithm["default"].CRC32) {
                                                crc32Key = this.getCRC32ChecksumLocalStorageKey(filePath);
                                                crc32Checksum = this.window.localStorage.getItem(crc32Key);
                                                return [
                                                    2,
                                                    crc32Checksum
                                                ];
                                            }
                                            return [
                                                2,
                                                new Promise(function(resolve, reject) {
                                                    var successCb = function(cbObject) {
                                                        resolve(cbObject.md5hash);
                                                    };
                                                    var errorCb = function(cbObject) {
                                                        reject(new Error("Error during getFileChecksum: ".concat(cbObject.errorText, ", ").concat(hashType, ",\n					").concat(filePath.storageUnit.type, " - ").concat(filePath.filePath)));
                                                    };
                                                    var options = {
                                                        filePath: _this.getAbsoluteFilePath(filePath)
                                                    };
                                                    _this.getStoragePlugin().getMD5Hash(successCb, errorCb, options);
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "extractFile",
                        value: function extractFile(archiveFilePath, destinationDirectoryPath, method) {
                            var _this = this;
                            if (method !== "zip") {
                                throw new Error("Unsupported extract method ".concat(method));
                            }
                            return new Promise(function(resolve, reject) {
                                var successCb = function() {
                                    return resolve();
                                };
                                var errorCb = function(error) {
                                    return reject(new Error("Error during extractFile: ".concat(error.errorText, ", ").concat(archiveFilePath.storageUnit.type, " - ").concat(archiveFilePath.filePath, "\n				-> ").concat(destinationDirectoryPath.storageUnit.type, " - ").concat(destinationDirectoryPath.filePath)));
                                };
                                var options = {
                                    zipPath: _this.getAbsoluteFilePath(archiveFilePath),
                                    targetPath: _this.getAbsoluteFilePath(destinationDirectoryPath)
                                };
                                _this.getStoragePlugin().unzipFile(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "createArchive",
                        value: function createArchive(_destinationFilePath, _archiveEntries) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "createDirectory",
                        value: function createDirectory(directoryPath) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.createDirectoryAbsolute(this.getAbsoluteFilePath(directoryPath))
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isDirectory",
                        value: function isDirectory(filePath) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    return resolve(cbObject.type === "directory");
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during isDirectory: ".concat(cbObject.errorText, ", ").concat(filePath.storageUnit.type, " - ").concat(filePath.filePath)));
                                };
                                var options = {
                                    path: _this.getAbsoluteFilePath(filePath)
                                };
                                _this.getStoragePlugin().statFile(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        /**
         * This method returns saved value in localStorage for the file
         * as extracted size of all files.
         * Size is calculated during downloading the file.
         */ key: "getArchiveInfo",
                        value: function getArchiveInfo(filePath) {
                            return __async(this, null, function() {
                                var archiveKey, value, uncompressedSize;
                                return _ts_generator(this, function(_state) {
                                    archiveKey = this.getArchiveExtractSizeLocalStorageKey(filePath);
                                    value = this.window.localStorage.getItem(archiveKey);
                                    if (value === null) {
                                        console.warn("No value found for archive key: ".concat(archiveKey));
                                    }
                                    uncompressedSize = !isNaN(Number(value)) ? Number(value) : 0;
                                    return [
                                        2,
                                        {
                                            uncompressedSize: uncompressedSize
                                        }
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "listStorageUnits",
                        value: function listStorageUnits() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(result17) {
                                    resolve([
                                        {
                                            type: STORAGE_TYPE_INTERNAL,
                                            capacity: result17.total * 1e3,
                                            freeSpace: result17.free * 1e3,
                                            usableSpace: result17.free * 1e3,
                                            removable: false
                                        }
                                    ]);
                                };
                                var errorCb = function(error) {
                                    return reject(new Error("Error during listStorageUnits: ".concat(error.errorText)));
                                };
                                _this.getStoragePlugin().getStorageInfo(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "onStorageUnitsChanged",
                        value: function onStorageUnitsChanged(_listener) {}
                    },
                    {
                        key: "uploadFile",
                        value: function uploadFile(filePath, uri, formKey, headers) {
                            return __async(this, null, function() {
                                var fileExists, fileResponse, fileData;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.exists(filePath)
                                            ];
                                        case 1:
                                            fileExists = _state.sent();
                                            if (!fileExists) {
                                                throw new Error("Directory already exists");
                                            }
                                            return [
                                                4,
                                                this.isDirectory(filePath)
                                            ];
                                        case 2:
                                            if (_state.sent()) {
                                                throw new Error("uploadFile: can't upload a directory");
                                            }
                                            return [
                                                4,
                                                fetch(this.getFileUri(filePath))
                                            ];
                                        case 3:
                                            fileResponse = _state.sent();
                                            return [
                                                4,
                                                fileResponse.text()
                                            ];
                                        case 4:
                                            fileData = _state.sent();
                                            return [
                                                4,
                                                this.uploadFileInternal(fileData, formKey, uri, headers)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "wipeout",
                        value: function wipeout() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    console.log("Clearing interval folders...");
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            return __async(_this, null, function() {
                                                var storageUnits, filePath, error;
                                                return _ts_generator(this, function(_state) {
                                                    switch(_state.label){
                                                        case 0:
                                                            _state.trys.push([
                                                                0,
                                                                3,
                                                                ,
                                                                4
                                                            ]);
                                                            return [
                                                                4,
                                                                this.listStorageUnits()
                                                            ];
                                                        case 1:
                                                            storageUnits = _state.sent();
                                                            filePath = {
                                                                storageUnit: storageUnits[0],
                                                                filePath: ""
                                                            };
                                                            return [
                                                                4,
                                                                this.deleteFile(filePath, true)
                                                            ];
                                                        case 2:
                                                            _state.sent();
                                                            resolve();
                                                            return [
                                                                3,
                                                                4
                                                            ];
                                                        case 3:
                                                            error = _state.sent();
                                                            reject(error);
                                                            return [
                                                                3,
                                                                4
                                                            ];
                                                        case 4:
                                                            return [
                                                                2
                                                            ];
                                                    }
                                                });
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "initService",
                        value: function initService() {
                            return __async(this, null, function() {
                                var error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            console.log("Service initialization started");
                                            return [
                                                4,
                                                this.pingService()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            console.error("Service did not responded", error);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getExtendedDetails",
                        value: function getExtendedDetails(localUri) {
                            return __async(this, null, function() {
                                var details, _tmp;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _tmp = [
                                                {}
                                            ];
                                            return [
                                                4,
                                                extractVideoDetails(this.video, localUri)
                                            ];
                                        case 1:
                                            details = __spreadValues.apply(void 0, _tmp.concat([
                                                _state.sent()
                                            ]));
                                            return [
                                                2,
                                                details
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "copyFileAbsolute",
                        value: function copyFileAbsolute(absoluteSourceFilePath, absoluteDestinationFilePath) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            var successCb = function() {
                                                return resolve();
                                            };
                                            var errorCb = function(cbObject) {
                                                reject(new Error("Error during copyFile: ".concat(cbObject.errorText, ",\n					source ").concat(absoluteSourceFilePath, ",\n					destination ").concat(absoluteDestinationFilePath)));
                                            };
                                            var options = {
                                                source: absoluteSourceFilePath,
                                                destination: absoluteDestinationFilePath
                                            };
                                            _this.getStoragePlugin().copyFile(successCb, errorCb, options);
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "existsAbsolute",
                        value: function existsAbsolute(absoluteFilePath) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    return resolve(cbObject.exists);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during exists: ".concat(cbObject.errorText, ", ").concat(absoluteFilePath)));
                                };
                                var options = {
                                    path: absoluteFilePath
                                };
                                _this.getStoragePlugin().exists(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "getFileSize",
                        value: function getFileSize(absoluteFilePath) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    return resolve(cbObject.size);
                                };
                                var failureCb = function(cbObject) {
                                    reject(new Error("Error durign getting the file size: ".concat(cbObject.errorText, ", ").concat(absoluteFilePath)));
                                };
                                var options = {
                                    path: absoluteFilePath
                                };
                                _this.getStoragePlugin().statFile(successCb, failureCb, options);
                            });
                        }
                    },
                    {
                        key: "createDirectoryAbsolute",
                        value: function createDirectoryAbsolute(absoluteDirectoryPath) {
                            return __async(this, null, function() {
                                var _this, absoluteParentDirectoryPath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.existsAbsolute(absoluteDirectoryPath)
                                            ];
                                        case 1:
                                            if (_state.sent()) {
                                                throw new Error("Directory already exists: ".concat(absoluteDirectoryPath));
                                            }
                                            absoluteParentDirectoryPath = path.dirname(absoluteDirectoryPath);
                                            return [
                                                4,
                                                this.existsAbsolute(absoluteParentDirectoryPath)
                                            ];
                                        case 2:
                                            if (!_state.sent()) {
                                                throw new Error("Parent directory doesn't exists: ".concat(absoluteParentDirectoryPath));
                                            }
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    var successCb = function() {
                                                        return resolve();
                                                    };
                                                    var errorCb = function(cbObject) {
                                                        reject(new Error("Error during createDirectory: ".concat(cbObject.errorText, ", ").concat(absoluteDirectoryPath)));
                                                    };
                                                    var options = {
                                                        path: absoluteDirectoryPath
                                                    };
                                                    _this.getStoragePlugin().mkdir(successCb, errorCb, options);
                                                })
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "trimSlashesAndDots",
                        value: function trimSlashesAndDots(filePath) {
                            if (filePath.indexOf(".") === 0) {
                                filePath = filePath.substring(1);
                            }
                            filePath = filePath.replace(/\/\.\//g, "/");
                            filePath = filePath.replace(/\/+/g, "/");
                            filePath = filePath.replace(/\/+$/g, "");
                            filePath = filePath.replace(/^\/+/g, "");
                            return filePath;
                        }
                    },
                    {
                        key: "getAbsoluteFilePath",
                        value: function getAbsoluteFilePath(filePath) {
                            return "file://".concat(filePath.storageUnit.type, "/").concat(_SCAPv12FileSystem.DATA_DIRECTORY_PATH, "/").concat(filePath.filePath);
                        }
                    },
                    {
                        key: "getFileUri",
                        value: function getFileUri(filePath) {
                            var baseUrl = this.getBaseUrl();
                            var dataBaseUrl = "".concat(baseUrl, "/").concat(_SCAPv12FileSystem.DATA_DIRECTORY_PATH);
                            return "".concat(dataBaseUrl, "/").concat(filePath.filePath);
                        }
                    },
                    {
                        key: "getBaseUrl",
                        value: function getBaseUrl() {
                            var currentUri = this.location.toString();
                            var baseUrl = currentUri.substring(0, currentUri.lastIndexOf("/"));
                            return baseUrl + "/content";
                        }
                    },
                    {
                        key: "ensureInternalRootDataDirectory",
                        value: function ensureInternalRootDataDirectory() {
                            return __async(this, null, function() {
                                var storageUnits, internalStorageUnit, rootFilePath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.listStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            internalStorageUnit = storageUnits.find(function(storageUnit) {
                                                return !storageUnit.removable;
                                            });
                                            rootFilePath = {
                                                filePath: "",
                                                storageUnit: internalStorageUnit
                                            };
                                            return [
                                                4,
                                                this.exists(rootFilePath)
                                            ];
                                        case 2:
                                            if (!!_state.sent()) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.createDirectory(rootFilePath)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "nativeWriteFile",
                        value: function nativeWriteFile(absolutePath, contents, options) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            var byteContent = new import_text_encoding_shim.TextEncoder().encode(contents);
                                            var chunkNumber = 1;
                                            var saveChunkByChunk;
                                            var appendFile = function(data) {
                                                var successCb = function() {
                                                    saveChunkByChunk();
                                                };
                                                var errorCb = function(cbObject) {
                                                    reject(new Error(cbObject.errorText));
                                                };
                                                var writeFileOptions = {
                                                    data: data,
                                                    path: absolutePath,
                                                    position: 0,
                                                    mode: chunkNumber++ === 1 ? options.mode : "append",
                                                    offset: 0,
                                                    length: CHUNK_LENGTH,
                                                    encoding: "binary"
                                                };
                                                _this.getStoragePlugin().writeFile(successCb, errorCb, writeFileOptions);
                                            };
                                            var start = 0;
                                            var end = CHUNK_LENGTH;
                                            saveChunkByChunk = function() {
                                                if (start >= byteContent.byteLength) {
                                                    return resolve();
                                                }
                                                appendFile(byteContent.slice(start, end));
                                                start = end;
                                                end += CHUNK_LENGTH;
                                            };
                                            saveChunkByChunk();
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "handleComputingCRC32",
                        value: function handleComputingCRC32(destinationFilePath) {
                            return __async(this, null, function() {
                                var checksum, crc32Key;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.computeCRC32(destinationFilePath)
                                            ];
                                        case 1:
                                            checksum = _state.sent();
                                            crc32Key = this.getCRC32ChecksumLocalStorageKey(destinationFilePath);
                                            this.window.localStorage.setItem(crc32Key, checksum);
                                            return [
                                                2,
                                                checksum
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "handleComputingArchizeExtractSize",
                        value: function handleComputingArchizeExtractSize(destinationFilePatj) {
                            return __async(this, null, function() {
                                var archiveExtractSize, archiveKey;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.calculateExtractSize(destinationFilePatj)
                                            ];
                                        case 1:
                                            archiveExtractSize = _state.sent();
                                            archiveKey = this.getArchiveExtractSizeLocalStorageKey(destinationFilePatj);
                                            this.window.localStorage.setItem(archiveKey, archiveExtractSize.toString());
                                            return [
                                                2,
                                                archiveExtractSize
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadWithScap",
                        value: function downloadWithScap(destinationFilePath, sourceUri, headers) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function() {
                                    return resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during downloadFile: ".concat(cbObject.errorText, ", ").concat(sourceUri, ",\n					").concat(destinationFilePath.storageUnit.type, " - ").concat(destinationFilePath.filePath) + (headers ? ", " + JSON.stringify(headers) : "")));
                                };
                                var options = {
                                    source: sourceUri,
                                    destination: _this.getAbsoluteFilePath(destinationFilePath)
                                };
                                if (typeof headers !== "undefined") {
                                    options.httpOption = {
                                        headers: headers
                                    };
                                }
                                _this.getStoragePlugin().copyFile(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "downloadWithNode",
                        value: function downloadWithNode(destinationFilePath, sourceUri, headers) {
                            return __async(this, null, function() {
                                var _this, fileName;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    fileName = this.getNodeUniqueFileName(destinationFilePath);
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SCAPv12FileSystem.SERVICE_REQUEST_URL, {
                                                method: "downloadFile",
                                                parameters: {
                                                    fileUrl: sourceUri,
                                                    fileName: fileName,
                                                    headers: headers
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        reject(new Error(returnValue.errorCode + " - " + returnValue.errorText));
                                                    } else {
                                                        var localUri = _SCAPv12FileSystem.NODE_SERVER_URL + fileName;
                                                        resolve(localUri);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "computeCRC32",
                        value: function computeCRC32(filePath) {
                            return __async(this, null, function() {
                                var _this, fileName;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    fileName = this.getNodeUniqueFileName(filePath);
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SCAPv12FileSystem.SERVICE_REQUEST_URL, {
                                                method: "computeCRC32",
                                                parameters: {
                                                    path: fileName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        reject(new Error(returnValue.errorCode + " - " + returnValue.errorText));
                                                    } else {
                                                        resolve(returnValue.checksum);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "deleteWithinNode",
                        value: function deleteWithinNode(filePath) {
                            return __async(this, null, function() {
                                var _this, fileName;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    fileName = this.getNodeUniqueFileName(filePath);
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SCAPv12FileSystem.SERVICE_REQUEST_URL, {
                                                method: "removeFile",
                                                parameters: {
                                                    path: fileName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        reject(new Error(returnValue.errorCode + " - " + returnValue.errorText));
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "calculateExtractSize",
                        value: function calculateExtractSize(filePath) {
                            return __async(this, null, function() {
                                var _this, fileName;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    fileName = this.getNodeUniqueFileName(filePath);
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SCAPv12FileSystem.SERVICE_REQUEST_URL, {
                                                method: "calculateExtractSize",
                                                parameters: {
                                                    path: fileName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        reject(new Error(returnValue.errorCode + " - " + returnValue.errorText));
                                                    } else {
                                                        resolve(returnValue.extractSize);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getCRC32ChecksumLocalStorageKey",
                        value: function getCRC32ChecksumLocalStorageKey(filePath) {
                            return _SCAPv12FileSystem.CRC32_CHECKSUM_LOCAL_STORAGE_KEY + filePath.storageUnit.type + ":" + filePath.filePath;
                        }
                    },
                    {
                        key: "getArchiveExtractSizeLocalStorageKey",
                        value: function getArchiveExtractSizeLocalStorageKey(filePath) {
                            return _SCAPv12FileSystem.ARCHIVE_EXTRACT_SIZE_KEY + filePath.storageUnit.type + ":" + filePath.filePath;
                        }
                    },
                    {
                        /** Unique name within node.js FS for each possible filePath in public FS */ key: "getNodeUniqueFileName",
                        value: function getNodeUniqueFileName(filePath) {
                            return (0, import_checksum.checksumString)(filePath.storageUnit.type + ":" + filePath.filePath, 10);
                        }
                    },
                    {
                        key: "uploadFileInternal",
                        value: function uploadFileInternal(file, formKey, uri, headers) {
                            return __async(this, null, function() {
                                var formData, blob, response, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                3,
                                                ,
                                                4
                                            ]);
                                            formData = new FormData();
                                            blob = new Blob([
                                                file
                                            ]);
                                            formData.append(formKey, blob);
                                            return [
                                                4,
                                                fetch(uri, {
                                                    method: "POST",
                                                    headers: headers,
                                                    body: formData
                                                })
                                            ];
                                        case 1:
                                            response = _state.sent();
                                            return [
                                                4,
                                                response.text()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            throw new Error("File upload failed with status code " + error.statusCode);
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pingService",
                        value: function pingService() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SCAPv12FileSystem.SERVICE_REQUEST_URL, {
                                                method: "ping",
                                                parameters: {},
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        reject(new Error(returnValue.errorCode + " - " + returnValue.errorText));
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv12FileSystem;
            }();
            __publicField(_SCAPv12FileSystem, "SERVICE_REQUEST_URL", "luna://com.lg.app.signage.signagemanagement.service");
            __publicField(_SCAPv12FileSystem, "DATA_DIRECTORY_PATH", "data");
            __publicField(_SCAPv12FileSystem, "CHECKSUM_CRC32_HEADER", "checksum-crc32");
            __publicField(_SCAPv12FileSystem, "CRC32_CHECKSUM_LOCAL_STORAGE_KEY", "crc32-checksum-for__");
            __publicField(_SCAPv12FileSystem, "ARCHIVE_EXTRACT_SIZE_KEY", "archive-extract-for__");
            // TODO this param configurable from params after TS
            __publicField(_SCAPv12FileSystem, "NODE_SERVER_URL", "http://localhost:8081/");
            SCAPv12FileSystem = _SCAPv12FileSystem;
        }
    });
    var import_KeyCode, import_wait2, STORAGE_TYPE_INTERNAL, getSCAPVersion, RemoteControlKeyMap;
    var init_SCAPHelper = __esm({
        "src/Driver/SCAPHelper.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_KeyCode = __toESM(require_KeyCode());
            import_wait2 = __toESM(require_wait4());
            init_SCAPv12FileSystem();
            STORAGE_TYPE_INTERNAL = "internal";
            getSCAPVersion = function() {
                return __async(void 0, null, function() {
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!isWebos(window)) return [
                                    3,
                                    9
                                ];
                                return [
                                    4,
                                    isWebosVersion(window, 1)
                                ];
                            case 1:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        12
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 2)
                                ];
                            case 2:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        13
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 3)
                                ];
                            case 3:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        15
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 3.2)
                                ];
                            case 4:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        15
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 4)
                                ];
                            case 5:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        16
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 4.1)
                                ];
                            case 6:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        17
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 6)
                                ];
                            case 7:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        18
                                    ];
                                }
                                return [
                                    4,
                                    isWebosVersion(window, 9)
                                ];
                            case 8:
                                if (_state.sent()) {
                                    return [
                                        2,
                                        18
                                    ];
                                }
                                throw new Error("Platform not recognized: Unsupported Webos version.");
                            case 9:
                                throw new Error("Platform not recognized: Device is not an Webos device.");
                            case 10:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            RemoteControlKeyMap = {
                13: import_KeyCode.KeyCode.OK,
                37: import_KeyCode.KeyCode.ARROW_LEFT,
                38: import_KeyCode.KeyCode.ARROW_UP,
                39: import_KeyCode.KeyCode.ARROW_RIGHT,
                40: import_KeyCode.KeyCode.ARROW_DOWN,
                48: import_KeyCode.KeyCode.NUM_0,
                49: import_KeyCode.KeyCode.NUM_1,
                50: import_KeyCode.KeyCode.NUM_2,
                51: import_KeyCode.KeyCode.NUM_3,
                52: import_KeyCode.KeyCode.NUM_4,
                53: import_KeyCode.KeyCode.NUM_5,
                54: import_KeyCode.KeyCode.NUM_6,
                55: import_KeyCode.KeyCode.NUM_7,
                56: import_KeyCode.KeyCode.NUM_8,
                57: import_KeyCode.KeyCode.NUM_9,
                405: import_KeyCode.KeyCode.YELLOW,
                406: import_KeyCode.KeyCode.BLUE,
                // 0x0: KeyCode.RED,
                // 0x0: KeyCode.GREEN,
                1013: import_KeyCode.KeyCode.POWER_OFF,
                942: import_KeyCode.KeyCode.POWER
            };
        }
    });
    // src/Driver/FrontDriver/SCAPv12FrontDriver.ts
    var import_security, import_FrontCapability, import_propertyStorage, import_ProprietaryTimerPropertyStorage, SCAPv12FrontDriver;
    var init_SCAPv12FrontDriver = __esm({
        "src/Driver/FrontDriver/SCAPv12FrontDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_security = __toESM(require_security());
            import_FrontCapability = __toESM(require_FrontCapability2());
            import_propertyStorage = __toESM(require_propertyStorage());
            import_ProprietaryTimerPropertyStorage = __toESM(require_ProprietaryTimerPropertyStorage());
            init_fetch();
            init_NotImplementedHardware();
            init_SCAPHelper();
            SCAPv12FrontDriver = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv12FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem) {
                    var _this = this;
                    _class_call_check(this, SCAPv12FrontDriver);
                    this.window = window2;
                    this.basicDriver = basicDriver;
                    this.cacheDriver = cacheDriver;
                    this.version = version;
                    this.scap = scap;
                    this.settingsManager = settingsManager;
                    this.screenRotationManager = screenRotationManager;
                    this.video = video;
                    this.stream = stream;
                    this.browser = browser;
                    this.fileSystem = fileSystem;
                    __publicField(this, "hardware", new NotImplementedHardware());
                    __publicField(this, "powerActionTimer");
                    __publicField(this, "security");
                    __publicField(this, "proprietaryTimerStorage");
                    this.security = (0, import_security.createCompatibleSecurity)(function() {
                        return _this;
                    });
                    this.proprietaryTimerStorage = new import_ProprietaryTimerPropertyStorage["default"]((0, import_propertyStorage["default"])(function() {
                        return _this;
                    }));
                }
                _create_class(SCAPv12FrontDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv12";
                        }
                    },
                    {
                        key: "getConfigurationBaseUrl",
                        value: function getConfigurationBaseUrl() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.getConfigurationBaseUrl()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getApplicationType",
                        value: function getApplicationType() {
                            return this.basicDriver.getApplicationType();
                        }
                    },
                    {
                        key: "frontSupports",
                        value: function frontSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(capability){
                                        case import_FrontCapability["default"].FILE_SYSTEM_INTERNAL_STORAGE:
                                        case import_FrontCapability["default"].TIMERS_PROPRIETARY:
                                        case import_FrontCapability["default"].FRONT_OSD:
                                            return [
                                                2,
                                                true
                                            ];
                                        default:
                                            return [
                                                2,
                                                false
                                            ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getOSDUri",
                        value: function getOSDUri() {
                            return "osd/index.html?v=".concat(this.version);
                        }
                    },
                    {
                        key: "initialize",
                        value: function initialize() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.screenRotationManager.applyOrientation()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.removeProblematicFileReader();
                                            return [
                                                4,
                                                this.startup()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "startup",
                        value: function startup() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    applyScapOrDefaultFetch();
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isDetected",
                        value: function isDetected() {
                            return true;
                        }
                    },
                    {
                        key: "start",
                        value: function start() {
                            this.basicDriver.start();
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            this.basicDriver.stop();
                        }
                    },
                    {
                        key: "bindKeyUp",
                        value: function bindKeyUp(keyUpListener) {
                            this.window.addEventListener("keyup", function(event) {
                                if (typeof RemoteControlKeyMap[event.keyCode.toString()] !== "undefined") {
                                    keyUpListener({
                                        keyCode: RemoteControlKeyMap[event.keyCode.toString()]
                                    });
                                } else {
                                    console.warn(new Error("Not supported keyCode " + event.keyCode));
                                }
                            });
                        }
                    },
                    {
                        key: "forwardTouchEvents",
                        value: function forwardTouchEvents() {}
                    },
                    {
                        key: "cacheGetUids",
                        value: function cacheGetUids() {
                            return this.cacheDriver.cacheGetUids();
                        }
                    },
                    {
                        key: "cacheGetAll",
                        value: function cacheGetAll() {
                            return this.cacheDriver.cacheGetAll();
                        }
                    },
                    {
                        key: "cacheGet",
                        value: function cacheGet(uid) {
                            return this.cacheDriver.cacheGet(uid);
                        }
                    },
                    {
                        key: "cacheDelete",
                        value: function cacheDelete(uid) {
                            return this.cacheDriver.cacheDelete(uid);
                        }
                    },
                    {
                        key: "cacheSave",
                        value: function cacheSave(uid, content) {
                            return this.cacheDriver.cacheSave(uid, content);
                        }
                    },
                    {
                        key: "cacheGetStorageInfo",
                        value: function cacheGetStorageInfo() {
                            return this.cacheDriver.cacheGetStorageInfo();
                        }
                    },
                    {
                        key: "getDeviceUid",
                        value: function getDeviceUid() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.getDeviceUid()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.isConnected()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getSessionId",
                        value: function getSessionId(sessionIdKey) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.getSessionId(sessionIdKey)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setSessionId",
                        value: function setSessionId(sessionIdKey, sessionId) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    this.basicDriver.setSessionId(sessionIdKey, sessionId);
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "restoreDisplayArea",
                        value: function restoreDisplayArea() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.video.clearAll()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.stream.clearAll()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "remoteControlSetEnabled",
                        value: function remoteControlSetEnabled(enabled) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("remoteControleSetEnabled", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during remoteControleSetEnabled: " + cbObject.errorText));
                                };
                                var mode = enabled ? _this.window.Signage.KeyOperationMode.ALLOW_ALL : _this.window.Signage.KeyOperationMode.BLOCK_ALL;
                                var options = {
                                    policy: {
                                        remoteKeyOperationMode: mode,
                                        localKeyOperationMode: mode
                                    }
                                };
                                _this.scap.signage.setUsagePermission(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "remoteControlIsEnabled",
                        value: function remoteControlIsEnabled() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(param) {
                                    var remoteKeyOperationMode = param.remoteKeyOperationMode, localKeyOperationMode = param.localKeyOperationMode;
                                    console.info("remoteControleIsEnabled", {
                                        remoteKeyOperationMode: remoteKeyOperationMode,
                                        localKeyOperationMode: localKeyOperationMode
                                    });
                                    resolve(remoteKeyOperationMode === _this.window.Signage.KeyOperationMode.ALLOW_ALL);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during remoteControleIsEnabled: " + cbObject.errorText));
                                };
                                _this.scap.signage.getUsagePermission(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "controlSetPin",
                        value: function controlSetPin(_pin) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    console.warn(new Error("Not implemented set control pin"));
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "browserOpenLink",
                        value: function browserOpenLink(_uri) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    console.warn(new Error("Not implemented browser openLink"));
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getCurrentSignature",
                        value: function getCurrentSignature() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        null
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getAppPath",
                        value: function getAppPath(version) {
                            return "/app/webos/" + version + "/com.lg.app.signage.zip";
                        }
                    },
                    {
                        key: "removeProblematicFileReader",
                        value: function removeProblematicFileReader() {
                            delete this.window.FileReader;
                        }
                    }
                ]);
                return SCAPv12FrontDriver;
            }();
            __publicField(SCAPv12FrontDriver, "supportsArchiveInfo", false);
        }
    });
    // src/Driver/FrontDriver/SCAPv15FrontDriver.ts
    var import_FrontCapability2, SCAPv15FrontDriver;
    var init_SCAPv15FrontDriver = __esm({
        "src/Driver/FrontDriver/SCAPv15FrontDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_FrontCapability2 = __toESM(require_FrontCapability2());
            init_SCAPHelper();
            init_SCAPv12FrontDriver();
            SCAPv15FrontDriver = /*#__PURE__*/ function(SCAPv12FrontDriver) {
                "use strict";
                _inherits(_SCAPv15FrontDriver, SCAPv12FrontDriver);
                var _super = _create_super(_SCAPv15FrontDriver);
                function _SCAPv15FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem) {
                    _class_call_check(this, _SCAPv15FrontDriver);
                    var _this;
                    _this = _super.call(this, window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                    _this.scap = scap;
                    return _this;
                }
                _create_class(_SCAPv15FrontDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv15";
                        }
                    },
                    {
                        key: "frontSupports",
                        value: function frontSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!(capability === import_FrontCapability2["default"].FILE_SYSTEM_FILE_CHECKSUM)) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                isWebosVersion(this.window, 3)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                !_state.sent()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                __superGet(_SCAPv15FrontDriver.prototype, this, "frontSupports").call(this, capability)
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "startup",
                        value: function startup() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                __superGet(_SCAPv15FrontDriver.prototype, this, "startup").call(this)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setNativePortraitModeAsync",
                        value: function setNativePortraitModeAsync(options) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.custom.Configuration.setNativePortraitMode(function() {
                                                return resolve();
                                            }, function(cbObject) {
                                                return reject(new Error("Error during setNativePortraitMode: " + cbObject.errorText));
                                            }, options);
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getNativePortraitModeAsync",
                        value: function getNativePortraitModeAsync() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.custom.Configuration.getNativePortraitMode(function(cbObject) {
                                                return resolve(cbObject);
                                            }, function(cbObject) {
                                                return reject(new Error("Error during getNativePortraitMode: " + cbObject.errorText));
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setMirrorModeAsync",
                        value: function setMirrorModeAsync(options) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.signage.setMirrorMode(function() {
                                                return resolve();
                                            }, function(cbObject) {
                                                return reject(new Error("Error during setMirrorMode: " + cbObject.errorText));
                                            }, options);
                                        })
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv15FrontDriver;
            }(SCAPv12FrontDriver);
        }
    });
    // src/Driver/FrontDriver/SCAPv16FrontDriver.ts
    var import_FrontCapability3, _SCAPv16FrontDriver, SCAPv16FrontDriver;
    var init_SCAPv16FrontDriver = __esm({
        "src/Driver/FrontDriver/SCAPv16FrontDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_FrontCapability3 = __toESM(require_FrontCapability2());
            init_SCAPv15FrontDriver();
            _SCAPv16FrontDriver = /*#__PURE__*/ function(SCAPv15FrontDriver) {
                "use strict";
                _inherits(_SCAPv16FrontDriver, SCAPv15FrontDriver);
                var _super = _create_super(_SCAPv16FrontDriver);
                function _SCAPv16FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem) {
                    _class_call_check(this, _SCAPv16FrontDriver);
                    var _this;
                    _this = _super.call(this, window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                    _this.scap = scap;
                    return _this;
                }
                _create_class(_SCAPv16FrontDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv16";
                        }
                    },
                    {
                        key: "frontSupports",
                        value: function frontSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(capability){
                                        case import_FrontCapability3["default"].FILE_SYSTEM_ARCHIVE_EXTRACT_INFO:
                                            return [
                                                2,
                                                _SCAPv16FrontDriver.supportsArchiveInfo
                                            ];
                                        default:
                                            return [
                                                2,
                                                __superGet(_SCAPv16FrontDriver.prototype, this, "frontSupports").call(this, capability)
                                            ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv16FrontDriver;
            }(SCAPv15FrontDriver);
            __publicField(_SCAPv16FrontDriver, "supportsArchiveInfo", true);
            SCAPv16FrontDriver = _SCAPv16FrontDriver;
        }
    });
    // src/Driver/FrontDriver/SCAPv17FrontDriver.ts
    var import_FrontCapability4, SCAPv17FrontDriver;
    var init_SCAPv17FrontDriver = __esm({
        "src/Driver/FrontDriver/SCAPv17FrontDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_FrontCapability4 = __toESM(require_FrontCapability2());
            init_SCAPv16FrontDriver();
            SCAPv17FrontDriver = /*#__PURE__*/ function(SCAPv16FrontDriver) {
                "use strict";
                _inherits(_SCAPv17FrontDriver, SCAPv16FrontDriver);
                var _super = _create_super(_SCAPv17FrontDriver);
                function _SCAPv17FrontDriver() {
                    _class_call_check(this, _SCAPv17FrontDriver);
                    return _super.apply(this, arguments);
                }
                _create_class(_SCAPv17FrontDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv17";
                        }
                    },
                    {
                        key: "frontSupports",
                        value: function frontSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(capability){
                                        case import_FrontCapability4["default"].VIDEO_4K:
                                            return [
                                                2,
                                                true
                                            ];
                                        default:
                                            return [
                                                2,
                                                __superGet(_SCAPv17FrontDriver.prototype, this, "frontSupports").call(this, capability)
                                            ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv17FrontDriver;
            }(SCAPv16FrontDriver);
        }
    });
    // src/Driver/FrontDriver/SCAPv18FrontDriver.ts
    var SCAPv18FrontDriver;
    var init_SCAPv18FrontDriver = __esm({
        "src/Driver/FrontDriver/SCAPv18FrontDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv17FrontDriver();
            SCAPv18FrontDriver = /*#__PURE__*/ function(SCAPv17FrontDriver) {
                "use strict";
                _inherits(_SCAPv18FrontDriver, SCAPv17FrontDriver);
                var _super = _create_super(_SCAPv18FrontDriver);
                function _SCAPv18FrontDriver() {
                    _class_call_check(this, _SCAPv18FrontDriver);
                    return _super.apply(this, arguments);
                }
                _create_class(_SCAPv18FrontDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv18";
                        }
                    },
                    {
                        key: "frontSupports",
                        value: function frontSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(capability){
                                        default:
                                            return [
                                                2,
                                                __superGet(_SCAPv18FrontDriver.prototype, this, "frontSupports").call(this, capability)
                                            ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv18FrontDriver;
            }(SCAPv17FrontDriver);
        }
    });
    // node_modules/@signageos/front-display/es6/Monitors/NotImplementedMonitors.js
    var require_NotImplementedMonitors = __commonJS({
        "node_modules/@signageos/front-display/es6/Monitors/NotImplementedMonitors.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var NotImplementedMonitors2 = /*#__PURE__*/ function() {
                function NotImplementedMonitors2() {
                    _class_call_check(this, NotImplementedMonitors2);
                }
                _create_class(NotImplementedMonitors2, [
                    {
                        key: "getList",
                        value: function getList() {
                            throw new Error("not implemented");
                        }
                    }
                ]);
                return NotImplementedMonitors2;
            }();
            exports["default"] = NotImplementedMonitors2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Battery/batteryHelper.js
    var require_batteryHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Battery/batteryHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.getNoBatteryStatus = void 0;
            function getNoBatteryStatus2() {
                return _define_property({
                    percentage: 100,
                    chargeType: "NONE",
                    isCharging: true,
                    lastChargingTime: /* @__PURE__ */ new Date()
                }, "__emulatedBatteryStatus", true);
            }
            exports.getNoBatteryStatus = getNoBatteryStatus2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/NativeCommand/MDC/NotImplementedMdc.js
    var require_NotImplementedMdc = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/NativeCommand/MDC/NotImplementedMdc.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var NotImplementedMdc2 = /*#__PURE__*/ function() {
                function NotImplementedMdc2() {
                    _class_call_check(this, NotImplementedMdc2);
                }
                _create_class(NotImplementedMdc2, [
                    {
                        key: "sendOne",
                        value: function sendOne(_ipAddress, _command, _data) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    throw Error("MDC is not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "sendOneRaw",
                        value: function sendOneRaw(_ipAddress, _command) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    throw Error("MDC is not implemented.");
                                });
                            });
                        }
                    }
                ]);
                return NotImplementedMdc2;
            }();
            exports["default"] = NotImplementedMdc2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/NativeCommand/NMC/NotImplementedNmc.js
    var require_NotImplementedNmc = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/NativeCommand/NMC/NotImplementedNmc.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var NotImplementedNmc2 = /*#__PURE__*/ function() {
                function NotImplementedNmc2() {
                    _class_call_check(this, NotImplementedNmc2);
                }
                _create_class(NotImplementedNmc2, [
                    {
                        key: "sendOne",
                        value: function sendOne(_ipAddress, _command, _data) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        Promise.reject(new Error("Not implemented"))
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return NotImplementedNmc2;
            }();
            exports["default"] = NotImplementedNmc2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/ResolutionList.js
    var require_ResolutionList2 = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/ResolutionList.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ONLY_FULL_HD_RESOLUTION_LIST = void 0;
            exports.ONLY_FULL_HD_RESOLUTION_LIST = [
                {
                    width: 1920,
                    height: 1080
                }
            ];
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Sensors/NotImplementedProximitySensors.js
    var require_NotImplementedProximitySensors = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Sensors/NotImplementedProximitySensors.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var NotImplementedProximitySensors2 = /*#__PURE__*/ function() {
                function NotImplementedProximitySensors2() {
                    _class_call_check(this, NotImplementedProximitySensors2);
                }
                _create_class(NotImplementedProximitySensors2, [
                    {
                        key: "addStateChangeListener",
                        value: function addStateChangeListener(_callback) {
                            console.info("Proximity sensor is not available");
                        }
                    },
                    {
                        key: "removeStateChangeListener",
                        value: function removeStateChangeListener(_callback) {
                            console.info("Proximity sensor is not available");
                        }
                    }
                ]);
                return NotImplementedProximitySensors2;
            }();
            exports["default"] = NotImplementedProximitySensors2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Timer/TimerWeekday.js
    var require_TimerWeekday = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Timer/TimerWeekday.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var PowerTimerWeekday_1 = __importDefault(require_PowerTimerWeekday());
            exports["default"] = PowerTimerWeekday_1["default"];
        }
    });
    // node_modules/@signageos/front-display/es6/Servlet/NotImplementedServletRunner.js
    var require_NotImplementedServletRunner = __commonJS({
        "node_modules/@signageos/front-display/es6/Servlet/NotImplementedServletRunner.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var NotImplementedServletRunner2 = /*#__PURE__*/ function() {
                function NotImplementedServletRunner2() {
                    _class_call_check(this, NotImplementedServletRunner2);
                }
                _create_class(NotImplementedServletRunner2, [
                    {
                        key: "run",
                        value: function run(_entryPoint, _options) {
                            throw new Error("not implemented");
                        }
                    }
                ]);
                return NotImplementedServletRunner2;
            }();
            exports["default"] = NotImplementedServletRunner2;
        }
    });
    // node_modules/@signageos/lib/node_modules/moment-timezone/moment-timezone.js
    var require_moment_timezone7 = __commonJS({
        "node_modules/@signageos/lib/node_modules/moment-timezone/moment-timezone.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            (function(root, factory) {
                "use strict";
                if ((typeof module === "undefined" ? "undefined" : _type_of(module)) === "object" && module.exports) {
                    module.exports = factory(require_moment());
                } else if (typeof define === "function" && define.amd) {
                    define([
                        "moment"
                    ], factory);
                } else {
                    factory(root.moment);
                }
            })(exports, function(moment4) {
                "use strict";
                if (moment4.version === void 0 && moment4["default"]) {
                    moment4 = moment4["default"];
                }
                var VERSION = "0.5.45", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess;
                if (!moment4 || typeof moment4.version !== "string") {
                    logError2("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
                }
                var momentVersion = moment4.version.split("."), major = +momentVersion[0], minor = +momentVersion[1];
                if (major < 2 || major === 2 && minor < 6) {
                    logError2("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + moment4.version + ". See momentjs.com");
                }
                function charCodeToInt(charCode) {
                    if (charCode > 96) {
                        return charCode - 87;
                    } else if (charCode > 64) {
                        return charCode - 29;
                    }
                    return charCode - 48;
                }
                function unpackBase60(string5) {
                    var i = 0, parts = string5.split("."), whole = parts[0], fractional = parts[1] || "", multiplier = 1, num, out = 0, sign2 = 1;
                    if (string5.charCodeAt(0) === 45) {
                        i = 1;
                        sign2 = -1;
                    }
                    for(i; i < whole.length; i++){
                        num = charCodeToInt(whole.charCodeAt(i));
                        out = 60 * out + num;
                    }
                    for(i = 0; i < fractional.length; i++){
                        multiplier = multiplier / 60;
                        num = charCodeToInt(fractional.charCodeAt(i));
                        out += num * multiplier;
                    }
                    return out * sign2;
                }
                function arrayToInt(array4) {
                    for(var i = 0; i < array4.length; i++){
                        array4[i] = unpackBase60(array4[i]);
                    }
                }
                function intToUntil(array4, length) {
                    for(var i = 0; i < length; i++){
                        array4[i] = Math.round((array4[i - 1] || 0) + array4[i] * 6e4);
                    }
                    array4[length - 1] = Infinity;
                }
                function mapIndices(source, indices) {
                    var out = [], i;
                    for(i = 0; i < indices.length; i++){
                        out[i] = source[indices[i]];
                    }
                    return out;
                }
                function unpack(string5) {
                    var data = string5.split("|"), offsets = data[2].split(" "), indices = data[3].split(""), untils = data[4].split(" ");
                    arrayToInt(offsets);
                    arrayToInt(indices);
                    arrayToInt(untils);
                    intToUntil(untils, indices.length);
                    return {
                        name: data[0],
                        abbrs: mapIndices(data[1].split(" "), indices),
                        offsets: mapIndices(offsets, indices),
                        untils: untils,
                        population: data[5] | 0
                    };
                }
                function Zone(packedString) {
                    if (packedString) {
                        this._set(unpack(packedString));
                    }
                }
                function closest(num, arr) {
                    var len = arr.length;
                    if (num < arr[0]) {
                        return 0;
                    } else if (len > 1 && arr[len - 1] === Infinity && num >= arr[len - 2]) {
                        return len - 1;
                    } else if (num >= arr[len - 1]) {
                        return -1;
                    }
                    var mid;
                    var lo = 0;
                    var hi = len - 1;
                    while(hi - lo > 1){
                        mid = Math.floor((lo + hi) / 2);
                        if (arr[mid] <= num) {
                            lo = mid;
                        } else {
                            hi = mid;
                        }
                    }
                    return hi;
                }
                Zone.prototype = {
                    _set: function _set(unpacked) {
                        this.name = unpacked.name;
                        this.abbrs = unpacked.abbrs;
                        this.untils = unpacked.untils;
                        this.offsets = unpacked.offsets;
                        this.population = unpacked.population;
                    },
                    _index: function _index(timestamp) {
                        var target = +timestamp, untils = this.untils, i;
                        i = closest(target, untils);
                        if (i >= 0) {
                            return i;
                        }
                    },
                    countries: function countries1() {
                        var zone_name = this.name;
                        return Object.keys(countries).filter(function(country_code) {
                            return countries[country_code].zones.indexOf(zone_name) !== -1;
                        });
                    },
                    parse: function parse(timestamp) {
                        var target = +timestamp, offsets = this.offsets, untils = this.untils, max = untils.length - 1, offset, offsetNext, offsetPrev, i;
                        for(i = 0; i < max; i++){
                            offset = offsets[i];
                            offsetNext = offsets[i + 1];
                            offsetPrev = offsets[i ? i - 1 : i];
                            if (offset < offsetNext && tz.moveAmbiguousForward) {
                                offset = offsetNext;
                            } else if (offset > offsetPrev && tz.moveInvalidForward) {
                                offset = offsetPrev;
                            }
                            if (target < untils[i] - offset * 6e4) {
                                return offsets[i];
                            }
                        }
                        return offsets[max];
                    },
                    abbr: function abbr(mom) {
                        return this.abbrs[this._index(mom)];
                    },
                    offset: function offset(mom) {
                        logError2("zone.offset has been deprecated in favor of zone.utcOffset");
                        return this.offsets[this._index(mom)];
                    },
                    utcOffset: function utcOffset(mom) {
                        return this.offsets[this._index(mom)];
                    }
                };
                function Country(country_name, zone_names) {
                    this.name = country_name;
                    this.zones = zone_names;
                }
                function OffsetAt(at) {
                    var timeString = at.toTimeString();
                    var abbr = timeString.match(/\([a-z ]+\)/i);
                    if (abbr && abbr[0]) {
                        abbr = abbr[0].match(/[A-Z]/g);
                        abbr = abbr ? abbr.join("") : void 0;
                    } else {
                        abbr = timeString.match(/[A-Z]{3,5}/g);
                        abbr = abbr ? abbr[0] : void 0;
                    }
                    if (abbr === "GMT") {
                        abbr = void 0;
                    }
                    this.at = +at;
                    this.abbr = abbr;
                    this.offset = at.getTimezoneOffset();
                }
                function ZoneScore(zone) {
                    this.zone = zone;
                    this.offsetScore = 0;
                    this.abbrScore = 0;
                }
                ZoneScore.prototype.scoreOffsetAt = function(offsetAt) {
                    this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);
                    if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, "") !== offsetAt.abbr) {
                        this.abbrScore++;
                    }
                };
                function findChange(low, high) {
                    var mid, diff;
                    while(diff = ((high.at - low.at) / 12e4 | 0) * 6e4){
                        mid = new OffsetAt(new Date(low.at + diff));
                        if (mid.offset === low.offset) {
                            low = mid;
                        } else {
                            high = mid;
                        }
                    }
                    return low;
                }
                function userOffsets() {
                    var startYear = /* @__PURE__ */ new Date().getFullYear() - 2, last = new OffsetAt(new Date(startYear, 0, 1)), lastOffset = last.offset, offsets = [
                        last
                    ], change, next, nextOffset, i;
                    for(i = 1; i < 48; i++){
                        nextOffset = new Date(startYear, i, 1).getTimezoneOffset();
                        if (nextOffset !== lastOffset) {
                            next = new OffsetAt(new Date(startYear, i, 1));
                            change = findChange(last, next);
                            offsets.push(change);
                            offsets.push(new OffsetAt(new Date(change.at + 6e4)));
                            last = next;
                            lastOffset = nextOffset;
                        }
                    }
                    for(i = 0; i < 4; i++){
                        offsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));
                        offsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));
                    }
                    return offsets;
                }
                function sortZoneScores(a, b) {
                    if (a.offsetScore !== b.offsetScore) {
                        return a.offsetScore - b.offsetScore;
                    }
                    if (a.abbrScore !== b.abbrScore) {
                        return a.abbrScore - b.abbrScore;
                    }
                    if (a.zone.population !== b.zone.population) {
                        return b.zone.population - a.zone.population;
                    }
                    return b.zone.name.localeCompare(a.zone.name);
                }
                function addToGuesses(name, offsets) {
                    var i, offset;
                    arrayToInt(offsets);
                    for(i = 0; i < offsets.length; i++){
                        offset = offsets[i];
                        guesses[offset] = guesses[offset] || {};
                        guesses[offset][name] = true;
                    }
                }
                function guessesForUserOffsets(offsets) {
                    var offsetsLength = offsets.length, filteredGuesses = {}, out = [], checkedOffsets = {}, i, j, offset, guessesOffset;
                    for(i = 0; i < offsetsLength; i++){
                        offset = offsets[i].offset;
                        if (checkedOffsets.hasOwnProperty(offset)) {
                            continue;
                        }
                        guessesOffset = guesses[offset] || {};
                        for(j in guessesOffset){
                            if (guessesOffset.hasOwnProperty(j)) {
                                filteredGuesses[j] = true;
                            }
                        }
                        checkedOffsets[offset] = true;
                    }
                    for(i in filteredGuesses){
                        if (filteredGuesses.hasOwnProperty(i)) {
                            out.push(names[i]);
                        }
                    }
                    return out;
                }
                function rebuildGuess() {
                    try {
                        var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;
                        if (intlName && intlName.length > 3) {
                            var name = names[normalizeName(intlName)];
                            if (name) {
                                return name;
                            }
                            logError2("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded.");
                        }
                    } catch (e) {}
                    var offsets = userOffsets(), offsetsLength = offsets.length, guesses2 = guessesForUserOffsets(offsets), zoneScores = [], zoneScore, i, j;
                    for(i = 0; i < guesses2.length; i++){
                        zoneScore = new ZoneScore(getZone(guesses2[i]), offsetsLength);
                        for(j = 0; j < offsetsLength; j++){
                            zoneScore.scoreOffsetAt(offsets[j]);
                        }
                        zoneScores.push(zoneScore);
                    }
                    zoneScores.sort(sortZoneScores);
                    return zoneScores.length > 0 ? zoneScores[0].zone.name : void 0;
                }
                function guess(ignoreCache) {
                    if (!cachedGuess || ignoreCache) {
                        cachedGuess = rebuildGuess();
                    }
                    return cachedGuess;
                }
                function normalizeName(name) {
                    return (name || "").toLowerCase().replace(/\//g, "_");
                }
                function addZone(packed) {
                    var i, name, split, normalized;
                    if (typeof packed === "string") {
                        packed = [
                            packed
                        ];
                    }
                    for(i = 0; i < packed.length; i++){
                        split = packed[i].split("|");
                        name = split[0];
                        normalized = normalizeName(name);
                        zones[normalized] = packed[i];
                        names[normalized] = name;
                        addToGuesses(normalized, split[2].split(" "));
                    }
                }
                function getZone(name, caller) {
                    name = normalizeName(name);
                    var zone = zones[name];
                    var link;
                    if (zone instanceof Zone) {
                        return zone;
                    }
                    if (typeof zone === "string") {
                        zone = new Zone(zone);
                        zones[name] = zone;
                        return zone;
                    }
                    if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {
                        zone = zones[name] = new Zone();
                        zone._set(link);
                        zone.name = names[name];
                        return zone;
                    }
                    return null;
                }
                function getNames() {
                    var i, out = [];
                    for(i in names){
                        if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {
                            out.push(names[i]);
                        }
                    }
                    return out.sort();
                }
                function getCountryNames() {
                    return Object.keys(countries);
                }
                function addLink(aliases) {
                    var i, alias, normal0, normal1;
                    if (typeof aliases === "string") {
                        aliases = [
                            aliases
                        ];
                    }
                    for(i = 0; i < aliases.length; i++){
                        alias = aliases[i].split("|");
                        normal0 = normalizeName(alias[0]);
                        normal1 = normalizeName(alias[1]);
                        links[normal0] = normal1;
                        names[normal0] = alias[0];
                        links[normal1] = normal0;
                        names[normal1] = alias[1];
                    }
                }
                function addCountries(data) {
                    var i, country_code, country_zones, split;
                    if (!data || !data.length) return;
                    for(i = 0; i < data.length; i++){
                        split = data[i].split("|");
                        country_code = split[0].toUpperCase();
                        country_zones = split[1].split(" ");
                        countries[country_code] = new Country(country_code, country_zones);
                    }
                }
                function getCountry(name) {
                    name = name.toUpperCase();
                    return countries[name] || null;
                }
                function zonesForCountry(country, with_offset) {
                    country = getCountry(country);
                    if (!country) return null;
                    var zones2 = country.zones.sort();
                    if (with_offset) {
                        return zones2.map(function(zone_name) {
                            var zone = getZone(zone_name);
                            return {
                                name: zone_name,
                                offset: zone.utcOffset(/* @__PURE__ */ new Date())
                            };
                        });
                    }
                    return zones2;
                }
                function loadData(data) {
                    addZone(data.zones);
                    addLink(data.links);
                    addCountries(data.countries);
                    tz.dataVersion = data.version;
                }
                function zoneExists(name) {
                    if (!zoneExists.didShowError) {
                        zoneExists.didShowError = true;
                        logError2("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')");
                    }
                    return !!getZone(name);
                }
                function needsOffset(m) {
                    var isUnixTimestamp = m._f === "X" || m._f === "x";
                    return !!(m._a && m._tzm === void 0 && !isUnixTimestamp);
                }
                function logError2(message2) {
                    if (typeof console !== "undefined" && typeof console.error === "function") {
                        console.error(message2);
                    }
                }
                function tz(input) {
                    var args = Array.prototype.slice.call(arguments, 0, -1), name = arguments[arguments.length - 1], out = moment4.utc.apply(null, args), zone;
                    if (!moment4.isMoment(input) && needsOffset(out) && (zone = getZone(name))) {
                        out.add(zone.parse(out), "minutes");
                    }
                    out.tz(name);
                    return out;
                }
                tz.version = VERSION;
                tz.dataVersion = "";
                tz._zones = zones;
                tz._links = links;
                tz._names = names;
                tz._countries = countries;
                tz.add = addZone;
                tz.link = addLink;
                tz.load = loadData;
                tz.zone = getZone;
                tz.zoneExists = zoneExists;
                tz.guess = guess;
                tz.names = getNames;
                tz.Zone = Zone;
                tz.unpack = unpack;
                tz.unpackBase60 = unpackBase60;
                tz.needsOffset = needsOffset;
                tz.moveInvalidForward = true;
                tz.moveAmbiguousForward = false;
                tz.countries = getCountryNames;
                tz.zonesForCountry = zonesForCountry;
                var fn = moment4.fn;
                moment4.tz = tz;
                moment4.defaultZone = null;
                moment4.updateOffset = function(mom, keepTime) {
                    var zone = moment4.defaultZone, offset;
                    if (mom._z === void 0) {
                        if (zone && needsOffset(mom) && !mom._isUTC && mom.isValid()) {
                            mom._d = moment4.utc(mom._a)._d;
                            mom.utc().add(zone.parse(mom), "minutes");
                        }
                        mom._z = zone;
                    }
                    if (mom._z) {
                        offset = mom._z.utcOffset(mom);
                        if (Math.abs(offset) < 16) {
                            offset = offset / 60;
                        }
                        if (mom.utcOffset !== void 0) {
                            var z = mom._z;
                            mom.utcOffset(-offset, keepTime);
                            mom._z = z;
                        } else {
                            mom.zone(offset, keepTime);
                        }
                    }
                };
                fn.tz = function(name, keepTime) {
                    if (name) {
                        if (typeof name !== "string") {
                            throw new Error("Time zone name must be a string, got " + name + " [" + (typeof name === "undefined" ? "undefined" : _type_of(name)) + "]");
                        }
                        this._z = getZone(name);
                        if (this._z) {
                            moment4.updateOffset(this, keepTime);
                        } else {
                            logError2("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/.");
                        }
                        return this;
                    }
                    if (this._z) {
                        return this._z.name;
                    }
                };
                function abbrWrap(old) {
                    return function() {
                        if (this._z) {
                            return this._z.abbr(this);
                        }
                        return old.call(this);
                    };
                }
                function resetZoneWrap(old) {
                    return function() {
                        this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                function resetZoneWrap2(old) {
                    return function() {
                        if (arguments.length > 0) this._z = null;
                        return old.apply(this, arguments);
                    };
                }
                fn.zoneName = abbrWrap(fn.zoneName);
                fn.zoneAbbr = abbrWrap(fn.zoneAbbr);
                fn.utc = resetZoneWrap(fn.utc);
                fn.local = resetZoneWrap(fn.local);
                fn.utcOffset = resetZoneWrap2(fn.utcOffset);
                moment4.tz.setDefault = function(name) {
                    if (major < 2 || major === 2 && minor < 9) {
                        logError2("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + moment4.version + ".");
                    }
                    moment4.defaultZone = name ? getZone(name) : null;
                    return moment4;
                };
                var momentProperties = moment4.momentProperties;
                if (Object.prototype.toString.call(momentProperties) === "[object Array]") {
                    momentProperties.push("_z");
                    momentProperties.push("_a");
                } else if (momentProperties) {
                    momentProperties._z = null;
                }
                return moment4;
            });
        }
    });
    // node_modules/@signageos/lib/node_modules/moment-timezone/data/packed/latest.json
    var require_latest4 = __commonJS({
        "node_modules/@signageos/lib/node_modules/moment-timezone/data/packed/latest.json": function(exports, module) {
            module.exports = {
                version: "2024a",
                zones: [
                    "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
                    "Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5",
                    "Africa/Algiers|LMT PMT WET WEST CET CEST|-c.c -9.l 0 -10 -10 -20|01232323232323232454542423234542324|-3bQ0c.c MDA2.P cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5",
                    "Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6",
                    "Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4",
                    "Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5",
                    "Africa/Cairo|LMT EET EEST|-25.9 -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2MBC5.9 1AQM5.9 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0 kSp0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0|15e6",
                    "Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0|32e5",
                    "Africa/Ceuta|LMT WET WEST CET CEST|l.g 0 -10 -10 -20|0121212121212121212121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2M0M0 GdX0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|85e3",
                    "Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0|20e4",
                    "Africa/Johannesburg|LMT SAST SAST SAST|-1Q -1u -20 -30|0123232|-39EpQ qTcm 1Ajdu 1cL0 1cN0 1cL0|84e5",
                    "Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|",
                    "Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5",
                    "Africa/Monrovia|LMT MMT MMT GMT|H.8 H.8 I.u 0|0123|-3ygng.Q 1usM0 28G01.m|11e5",
                    "Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5",
                    "Africa/Sao_Tome|LMT LMT GMT WAT|-q.U A.J 0 -10|01232|-3tooq.U 18aoq.U 4i6N0 2q00|",
                    "Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5",
                    "Africa/Tunis|LMT PMT CET CEST|-E.I -9.l -10 -20|01232323232323232323232323232323232|-3zO0E.I 1cBAv.n 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5",
                    "Africa/Windhoek|LMT +0130 SAST SAST CAT WAT|-18.o -1u -20 -30 -20 -10|012324545454545454545454545454545454545454545454545454|-39Ep8.o qTbC.o 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4",
                    "America/Adak|LMT LMT NST NWT NPT BST BDT AHST HST HDT|-cd.m bK.C b0 a0 a0 b0 a0 a0 a0 90|01234256565656565656565656565656565678989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVzf.p 1EX1d.m 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326",
                    "America/Anchorage|LMT LMT AST AWT APT AHST AHDT YST AKST AKDT|-e0.o 9X.A a0 90 90 a0 90 90 90 80|01234256565656565656565656565656565678989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVxs.n 1EX20.o 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4",
                    "America/Puerto_Rico|LMT AST AWT APT|4o.p 40 30 30|01231|-2Qi7z.z 1IUbz.z 7XT0 iu0|24e5",
                    "America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4",
                    "America/Argentina/Buenos_Aires|LMT CMT -04 -03 -02|3R.M 4g.M 40 30 20|012323232323232323232323232323232323232323234343434343434343|-331U6.c 125cn pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Catamarca|LMT CMT -04 -03 -02|4n.8 4g.M 40 30 20|012323232323232323232323232323232323232323234343434243432343|-331TA.Q 125bR.E pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Cordoba|LMT CMT -04 -03 -02|4g.M 4g.M 40 30 20|012323232323232323232323232323232323232323234343434243434343|-331TH.c 125c0 pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|",
                    "America/Argentina/Jujuy|LMT CMT -04 -03 -02|4l.c 4g.M 40 30 20|0123232323232323232323232323232323232323232343434232434343|-331TC.M 125bT.A pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/La_Rioja|LMT CMT -04 -03 -02|4r.o 4g.M 40 30 20|0123232323232323232323232323232323232323232343434342343432343|-331Tw.A 125bN.o pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Mendoza|LMT CMT -04 -03 -02|4z.g 4g.M 40 30 20|012323232323232323232323232323232323232323234343423232432343|-331To.I 125bF.w pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|",
                    "America/Argentina/Rio_Gallegos|LMT CMT -04 -03 -02|4A.Q 4g.M 40 30 20|012323232323232323232323232323232323232323234343434343432343|-331Tn.8 125bD.U pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|",
                    "America/Argentina/Salta|LMT CMT -04 -03 -02|4l.E 4g.M 40 30 20|0123232323232323232323232323232323232323232343434342434343|-331TC.k 125bT.8 pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|",
                    "America/Argentina/San_Juan|LMT CMT -04 -03 -02|4y.4 4g.M 40 30 20|0123232323232323232323232323232323232323232343434342343432343|-331Tp.U 125bG.I pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|",
                    "America/Argentina/San_Luis|LMT CMT -04 -03 -02|4p.o 4g.M 40 30 20|0123232323232323232323232323232323232323232343434232323432323|-331Ty.A 125bP.o pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|",
                    "America/Argentina/Tucuman|LMT CMT -04 -03 -02|4k.Q 4g.M 40 30 20|01232323232323232323232323232323232323232323434343424343234343|-331TD.8 125bT.U pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|",
                    "America/Argentina/Ushuaia|LMT CMT -04 -03 -02|4x.c 4g.M 40 30 20|012323232323232323232323232323232323232323234343434343432343|-331Tq.M 125bH.A pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|",
                    "America/Asuncion|LMT AMT -04 -03|3O.E 3O.E 40 30|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-3eLw9.k 1FGo0 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0|28e5",
                    "America/Panama|LMT CMT EST|5i.8 5j.A 50|012|-3eLuF.Q Iy01.s|15e5",
                    "America/Bahia_Banderas|LMT MST CST MDT PST CDT|71 70 60 60 80 50|0121312141313131313131313131313131313152525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|84e3",
                    "America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5",
                    "America/Barbados|LMT AST ADT -0330|3W.t 40 30 3u|0121213121212121|-2m4k1.v 1eAN1.v RB0 1Bz0 Op0 1rb0 11d0 1jJc0 IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4",
                    "America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5",
                    "America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3",
                    "America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2",
                    "America/Bogota|LMT BMT -05 -04|4U.g 4U.g 50 40|01232|-3sTv3.I 1eIo0 38yo3.I 1PX0|90e5",
                    "America/Boise|LMT PST PDT MST MWT MPT MDT|7I.N 80 70 70 60 60 60|01212134536363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-3tFE0 1nEe0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4",
                    "America/Cambridge_Bay|-00 MST MWT MPT MDT CST CDT EST|0 70 60 60 60 60 50 50|012314141414141414141414141414141414141414141414141414141414567541414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-21Jc0 RO90 8x20 ix0 14HB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2",
                    "America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4",
                    "America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4",
                    "America/Caracas|LMT CMT -0430 -04|4r.I 4r.E 4u 40|012323|-3eLvw.g ROnX.U 28KM2.k 1IwOu kqo0|29e5",
                    "America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3",
                    "America/Chicago|LMT CST CDT EST CWT CPT|5O.A 60 50 50 50 50|012121212121212121212121212121212121213121212121214512121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFG0 1nEe0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5",
                    "America/Chihuahua|LMT MST CST MDT CDT|74.k 70 60 60 50|0121312424231313131313131313131313131313131313131313131313132|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|81e4",
                    "America/Ciudad_Juarez|LMT MST CST MDT CDT|75.U 70 60 60 50|01213124242313131313131313131313131313131313131313131313131321313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Costa_Rica|LMT SJMT CST CDT|5A.d 5A.d 60 50|01232323232|-3eLun.L 1fyo0 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5",
                    "America/Phoenix|LMT MST MDT MWT|7s.i 70 60 60|012121313121|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5",
                    "America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4",
                    "America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8",
                    "America/Dawson_Creek|LMT PST PDT PWT PPT MST|80.U 80 70 70 70 70|01213412121212121212121212121212121212121212121212121212125|-3tofX.4 1nspX.4 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3",
                    "America/Dawson|LMT YST YDT YWT YPT YDDT PST PDT MST|9h.E 90 80 80 80 70 80 70 70|0121213415167676767676767676767676767676767676767676767676767676767676767676767676767676767678|-2MSeG.k GWpG.k 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2",
                    "America/Denver|LMT MST MDT MWT MPT|6X.U 70 60 60 60|012121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFF0 1nEe0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5",
                    "America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5",
                    "America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5",
                    "America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3",
                    "America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5",
                    "America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 4Q00 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5",
                    "America/Fort_Nelson|LMT PST PDT PWT PPT MST|8a.L 80 70 70 70 70|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121215|-3tofN.d 1nspN.d 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2",
                    "America/Fort_Wayne|LMT CST CDT CWT CPT EST EDT|5I.C 60 50 50 50 50 40|0121212134121212121212121212151565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5",
                    "America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3",
                    "America/Godthab|LMT -03 -02 -01|3q.U 30 20 10|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 2so0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|17e3",
                    "America/Goose_Bay|LMT NST NDT NST NDT NWT NPT AST ADT ADDT|41.E 3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|0121343434343434356343434343434343434343434343434343434343437878787878787878787878787878787878787878787879787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787|-3tojW.k 1nspt.c 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2",
                    "America/Grand_Turk|LMT KMT EST EDT AST|4I.w 57.a 50 40 40|01232323232323232323232323232323232323232323232323232323232323232323232323243232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3eLvf.s RK0m.C 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2",
                    "America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5",
                    "America/Guayaquil|LMT QMT -05 -04|5j.k 5e 50 40|01232|-3eLuE.E 1DNzS.E 2uILK rz0|27e5",
                    "America/Guyana|LMT -04 -0345 -03|3Q.D 40 3J 30|01231|-2mf87.l 8Hc7.l 2r7bJ Ey0f|80e4",
                    "America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4",
                    "America/Havana|LMT HMT CST CDT|5t.s 5t.A 50 40|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3eLuu.w 1qx00.8 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5",
                    "America/Hermosillo|LMT MST CST MDT PST|7n.Q 70 60 60 80|0121312141313131|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4",
                    "America/Indiana/Knox|LMT CST CDT CWT CPT EST|5K.u 60 50 50 50 50|01212134121212121212121212121212121212151212121212121212121212121212121212121212121212121252121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Marengo|LMT CST CDT CWT CPT EST EDT|5J.n 60 50 50 50 50 40|01212134121212121212121215656565656525656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Petersburg|LMT CST CDT CWT CPT EST EDT|5N.7 60 50 50 50 50 40|012121341212121212121212121215121212121212121212121252125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Tell_City|LMT CST CDT CWT CPT EST EDT|5L.3 60 50 50 50 50 40|012121341212121212121212121512165652121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vevay|LMT CST CDT CWT CPT EST EDT|5E.g 60 50 50 50 50 40|0121213415656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Vincennes|LMT CST CDT CWT CPT EST EDT|5O.7 60 50 50 50 50 40|012121341212121212121212121212121565652125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Indiana/Winamac|LMT CST CDT CWT CPT EST EDT|5K.p 60 50 50 50 50 40|012121341212121212121212121212121212121565652165656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Inuvik|-00 PST PDT MDT MST|0 80 70 60 70|01212121212121213434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-FnA0 L3K0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2",
                    "America/Iqaluit|-00 EWT EPT EST EDT CST CDT|0 40 40 50 40 60 50|0123434343434343434343434343434343434343434343434343434343456343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-16K00 7nX0 iv0 14HB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2",
                    "America/Jamaica|LMT KMT EST EDT|57.a 57.a 50 40|01232323232323232323232|-3eLuQ.O RK00 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4",
                    "America/Juneau|LMT LMT PST PWT PPT PDT YDT YST AKST AKDT|-f2.j 8V.F 80 70 70 70 80 90 90 80|0123425252525252525252525252625252578989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVwq.s 1EX12.j 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3",
                    "America/Kentucky/Louisville|LMT CST CDT CWT CPT EST EDT|5H.2 60 50 50 50 50 40|01212121213412121212121212121212121212565656565656525656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Kentucky/Monticello|LMT CST CDT CWT CPT EST EDT|5D.o 60 50 50 50 50 40|01212134121212121212121212121212121212121212121212121212121212121212121212565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFG0 1nEe0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/La_Paz|LMT CMT BST -04|4w.A 4w.A 3w.A 40|0123|-3eLvr.o 1FIo0 13b0|19e5",
                    "America/Lima|LMT LMT -05 -04|58.c 58.A 50 40|01232323232323232|-3eLuP.M JcM0.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6",
                    "America/Los_Angeles|LMT PST PDT PWT PPT|7Q.W 80 70 70 70|0121213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFE0 1nEe0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6",
                    "America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4",
                    "America/Managua|LMT MMT CST EST CDT|5J.8 5J.c 60 50 50|01232424232324242|-3eLue.Q 1Mhc0.4 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5",
                    "America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5",
                    "America/Martinique|LMT FFMT AST ADT|44.k 44.k 40 30|01232|-3eLvT.E PTA0 2LPbT.E 19X0|39e4",
                    "America/Matamoros|LMT CST CDT|6u 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4",
                    "America/Mazatlan|LMT MST CST MDT PST|75.E 70 60 60 80|0121312141313131313131313131313131313131313131313131313131313131|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|44e4",
                    "America/Menominee|LMT CST CDT CWT CPT EST|5O.r 60 50 50 50 50|012121341212152121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3pdG9.x 1jce9.x 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2",
                    "America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|11e5",
                    "America/Metlakatla|LMT LMT PST PWT PPT PDT AKST AKDT|-fd.G 8K.i 80 70 70 70 90 80|0123425252525252525252525252525252526767672676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-48Pzs.L 1jVwf.5 1EX1d.G 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2",
                    "America/Mexico_City|LMT MST CST MDT CDT CWT|6A.A 70 60 60 50 50|012131242425242424242424242424242424242424242424242424242424242424242|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|20e6",
                    "America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mxUf.k 2LHcf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2",
                    "America/Moncton|LMT EST AST ADT AWT APT|4j.8 50 40 30 30 30|0123232323232323232323245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3txvE.Q J4ME.Q CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3",
                    "America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|41e5",
                    "America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5",
                    "America/Toronto|LMT EST EDT EWT EPT|5h.w 50 40 40 40|012121212121212121212121212121212121212121212123412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-32B6G.s UFdG.s 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1qL0 11B0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5",
                    "America/New_York|LMT EST EDT EWT EPT|4U.2 50 40 40 40|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tFH0 1nEe0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6",
                    "America/Nome|LMT LMT NST NWT NPT BST BDT YST AKST AKDT|-cW.m b1.C b0 a0 a0 b0 a0 90 90 80|01234256565656565656565656565656565678989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898|-48Pzs.L 1jVyu.p 1EX1W.m 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2",
                    "America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2",
                    "America/North_Dakota/Beulah|LMT MST MDT MWT MPT CST CDT|6L.7 70 60 60 60 60 50|0121213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/Center|LMT MST MDT MWT MPT CST CDT|6J.c 70 60 60 60 60 50|0121213412121212121212121212121212121212121212121212121212125656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/North_Dakota/New_Salem|LMT MST MDT MWT MPT CST CDT|6J.D 70 60 60 60 60 50|0121213412121212121212121212121212121212121212121212121212121212121212121212121212565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tFF0 1nEe0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "America/Ojinaga|LMT MST CST MDT CDT|6V.E 70 60 60 50|0121312424231313131313131313131313131313131313131313131313132424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3",
                    "America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4",
                    "America/Port-au-Prince|LMT PPMT EST EDT|4N.k 4N 50 40|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3eLva.E 15RLX.E 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4",
                    "America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4",
                    "America/Punta_Arenas|LMT SMT -05 -04 -03|4H.E 4G.J 50 40 30|01213132323232323232343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-3eLvg.k MJbX.5 fJAh.f 5knG.J 1Vzh.f jRAG.J 1pbh.f 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|",
                    "America/Winnipeg|LMT CST CDT CWT CPT|6s.A 60 50 50 50|0121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3kLtv.o 1a3bv.o WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4",
                    "America/Rankin_Inlet|-00 CST CDT EST|0 60 50 50|01212121212121212121212121212121212121212121212121212121212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-vDc0 Bjk0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2",
                    "America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5",
                    "America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4",
                    "America/Resolute|-00 CST CDT EST|0 60 50 50|01212121212121212121212121212121212121212121212121212121212321212121212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-SnA0 103I0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229",
                    "America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4",
                    "America/Santiago|LMT SMT -05 -04 -03|4G.J 4G.J 50 40 30|0121313232323232323432343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-3eLvh.f MJc0 fJAh.f 5knG.J 1Vzh.f jRAG.J 1pbh.f 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 hX0 1q10 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0|62e5",
                    "America/Santo_Domingo|LMT SDMT EST EDT -0430 AST|4D.A 4E 50 40 4u 40|012324242424242525|-3eLvk.o 1Jic0.o 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5",
                    "America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6",
                    "America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|012132323232323232323232323232323232323232323232323232323232323232323232323232323232323232121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 2pA0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|452",
                    "America/Sitka|LMT LMT PST PWT PPT PDT YST AKST AKDT|-eW.L 91.d 80 70 70 70 90 90 80|0123425252525252525252525252525252567878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787|-48Pzs.L 1jVwu 1EX0W.L 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2",
                    "America/St_Johns|LMT NST NDT NST NDT NWT NPT NDDT|3u.Q 3u.Q 2u.Q 3u 2u 2u 2u 1u|012121212121212121212121212121212121213434343434343435634343434343434343434343434343434343434343434343434343434343434343434343434343434343437343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3tokt.8 1l020 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4",
                    "America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3",
                    "America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5",
                    "America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656",
                    "America/Vancouver|LMT PST PDT PWT PPT|8c.s 80 70 70 70|01213412121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3tofL.w 1nspL.w 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5",
                    "America/Whitehorse|LMT YST YDT YWT YPT YDDT PST PDT MST|90.c 90 80 80 80 70 80 70 70|0121213415167676767676767676767676767676767676767676767676767676767676767676767676767676767678|-2MSeX.M GWpX.M 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 LA0 ytd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3",
                    "America/Yakutat|LMT LMT YST YWT YPT YDT AKST AKDT|-eF.5 9i.T 90 80 80 80 90 80|0123425252525252525252525252525252526767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-48Pzs.L 1jVwL.G 1EX1F.5 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642",
                    "Antarctica/Casey|-00 +08 +11|0 -80 -b0|012121212121212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01 14kX 1lf1 14kX 1lf1 13bX|10",
                    "Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70",
                    "Pacific/Port_Moresby|LMT PMMT +10|-9M.E -9M.w -a0|012|-3D8VM.E AvA0.8|25e4",
                    "Antarctica/Macquarie|-00 AEST AEDT|0 -a0 -b0|0121012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2OPc0 Fb40 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|1",
                    "Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60",
                    "Pacific/Auckland|LMT NZMT NZST NZST NZDT|-bD.4 -bu -cu -c0 -d0|012131313131313131313131313134343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-46jLD.4 2nEO9.4 Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00|14e5",
                    "Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40",
                    "Antarctica/Rothera|-00 -03|0 30|01|gOo0|130",
                    "Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5",
                    "Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|40",
                    "Antarctica/Vostok|-00 +07 +05|0 -70 -50|01012|-tjA0 1rWh0 1Nj0 1aTv0|25",
                    "Europe/Berlin|LMT CET CEST CEMT|-R.s -10 -20 -30|012121212121212321212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-36RcR.s UbWR.s 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|41e5",
                    "Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|0123232323232323232323212323232323232323232323232321|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 L4m0|15e5",
                    "Asia/Amman|LMT EET EEST +03|-2n.I -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212123|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00|25e5",
                    "Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3",
                    "Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4",
                    "Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4",
                    "Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4",
                    "Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|",
                    "Asia/Baghdad|LMT BMT +03 +04|-2V.E -2V.A -30 -40|0123232323232323232323232323232323232323232323232323232|-3eLCV.E 18ao0.4 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5",
                    "Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4",
                    "Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5",
                    "Asia/Bangkok|LMT BMT +07|-6G.4 -6G.4 -70|012|-3D8SG.4 1C000|15e6",
                    "Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|",
                    "Asia/Beirut|LMT EET EEST|-2m -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3D8Om 1BWom 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0|22e5",
                    "Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4",
                    "Asia/Brunei|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|42e4",
                    "Asia/Kolkata|LMT HMT MMT IST +0630|-5R.s -5R.k -5l.a -5u -6u|01234343|-4Fg5R.s BKo0.8 1rDcw.a 1r2LP.a 1un0 HB0 7zX0|15e6",
                    "Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4",
                    "Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3",
                    "Asia/Shanghai|LMT CST CDT|-85.H -80 -90|012121212121212121212121212121|-2M0U5.H Iuo5.H 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6",
                    "Asia/Colombo|LMT MMT +0530 +06 +0630|-5j.o -5j.w -5u -60 -6u|012342432|-3D8Rj.o 13inX.Q 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5",
                    "Asia/Dhaka|LMT HMT +0630 +0530 +06 +07|-61.E -5R.k -6u -5u -60 -70|01232454|-3eLG1.E 26008.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6",
                    "Asia/Damascus|LMT EET EEST +03|-2p.c -20 -30 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212123|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|26e5",
                    "Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4",
                    "Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5",
                    "Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4",
                    "Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "Asia/Gaza|LMT EET EEST IST IDT|-2h.Q -20 -30 -20 -30|0121212121212121212121212121212121234343434343434343434343434343431212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2MBCh.Q 1Azeh.Q MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1lb0 14p0 1in0 17d0 1cL0 1cN0 19X0 1fB0 14n0 jB0 2L0 11B0 WL0 gN0 8n0 11B0 TX0 gN0 bb0 11B0 On0 jB0 dX0 11B0 Lz0 gN0 mn0 WN0 IL0 gN0 pb0 WN0 Db0 jB0 rX0 11B0 xz0 gN0 xz0 11B0 rX0 jB0 An0 11B0 pb0 gN0 IL0 WN0 mn0 gN0 Lz0 WN0 gL0 jB0 On0 11B0 bb0 gN0 TX0 11B0 5z0 jB0 WL0 11B0 2L0 jB0 11z0 1ip0 19X0 1cN0 1cL0 17d0 1in0 14p0 1lb0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1nX0 14p0 1in0 17d0 1fz0 1a10 19X0 1fB0 17b0 gN0 2L0 WN0 14n0 gN0 5z0 WN0 WL0 jB0 8n0 11B0 Rb0 gN0 dX0 11B0 Lz0 jB0 gL0 11B0 IL0 jB0 mn0 WN0 FX0 gN0 rX0 WN0 An0 jB0 uL0 11B0 uL0 gN0 An0 11B0 rX0 gN0 Db0 11B0 mn0 jB0 FX0 11B0 jz0 gN0 On0 WN0 dX0 jB0 Rb0 WN0 bb0 jB0 TX0 11B0 5z0 gN0 11z0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0|18e5",
                    "Asia/Hebron|LMT EET EEST IST IDT|-2k.n -20 -30 -20 -30|012121212121212121212121212121212123434343434343434343434343434343121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2MBCk.n 1Azek.n MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1lb0 14p0 1in0 17d0 1cL0 1cN0 19X0 1fB0 14n0 jB0 2L0 11B0 WL0 gN0 8n0 11B0 TX0 gN0 bb0 11B0 On0 jB0 dX0 11B0 Lz0 gN0 mn0 WN0 IL0 gN0 pb0 WN0 Db0 jB0 rX0 11B0 xz0 gN0 xz0 11B0 rX0 jB0 An0 11B0 pb0 gN0 IL0 WN0 mn0 gN0 Lz0 WN0 gL0 jB0 On0 11B0 bb0 gN0 TX0 11B0 5z0 jB0 WL0 11B0 2L0 jB0 11z0 1ip0 19X0 1cN0 1cL0 17d0 1in0 14p0 1lb0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1nX0 14p0 1in0 17d0 1fz0 1a10 19X0 1fB0 17b0 gN0 2L0 WN0 14n0 gN0 5z0 WN0 WL0 jB0 8n0 11B0 Rb0 gN0 dX0 11B0 Lz0 jB0 gL0 11B0 IL0 jB0 mn0 WN0 FX0 gN0 rX0 WN0 An0 jB0 uL0 11B0 uL0 gN0 An0 11B0 rX0 gN0 Db0 11B0 mn0 jB0 FX0 11B0 jz0 gN0 On0 WN0 dX0 jB0 Rb0 WN0 bb0 jB0 TX0 11B0 5z0 gN0 11z0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0|25e4",
                    "Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.u -76.u -70 -80 -90|0123423232|-2yC76.u bK00 1h7b6.u 5lz0 18o0 3Oq0 k5c0 aVX0 BAM0|90e5",
                    "Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5",
                    "Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3",
                    "Asia/Irkutsk|LMT IMT +07 +08 +09|-6V.5 -6V.5 -70 -80 -90|012343434343434343434343234343434343434343434343434343434343434343|-3D8SV.5 1Bxc0 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Europe/Istanbul|LMT IMT EET EEST +03 +04|-1T.Q -1U.U -20 -30 -30 -40|01232323232323232323232323232323232323232323232345423232323232323232323232323232323232323232323232323232323232323234|-3D8NT.Q 1ePXW.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6",
                    "Asia/Jakarta|LMT BMT +0720 +0730 +09 +08 WIB|-77.c -77.c -7k -7u -90 -80 -70|012343536|-49jH7.c 2hiLL.c luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6",
                    "Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4",
                    "Asia/Jerusalem|LMT JMT IST IDT IDDT|-2k.S -2k.E -20 -30 -40|012323232323232432323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3D8Ok.S 1wvA0.e SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0|81e4",
                    "Asia/Kabul|LMT +04 +0430|-4A.M -40 -4u|012|-3eLEA.M 2dTcA.M|46e5",
                    "Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4",
                    "Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6",
                    "Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5",
                    "Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5",
                    "Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2",
                    "Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5",
                    "Asia/Kuala_Lumpur|LMT SMT +07 +0720 +0730 +09 +08|-6T.p -6T.p -70 -7k -7u -90 -80|01234546|-2M0ST.p aIM0 17anT.p l5XE 17bO 8Fyu 1so10|71e5",
                    "Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4",
                    "Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3",
                    "Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5",
                    "Asia/Manila|LMT LMT PST PDT JST|fU -84 -80 -90 -90|01232423232|-54m84 2clc0 1vfc4 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6",
                    "Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|32e4",
                    "Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4",
                    "Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5",
                    "Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5",
                    "Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4",
                    "Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4",
                    "Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5",
                    "Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 Mv90|",
                    "Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4",
                    "Asia/Rangoon|LMT RMT +0630 +09|-6o.L -6o.L -6u -90|01232|-3D8So.L 1BnA0 SmnS.L 7j9u|48e5",
                    "Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4",
                    "Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4",
                    "Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6",
                    "Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2",
                    "Asia/Taipei|LMT CST JST CDT|-86 -80 -90 -90|012131313131313131313131313131313131313131|-30bk6 1FDc6 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5",
                    "Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5",
                    "Asia/Tbilisi|LMT TBMT +03 +04 +05|-2X.b -2X.b -30 -40 -50|01234343434343434343434323232343434343434343434323|-3D8OX.b 1LUM0 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5",
                    "Asia/Tehran|LMT TMT +0330 +0430 +04 +05|-3p.I -3p.I -3u -4u -40 -50|012345423232323232323232323232323232323232323232323232323232323232323232|-2btDp.I Llc0 1FHaT.I 1pc0 120u Rc0 XA0 Wou JX0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0|14e6",
                    "Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3",
                    "Asia/Tokyo|LMT JST JDT|-9i.X -90 -a0|0121212121|-3jE90 2qSo0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6",
                    "Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5",
                    "Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5",
                    "Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2",
                    "Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4",
                    "Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4",
                    "Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5",
                    "Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5",
                    "Atlantic/Azores|LMT HMT -02 -01 +00 WET|1G.E 1S.w 20 10 0 0|01232323232323232323232323232323232323232323234323432343234323232323232323232323232323232323232323232343434343434343434343434343434345434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3tomh.k 18aoh.k aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|25e4",
                    "Atlantic/Bermuda|LMT BMT BST AST ADT|4j.i 4j.i 3j.i 40 30|0121213434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3eLvE.G 16mo0 1bb0 1i10 11X0 ru30 thbE.G 1PX0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3",
                    "Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|54e4",
                    "Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4",
                    "Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|49e3",
                    "Atlantic/Madeira|LMT FMT -01 +00 +01 WET WEST|17.A 17.A 10 0 -10 0 -10|01232323232323232323232323232323232323232323234323432343234323232323232323232323232323232323232323232565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-3tomQ.o 18anQ.o aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e4",
                    "Atlantic/South_Georgia|LMT -02|2q.8 20|01|-3eLxx.Q|30",
                    "Atlantic/Stanley|LMT SMT -04 -03 -02|3P.o 3P.o 40 30 20|0123232323232323434323232323232323232323232323232323232323232323232323|-3eLw8.A S200 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2",
                    "Australia/Sydney|LMT AEST AEDT|-a4.Q -a0 -b0|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-32oW4.Q RlC4.Q xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|40e5",
                    "Australia/Adelaide|LMT ACST ACST ACDT|-9e.k -90 -9u -au|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-32oVe.k ak0e.k H1Bu xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|11e5",
                    "Australia/Brisbane|LMT AEST AEDT|-ac.8 -a0 -b0|012121212121212121|-32Bmc.8 Ry2c.8 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5",
                    "Australia/Broken_Hill|LMT AEST ACST ACST ACDT|-9p.M -a0 -90 -9u -au|0123434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-32oVp.M 3Lzp.M 6wp0 H1Bu xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|18e3",
                    "Australia/Hobart|LMT AEST AEDT|-9N.g -a0 -b0|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-3109N.g Pk1N.g 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|21e4",
                    "Australia/Darwin|LMT ACST ACST ACDT|-8H.k -90 -9u -au|01232323232|-32oUH.k ajXH.k H1Bu xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4",
                    "Australia/Eucla|LMT +0845 +0945|-8z.s -8J -9J|01212121212121212121|-30nIz.s PkpO.s xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368",
                    "Australia/Lord_Howe|LMT AEST +1030 +1130 +11|-aA.k -a0 -au -bu -b0|01232323232424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424|-32oWA.k 3tzAA.k 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu|347",
                    "Australia/Lindeman|LMT AEST AEDT|-9T.U -a0 -b0|0121212121212121212121|-32BlT.U Ry1T.U xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10",
                    "Australia/Melbourne|LMT AEST AEDT|-9D.Q -a0 -b0|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-32oVD.Q RlBD.Q xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|39e5",
                    "Australia/Perth|LMT AWST AWDT|-7H.o -80 -90|01212121212121212121|-30nHH.o PkpH.o xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5",
                    "CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "Pacific/Easter|LMT EMT -07 -06 -05|7h.s 7h.s 70 60 50|0123232323232323232323232323234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-3eLsG.w 1HRc0 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0|30e2",
                    "CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "Europe/Dublin|LMT DMT IST GMT BST IST|p.l p.l -y.D 0 -10 -10|012343434343435353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353|-3BHby.D 1ra20 Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "EST|EST|50|0||",
                    "EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Etc/GMT-0|GMT|0|0||",
                    "Etc/GMT-1|+01|-10|0||",
                    "Etc/GMT-10|+10|-a0|0||",
                    "Etc/GMT-11|+11|-b0|0||",
                    "Etc/GMT-12|+12|-c0|0||",
                    "Etc/GMT-13|+13|-d0|0||",
                    "Etc/GMT-14|+14|-e0|0||",
                    "Etc/GMT-2|+02|-20|0||",
                    "Etc/GMT-3|+03|-30|0||",
                    "Etc/GMT-4|+04|-40|0||",
                    "Etc/GMT-5|+05|-50|0||",
                    "Etc/GMT-6|+06|-60|0||",
                    "Etc/GMT-7|+07|-70|0||",
                    "Etc/GMT-8|+08|-80|0||",
                    "Etc/GMT-9|+09|-90|0||",
                    "Etc/GMT+1|-01|10|0||",
                    "Etc/GMT+10|-10|a0|0||",
                    "Etc/GMT+11|-11|b0|0||",
                    "Etc/GMT+12|-12|c0|0||",
                    "Etc/GMT+2|-02|20|0||",
                    "Etc/GMT+3|-03|30|0||",
                    "Etc/GMT+4|-04|40|0||",
                    "Etc/GMT+5|-05|50|0||",
                    "Etc/GMT+6|-06|60|0||",
                    "Etc/GMT+7|-07|70|0||",
                    "Etc/GMT+8|-08|80|0||",
                    "Etc/GMT+9|-09|90|0||",
                    "Etc/UTC|UTC|0|0||",
                    "Europe/Brussels|LMT BMT WET CET CEST WEST|-h.u -h.u 0 -10 -20 -10|012343434325252525252525252525252525252525252525252525434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3D8Mh.u u1Ah.u SO00 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|21e5",
                    "Europe/Andorra|LMT WET CET CEST|-6.4 0 -10 -20|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2M0M6.4 1Pnc6.4 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|79e3",
                    "Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5",
                    "Europe/Athens|LMT AMT EET EEST CEST CET|-1y.Q -1y.Q -20 -30 -20 -10|0123234545232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-30SNy.Q OMM1 CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|35e5",
                    "Europe/London|LMT GMT BST BDST|1.f 0 -10 -20|01212121212121212121212121212121212121212121212121232323232321212321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-4VgnW.J 2KHdW.J Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|10e6",
                    "Europe/Belgrade|LMT CET CEST|-1m -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3topm 2juLm 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Prague|LMT PMT CET CEST GMT|-V.I -V.I -10 -20 0|0123232323232323232423232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-4QbAV.I 1FDc0 XPaV.I 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|13e5",
                    "Europe/Bucharest|LMT BMT EET EEST|-1I.o -1I.o -20 -30|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3awpI.o 1AU00 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|19e5",
                    "Europe/Budapest|LMT CET CEST|-1g.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-3cK1g.k 124Lg.k 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|17e5",
                    "Europe/Zurich|LMT BMT CET CEST|-y.8 -t.K -10 -20|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-4HyMy.8 1Dw04.m 1SfAt.K 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|38e4",
                    "Europe/Chisinau|LMT CMT BMT EET EEST CEST CET MSK MSD|-1T.k -1T -1I.o -20 -30 -20 -10 -30 -40|0123434343434343434345656578787878787878787878434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-3D8NT.k 1wNA0.k wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|67e4",
                    "Europe/Gibraltar|LMT GMT BST BDST CET CEST|l.o 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123232323232121232121212121212121212145454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-3BHbC.A 1ra1C.A Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|30e3",
                    "Europe/Helsinki|LMT HMT EET EEST|-1D.N -1D.N -20 -30|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3H0ND.N 1Iu00 OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Kaliningrad|LMT CET CEST EET EEST MSK MSD +03|-1m -10 -20 -20 -30 -30 -40 -30|012121212121212343565656565656565654343434343434343434343434343434343434343434373|-36Rdm UbXm 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4",
                    "Europe/Kiev|LMT KMT EET MSK CEST CET MSD EEST|-22.4 -22.4 -20 -30 -20 -10 -40 -30|01234545363636363636363636367272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-3D8O2.4 1LUM0 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o10 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|34e5",
                    "Europe/Kirov|LMT +03 +04 +05 MSD MSK MSK|-3i.M -30 -40 -50 -40 -30 -40|0123232323232323232454524545454545454545454545454545454545454565|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 2pz0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4",
                    "Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5",
                    "Europe/Madrid|LMT WET WEST WEMT CET CEST|e.I 0 -10 -20 -10 -20|0121212121212121212321454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2M0M0 G5z0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|62e5",
                    "Europe/Malta|LMT CET CEST|-W.4 -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-35rcW.4 SXzW.4 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Minsk|LMT MMT EET MSK CEST CET MSD EEST +03|-1O.g -1O -20 -30 -20 -10 -40 -30 -30|012345454363636363636363636372727272727272727272727272727272727272728|-3D8NO.g 1LUM0.g eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5",
                    "Europe/Paris|LMT PMT WET WEST CEST CET WEMT|-9.l -9.l 0 -10 -20 -10 -20|01232323232323232323232323232323232323232323232323234545463654545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-3bQ09.l MDA0 cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|11e6",
                    "Europe/Moscow|LMT MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|01232434565756865656565656565656565698656565656565656565656565656565656565656a6|-3D8Ou.h 1sQM0 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6",
                    "Europe/Riga|LMT RMT LST EET MSK CEST CET MSD EEST|-1A.y -1A.y -2A.y -20 -30 -20 -10 -40 -30|0121213456565647474747474747474838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383|-3D8NA.y 1xde0 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|64e4",
                    "Europe/Rome|LMT RMT CET CEST|-N.U -N.U -10 -20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-4aU0N.U 15snN.U T000 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|39e5",
                    "Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5",
                    "Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|",
                    "Europe/Simferopol|LMT SMT EET MSK CEST CET MSD EEST MSK|-2g.o -2g -20 -30 -20 -10 -40 -30 -40|0123454543636363636363636363272727636363727272727272727272727272727272727283|-3D8Og.o 1LUM0.o eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eN0 1cM0 1cM0 1cM0 1cM0 dV0 WO0 1cM0 1cM0 1fy0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4",
                    "Europe/Sofia|LMT IMT EET CET CEST EEST|-1x.g -1U.U -20 -10 -20 -30|0123434325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-3D8Nx.g AiLA.k 1UFeU.U WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|12e5",
                    "Europe/Tallinn|LMT TMT CET CEST EET MSK MSD EEST|-1D -1D -10 -20 -20 -30 -40 -30|0123214532323565656565656565657474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474|-3D8ND 1wI00 teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|41e4",
                    "Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|42e4",
                    "Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5",
                    "Europe/Vienna|LMT CET CEST|-15.l -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-36Rd5.l UbX5.l 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|18e5",
                    "Europe/Vilnius|LMT WMT KMT CET EET MSK CEST MSD EEST|-1F.g -1o -1z.A -10 -20 -30 -20 -40 -30|0123435636365757575757575757584848484848484848463648484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484|-3D8NF.g 1u5Ah.g 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|54e4",
                    "Europe/Volgograd|LMT +03 +04 +05 MSD MSK MSK|-2V.E -30 -40 -50 -40 -30 -40|012323232323232324545452454545454545454545454545454545454545456525|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1fA0 1cM0 2pz0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5",
                    "Europe/Warsaw|LMT WMT CET CEST EET EEST|-1o -1o -10 -20 -20 -30|0123232345423232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-3D8No 1qDA0 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|17e5",
                    "HST|HST|a0|0||",
                    "Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2",
                    "Indian/Maldives|LMT MMT +05|-4S -4S -50|012|-3D8QS 3eLA0|35e4",
                    "Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4",
                    "Pacific/Kwajalein|LMT +11 +10 +09 -12 +12|-b9.k -b0 -a0 -90 c0 -c0|0123145|-2M0X9.k 1rDA9.k akp0 6Up0 12ry0 Wan0|14e3",
                    "MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|",
                    "MST|MST|70|0||",
                    "MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "Pacific/Chatham|LMT +1215 +1245 +1345|-cd.M -cf -cJ -dJ|0123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-46jMd.M 37RbW.M 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00|600",
                    "Pacific/Apia|LMT LMT -1130 -11 -10 +14 +13|-cx.4 bq.U bu b0 a0 -e0 -d0|012343456565656565656565656|-38Fox.4 J1A0 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3",
                    "Pacific/Bougainville|LMT PMMT +10 +09 +11|-am.g -9M.w -a0 -90 -b0|012324|-3D8Wm.g AvAx.I 1TCLM.w 7CN0 2MQp0|18e4",
                    "Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3",
                    "Pacific/Enderbury|-00 -12 -11 +13|0 c0 b0 -d0|0123|-1iIo0 1GsA0 B7X0|1",
                    "Pacific/Fakaofo|LMT -11 +13|bo.U b0 -d0|012|-2M0Az.4 4ufXz.4|483",
                    "Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|012121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0|88e4",
                    "Pacific/Tarawa|LMT +12|-bw.4 -c0|01|-2M0Xw.4|29e3",
                    "Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3",
                    "Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125",
                    "Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4",
                    "Pacific/Guam|LMT LMT GST +09 GDT ChST|el -9D -a0 -90 -b0 -a0|0123242424242424242425|-54m9D 2glc0 1DFbD 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4",
                    "Pacific/Honolulu|LMT HST HDT HWT HPT HST|av.q au 9u 9u 9u a0|01213415|-3061s.y 1uMdW.y 8x0 lef0 8wWu iAu 46p0|37e4",
                    "Pacific/Kiritimati|LMT -1040 -10 +14|at.k aE a0 -e0|0123|-2M0Bu.E 3bIMa.E B7Xk|51e2",
                    "Pacific/Kosrae|LMT LMT +11 +09 +10 +12|d8.4 -aP.U -b0 -90 -a0 -c0|0123243252|-54maP.U 2glc0 xsnP.U axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2",
                    "Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2",
                    "Pacific/Pago_Pago|LMT LMT SST|-cB.c bm.M b0|012|-38FoB.c J1A0|37e2",
                    "Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3",
                    "Pacific/Niue|LMT -1120 -11|bj.E bk b0|012|-FScE.k suo0.k|12e2",
                    "Pacific/Norfolk|LMT +1112 +1130 +1230 +11 +12|-bb.Q -bc -bu -cu -b0 -c0|0123245454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2M0Xb.Q 21ILX.Q W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|25e4",
                    "Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3",
                    "Pacific/Palau|LMT LMT +09|f2.4 -8V.U -90|012|-54m8V.U 2glc0|21e3",
                    "Pacific/Pitcairn|LMT -0830 -08|8E.k 8u 80|012|-2M0Dj.E 3UVXN.E|56",
                    "Pacific/Rarotonga|LMT LMT -1030 -0930 -10|-dk.U aD.4 au 9u a0|01234343434343434343434343434|-2Otpk.U 28zc0 13tbO.U IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3",
                    "Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4",
                    "Pacific/Tongatapu|LMT +1220 +13 +14|-cj.c -ck -d0 -e0|01232323232|-XbMj.c BgLX.c 1yndk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3",
                    "PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|",
                    "WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|"
                ],
                links: [
                    "Africa/Abidjan|Africa/Accra",
                    "Africa/Abidjan|Africa/Bamako",
                    "Africa/Abidjan|Africa/Banjul",
                    "Africa/Abidjan|Africa/Conakry",
                    "Africa/Abidjan|Africa/Dakar",
                    "Africa/Abidjan|Africa/Freetown",
                    "Africa/Abidjan|Africa/Lome",
                    "Africa/Abidjan|Africa/Nouakchott",
                    "Africa/Abidjan|Africa/Ouagadougou",
                    "Africa/Abidjan|Africa/Timbuktu",
                    "Africa/Abidjan|Atlantic/Reykjavik",
                    "Africa/Abidjan|Atlantic/St_Helena",
                    "Africa/Abidjan|Iceland",
                    "Africa/Cairo|Egypt",
                    "Africa/Johannesburg|Africa/Maseru",
                    "Africa/Johannesburg|Africa/Mbabane",
                    "Africa/Lagos|Africa/Bangui",
                    "Africa/Lagos|Africa/Brazzaville",
                    "Africa/Lagos|Africa/Douala",
                    "Africa/Lagos|Africa/Kinshasa",
                    "Africa/Lagos|Africa/Libreville",
                    "Africa/Lagos|Africa/Luanda",
                    "Africa/Lagos|Africa/Malabo",
                    "Africa/Lagos|Africa/Niamey",
                    "Africa/Lagos|Africa/Porto-Novo",
                    "Africa/Maputo|Africa/Blantyre",
                    "Africa/Maputo|Africa/Bujumbura",
                    "Africa/Maputo|Africa/Gaborone",
                    "Africa/Maputo|Africa/Harare",
                    "Africa/Maputo|Africa/Kigali",
                    "Africa/Maputo|Africa/Lubumbashi",
                    "Africa/Maputo|Africa/Lusaka",
                    "Africa/Nairobi|Africa/Addis_Ababa",
                    "Africa/Nairobi|Africa/Asmara",
                    "Africa/Nairobi|Africa/Asmera",
                    "Africa/Nairobi|Africa/Dar_es_Salaam",
                    "Africa/Nairobi|Africa/Djibouti",
                    "Africa/Nairobi|Africa/Kampala",
                    "Africa/Nairobi|Africa/Mogadishu",
                    "Africa/Nairobi|Indian/Antananarivo",
                    "Africa/Nairobi|Indian/Comoro",
                    "Africa/Nairobi|Indian/Mayotte",
                    "Africa/Tripoli|Libya",
                    "America/Adak|America/Atka",
                    "America/Adak|US/Aleutian",
                    "America/Anchorage|US/Alaska",
                    "America/Argentina/Buenos_Aires|America/Buenos_Aires",
                    "America/Argentina/Catamarca|America/Argentina/ComodRivadavia",
                    "America/Argentina/Catamarca|America/Catamarca",
                    "America/Argentina/Cordoba|America/Cordoba",
                    "America/Argentina/Cordoba|America/Rosario",
                    "America/Argentina/Jujuy|America/Jujuy",
                    "America/Argentina/Mendoza|America/Mendoza",
                    "America/Chicago|US/Central",
                    "America/Denver|America/Shiprock",
                    "America/Denver|Navajo",
                    "America/Denver|US/Mountain",
                    "America/Detroit|US/Michigan",
                    "America/Edmonton|America/Yellowknife",
                    "America/Edmonton|Canada/Mountain",
                    "America/Fort_Wayne|America/Indiana/Indianapolis",
                    "America/Fort_Wayne|America/Indianapolis",
                    "America/Fort_Wayne|US/East-Indiana",
                    "America/Godthab|America/Nuuk",
                    "America/Halifax|Canada/Atlantic",
                    "America/Havana|Cuba",
                    "America/Indiana/Knox|America/Knox_IN",
                    "America/Indiana/Knox|US/Indiana-Starke",
                    "America/Iqaluit|America/Pangnirtung",
                    "America/Jamaica|Jamaica",
                    "America/Kentucky/Louisville|America/Louisville",
                    "America/Los_Angeles|US/Pacific",
                    "America/Manaus|Brazil/West",
                    "America/Mazatlan|Mexico/BajaSur",
                    "America/Mexico_City|Mexico/General",
                    "America/New_York|US/Eastern",
                    "America/Noronha|Brazil/DeNoronha",
                    "America/Panama|America/Atikokan",
                    "America/Panama|America/Cayman",
                    "America/Panama|America/Coral_Harbour",
                    "America/Phoenix|America/Creston",
                    "America/Phoenix|US/Arizona",
                    "America/Puerto_Rico|America/Anguilla",
                    "America/Puerto_Rico|America/Antigua",
                    "America/Puerto_Rico|America/Aruba",
                    "America/Puerto_Rico|America/Blanc-Sablon",
                    "America/Puerto_Rico|America/Curacao",
                    "America/Puerto_Rico|America/Dominica",
                    "America/Puerto_Rico|America/Grenada",
                    "America/Puerto_Rico|America/Guadeloupe",
                    "America/Puerto_Rico|America/Kralendijk",
                    "America/Puerto_Rico|America/Lower_Princes",
                    "America/Puerto_Rico|America/Marigot",
                    "America/Puerto_Rico|America/Montserrat",
                    "America/Puerto_Rico|America/Port_of_Spain",
                    "America/Puerto_Rico|America/St_Barthelemy",
                    "America/Puerto_Rico|America/St_Kitts",
                    "America/Puerto_Rico|America/St_Lucia",
                    "America/Puerto_Rico|America/St_Thomas",
                    "America/Puerto_Rico|America/St_Vincent",
                    "America/Puerto_Rico|America/Tortola",
                    "America/Puerto_Rico|America/Virgin",
                    "America/Regina|Canada/Saskatchewan",
                    "America/Rio_Branco|America/Porto_Acre",
                    "America/Rio_Branco|Brazil/Acre",
                    "America/Santiago|Chile/Continental",
                    "America/Sao_Paulo|Brazil/East",
                    "America/St_Johns|Canada/Newfoundland",
                    "America/Tijuana|America/Ensenada",
                    "America/Tijuana|America/Santa_Isabel",
                    "America/Tijuana|Mexico/BajaNorte",
                    "America/Toronto|America/Montreal",
                    "America/Toronto|America/Nassau",
                    "America/Toronto|America/Nipigon",
                    "America/Toronto|America/Thunder_Bay",
                    "America/Toronto|Canada/Eastern",
                    "America/Vancouver|Canada/Pacific",
                    "America/Whitehorse|Canada/Yukon",
                    "America/Winnipeg|America/Rainy_River",
                    "America/Winnipeg|Canada/Central",
                    "Asia/Ashgabat|Asia/Ashkhabad",
                    "Asia/Bangkok|Asia/Phnom_Penh",
                    "Asia/Bangkok|Asia/Vientiane",
                    "Asia/Bangkok|Indian/Christmas",
                    "Asia/Brunei|Asia/Kuching",
                    "Asia/Dhaka|Asia/Dacca",
                    "Asia/Dubai|Asia/Muscat",
                    "Asia/Dubai|Indian/Mahe",
                    "Asia/Dubai|Indian/Reunion",
                    "Asia/Ho_Chi_Minh|Asia/Saigon",
                    "Asia/Hong_Kong|Hongkong",
                    "Asia/Jerusalem|Asia/Tel_Aviv",
                    "Asia/Jerusalem|Israel",
                    "Asia/Kathmandu|Asia/Katmandu",
                    "Asia/Kolkata|Asia/Calcutta",
                    "Asia/Kuala_Lumpur|Asia/Singapore",
                    "Asia/Kuala_Lumpur|Singapore",
                    "Asia/Macau|Asia/Macao",
                    "Asia/Makassar|Asia/Ujung_Pandang",
                    "Asia/Nicosia|Europe/Nicosia",
                    "Asia/Qatar|Asia/Bahrain",
                    "Asia/Rangoon|Asia/Yangon",
                    "Asia/Rangoon|Indian/Cocos",
                    "Asia/Riyadh|Antarctica/Syowa",
                    "Asia/Riyadh|Asia/Aden",
                    "Asia/Riyadh|Asia/Kuwait",
                    "Asia/Seoul|ROK",
                    "Asia/Shanghai|Asia/Chongqing",
                    "Asia/Shanghai|Asia/Chungking",
                    "Asia/Shanghai|Asia/Harbin",
                    "Asia/Shanghai|PRC",
                    "Asia/Taipei|ROC",
                    "Asia/Tehran|Iran",
                    "Asia/Thimphu|Asia/Thimbu",
                    "Asia/Tokyo|Japan",
                    "Asia/Ulaanbaatar|Asia/Ulan_Bator",
                    "Asia/Urumqi|Asia/Kashgar",
                    "Atlantic/Faroe|Atlantic/Faeroe",
                    "Australia/Adelaide|Australia/South",
                    "Australia/Brisbane|Australia/Queensland",
                    "Australia/Broken_Hill|Australia/Yancowinna",
                    "Australia/Darwin|Australia/North",
                    "Australia/Hobart|Australia/Currie",
                    "Australia/Hobart|Australia/Tasmania",
                    "Australia/Lord_Howe|Australia/LHI",
                    "Australia/Melbourne|Australia/Victoria",
                    "Australia/Perth|Australia/West",
                    "Australia/Sydney|Australia/ACT",
                    "Australia/Sydney|Australia/Canberra",
                    "Australia/Sydney|Australia/NSW",
                    "Etc/GMT-0|Etc/GMT",
                    "Etc/GMT-0|Etc/GMT+0",
                    "Etc/GMT-0|Etc/GMT0",
                    "Etc/GMT-0|Etc/Greenwich",
                    "Etc/GMT-0|GMT",
                    "Etc/GMT-0|GMT+0",
                    "Etc/GMT-0|GMT-0",
                    "Etc/GMT-0|GMT0",
                    "Etc/GMT-0|Greenwich",
                    "Etc/UTC|Etc/UCT",
                    "Etc/UTC|Etc/Universal",
                    "Etc/UTC|Etc/Zulu",
                    "Etc/UTC|UCT",
                    "Etc/UTC|UTC",
                    "Etc/UTC|Universal",
                    "Etc/UTC|Zulu",
                    "Europe/Belgrade|Europe/Ljubljana",
                    "Europe/Belgrade|Europe/Podgorica",
                    "Europe/Belgrade|Europe/Sarajevo",
                    "Europe/Belgrade|Europe/Skopje",
                    "Europe/Belgrade|Europe/Zagreb",
                    "Europe/Berlin|Arctic/Longyearbyen",
                    "Europe/Berlin|Atlantic/Jan_Mayen",
                    "Europe/Berlin|Europe/Copenhagen",
                    "Europe/Berlin|Europe/Oslo",
                    "Europe/Berlin|Europe/Stockholm",
                    "Europe/Brussels|Europe/Amsterdam",
                    "Europe/Brussels|Europe/Luxembourg",
                    "Europe/Chisinau|Europe/Tiraspol",
                    "Europe/Dublin|Eire",
                    "Europe/Helsinki|Europe/Mariehamn",
                    "Europe/Istanbul|Asia/Istanbul",
                    "Europe/Istanbul|Turkey",
                    "Europe/Kiev|Europe/Kyiv",
                    "Europe/Kiev|Europe/Uzhgorod",
                    "Europe/Kiev|Europe/Zaporozhye",
                    "Europe/Lisbon|Portugal",
                    "Europe/London|Europe/Belfast",
                    "Europe/London|Europe/Guernsey",
                    "Europe/London|Europe/Isle_of_Man",
                    "Europe/London|Europe/Jersey",
                    "Europe/London|GB",
                    "Europe/London|GB-Eire",
                    "Europe/Moscow|W-SU",
                    "Europe/Paris|Europe/Monaco",
                    "Europe/Prague|Europe/Bratislava",
                    "Europe/Rome|Europe/San_Marino",
                    "Europe/Rome|Europe/Vatican",
                    "Europe/Warsaw|Poland",
                    "Europe/Zurich|Europe/Busingen",
                    "Europe/Zurich|Europe/Vaduz",
                    "Indian/Maldives|Indian/Kerguelen",
                    "Pacific/Auckland|Antarctica/McMurdo",
                    "Pacific/Auckland|Antarctica/South_Pole",
                    "Pacific/Auckland|NZ",
                    "Pacific/Chatham|NZ-CHAT",
                    "Pacific/Easter|Chile/EasterIsland",
                    "Pacific/Enderbury|Pacific/Kanton",
                    "Pacific/Guadalcanal|Pacific/Pohnpei",
                    "Pacific/Guadalcanal|Pacific/Ponape",
                    "Pacific/Guam|Pacific/Saipan",
                    "Pacific/Honolulu|Pacific/Johnston",
                    "Pacific/Honolulu|US/Hawaii",
                    "Pacific/Kwajalein|Kwajalein",
                    "Pacific/Pago_Pago|Pacific/Midway",
                    "Pacific/Pago_Pago|Pacific/Samoa",
                    "Pacific/Pago_Pago|US/Samoa",
                    "Pacific/Port_Moresby|Antarctica/DumontDUrville",
                    "Pacific/Port_Moresby|Pacific/Chuuk",
                    "Pacific/Port_Moresby|Pacific/Truk",
                    "Pacific/Port_Moresby|Pacific/Yap",
                    "Pacific/Tarawa|Pacific/Funafuti",
                    "Pacific/Tarawa|Pacific/Majuro",
                    "Pacific/Tarawa|Pacific/Wake",
                    "Pacific/Tarawa|Pacific/Wallis"
                ],
                countries: [
                    "AD|Europe/Andorra",
                    "AE|Asia/Dubai",
                    "AF|Asia/Kabul",
                    "AG|America/Puerto_Rico America/Antigua",
                    "AI|America/Puerto_Rico America/Anguilla",
                    "AL|Europe/Tirane",
                    "AM|Asia/Yerevan",
                    "AO|Africa/Lagos Africa/Luanda",
                    "AQ|Antarctica/Casey Antarctica/Davis Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Troll Antarctica/Vostok Pacific/Auckland Pacific/Port_Moresby Asia/Riyadh Antarctica/McMurdo Antarctica/DumontDUrville Antarctica/Syowa",
                    "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia",
                    "AS|Pacific/Pago_Pago",
                    "AT|Europe/Vienna",
                    "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla",
                    "AW|America/Puerto_Rico America/Aruba",
                    "AX|Europe/Helsinki Europe/Mariehamn",
                    "AZ|Asia/Baku",
                    "BA|Europe/Belgrade Europe/Sarajevo",
                    "BB|America/Barbados",
                    "BD|Asia/Dhaka",
                    "BE|Europe/Brussels",
                    "BF|Africa/Abidjan Africa/Ouagadougou",
                    "BG|Europe/Sofia",
                    "BH|Asia/Qatar Asia/Bahrain",
                    "BI|Africa/Maputo Africa/Bujumbura",
                    "BJ|Africa/Lagos Africa/Porto-Novo",
                    "BL|America/Puerto_Rico America/St_Barthelemy",
                    "BM|Atlantic/Bermuda",
                    "BN|Asia/Kuching Asia/Brunei",
                    "BO|America/La_Paz",
                    "BQ|America/Puerto_Rico America/Kralendijk",
                    "BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco",
                    "BS|America/Toronto America/Nassau",
                    "BT|Asia/Thimphu",
                    "BW|Africa/Maputo Africa/Gaborone",
                    "BY|Europe/Minsk",
                    "BZ|America/Belize",
                    "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Toronto America/Iqaluit America/Winnipeg America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Inuvik America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver America/Panama America/Puerto_Rico America/Phoenix America/Blanc-Sablon America/Atikokan America/Creston",
                    "CC|Asia/Yangon Indian/Cocos",
                    "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi",
                    "CF|Africa/Lagos Africa/Bangui",
                    "CG|Africa/Lagos Africa/Brazzaville",
                    "CH|Europe/Zurich",
                    "CI|Africa/Abidjan",
                    "CK|Pacific/Rarotonga",
                    "CL|America/Santiago America/Punta_Arenas Pacific/Easter",
                    "CM|Africa/Lagos Africa/Douala",
                    "CN|Asia/Shanghai Asia/Urumqi",
                    "CO|America/Bogota",
                    "CR|America/Costa_Rica",
                    "CU|America/Havana",
                    "CV|Atlantic/Cape_Verde",
                    "CW|America/Puerto_Rico America/Curacao",
                    "CX|Asia/Bangkok Indian/Christmas",
                    "CY|Asia/Nicosia Asia/Famagusta",
                    "CZ|Europe/Prague",
                    "DE|Europe/Zurich Europe/Berlin Europe/Busingen",
                    "DJ|Africa/Nairobi Africa/Djibouti",
                    "DK|Europe/Berlin Europe/Copenhagen",
                    "DM|America/Puerto_Rico America/Dominica",
                    "DO|America/Santo_Domingo",
                    "DZ|Africa/Algiers",
                    "EC|America/Guayaquil Pacific/Galapagos",
                    "EE|Europe/Tallinn",
                    "EG|Africa/Cairo",
                    "EH|Africa/El_Aaiun",
                    "ER|Africa/Nairobi Africa/Asmara",
                    "ES|Europe/Madrid Africa/Ceuta Atlantic/Canary",
                    "ET|Africa/Nairobi Africa/Addis_Ababa",
                    "FI|Europe/Helsinki",
                    "FJ|Pacific/Fiji",
                    "FK|Atlantic/Stanley",
                    "FM|Pacific/Kosrae Pacific/Port_Moresby Pacific/Guadalcanal Pacific/Chuuk Pacific/Pohnpei",
                    "FO|Atlantic/Faroe",
                    "FR|Europe/Paris",
                    "GA|Africa/Lagos Africa/Libreville",
                    "GB|Europe/London",
                    "GD|America/Puerto_Rico America/Grenada",
                    "GE|Asia/Tbilisi",
                    "GF|America/Cayenne",
                    "GG|Europe/London Europe/Guernsey",
                    "GH|Africa/Abidjan Africa/Accra",
                    "GI|Europe/Gibraltar",
                    "GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule",
                    "GM|Africa/Abidjan Africa/Banjul",
                    "GN|Africa/Abidjan Africa/Conakry",
                    "GP|America/Puerto_Rico America/Guadeloupe",
                    "GQ|Africa/Lagos Africa/Malabo",
                    "GR|Europe/Athens",
                    "GS|Atlantic/South_Georgia",
                    "GT|America/Guatemala",
                    "GU|Pacific/Guam",
                    "GW|Africa/Bissau",
                    "GY|America/Guyana",
                    "HK|Asia/Hong_Kong",
                    "HN|America/Tegucigalpa",
                    "HR|Europe/Belgrade Europe/Zagreb",
                    "HT|America/Port-au-Prince",
                    "HU|Europe/Budapest",
                    "ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura",
                    "IE|Europe/Dublin",
                    "IL|Asia/Jerusalem",
                    "IM|Europe/London Europe/Isle_of_Man",
                    "IN|Asia/Kolkata",
                    "IO|Indian/Chagos",
                    "IQ|Asia/Baghdad",
                    "IR|Asia/Tehran",
                    "IS|Africa/Abidjan Atlantic/Reykjavik",
                    "IT|Europe/Rome",
                    "JE|Europe/London Europe/Jersey",
                    "JM|America/Jamaica",
                    "JO|Asia/Amman",
                    "JP|Asia/Tokyo",
                    "KE|Africa/Nairobi",
                    "KG|Asia/Bishkek",
                    "KH|Asia/Bangkok Asia/Phnom_Penh",
                    "KI|Pacific/Tarawa Pacific/Kanton Pacific/Kiritimati",
                    "KM|Africa/Nairobi Indian/Comoro",
                    "KN|America/Puerto_Rico America/St_Kitts",
                    "KP|Asia/Pyongyang",
                    "KR|Asia/Seoul",
                    "KW|Asia/Riyadh Asia/Kuwait",
                    "KY|America/Panama America/Cayman",
                    "KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral",
                    "LA|Asia/Bangkok Asia/Vientiane",
                    "LB|Asia/Beirut",
                    "LC|America/Puerto_Rico America/St_Lucia",
                    "LI|Europe/Zurich Europe/Vaduz",
                    "LK|Asia/Colombo",
                    "LR|Africa/Monrovia",
                    "LS|Africa/Johannesburg Africa/Maseru",
                    "LT|Europe/Vilnius",
                    "LU|Europe/Brussels Europe/Luxembourg",
                    "LV|Europe/Riga",
                    "LY|Africa/Tripoli",
                    "MA|Africa/Casablanca",
                    "MC|Europe/Paris Europe/Monaco",
                    "MD|Europe/Chisinau",
                    "ME|Europe/Belgrade Europe/Podgorica",
                    "MF|America/Puerto_Rico America/Marigot",
                    "MG|Africa/Nairobi Indian/Antananarivo",
                    "MH|Pacific/Tarawa Pacific/Kwajalein Pacific/Majuro",
                    "MK|Europe/Belgrade Europe/Skopje",
                    "ML|Africa/Abidjan Africa/Bamako",
                    "MM|Asia/Yangon",
                    "MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan",
                    "MO|Asia/Macau",
                    "MP|Pacific/Guam Pacific/Saipan",
                    "MQ|America/Martinique",
                    "MR|Africa/Abidjan Africa/Nouakchott",
                    "MS|America/Puerto_Rico America/Montserrat",
                    "MT|Europe/Malta",
                    "MU|Indian/Mauritius",
                    "MV|Indian/Maldives",
                    "MW|Africa/Maputo Africa/Blantyre",
                    "MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Chihuahua America/Ciudad_Juarez America/Ojinaga America/Mazatlan America/Bahia_Banderas America/Hermosillo America/Tijuana",
                    "MY|Asia/Kuching Asia/Singapore Asia/Kuala_Lumpur",
                    "MZ|Africa/Maputo",
                    "NA|Africa/Windhoek",
                    "NC|Pacific/Noumea",
                    "NE|Africa/Lagos Africa/Niamey",
                    "NF|Pacific/Norfolk",
                    "NG|Africa/Lagos",
                    "NI|America/Managua",
                    "NL|Europe/Brussels Europe/Amsterdam",
                    "NO|Europe/Berlin Europe/Oslo",
                    "NP|Asia/Kathmandu",
                    "NR|Pacific/Nauru",
                    "NU|Pacific/Niue",
                    "NZ|Pacific/Auckland Pacific/Chatham",
                    "OM|Asia/Dubai Asia/Muscat",
                    "PA|America/Panama",
                    "PE|America/Lima",
                    "PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier",
                    "PG|Pacific/Port_Moresby Pacific/Bougainville",
                    "PH|Asia/Manila",
                    "PK|Asia/Karachi",
                    "PL|Europe/Warsaw",
                    "PM|America/Miquelon",
                    "PN|Pacific/Pitcairn",
                    "PR|America/Puerto_Rico",
                    "PS|Asia/Gaza Asia/Hebron",
                    "PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores",
                    "PW|Pacific/Palau",
                    "PY|America/Asuncion",
                    "QA|Asia/Qatar",
                    "RE|Asia/Dubai Indian/Reunion",
                    "RO|Europe/Bucharest",
                    "RS|Europe/Belgrade",
                    "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr",
                    "RW|Africa/Maputo Africa/Kigali",
                    "SA|Asia/Riyadh",
                    "SB|Pacific/Guadalcanal",
                    "SC|Asia/Dubai Indian/Mahe",
                    "SD|Africa/Khartoum",
                    "SE|Europe/Berlin Europe/Stockholm",
                    "SG|Asia/Singapore",
                    "SH|Africa/Abidjan Atlantic/St_Helena",
                    "SI|Europe/Belgrade Europe/Ljubljana",
                    "SJ|Europe/Berlin Arctic/Longyearbyen",
                    "SK|Europe/Prague Europe/Bratislava",
                    "SL|Africa/Abidjan Africa/Freetown",
                    "SM|Europe/Rome Europe/San_Marino",
                    "SN|Africa/Abidjan Africa/Dakar",
                    "SO|Africa/Nairobi Africa/Mogadishu",
                    "SR|America/Paramaribo",
                    "SS|Africa/Juba",
                    "ST|Africa/Sao_Tome",
                    "SV|America/El_Salvador",
                    "SX|America/Puerto_Rico America/Lower_Princes",
                    "SY|Asia/Damascus",
                    "SZ|Africa/Johannesburg Africa/Mbabane",
                    "TC|America/Grand_Turk",
                    "TD|Africa/Ndjamena",
                    "TF|Asia/Dubai Indian/Maldives Indian/Kerguelen",
                    "TG|Africa/Abidjan Africa/Lome",
                    "TH|Asia/Bangkok",
                    "TJ|Asia/Dushanbe",
                    "TK|Pacific/Fakaofo",
                    "TL|Asia/Dili",
                    "TM|Asia/Ashgabat",
                    "TN|Africa/Tunis",
                    "TO|Pacific/Tongatapu",
                    "TR|Europe/Istanbul",
                    "TT|America/Puerto_Rico America/Port_of_Spain",
                    "TV|Pacific/Tarawa Pacific/Funafuti",
                    "TW|Asia/Taipei",
                    "TZ|Africa/Nairobi Africa/Dar_es_Salaam",
                    "UA|Europe/Simferopol Europe/Kyiv",
                    "UG|Africa/Nairobi Africa/Kampala",
                    "UM|Pacific/Pago_Pago Pacific/Tarawa Pacific/Midway Pacific/Wake",
                    "US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu",
                    "UY|America/Montevideo",
                    "UZ|Asia/Samarkand Asia/Tashkent",
                    "VA|Europe/Rome Europe/Vatican",
                    "VC|America/Puerto_Rico America/St_Vincent",
                    "VE|America/Caracas",
                    "VG|America/Puerto_Rico America/Tortola",
                    "VI|America/Puerto_Rico America/St_Thomas",
                    "VN|Asia/Bangkok Asia/Ho_Chi_Minh",
                    "VU|Pacific/Efate",
                    "WF|Pacific/Tarawa Pacific/Wallis",
                    "WS|Pacific/Apia",
                    "YE|Asia/Riyadh Asia/Aden",
                    "YT|Africa/Nairobi Indian/Mayotte",
                    "ZA|Africa/Johannesburg",
                    "ZM|Africa/Maputo Africa/Lusaka",
                    "ZW|Africa/Maputo Africa/Harare"
                ]
            };
        }
    });
    // node_modules/@signageos/lib/node_modules/moment-timezone/index.js
    var require_moment_timezone8 = __commonJS({
        "node_modules/@signageos/lib/node_modules/moment-timezone/index.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var moment4 = module.exports = require_moment_timezone7();
            moment4.tz.load(require_latest4());
        }
    });
    // node_modules/@signageos/lib/dist/DateTime/dateTimeFactory.js
    var require_dateTimeFactory2 = __commonJS({
        "node_modules/@signageos/lib/dist/DateTime/dateTimeFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.now = now2;
            exports.getCurrentTimezone = getCurrentTimezone;
            exports.getCurrentTimezoneOffset = getCurrentTimezoneOffset;
            var moment_timezone_1 = __importDefault(require_moment_timezone8());
            function now2(timezoneOffsetHours) {
                if (!timezoneOffsetHours) {
                    timezoneOffsetHours = getCurrentTimezone();
                }
                return (0, moment_timezone_1["default"])().subtract(getCurrentTimezone(), "hour").add(timezoneOffsetHours, "hour");
            }
            function getCurrentTimezone() {
                return -(/* @__PURE__ */ new Date().getTimezoneOffset() / 60);
            }
            function getCurrentTimezoneOffset() {
                return /* @__PURE__ */ new Date().getTimezoneOffset();
            }
        }
    });
    // src/Driver/Network/SCAPNetwork.ts
    var import_basicErrors2, import_lodash, SCAPNetwork;
    var init_SCAPNetwork = __esm({
        "src/Driver/Network/SCAPNetwork.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_basicErrors2 = __toESM(require_basicErrors());
            import_lodash = __toESM(require_lodash());
            init_SCAPHelper();
            SCAPNetwork = /*#__PURE__*/ function() {
                "use strict";
                function SCAPNetwork(scap) {
                    _class_call_check(this, SCAPNetwork);
                    this.scap = scap;
                }
                _create_class(SCAPNetwork, [
                    {
                        key: "importCertificate",
                        value: function importCertificate(_details) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "disableInterface",
                        value: function disableInterface(_ifaceName) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "listInterfaces",
                        value: function listInterfaces() {
                            return __async(this, null, function() {
                                var networkInfo, networkMacInfo, wiredMacAddress, wirelessMacAddress, wifiList, connectedTo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getDeviceNetworkInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            networkInfo = _state.sent();
                                            return [
                                                4,
                                                this.getNetworkMacInfo()
                                            ];
                                        case 2:
                                            networkMacInfo = _state.sent();
                                            wirelessMacAddress = null;
                                            if (networkMacInfo.wiredInfo) {
                                                wiredMacAddress = networkMacInfo.wiredInfo.macAddress;
                                            }
                                            if (networkMacInfo.wifiInfo) {
                                                wirelessMacAddress = networkMacInfo.wifiInfo.macAddress;
                                            }
                                            if (!networkInfo.wifi.ssid) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                getWifiList(this.scap.deviceInfo)
                                            ];
                                        case 3:
                                            wifiList = _state.sent();
                                            connectedTo = wifiList.find(function(wifiInfo) {
                                                return wifiInfo.ssid === networkInfo.wifi.ssid;
                                            });
                                            networkInfo.wifi.signalLevel = connectedTo == null ? void 0 : connectedTo.signalLevel;
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2,
                                                [
                                                    (0, import_lodash.omitBy)(__spreadProps(__spreadValues({}, this.convertNetworkInterfaceToNetworkInfo("ethernet", networkInfo.wired)), {
                                                        macAddress: wiredMacAddress
                                                    }), import_lodash.isUndefined),
                                                    (0, import_lodash.omitBy)(__spreadProps(__spreadValues({}, this.convertNetworkInterfaceToNetworkInfo("wifi", networkInfo.wifi)), {
                                                        macAddress: wirelessMacAddress
                                                    }), import_lodash.isUndefined)
                                                ]
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setManual",
                        value: function setManual(_networkInterface, _options) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new import_basicErrors2.NotSupportedMethodError("network.setManual");
                                });
                            });
                        }
                    },
                    {
                        key: "setDHCP",
                        value: function setDHCP(_networkInterface) {
                            throw new import_basicErrors2.NotSupportedMethodError("network.setDHCP");
                        }
                    },
                    {
                        key: "sendUdp",
                        value: function sendUdp(ip, port, data) {
                            return __async(this, null, function() {
                                var SERVICE_REQUEST_URL;
                                return _ts_generator(this, function(_state) {
                                    SERVICE_REQUEST_URL = "luna://com.lg.app.signage.signagemanagement.service";
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            window.webOS.service.request(SERVICE_REQUEST_URL, {
                                                method: "sendUdp",
                                                parameters: {
                                                    ip: ip,
                                                    port: port,
                                                    data: data
                                                },
                                                onComplete: function(response) {
                                                    if (response.returnValue === false || response.errorCode) {
                                                        reject(new Error("".concat(response.errorCode, " - ").concat(response.errorText)));
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getNetworkMacInfo",
                        value: function getNetworkMacInfo() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    resolve(cbObject);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Erro during getNetworkMacInfo: " + cbObject.errorText));
                                };
                                _this.scap.deviceInfo.getNetworkMacInfo(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "convertNetworkInterfaceToNetworkInfo",
                        value: function convertNetworkInterfaceToNetworkInfo(type, networkInterface) {
                            var _a2, _b2, _c;
                            var base = {
                                localAddress: networkInterface.ipAddress,
                                macAddress: "unknown",
                                gateway: networkInterface.gateway,
                                netmask: networkInterface.netmask,
                                dns: networkInterface.dns1 ? [
                                    networkInterface.dns1
                                ] : void 0,
                                name: (_a2 = networkInterface.interfaceName) != null ? _a2 : ""
                            };
                            return type === "ethernet" ? __spreadProps(__spreadValues({}, base), {
                                type: "ethernet"
                            }) : __spreadProps(__spreadValues({}, base), {
                                type: "wifi",
                                wifiStrength: (_b2 = networkInterface.signalLevel) != null ? _b2 : void 0,
                                wifiSsid: (_c = networkInterface.ssid) != null ? _c : void 0
                            });
                        }
                    }
                ]);
                return SCAPNetwork;
            }();
        }
    });
    // src/Driver/Network/SCAPProxy.ts
    var SCAPProxy;
    var init_SCAPProxy = __esm({
        "src/Driver/Network/SCAPProxy.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPHelper();
            SCAPProxy = /*#__PURE__*/ function() {
                "use strict";
                function SCAPProxy(scap) {
                    _class_call_check(this, SCAPProxy);
                    this.scap = scap;
                }
                _create_class(SCAPProxy, [
                    {
                        key: "isEnabled",
                        value: function isEnabled() {
                            return __async(this, null, function() {
                                var proxyInfo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getProxyInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            proxyInfo = _state.sent();
                                            return [
                                                2,
                                                proxyInfo.enabled
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /**
         * All arguments are required on Webos for setup proxy.
         */ key: "setManual",
                        value: function setManual(ipAddress, port, userName, password) {
                            return __async(this, null, function() {
                                var portNumber, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            portNumber = Number(port);
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                setProxyInfo(this.scap.deviceInfo, {
                                                    enabled: true,
                                                    ipAddress: ipAddress,
                                                    port: portNumber,
                                                    userName: userName,
                                                    password: password
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            console.warn("Error during enabling proxy", error);
                                            return [
                                                3,
                                                4
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "disable",
                        value: function disable() {
                            return __async(this, null, function() {
                                var error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            return [
                                                4,
                                                setProxyInfo(this.scap.deviceInfo, {
                                                    enabled: false
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            console.warn("Error during disabling proxy", error);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getConnectedTo",
                        value: function getConnectedTo() {
                            return __async(this, null, function() {
                                var proxyInfo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getProxyInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            proxyInfo = _state.sent();
                                            return [
                                                2,
                                                "".concat(proxyInfo.ipAddress, ":").concat(proxyInfo.port)
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return SCAPProxy;
            }();
        }
    });
    // src/Driver/SystemInfo/SCAPSystemInfo.ts
    var SCAPSystemInfo;
    var init_SCAPSystemInfo = __esm({
        "src/Driver/SystemInfo/SCAPSystemInfo.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPHelper();
            SCAPSystemInfo = /*#__PURE__*/ function() {
                "use strict";
                function SCAPSystemInfo(scap, window2) {
                    _class_call_check(this, SCAPSystemInfo);
                    this.scap = scap;
                    this.window = window2;
                }
                _create_class(SCAPSystemInfo, [
                    {
                        key: "getCpuUsage",
                        value: function getCpuUsage() {
                            return __async(this, null, function() {
                                var cpuList, cpuUsage;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getSystemUsageInfo(this.scap.deviceInfo, {
                                                    cpus: true
                                                })
                                            ];
                                        case 1:
                                            cpuList = _state.sent();
                                            return [
                                                4,
                                                this.recalculateCpuUsage(cpuList)
                                            ];
                                        case 2:
                                            cpuUsage = _state.sent();
                                            return [
                                                2,
                                                Math.round(cpuUsage)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getMemoryUsage",
                        value: function getMemoryUsage() {
                            return __async(this, null, function() {
                                var memoryUsage, used, total, free, usagePercent;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getSystemUsageInfo(this.scap.deviceInfo, {
                                                    memory: true
                                                })
                                            ];
                                        case 1:
                                            memoryUsage = _state.sent();
                                            used = memoryUsage.memory.used;
                                            total = memoryUsage.memory.total;
                                            free = total - used;
                                            usagePercent = Math.round(used / total * 100);
                                            return [
                                                2,
                                                {
                                                    usage: usagePercent,
                                                    used: memoryUsage.memory.used,
                                                    free: free,
                                                    total: memoryUsage.memory.total
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getModel",
                        value: function getModel() {
                            return __async(this, null, function() {
                                var platformInfo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getPlatformInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            platformInfo = _state.sent();
                                            return [
                                                2,
                                                platformInfo.manufacturer + "-" + platformInfo.modelName + "-" + platformInfo.hardwareVersion
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getSerialNumber",
                        value: function getSerialNumber() {
                            return __async(this, null, function() {
                                var platformInfo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getPlatformInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            platformInfo = _state.sent();
                                            return [
                                                2,
                                                platformInfo.serialNumber
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getOSVersion",
                        value: function getOSVersion() {
                            return __async(this, null, function() {
                                var version;
                                return _ts_generator(this, function(_state) {
                                    version = getWebOSVersionOfHW(this.window);
                                    return [
                                        2,
                                        version
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getBrand",
                        value: function getBrand() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        "LG"
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getOsName",
                        value: function getOsName() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        "WebOS"
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "recalculateCpuUsage",
                        value: function recalculateCpuUsage(cpuList) {
                            return __async(this, null, function() {
                                var cpuCoresUsage, index, total, cpu, cpuUsage, sum, average;
                                return _ts_generator(this, function(_state) {
                                    cpuCoresUsage = [];
                                    for(index = 0; index < cpuList.cpus.length; index++){
                                        total = 0;
                                        cpu = cpuList.cpus[index];
                                        total += cpu.times.idle;
                                        total += cpu.times.user;
                                        total += cpu.times.nice;
                                        total += cpu.times.sys;
                                        total += cpu.times.irq;
                                        cpuUsage = Math.round(100 * cpu.times.user / total);
                                        cpuCoresUsage.push(cpuUsage);
                                    }
                                    sum = cpuCoresUsage.reduce(function(a, b) {
                                        return a + b;
                                    }, 0);
                                    average = Math.round(sum / cpuCoresUsage.length || 0);
                                    return [
                                        2,
                                        average
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return SCAPSystemInfo;
            }();
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/TimeManager/ZoneOffset.js
    var require_ZoneOffset = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/TimeManager/ZoneOffset.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var lodash_1 = require_lodash();
            var ZoneOffset3 = /*#__PURE__*/ function() {
                function _ZoneOffset(totalMinutes) {
                    _class_call_check(this, _ZoneOffset);
                    this.totalMinutes = totalMinutes;
                    if (totalMinutes < _ZoneOffset.MIN_RANGE_TOTAL_MINUTES || totalMinutes > _ZoneOffset.MAX_RANGE_TOTAL_MINUTES) {
                        throw new Error("Offset in minutes must be within \xb1".concat(_ZoneOffset.MAX_RANGE_TOTAL_MINUTES, "."));
                    }
                }
                _create_class(_ZoneOffset, [
                    {
                        /**
         * A negative offset indicates a time zone east of the Prime Meridian. A positive offset indicates the time zone
         * west of the Prime Meridian.
         */ key: "toPosix",
                        value: function toPosix() {
                            return -this.totalMinutes;
                        }
                    },
                    {
                        key: "toString",
                        value: function toString() {
                            var hours = Math.floor(this.totalMinutes / 60).toString(10);
                            var minutes = (this.totalMinutes % 60).toString(10);
                            return "".concat(this.totalMinutes < 0 ? "-" : "+").concat((0, lodash_1.padStart)(hours, 2, "0"), ":").concat((0, lodash_1.padStart)(minutes, 2, "0"));
                        }
                    }
                ], [
                    {
                        key: "fromTime",
                        value: function fromTime(hours) {
                            var minutes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
                            if (minutes < 0 || minutes > 59) {
                                throw new Error("Minutes must be between 0 and 59 inclusive");
                            }
                            if (hours < 0) {
                                return new _ZoneOffset(hours * 60 - minutes);
                            }
                            return new _ZoneOffset(hours * 60 + minutes);
                        }
                    },
                    {
                        key: "fromPosix",
                        value: /**
         * A negative offset indicates a time zone east of the Prime Meridian. A positive offset indicates the time zone
         * west of the Prime Meridian.
         */ function fromPosix(reverseMinutes) {
                            return new _ZoneOffset(-reverseMinutes);
                        }
                    }
                ]);
                return _ZoneOffset;
            }();
            ZoneOffset3.MIN_RANGE_TOTAL_MINUTES = -1080;
            ZoneOffset3.MAX_RANGE_TOTAL_MINUTES = 1080;
            exports["default"] = ZoneOffset3;
        }
    });
    // src/Driver/TimeManager/SCAPv12TimeManager.ts
    var import_ZoneOffset, import_moment, SCAPv12TimeManager;
    var init_SCAPv12TimeManager = __esm({
        "src/Driver/TimeManager/SCAPv12TimeManager.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ZoneOffset = __toESM(require_ZoneOffset());
            import_moment = __toESM(require_moment());
            SCAPv12TimeManager = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv12TimeManager(scap, restartCallback) {
                    _class_call_check(this, SCAPv12TimeManager);
                    this.scap = scap;
                    this.restartCallback = restartCallback;
                }
                _create_class(SCAPv12TimeManager, [
                    {
                        key: "getEpochMillis",
                        value: function getEpochMillis() {
                            return __async(this, null, function() {
                                var _this, _ref, year2, month, day2, hour2, minute2, sec;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.scap.configuration.getCurrentTime(function(cbObject) {
                                                        return resolve(cbObject);
                                                    }, function(cbObject) {
                                                        return reject(_this.mapScapErrorToError(cbObject));
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _ref = _state.sent(), year2 = _ref.year, month = _ref.month, day2 = _ref.day, hour2 = _ref.hour, minute2 = _ref.minute, sec = _ref.sec;
                                            return [
                                                2,
                                                (0, import_moment["default"])({
                                                    year: year2,
                                                    month: month - 1,
                                                    date: day2,
                                                    hour: hour2,
                                                    minute: minute2,
                                                    second: sec
                                                }).valueOf()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getZoneOffset",
                        value: function getZoneOffset() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        new import_ZoneOffset["default"]((0, import_moment["default"])().utcOffset())
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "canGetZoneId",
                        value: function canGetZoneId() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        false
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getZoneId",
                        value: function getZoneId() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Cannot get zone ID");
                                });
                            });
                        }
                    },
                    {
                        key: "canGetNtpServer",
                        value: function canGetNtpServer() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        false
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getNtpServer",
                        value: function getNtpServer() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Cannot get NTP server");
                                });
                            });
                        }
                    },
                    {
                        key: "canSetManual",
                        value: function canSetManual() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        true
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setManual",
                        value: function setManual(epochMillis, _zone) {
                            return __async(this, null, function() {
                                var _this, currentTime;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            currentTime = (0, import_moment["default"])(epochMillis);
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.scap.configuration.setCurrentTime(function() {
                                                        return resolve();
                                                    }, function(cbObject) {
                                                        return reject(_this.mapScapErrorToError(cbObject));
                                                    }, {
                                                        year: currentTime.year(),
                                                        month: currentTime.month() + 1,
                                                        day: currentTime.date(),
                                                        hour: currentTime.hour(),
                                                        minute: currentTime.minute(),
                                                        sec: currentTime.second()
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2,
                                                this.restartCallback
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "canSetAuto",
                        value: function canSetAuto() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        false
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setAuto",
                        value: function setAuto() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Cannot set time zone & NTP server automatically");
                                });
                            });
                        }
                    },
                    {
                        key: "isAutoEnabled",
                        value: function isAutoEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        false
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "mapScapErrorToError",
                        value: function mapScapErrorToError(cbObject) {
                            return new Error("Error Code [" + (cbObject == null ? void 0 : cbObject.errorCode) + "]: " + (cbObject == null ? void 0 : cbObject.errorText));
                        }
                    }
                ]);
                return SCAPv12TimeManager;
            }();
        }
    });
    var import_Orientation2;
    var init_orientations = __esm({
        "src/Driver/orientations.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_Orientation2 = __toESM(require_Orientation());
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/DisplayManager/NotImplementedDisplayManager.js
    var require_NotImplementedDisplayManager = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/DisplayManager/NotImplementedDisplayManager.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.NotImplementedDisplayManager = void 0;
            var NotImplementedDisplayManager2 = /*#__PURE__*/ function() {
                function NotImplementedDisplayManager2() {
                    _class_call_check(this, NotImplementedDisplayManager2);
                }
                _create_class(NotImplementedDisplayManager2, [
                    {
                        key: "getConnectedDisplay",
                        value: function getConnectedDisplay() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method getConnectedDisplay() not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "isSerialConnectionAvailable",
                        value: function isSerialConnectionAvailable() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method isSerialConnectionAvailable() not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "sendCommand",
                        value: function sendCommand(_command, _values) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method sendCommand() not implemented.");
                                });
                            });
                        }
                    }
                ]);
                return NotImplementedDisplayManager2;
            }();
            exports.NotImplementedDisplayManager = NotImplementedDisplayManager2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/CustomScripts/NotImplementedScripts.js
    var require_NotImplementedScripts = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/CustomScripts/NotImplementedScripts.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var NotImplementedScripts2 = /*#__PURE__*/ function() {
                function NotImplementedScripts2() {
                    _class_call_check(this, NotImplementedScripts2);
                }
                _create_class(NotImplementedScripts2, [
                    {
                        key: "execute",
                        value: function execute(_script, _config, _iframeId, _customScriptFile) {
                            throw new Error("Method not implemented.");
                        }
                    }
                ]);
                return NotImplementedScripts2;
            }();
            exports["default"] = NotImplementedScripts2;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/PowerKernel.js
    var require_PowerKernel = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/PowerKernel.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PowerKernel = void 0;
            var PowerKernel = /*#__PURE__*/ function() {
                function PowerKernel(managementDriver) {
                    _class_call_check(this, PowerKernel);
                    this.managementDriver = managementDriver;
                    this._callbacks = [];
                }
                _create_class(PowerKernel, [
                    {
                        key: "doBeforeShutDown",
                        value: function doBeforeShutDown(callback) {
                            var _a2;
                            (_a2 = this._callbacks) === null || _a2 === void 0 ? void 0 : _a2.push(callback);
                        }
                    },
                    {
                        key: "appRestart",
                        value: function appRestart() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.runCallbacks()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.managementDriver.appRestart()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "systemReboot",
                        value: function systemReboot() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.runCallbacks()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.managementDriver.systemReboot()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "runCallbacks",
                        value: function runCallbacks() {
                            var _a2;
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                Promise.all((_a2 = this._callbacks) === null || _a2 === void 0 ? void 0 : _a2.map(function(callback) {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    return [
                                                                        4,
                                                                        callback()
                                                                    ];
                                                                case 1:
                                                                    return [
                                                                        2,
                                                                        _state.sent()
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                }))
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            console.error("Error when calling callback before shutDown", error);
                                            return [
                                                3,
                                                4
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return PowerKernel;
            }();
            exports.PowerKernel = PowerKernel;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/powerFacade.js
    var require_powerFacade = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/powerFacade.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PowerFacade = void 0;
            var PowerActionType_1 = __importDefault(require_PowerActionType2());
            var wait_1 = __importDefault(require_wait());
            var systemLogActions_1 = require_systemLogActions();
            var managementHelper_1 = require_managementHelper();
            var combinedDriver_1 = require_combinedDriver();
            var systemLogs_1 = require_systemLogs();
            var constants_1 = require_constants();
            var PowerFacade = /*#__PURE__*/ function() {
                function PowerFacade(nativeDriver, actionUploader, powerKernel) {
                    _class_call_check(this, PowerFacade);
                    this.nativeDriver = nativeDriver;
                    this.actionUploader = actionUploader;
                    this.powerKernel = powerKernel;
                }
                _create_class(PowerFacade, [
                    {
                        key: "performPowerAction",
                        value: function performPowerAction(powerType) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _ref, managementDriver, cacheDriver, powerAction;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _ref = (0, combinedDriver_1.normalizeManagementCacheDriver)(this.nativeDriver), managementDriver = _ref.managementDriver, cacheDriver = _ref.cacheDriver;
                                            powerAction = {
                                                type: systemLogActions_1.SystemLog,
                                                payload: {
                                                    type: systemLogs_1.PowerActionPerformed,
                                                    action: PowerActionType_1["default"][powerType]
                                                },
                                                __dispatchedAt: /* @__PURE__ */ new Date(),
                                                __offline: true
                                            };
                                            return [
                                                4,
                                                this.actionUploader.addAction(powerAction)
                                            ];
                                        case 1:
                                            _state.sent();
                                            switch(powerType){
                                                case PowerActionType_1["default"].APP_RESTART:
                                                    return [
                                                        3,
                                                        2
                                                    ];
                                                case PowerActionType_1["default"].SYSTEM_REBOOT:
                                                    return [
                                                        3,
                                                        4
                                                    ];
                                                case PowerActionType_1["default"].DISPLAY_POWER_ON:
                                                    return [
                                                        3,
                                                        6
                                                    ];
                                                case PowerActionType_1["default"].DISPLAY_POWER_OFF:
                                                    return [
                                                        3,
                                                        8
                                                    ];
                                                case PowerActionType_1["default"].FILE_SYSTEM_WIPEOUT:
                                                    return [
                                                        3,
                                                        10
                                                    ];
                                            }
                                            return [
                                                3,
                                                14
                                            ];
                                        case 2:
                                            return [
                                                4,
                                                this.powerKernel.appRestart()
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                        case 4:
                                            return [
                                                4,
                                                this.powerKernel.systemReboot()
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                        case 6:
                                            return [
                                                4,
                                                managementDriver.displayPowerOn()
                                            ];
                                        case 7:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                        case 8:
                                            return [
                                                4,
                                                managementDriver.displayPowerOff()
                                            ];
                                        case 9:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                        case 10:
                                            return [
                                                4,
                                                (0, managementHelper_1.fileSystemWipeoutAction)(managementDriver, cacheDriver)
                                            ];
                                        case 11:
                                            _state.sent();
                                            return [
                                                4,
                                                (0, wait_1["default"])(constants_1.CONSTANTLY)
                                            ];
                                        case 12:
                                            _state.sent();
                                            return [
                                                4,
                                                this.powerKernel.systemReboot()
                                            ];
                                        case 13:
                                            _state.sent();
                                            return [
                                                2,
                                                true
                                            ];
                                        case 14:
                                            return [
                                                2,
                                                false
                                            ];
                                        case 15:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return PowerFacade;
            }();
            exports.PowerFacade = PowerFacade;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/ManagementPowerActionExecutor.js
    var require_ManagementPowerActionExecutor = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/ManagementPowerActionExecutor.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:NativeDevice:Power:ManagementPowerActionExecutor");
            var ManagementPowerActionExecutor = /*#__PURE__*/ function() {
                function ManagementPowerActionExecutor(powerActions) {
                    _class_call_check(this, ManagementPowerActionExecutor);
                    this.powerActions = powerActions;
                }
                _create_class(ManagementPowerActionExecutor, [
                    {
                        key: "execute",
                        value: function execute(powerAction) {
                            var _this = this;
                            new Promise(function(resolve, reject) {
                                return __awaiter(_this, void 0, void 0, function() {
                                    var success;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.powerActions.performPowerAction(powerAction)
                                                ];
                                            case 1:
                                                success = _state.sent();
                                                if (success) {
                                                    resolve();
                                                } else {
                                                    reject(new Error("Unsupported power action: ".concat(powerAction)));
                                                }
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            })["catch"](function(reason) {
                                debug4("Failed to perform scheduled power action: ".concat(reason));
                            });
                        }
                    }
                ]);
                return ManagementPowerActionExecutor;
            }();
            exports["default"] = ManagementPowerActionExecutor;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/powerActionTimers.js
    var require_powerActionTimers3 = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/powerActionTimers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createManagementPowerActionTimer = void 0;
            var CronPowerActionScheduler_1 = __importDefault(require_CronPowerActionScheduler());
            var DefaultPowerActionTimer_1 = __importDefault(require_DefaultPowerActionTimer());
            var powerActionTimerStorages_1 = require_powerActionTimerStorages();
            var Property_1 = __importDefault(require_Property());
            var propertyStorage_1 = __importDefault(require_propertyStorage());
            var ManagementPowerActionExecutor_1 = __importDefault(require_ManagementPowerActionExecutor());
            function createManagementPowerActionTimer(getNativeDriver, powerFacade) {
                var propertyStorage = (0, propertyStorage_1["default"])(getNativeDriver);
                var storage = (0, powerActionTimerStorages_1.createPowerActionTimerPropertyStorage)(propertyStorage, Property_1["default"].POWER_ACTIONS_SCHEDULE_SETTINGS_MANAGEMENT);
                var scheduler = new CronPowerActionScheduler_1["default"]();
                var executor = new ManagementPowerActionExecutor_1["default"](powerFacade);
                return new DefaultPowerActionTimer_1["default"](storage, scheduler, executor);
            }
            exports.createManagementPowerActionTimer = createManagementPowerActionTimer;
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Device/Power/powerExecutors.js
    var require_powerExecutors = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Device/Power/powerExecutors.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createManagementPowerExecutors = void 0;
            var OfflineActionsUploader_1 = require_OfflineActionsUploader();
            var PowerKernel_1 = require_PowerKernel();
            var powerFacade_1 = require_powerFacade();
            var powerActionTimers_1 = require_powerActionTimers3();
            function createManagementPowerExecutors2(managementDriver, cacheDriver) {
                var offlineActionHandler = new OfflineActionsUploader_1.OfflineActionsUploader("management.", managementDriver.fileSystem);
                var powerKernel = new PowerKernel_1.PowerKernel(managementDriver);
                var powerExecutorFacade = new powerFacade_1.PowerFacade({
                    managementDriver: managementDriver,
                    cacheDriver: cacheDriver
                }, offlineActionHandler, powerKernel);
                var powerActionTimer = (0, powerActionTimers_1.createManagementPowerActionTimer)(function() {
                    return cacheDriver;
                }, powerExecutorFacade);
                return {
                    powerExecutorFacade: powerExecutorFacade,
                    powerActionTimer: powerActionTimer,
                    powerKernel: powerKernel
                };
            }
            exports.createManagementPowerExecutors = createManagementPowerExecutors2;
        }
    });
    // node_modules/@signageos/lib/node_modules/debug/src/common.js
    var require_common5 = __commonJS({
        "node_modules/@signageos/lib/node_modules/debug/src/common.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function setup(env) {
                createDebug.debug = createDebug;
                createDebug["default"] = createDebug;
                createDebug.coerce = coerce;
                createDebug.disable = disable;
                createDebug.enable = enable;
                createDebug.enabled = enabled;
                createDebug.humanize = require_ms();
                createDebug.destroy = destroy;
                Object.keys(env).forEach(function(key) {
                    createDebug[key] = env[key];
                });
                createDebug.names = [];
                createDebug.skips = [];
                createDebug.formatters = {};
                function selectColor(namespace) {
                    var hash = 0;
                    for(var i = 0; i < namespace.length; i++){
                        hash = (hash << 5) - hash + namespace.charCodeAt(i);
                        hash |= 0;
                    }
                    return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
                }
                createDebug.selectColor = selectColor;
                function createDebug(namespace) {
                    var prevTime;
                    var enableOverride = null;
                    var namespacesCache;
                    var enabledCache;
                    function debug4() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        if (!debug4.enabled) {
                            return;
                        }
                        var self2 = debug4;
                        var curr = Number(/* @__PURE__ */ new Date());
                        var ms = curr - (prevTime || curr);
                        self2.diff = ms;
                        self2.prev = prevTime;
                        self2.curr = curr;
                        prevTime = curr;
                        args[0] = createDebug.coerce(args[0]);
                        if (typeof args[0] !== "string") {
                            args.unshift("%O");
                        }
                        var index = 0;
                        args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
                            if (match === "%%") {
                                return "%";
                            }
                            index++;
                            var formatter = createDebug.formatters[format];
                            if (typeof formatter === "function") {
                                var val = args[index];
                                match = formatter.call(self2, val);
                                args.splice(index, 1);
                                index--;
                            }
                            return match;
                        });
                        createDebug.formatArgs.call(self2, args);
                        var logFn = self2.log || createDebug.log;
                        logFn.apply(self2, args);
                    }
                    debug4.namespace = namespace;
                    debug4.useColors = createDebug.useColors();
                    debug4.color = createDebug.selectColor(namespace);
                    debug4.extend = extend;
                    debug4.destroy = createDebug.destroy;
                    Object.defineProperty(debug4, "enabled", {
                        enumerable: true,
                        configurable: false,
                        get: function() {
                            if (enableOverride !== null) {
                                return enableOverride;
                            }
                            if (namespacesCache !== createDebug.namespaces) {
                                namespacesCache = createDebug.namespaces;
                                enabledCache = createDebug.enabled(namespace);
                            }
                            return enabledCache;
                        },
                        set: function(v) {
                            enableOverride = v;
                        }
                    });
                    if (typeof createDebug.init === "function") {
                        createDebug.init(debug4);
                    }
                    return debug4;
                }
                function extend(namespace, delimiter) {
                    var newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
                    newDebug.log = this.log;
                    return newDebug;
                }
                function enable(namespaces) {
                    createDebug.save(namespaces);
                    createDebug.namespaces = namespaces;
                    createDebug.names = [];
                    createDebug.skips = [];
                    var split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = split[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var ns = _step.value;
                            if (ns[0] === "-") {
                                createDebug.skips.push(ns.slice(1));
                            } else {
                                createDebug.names.push(ns);
                            }
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                }
                function matchesTemplate(search, template) {
                    var searchIndex = 0;
                    var templateIndex = 0;
                    var starIndex = -1;
                    var matchIndex = 0;
                    while(searchIndex < search.length){
                        if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
                            if (template[templateIndex] === "*") {
                                starIndex = templateIndex;
                                matchIndex = searchIndex;
                                templateIndex++;
                            } else {
                                searchIndex++;
                                templateIndex++;
                            }
                        } else if (starIndex !== -1) {
                            templateIndex = starIndex + 1;
                            matchIndex++;
                            searchIndex = matchIndex;
                        } else {
                            return false;
                        }
                    }
                    while(templateIndex < template.length && template[templateIndex] === "*"){
                        templateIndex++;
                    }
                    return templateIndex === template.length;
                }
                function disable() {
                    var namespaces = _to_consumable_array(createDebug.names).concat(_to_consumable_array(createDebug.skips.map(function(namespace) {
                        return "-" + namespace;
                    }))).join(",");
                    createDebug.enable("");
                    return namespaces;
                }
                function enabled(name) {
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = createDebug.skips[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var skip = _step.value;
                            if (matchesTemplate(name, skip)) {
                                return false;
                            }
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                    var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                    try {
                        for(var _iterator1 = createDebug.names[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                            var ns = _step1.value;
                            if (matchesTemplate(name, ns)) {
                                return true;
                            }
                        }
                    } catch (err) {
                        _didIteratorError1 = true;
                        _iteratorError1 = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                _iterator1["return"]();
                            }
                        } finally{
                            if (_didIteratorError1) {
                                throw _iteratorError1;
                            }
                        }
                    }
                    return false;
                }
                function coerce(val) {
                    if (val instanceof Error) {
                        return val.stack || val.message;
                    }
                    return val;
                }
                function destroy() {
                    console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
                }
                createDebug.enable(createDebug.load());
                return createDebug;
            }
            module.exports = setup;
        }
    });
    // node_modules/@signageos/lib/node_modules/debug/src/browser.js
    var require_browser22 = __commonJS({
        "node_modules/@signageos/lib/node_modules/debug/src/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = localstorage();
            exports.destroy = /* @__PURE__ */ function() {
                var warned = false;
                return function() {
                    if (!warned) {
                        warned = true;
                        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
                    }
                };
            }();
            exports.colors = [
                "#0000CC",
                "#0000FF",
                "#0033CC",
                "#0033FF",
                "#0066CC",
                "#0066FF",
                "#0099CC",
                "#0099FF",
                "#00CC00",
                "#00CC33",
                "#00CC66",
                "#00CC99",
                "#00CCCC",
                "#00CCFF",
                "#3300CC",
                "#3300FF",
                "#3333CC",
                "#3333FF",
                "#3366CC",
                "#3366FF",
                "#3399CC",
                "#3399FF",
                "#33CC00",
                "#33CC33",
                "#33CC66",
                "#33CC99",
                "#33CCCC",
                "#33CCFF",
                "#6600CC",
                "#6600FF",
                "#6633CC",
                "#6633FF",
                "#66CC00",
                "#66CC33",
                "#9900CC",
                "#9900FF",
                "#9933CC",
                "#9933FF",
                "#99CC00",
                "#99CC33",
                "#CC0000",
                "#CC0033",
                "#CC0066",
                "#CC0099",
                "#CC00CC",
                "#CC00FF",
                "#CC3300",
                "#CC3333",
                "#CC3366",
                "#CC3399",
                "#CC33CC",
                "#CC33FF",
                "#CC6600",
                "#CC6633",
                "#CC9900",
                "#CC9933",
                "#CCCC00",
                "#CCCC33",
                "#FF0000",
                "#FF0033",
                "#FF0066",
                "#FF0099",
                "#FF00CC",
                "#FF00FF",
                "#FF3300",
                "#FF3333",
                "#FF3366",
                "#FF3399",
                "#FF33CC",
                "#FF33FF",
                "#FF6600",
                "#FF6633",
                "#FF9900",
                "#FF9933",
                "#FFCC00",
                "#FFCC33"
            ];
            function useColors() {
                if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
                    return true;
                }
                if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
                    return false;
                }
                var m;
                return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
                typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
                typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
            }
            function formatArgs(args) {
                args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
                if (!this.useColors) {
                    return;
                }
                var c = "color: " + this.color;
                args.splice(1, 0, c, "color: inherit");
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-zA-Z%]/g, function(match) {
                    if (match === "%%") {
                        return;
                    }
                    index++;
                    if (match === "%c") {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
            }
            exports.log = console.debug || console.log || function() {};
            function save(namespaces) {
                try {
                    if (namespaces) {
                        exports.storage.setItem("debug", namespaces);
                    } else {
                        exports.storage.removeItem("debug");
                    }
                } catch (error) {}
            }
            function load() {
                var r;
                try {
                    r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
                } catch (error) {}
                if (!r && typeof process !== "undefined" && "env" in process) {
                    r = process.env.DEBUG;
                }
                return r;
            }
            function localstorage() {
                try {
                    return localStorage;
                } catch (error) {}
            }
            module.exports = require_common5()(exports);
            var formatters = module.exports.formatters;
            formatters.j = function(v) {
                try {
                    return JSON.stringify(v);
                } catch (error) {
                    return "[UnexpectedJSONParseError]: " + error.message;
                }
            };
        }
    });
    // node_modules/@signageos/lib/es6/Hash/generator.js
    var require_generator3 = __commonJS({
        "node_modules/@signageos/lib/es6/Hash/generator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.generateUniqueHash = generateUniqueHash;
            exports.generateSalt = generateSalt;
            var crypto_1 = require_crypto_browserify();
            function generateUniqueHash() {
                var length = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 50;
                var hash = (0, crypto_1.createHash)("sha256");
                hash.update("" + /* @__PURE__ */ new Date().valueOf() + Math.random());
                return hash.digest("hex").substring(0, length);
            }
            function generateSalt(length) {
                return (0, crypto_1.randomBytes)(length).toString("hex").substring(0, length);
            }
        }
    });
    // node_modules/@signageos/lib/es6/Debug/debugDecorator.js
    var require_debugDecorator2 = __commonJS({
        "node_modules/@signageos/lib/es6/Debug/debugDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDebugMethod = void 0;
            exports.debug = debug4;
            exports.getDebugConfig = getDebugConfig;
            exports.setDebugConfig = setDebugConfig;
            var debug_1 = __importDefault(require_browser22());
            var generator_1 = require_generator3();
            var config = {
                serialize: false,
                logDuration: false
            };
            function getDurationLog(start) {
                if (config.logDuration) {
                    var duration = /* @__PURE__ */ new Date().getTime() - start.getTime();
                    return " (".concat(duration, "ms)");
                }
            }
            var createDebugMethod = function(localDebug) {
                return function(originalMethod, that, label, args) {
                    var invocationUid = (0, generator_1.generateUniqueHash)(10);
                    var start = /* @__PURE__ */ new Date();
                    localDebug.apply(void 0, [
                        "invoking ".concat(label, " <").concat(invocationUid, ">")
                    ].concat(_to_consumable_array(serializeArgsIfEnabled(args))));
                    try {
                        var returnValue = originalMethod.apply(that, args);
                        if (returnValue instanceof Promise) {
                            return returnValue.then(function(result17) {
                                localDebug("success ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), result17);
                                return result17;
                            })["catch"](function(error) {
                                localDebug("fail ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), error);
                                throw error;
                            });
                        } else {
                            localDebug("success ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), returnValue);
                            return returnValue;
                        }
                    } catch (error) {
                        localDebug("fail ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), error);
                        throw error;
                    }
                };
            };
            exports.createDebugMethod = createDebugMethod;
            function serializeArgsIfEnabled(args) {
                return args.map(function(arg) {
                    if ((typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object" && arg !== null && config.serialize) {
                        return JSON.stringify(arg);
                    } else {
                        return arg;
                    }
                });
            }
            function debug4(namespace) {
                var debugFactory = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : debug_1["default"];
                var debugMethod = (0, exports.createDebugMethod)(debugFactory(namespace));
                return function(_target, propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return debugMethod(originalMethod, this, "".concat(this.constructor.name, ":").concat(propertyKey), args);
                    };
                };
            }
            function getDebugConfig() {
                return config;
            }
            function setDebugConfig(newConfig) {
                config = Object.assign(Object.assign({}, config), newConfig);
            }
        }
    });
    // node_modules/timeout-ts/lib/timeout.js
    var require_timeout3 = __commonJS({
        "node_modules/timeout-ts/lib/timeout.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.timeout = function(ms) {
                if (ms === void 0) {
                    ms = 0;
                }
                return new Promise(function(resolve) {
                    setTimeout(resolve, ms);
                });
            };
            exports.timeoutTI = function(ms) {
                if (ms === void 0) {
                    ms = 0;
                }
                var timeoutId = 0;
                var promise3 = new Promise(function(resolve) {
                    timeoutId = setTimeout(resolve, ms);
                });
                return [
                    promise3,
                    timeoutId
                ];
            };
            exports["default"] = exports.timeout;
        }
    });
    // node_modules/@signageos/lib/es6/DateTime/waitUntil.js
    var require_waitUntil = __commonJS({
        "node_modules/@signageos/lib/es6/DateTime/waitUntil.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.TimeoutError = exports.waitUntil = void 0;
            exports.waitUntilNotNull = waitUntilNotNull2;
            var timeout_ts_1 = __importDefault(require_timeout3());
            var waitUntil = function(predicate_1) {
                for(var _len = arguments.length, args_1 = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                    args_1[_key - 1] = arguments[_key];
                }
                return __awaiter(void 0, [
                    predicate_1
                ].concat(_to_consumable_array(args_1)), void 0, function(predicate3) {
                    var interval, result17;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                interval = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : 100;
                                _state.label = 1;
                            case 1:
                                if (!true) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    predicate3()
                                ];
                            case 2:
                                result17 = _state.sent();
                                if (result17) {
                                    return [
                                        2,
                                        result17
                                    ];
                                }
                                return [
                                    4,
                                    (0, timeout_ts_1["default"])(interval)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    1
                                ];
                            case 4:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            exports.waitUntil = waitUntil;
            function waitUntilNotNull2(resultCallback_1) {
                return __awaiter(this, arguments, void 0, function(resultCallback) {
                    var options, _a2, _b2, startTime, result17;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                options = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
                                options.intervalMs = (_a2 = options.intervalMs) !== null && _a2 !== void 0 ? _a2 : 1e3;
                                options.timeoutMs = (_b2 = options.timeoutMs) !== null && _b2 !== void 0 ? _b2 : 3e4;
                                startTime = /* @__PURE__ */ new Date().valueOf();
                                _state.label = 1;
                            case 1:
                                if (!(startTime + options.timeoutMs > /* @__PURE__ */ new Date().valueOf())) return [
                                    3,
                                    6
                                ];
                                return [
                                    4,
                                    resultCallback()
                                ];
                            case 2:
                                result17 = _state.sent();
                                if (!(result17 === null)) return [
                                    3,
                                    4
                                ];
                                return [
                                    4,
                                    (0, timeout_ts_1["default"])(options.intervalMs)
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    3,
                                    5
                                ];
                            case 4:
                                return [
                                    2,
                                    result17
                                ];
                            case 5:
                                return [
                                    3,
                                    1
                                ];
                            case 6:
                                throw new TimeoutError(options.timeoutMs);
                        }
                    });
                });
            }
            var TimeoutError = /*#__PURE__*/ function(Error1) {
                _inherits(TimeoutError, Error1);
                var _super = _create_super(TimeoutError);
                function TimeoutError(timeoutMs) {
                    _class_call_check(this, TimeoutError);
                    var _this;
                    _this = _super.call(this, "Wait until has timed-out after ".concat(timeoutMs, " ms"));
                    _this.timeoutMs = timeoutMs;
                    return _this;
                }
                return TimeoutError;
            }(_wrap_native_super(Error));
            exports.TimeoutError = TimeoutError;
            exports["default"] = exports.waitUntil;
        }
    });
    // src/Driver/Network/SCAPWifi.ts
    var import_IWifi, import_debugDecorator, import_events2, import_waitUntil, import_wait3, DEBUG_NAMESPACE, SCAPWifi;
    var init_SCAPWifi = __esm({
        "src/Driver/Network/SCAPWifi.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_IWifi = __toESM(require_IWifi());
            import_debugDecorator = __toESM(require_debugDecorator2());
            import_events2 = __toESM(require_events());
            init_SCAPHelper();
            import_waitUntil = __toESM(require_waitUntil());
            import_wait3 = __toESM(require_wait4());
            DEBUG_NAMESPACE = "@signageos/display-webos:Driver:Network/SCAPWifi";
            SCAPWifi = /*#__PURE__*/ function() {
                "use strict";
                function SCAPWifi(scap) {
                    _class_call_check(this, SCAPWifi);
                    this.scap = scap;
                    __publicField(this, "connectionEmitter");
                    this.connectionEmitter = new import_events2.EventEmitter();
                }
                _create_class(SCAPWifi, [
                    {
                        key: "connect",
                        value: function connect(ssid, password, options) {
                            return __async(this, null, function() {
                                var _a2, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                4,
                                                ,
                                                5
                                            ]);
                                            if (!(typeof password === "string")) {
                                                throw new Error("Password must be a string, if you want to connect to an open network, pass an empty ('') string as password");
                                            }
                                            return [
                                                4,
                                                connectToWifi(this.scap.deviceInfo, {
                                                    ssid: ssid,
                                                    password: password,
                                                    hidden: (_a2 = options == null ? void 0 : options.hidden) != null ? _a2 : false
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                (0, import_wait3["default"])(3e3)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.validateConnectedInterfaceToWifiOrThrowError()
                                            ];
                                        case 3:
                                            _state.sent();
                                            this.connectionEmitter.emit(import_IWifi.WifiEvent.CLIENT_CONNECTED);
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            error = _state.sent();
                                            throw error;
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "disable",
                        value: function disable() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Wifi Client is always enabled, cannot disable it");
                                });
                            });
                        }
                    },
                    {
                        key: "disconnect",
                        value: function disconnect() {
                            return __async(this, null, function() {
                                var error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            return [
                                                4,
                                                this.setActiveEthernetInterface()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.connectionEmitter.emit(import_IWifi.WifiEvent.CLIENT_DISCONNECTED);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            console.warn("Error during disconnecting from WiFi", error);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "enableAP",
                        value: function enableAP(_ssid, _passphrase) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Wifi Client AP is not supported on this platform");
                                });
                            });
                        }
                    },
                    {
                        key: "enableClient",
                        value: function enableClient() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Wifi Client is always enabled");
                                });
                            });
                        }
                    },
                    {
                        key: "getConnectedTo",
                        value: function getConnectedTo() {
                            return __async(this, null, function() {
                                var _a2, networkInfo, wifiList, connectedTo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getDeviceNetworkInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            networkInfo = _state.sent();
                                            if (!networkInfo.wifi.ssid) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                getWifiList(this.scap.deviceInfo)
                                            ];
                                        case 2:
                                            wifiList = _state.sent();
                                            connectedTo = wifiList.find(function(wifiInfo) {
                                                return wifiInfo.ssid === networkInfo.wifi.ssid;
                                            });
                                            return [
                                                2,
                                                {
                                                    ssid: networkInfo.wifi.ssid,
                                                    encrypted: true,
                                                    // No value
                                                    strength: (_a2 = connectedTo == null ? void 0 : connectedTo.signalLevel) != null ? _a2 : 0
                                                }
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                null
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getCountry",
                        value: function getCountry() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Not implemented");
                                });
                            });
                        }
                    },
                    {
                        key: "isAPEnabled",
                        value: function isAPEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        false
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isClientEnabled",
                        value: function isClientEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getConnectedTo()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent() !== null
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "scan",
                        value: function scan() {
                            return __async(this, null, function() {
                                var wifiList;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getWifiList(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            wifiList = _state.sent();
                                            return [
                                                2,
                                                wifiList.map(function(wifiInfo) {
                                                    var _a2;
                                                    return {
                                                        ssid: wifiInfo.ssid,
                                                        encrypted: true,
                                                        strength: (_a2 = wifiInfo.signalLevel) != null ? _a2 : 0
                                                    };
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "on",
                        value: function on(event, listener) {
                            this.connectionEmitter.on(event, listener);
                        }
                    },
                    {
                        key: "once",
                        value: function once(event, listener) {
                            this.connectionEmitter.once(event, listener);
                        }
                    },
                    {
                        key: "removeAllListeners",
                        value: function removeAllListeners(event) {
                            this.connectionEmitter.removeAllListeners(event);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(event, listener) {
                            this.connectionEmitter.removeListener(event, listener);
                        }
                    },
                    {
                        key: "setCountry",
                        value: function setCountry(_countryCode) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method setCountry is not supported on this platform");
                                });
                            });
                        }
                    },
                    {
                        key: "setActiveEthernetInterface",
                        value: function setActiveEthernetInterface() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                setNetworkInfo(this.scap.deviceInfo, {
                                                    wired: {
                                                        enabled: true,
                                                        method: "dhcp"
                                                    },
                                                    wifi: {
                                                        enabled: false
                                                    }
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "validateConnectedInterfaceToWifiOrThrowError",
                        value: function validateConnectedInterfaceToWifiOrThrowError() {
                            return __async(this, null, function() {
                                var _this, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                (0, import_waitUntil.waitUntilNotNull)(function() {
                                                    return _this.getConnectedTo();
                                                }, {
                                                    timeoutMs: 6e4,
                                                    intervalMs: 1e4
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            console.warn("Error during waiting for WiFi connection", error);
                                            throw new Error("Device is not connected to WiFi");
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return SCAPWifi;
            }();
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "connect", 1);
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "disable", 1);
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "disconnect", 1);
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "getConnectedTo", 1);
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "isClientEnabled", 1);
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "scan", 1);
            __decorateClass([
                (0, import_debugDecorator.debug)(DEBUG_NAMESPACE)
            ], SCAPWifi.prototype, "on", 1);
        }
    });
    var AHASH_16X16_LENGTH;
    var init_aHashHelper = __esm({
        "src/ImageHash/aHashHelper.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            AHASH_16X16_LENGTH = 64;
        }
    });
    // src/Driver/ManagementDriver/SCAPv12ManagementDriver.ts
    var import_lockedDecorator, import_NotImplementedMonitors, import_batteryHelper, import_basicErrors3, import_ManagementCapability, import_NotImplementedMdc, import_NotImplementedNmc, import_ResolutionList, import_screenHelper, import_NotImplementedProximitySensors, import_TimerType, import_TimerWeekday, import_propertyStorage2, import_NotImplementedServletRunner, import_ProprietaryTimerPropertyStorage2, import_dateTimeFactory, import_moment2, import_NotImplementedDisplayManager, import_NotImplementedScripts, import_powerExecutors, getDefaultWebosAPIs, _SCAPv12ManagementDriver, SCAPv12ManagementDriver;
    var init_SCAPv12ManagementDriver = __esm({
        "src/Driver/ManagementDriver/SCAPv12ManagementDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_lockedDecorator = __toESM(require_lockedDecorator());
            import_NotImplementedMonitors = __toESM(require_NotImplementedMonitors());
            import_batteryHelper = __toESM(require_batteryHelper());
            import_basicErrors3 = __toESM(require_basicErrors());
            import_ManagementCapability = __toESM(require_ManagementCapability());
            import_NotImplementedMdc = __toESM(require_NotImplementedMdc());
            import_NotImplementedNmc = __toESM(require_NotImplementedNmc());
            import_ResolutionList = __toESM(require_ResolutionList2());
            import_screenHelper = __toESM(require_screenHelper());
            import_NotImplementedProximitySensors = __toESM(require_NotImplementedProximitySensors());
            import_TimerType = __toESM(require_TimerType());
            import_TimerWeekday = __toESM(require_TimerWeekday());
            import_propertyStorage2 = __toESM(require_propertyStorage());
            import_NotImplementedServletRunner = __toESM(require_NotImplementedServletRunner());
            import_ProprietaryTimerPropertyStorage2 = __toESM(require_ProprietaryTimerPropertyStorage());
            import_dateTimeFactory = __toESM(require_dateTimeFactory2());
            import_moment2 = __toESM(require_moment());
            init_fetch();
            init_SCAPNetwork();
            init_SCAPProxy();
            init_SCAPHelper();
            init_SCAPSystemInfo();
            init_SCAPv12TimeManager();
            init_orientations();
            import_NotImplementedDisplayManager = __toESM(require_NotImplementedDisplayManager());
            import_NotImplementedScripts = __toESM(require_NotImplementedScripts());
            import_powerExecutors = __toESM(require_powerExecutors());
            init_SCAPWifi();
            init_aHashHelper();
            getDefaultWebosAPIs = function(window2) {
                return {
                    Configuration: window2.Configuration,
                    DeviceInfo: window2.DeviceInfo,
                    Power: window2.Power,
                    Sound: window2.Sound,
                    Storage: window2.Storage,
                    Video: window2.Video,
                    Signage: window2.Signage,
                    InputSource: window2.InputSource
                };
            };
            _SCAPv12ManagementDriver = /*#__PURE__*/ function() {
                "use strict";
                function _SCAPv12ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl) {
                    var _this = this;
                    _class_call_check(this, _SCAPv12ManagementDriver);
                    this.window = window2;
                    this.basicDriver = basicDriver;
                    this.cacheDriver = cacheDriver;
                    this.version = version;
                    this.scap = scap;
                    this.settingsManager = settingsManager;
                    this.fileSystem = fileSystem;
                    this.forbiddenCapabilities = forbiddenCapabilities;
                    this.isCloudControl = isCloudControl;
                    __publicField(this, "sensors", {
                        proximity: new import_NotImplementedProximitySensors["default"]()
                    });
                    __publicField(this, "wifi");
                    __publicField(this, "servletRunner");
                    __publicField(this, "monitors");
                    __publicField(this, "network");
                    __publicField(this, "systemInfo");
                    __publicField(this, "powerActionTimer");
                    __publicField(this, "proxy");
                    __publicField(this, "timeManager");
                    __publicField(this, "input");
                    __publicField(this, "displayManager");
                    __publicField(this, "vpn");
                    // FIXME: init property
                    __publicField(this, "nativeCommands");
                    __publicField(this, "proprietaryTimerStorage");
                    __publicField(this, "platformSpecificAPIs");
                    __publicField(this, "scripts", new import_NotImplementedScripts["default"]());
                    __publicField(this, "secretManager");
                    __publicField(this, "secretsStorage");
                    __publicField(this, "powerExecutors");
                    __publicField(this, "autoRecoveryDisableInterval");
                    __publicField(this, "currentTemperature", 0);
                    this.servletRunner = new import_NotImplementedServletRunner["default"]();
                    this.monitors = new import_NotImplementedMonitors["default"]();
                    this.network = new SCAPNetwork(scap);
                    this.systemInfo = new SCAPSystemInfo(scap, this.window);
                    this.proxy = new SCAPProxy(scap);
                    this.timeManager = new SCAPv12TimeManager(scap, function() {
                        return __async(_this, null, function() {
                            return _ts_generator(this, function(_state) {
                                return [
                                    2,
                                    this.appRestart()
                                ];
                            });
                        });
                    });
                    this.wifi = new SCAPWifi(scap);
                    this.proprietaryTimerStorage = new import_ProprietaryTimerPropertyStorage2["default"]((0, import_propertyStorage2["default"])(function() {
                        return _this;
                    }));
                    this.nativeCommands = {
                        mdc: new import_NotImplementedMdc["default"](),
                        nmc: new import_NotImplementedNmc["default"]()
                    };
                    this.platformSpecificAPIs = getDefaultWebosAPIs(window2);
                    this.displayManager = new import_NotImplementedDisplayManager.NotImplementedDisplayManager();
                    this.secretManager = {
                        decryptJweCompactToBytes: function(_value) {
                            throw new Error("Method not implemented.");
                        },
                        decryptJweCompactToUtf8: function(_value) {
                            throw new Error("Method not implemented.");
                        },
                        decryptJweGeneralToBytes: function() {
                            throw new Error("Method not implemented.");
                        },
                        decryptJweGeneralToUtf8: function() {
                            throw new Error("Method not implemented.");
                        },
                        encryptBytesToJweCompact: function(_value) {
                            throw new Error("Method not implemented.");
                        },
                        encryptBytesToJweGeneral: function(_value) {
                            throw new Error("Method not implemented.");
                        },
                        encryptUtf8ToJweCompact: function(_value) {
                            throw new Error("Method not implemented.");
                        },
                        encryptUtf8ToJweGeneral: function(_value) {
                            throw new Error("Method not implemented.");
                        },
                        generateKeys: function() {
                            throw new Error("Method not implemented.");
                        },
                        getPublicKey: function() {
                            throw new Error("Method not implemented.");
                        }
                    };
                    this.secretsStorage = {
                        saveKeyPair: function(_name, _keyPair) {
                            throw new Error("Method not implemented.");
                        },
                        getKeyPair: function(_name) {
                            throw new Error("Method not implemented.");
                        }
                    };
                    this.powerExecutors = (0, import_powerExecutors.createManagementPowerExecutors)(this, this);
                }
                _create_class(_SCAPv12ManagementDriver, [
                    {
                        key: "packageClearData",
                        value: function packageClearData(_packageName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "getInstalledPackages",
                        value: function getInstalledPackages() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "packageStop",
                        value: function packageStop(_packageName) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "isFrontEnabled",
                        value: function isFrontEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        !this.isCloudControl
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getExtendedManagementUrl",
                        value: function getExtendedManagementUrl() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "getPeerRecovery",
                        value: function getPeerRecovery() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "setPeerRecovery",
                        value: function setPeerRecovery(_configuration) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "peerRecoverySet",
                        value: function peerRecoverySet(_enabled, _timer) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "peerRecoveryIsEnabled",
                        value: function peerRecoveryIsEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv12";
                        }
                    },
                    {
                        key: "getConfigurationBaseUrl",
                        value: function getConfigurationBaseUrl() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.getConfigurationBaseUrl()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getApplicationType",
                        value: function getApplicationType() {
                            return this.basicDriver.getApplicationType();
                        }
                    },
                    {
                        key: "managementSupports",
                        value: function managementSupports(capability) {
                            return __async(this, null, function() {
                                var timeManagerSupports;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (this.forbiddenCapabilities.includes(capability)) {
                                                return [
                                                    2,
                                                    false
                                                ];
                                            }
                                            return [
                                                4,
                                                _SCAPv12ManagementDriver.timeManagerSupports(this.timeManager, capability)
                                            ];
                                        case 1:
                                            timeManagerSupports = _state.sent();
                                            if (timeManagerSupports !== null) {
                                                return [
                                                    2,
                                                    timeManagerSupports
                                                ];
                                            }
                                            switch(capability){
                                                case import_ManagementCapability["default"].MODEL:
                                                case import_ManagementCapability["default"].CUSTOM_SCRIPTS:
                                                case import_ManagementCapability["default"].SERIAL_NUMBER:
                                                case import_ManagementCapability["default"].BRAND:
                                                case import_ManagementCapability["default"].STORAGE_UNITS:
                                                case import_ManagementCapability["default"].TEMPERATURE:
                                                case import_ManagementCapability["default"].SCREENSHOT_UPLOAD:
                                                case import_ManagementCapability["default"].NETWORK_INFO:
                                                case import_ManagementCapability["default"].TIMERS_PROPRIETARY:
                                                case import_ManagementCapability["default"].TIMERS_NATIVE:
                                                case import_ManagementCapability["default"].SET_BRIGHTNESS:
                                                case import_ManagementCapability["default"].SCREEN_RESIZE:
                                                case import_ManagementCapability["default"].APP_UPGRADE:
                                                case import_ManagementCapability["default"].FIRMWARE_UPGRADE:
                                                case import_ManagementCapability["default"].SET_VOLUME:
                                                case import_ManagementCapability["default"].SET_REMOTE_CONTROL_ENABLED:
                                                case import_ManagementCapability["default"].SET_DEBUG:
                                                case import_ManagementCapability["default"].SYSTEM_REBOOT:
                                                case import_ManagementCapability["default"].APP_RESTART:
                                                case import_ManagementCapability["default"].DISPLAY_POWER:
                                                case import_ManagementCapability["default"].SCHEDULE_POWER_ACTION:
                                                case import_ManagementCapability["default"].GET_VOLUME:
                                                case import_ManagementCapability["default"].GET_BRIGHTNESS:
                                                case import_ManagementCapability["default"].SYSTEM_CPU:
                                                case import_ManagementCapability["default"].SYSTEM_MEMORY:
                                                case import_ManagementCapability["default"].WIFI:
                                                case import_ManagementCapability["default"].WIFI_STRENGTH:
                                                case import_ManagementCapability["default"].WIFI_SCAN:
                                                case import_ManagementCapability["default"].AUTO_RECOVERY:
                                                case import_ManagementCapability["default"].OS_VERSION:
                                                case import_ManagementCapability["default"].FILE_SYSTEM_WIPEOUT:
                                                case import_ManagementCapability["default"].ORIENTATION_LANDSCAPE:
                                                case import_ManagementCapability["default"].ORIENTATION_PORTRAIT:
                                                case import_ManagementCapability["default"].ORIENTATION_LANDSCAPE_FLIPPED:
                                                case import_ManagementCapability["default"].ORIENTATION_PORTRAIT_FLIPPED:
                                                case import_ManagementCapability["default"].PLUGINS:
                                                case import_ManagementCapability["default"].RUNNERS:
                                                case import_ManagementCapability["default"].KEEP_APPLET_RUNNING:
                                                    return [
                                                        2,
                                                        true
                                                    ];
                                                default:
                                                    return [
                                                        2,
                                                        false
                                                    ];
                                            }
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resetSettings",
                        value: function resetSettings() {
                            throw new Error("Not supported method.");
                        }
                    },
                    {
                        key: "setExtendedManagementUrl",
                        value: function setExtendedManagementUrl(_extendedManagementUrl) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Unsupported setExtendedManagementUrl");
                                });
                            });
                        }
                    },
                    {
                        key: "initialize",
                        value: function initialize() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.timerUpdateVolumes()
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.removeProblematicFileReader();
                                            return [
                                                4,
                                                this.startup()
                                            ];
                                        case 2:
                                            _state.sent();
                                            this.listenTemperature(function(temp) {
                                                return _this.currentTemperature = temp;
                                            });
                                            this.initWatchDog();
                                            this.updateAutoRecoveryTimer();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "startup",
                        value: function startup() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    applyScapOrDefaultFetch();
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "systemReboot",
                        value: function systemReboot() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.scap.power.executePowerCommand(function(cbObject) {
                                                        console.info("appReboot", cbObject);
                                                        resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during appReboot: " + cbObject.errorText));
                                                    }, {
                                                        powerCommand: _this.window.Power.PowerCommand.REBOOT
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "appRestart",
                        value: function appRestart() {
                            var successCb = function(cbObject) {
                                console.info("appRestart", cbObject);
                            };
                            var errorCb = function(cbObject) {
                                console.error(new Error("Error during appRestart: " + cbObject.errorText));
                            };
                            this.scap.configuration.restartApplication(successCb, errorCb);
                        }
                    },
                    {
                        key: "appUpgrade",
                        value: function appUpgrade(baseUrl, version) {
                            return __async(this, null, function() {
                                var _this, appPath, nextUrl, options;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            if (!(typeof version !== "undefined")) return [
                                                3,
                                                2
                                            ];
                                            appPath = this.getAppPath(version);
                                            nextUrl = baseUrl + appPath;
                                            return [
                                                4,
                                                this.setUrlLauncherAddress(nextUrl)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 2:
                                            return [
                                                4,
                                                this.setUrlLauncherAddress(baseUrl)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            options = {
                                                to: this.window.Storage.AppMode.LOCAL,
                                                recovery: true
                                            };
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.scap.storage.upgradeApplication(function(cbObject) {
                                                        console.info("appUpgrade", cbObject);
                                                        resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during appUpgrade: " + cbObject.errorText));
                                                    }, options);
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2,
                                                function() {
                                                    return _this.systemReboot();
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "packageInstall",
                        value: function packageInstall(_baseUrl, _packageName, _version, _build) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Not implemented package install");
                                });
                            });
                        }
                    },
                    {
                        key: "start",
                        value: function start() {
                            this.basicDriver.start();
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            this.basicDriver.stop();
                        }
                    },
                    {
                        key: "displayIsPowerOn",
                        value: function displayIsPowerOn() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            return _this.scap.power.getPowerStatus(function(powerStatus) {
                                                return resolve(powerStatus.displayMode === _this.window.Power.DisplayMode.DISPLAY_ON);
                                            }, function(error) {
                                                return reject(new Error("Error during displayIsPowerOn: " + error.errorText));
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "displayPowerOn",
                        value: function displayPowerOn() {
                            return __async(this, null, function() {
                                var _this, options;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            options = {
                                                displayMode: this.window.Power.DisplayMode.DISPLAY_ON
                                            };
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    return _this.scap.power.setDisplayMode(function() {
                                                        return resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during displayPowerOn: " + cbObject.errorText));
                                                    }, options);
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "displayPowerOff",
                        value: function displayPowerOff() {
                            return __async(this, null, function() {
                                var _this, options;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            options = {
                                                displayMode: this.window.Power.DisplayMode.DISPLAY_OFF
                                            };
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    return _this.scap.power.setDisplayMode(function() {
                                                        return resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during displayPowerOff: " + cbObject.errorText));
                                                    }, options);
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "cacheGetUids",
                        value: function cacheGetUids() {
                            return this.cacheDriver.cacheGetUids();
                        }
                    },
                    {
                        key: "cacheGetAll",
                        value: function cacheGetAll() {
                            return this.cacheDriver.cacheGetAll();
                        }
                    },
                    {
                        key: "cacheGet",
                        value: function cacheGet(uid) {
                            return this.cacheDriver.cacheGet(uid);
                        }
                    },
                    {
                        key: "cacheDelete",
                        value: function cacheDelete(uid) {
                            return this.cacheDriver.cacheDelete(uid);
                        }
                    },
                    {
                        key: "cacheSave",
                        value: function cacheSave(uid, content) {
                            return this.cacheDriver.cacheSave(uid, content);
                        }
                    },
                    {
                        key: "cacheGetStorageInfo",
                        value: function cacheGetStorageInfo() {
                            return this.cacheDriver.cacheGetStorageInfo();
                        }
                    },
                    {
                        key: "firmwareUpgrade",
                        value: function firmwareUpgrade(baseUrl, version, onProgress) {
                            return __async(this, null, function() {
                                var fileName, uri;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            onProgress == null ? void 0 : onProgress(0);
                                            if (typeof version === "undefined") {
                                                uri = baseUrl;
                                            } else {
                                                fileName = "upgrade_" + version + ".epk";
                                                uri = baseUrl + "/webos/firmware/" + fileName;
                                            }
                                            return [
                                                4,
                                                this.downloadFirmware(uri)
                                            ];
                                        case 1:
                                            _state.sent();
                                            onProgress == null ? void 0 : onProgress(50);
                                            return [
                                                4,
                                                this.upgradeFirmware()
                                            ];
                                        case 2:
                                            _state.sent();
                                            onProgress == null ? void 0 : onProgress(100);
                                            console.info("firmwareUpgraded");
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "firmwareGetVersion",
                        value: function firmwareGetVersion() {
                            return __async(this, null, function() {
                                var platformInfo, firmwareVersion;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getPlatformInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            platformInfo = _state.sent();
                                            firmwareVersion = platformInfo.firmwareVersion;
                                            return [
                                                2,
                                                firmwareVersion
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDeviceUid",
                        value: function getDeviceUid() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.getDeviceUid()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.isConnected()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "screenResize",
                        value: function screenResize(baseUrl, orientation, _resolution, _version, videoOrientation) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.setOrientation(baseUrl, orientation, videoOrientation)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setOrientation",
                        value: function setOrientation(_baseUrl, orientation, videoOrientation) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    validateOrientation(orientation);
                                    this.settingsManager.setOrientation(orientation, videoOrientation);
                                    return [
                                        2,
                                        function() {
                                            return _this.systemReboot();
                                        }
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setResolution",
                        value: function setResolution(_resolution) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new import_basicErrors3.NotSupportedMethodError("setResolution");
                                });
                            });
                        }
                    },
                    {
                        key: "getResolution",
                        value: function getResolution() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        {
                                            width: 1920,
                                            height: 1080
                                        }
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getSupportedResolutions",
                        value: function getSupportedResolutions() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        import_ResolutionList.ONLY_FULL_HD_RESOLUTION_LIST
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getSessionId",
                        value: function getSessionId(sessionIdKey) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.basicDriver.getSessionId(sessionIdKey)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setSessionId",
                        value: function setSessionId(sessionIdKey, sessionId) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    this.basicDriver.setSessionId(sessionIdKey, sessionId);
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getCurrentTemperature",
                        value: function getCurrentTemperature() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.currentTemperature
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setTimer",
                        value: function setTimer(type, timeOn, timeOff, weekdays, volume) {
                            return __async(this, null, function() {
                                var onMoment, offMoment, week2, _, _1, _tmp, _tmp1, _tmp2, _tmp3, _tmp4, _tmp5;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            onMoment = (0, import_moment2["default"])(timeOn, "HH:mm:ss");
                                            offMoment = (0, import_moment2["default"])(timeOff, "HH:mm:ss");
                                            week2 = (weekdays.indexOf(import_TimerWeekday["default"].sun) >= 0 ? this.window.Power.TimerWeek.SUNDAY : 0) + (weekdays.indexOf(import_TimerWeekday["default"].mon) >= 0 ? this.window.Power.TimerWeek.MONDAY : 0) + (weekdays.indexOf(import_TimerWeekday["default"].tue) >= 0 ? this.window.Power.TimerWeek.TUESDAY : 0) + (weekdays.indexOf(import_TimerWeekday["default"].wed) >= 0 ? this.window.Power.TimerWeek.WEDNESDAY : 0) + (weekdays.indexOf(import_TimerWeekday["default"].thu) >= 0 ? this.window.Power.TimerWeek.THURSDAY : 0) + (weekdays.indexOf(import_TimerWeekday["default"].fri) >= 0 ? this.window.Power.TimerWeek.FRIDAY : 0) + (weekdays.indexOf(import_TimerWeekday["default"].sat) >= 0 ? this.window.Power.TimerWeek.SATURDAY : 0);
                                            _1 = (_ = this).timerSetSettings;
                                            _tmp = [
                                                __spreadValues({}, this.timerGetSettings())
                                            ];
                                            _tmp1 = [
                                                {},
                                                import_TimerType["default"][type]
                                            ];
                                            if (!(timeOn || timeOff)) return [
                                                3,
                                                4
                                            ];
                                            _tmp3 = {};
                                            if (!timeOn) return [
                                                3,
                                                2
                                            ];
                                            _tmp5 = {
                                                hour: onMoment.hour(),
                                                minute: onMoment.minute(),
                                                week: week2
                                            };
                                            return [
                                                4,
                                                this.getCurrentInputSource()
                                            ];
                                        case 1:
                                            _tmp4 = (_tmp5.inputSource = _state.sent(), _tmp5);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            _tmp4 = null;
                                            _state.label = 3;
                                        case 3:
                                            _tmp2 = (_tmp3.on = _tmp4, _tmp3.off = timeOff ? {
                                                hour: offMoment.hour(),
                                                minute: offMoment.minute(),
                                                week: week2
                                            } : null, _tmp3);
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            _tmp2 = void 0;
                                            _state.label = 5;
                                        case 5:
                                            _1.apply(_, [
                                                __spreadProps.apply(void 0, _tmp.concat([
                                                    _define_property.apply(void 0, _tmp1.concat([
                                                        _tmp2
                                                    ]))
                                                ]))
                                            ]);
                                            return [
                                                4,
                                                this.timerUpdateSettings()
                                            ];
                                        case 6:
                                            _state.sent();
                                            this.timerSetOnVolumes(__spreadProps(__spreadValues({}, this.timerGetOnVolumes()), _define_property({}, import_TimerType["default"][type], volume)));
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getTimers",
                        value: function getTimers() {
                            return __async(this, null, function() {
                                var _this, timerSettings, timerVolumes, timers;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    timerSettings = this.timerGetSettings();
                                    timerVolumes = this.timerGetOnVolumes();
                                    timers = Object.keys(timerSettings).map(function(timerType) {
                                        var timerOption = timerSettings[timerType];
                                        var timerVolume = timerVolumes[timerType];
                                        var weekBitwise = timerOption.on ? timerOption.on.week : timerOption.off ? timerOption.off.week : null;
                                        var formatOptions = {
                                            minimumIntegerDigits: 2,
                                            useGrouping: false
                                        };
                                        return {
                                            type: import_TimerType["default"][timerType],
                                            timeOn: timerOption.on ? "".concat(timerOption.on.hour.toLocaleString("en-US", formatOptions), ":").concat(timerOption.on.minute.toLocaleString("en-US", formatOptions), ":00") : null,
                                            timeOff: timerOption.off ? "".concat(timerOption.off.hour.toLocaleString("en-US", formatOptions), ":").concat(timerOption.off.minute.toLocaleString("en-US", formatOptions), ":00") : null,
                                            weekdays: weekBitwise ? _this.getWeekdaysByBitwise(weekBitwise) : [],
                                            volume: timerVolume
                                        };
                                    });
                                    return [
                                        2,
                                        timers
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "screenSetBrightness",
                        value: function screenSetBrightness(timeFrom1, brightness1, timeFrom2, brightness2) {
                            return __async(this, null, function() {
                                var _this, brightness;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    brightness = brightness1 === brightness2 ? brightness1 : (0, import_screenHelper.resolveCurrentBrightness)(timeFrom1, brightness1, timeFrom2, brightness2, (0, import_dateTimeFactory.now)().toDate());
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.configuration.setPictureProperty(function() {
                                                return resolve();
                                            }, function(error) {
                                                return reject(new Error("Error during screenSetBrightness" + error.errorText));
                                            }, {
                                                backlight: brightness
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "screenGetBrightness",
                        value: function screenGetBrightness() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            var successCb = function(cbObject) {
                                                var fakeDate = "2016-01-01 ";
                                                var currentTime1 = (0, import_moment2["default"])(fakeDate, "YYYY-MM-DD h:mm A");
                                                var currentTime2 = (0, import_moment2["default"])(fakeDate, "YYYY-MM-DD h:mm A");
                                                resolve({
                                                    brightness1: cbObject.backlight,
                                                    brightness2: cbObject.backlight,
                                                    timeFrom1: currentTime1.format("HH:mm:ss"),
                                                    timeFrom2: currentTime2.format("HH:mm:ss")
                                                });
                                            };
                                            var errorCb = function(cbObject) {
                                                reject(new Error("Error during screenGetBrightness" + cbObject.errorText));
                                            };
                                            _this.scap.configuration.getPictureProperty(successCb, errorCb);
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "remoteControlSetEnabled",
                        value: function remoteControlSetEnabled(enabled) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("remoteControleSetEnabled", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during remoteControleSetEnabled: " + cbObject.errorText));
                                };
                                var mode = enabled ? _this.window.Signage.KeyOperationMode.ALLOW_ALL : _this.window.Signage.KeyOperationMode.BLOCK_ALL;
                                var options = {
                                    policy: {
                                        remoteKeyOperationMode: mode,
                                        localKeyOperationMode: mode
                                    }
                                };
                                _this.scap.signage.setUsagePermission(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "remoteControlIsEnabled",
                        value: function remoteControlIsEnabled() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(param) {
                                    var remoteKeyOperationMode = param.remoteKeyOperationMode, localKeyOperationMode = param.localKeyOperationMode;
                                    console.info("remoteControleIsEnabled", {
                                        remoteKeyOperationMode: remoteKeyOperationMode,
                                        localKeyOperationMode: localKeyOperationMode
                                    });
                                    resolve(remoteKeyOperationMode === _this.window.Signage.KeyOperationMode.ALLOW_ALL);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during remoteControleIsEnabled: " + cbObject.errorText));
                                };
                                _this.scap.signage.getUsagePermission(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "screenshotUpload",
                        value: function screenshotUpload(request) {
                            return __async(this, null, function() {
                                var _this, uploadUri, screenshotDataUri, aHash, _tmp, response, data, screenshotData;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            uploadUri = request.baseUrl + "/upload/image-data-uri?prefix=screenshot/";
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    return _this.scap.signage.captureScreen(function(cbObject) {
                                                        resolve("data:image/jpeg;base64," + cbObject.data);
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during screenshotUpload: " + cbObject.errorText));
                                                    }, {});
                                                })
                                            ];
                                        case 1:
                                            screenshotDataUri = _state.sent();
                                            if (!request.computeHash) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                computeAHashFromPath(screenshotDataUri, 16, 16, request.screenshotRotationPortrait)
                                            ];
                                        case 2:
                                            _tmp = _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            _tmp = null;
                                            _state.label = 4;
                                        case 4:
                                            aHash = _tmp;
                                            return [
                                                4,
                                                fetch(uploadUri, {
                                                    method: "POST",
                                                    body: screenshotDataUri,
                                                    headers: __spreadValues({
                                                        "Content-Type": "image/jpeg"
                                                    }, request.headers)
                                                })
                                            ];
                                        case 5:
                                            response = _state.sent();
                                            if (!response.ok) {
                                                throw new Error("Error during upload screenshot request");
                                            }
                                            return [
                                                4,
                                                response.json()
                                            ];
                                        case 6:
                                            data = _state.sent();
                                            screenshotData = aHash ? {
                                                url: data.uri,
                                                imageInformations: {
                                                    aHash: aHash
                                                }
                                            } : {
                                                url: data.uri
                                            };
                                            return [
                                                2,
                                                screenshotData
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isDebugEnabled",
                        value: function isDebugEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.settingsManager.isDebugEnabled()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setDebug",
                        value: function setDebug(enabled) {
                            return __async(this, null, function() {
                                var _this, getApplicationAddress, baseAddress, newAppFileName, newAppAddress;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    return _this.scap.configuration.debug(function() {
                                                        return resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during setDebug: " + cbObject.errorText));
                                                    }, {
                                                        enabled: enabled
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.settingsManager.setDebug(enabled);
                                            return [
                                                4,
                                                this.getApplicationAddress()
                                            ];
                                        case 2:
                                            getApplicationAddress = _state.sent();
                                            baseAddress = getApplicationAddress.substring(0, getApplicationAddress.lastIndexOf("/"));
                                            newAppFileName = enabled ? "com.lg.app.signage.debug.ipk" : "com.lg.app.signage.ipk";
                                            newAppAddress = "".concat(baseAddress, "/").concat(newAppFileName);
                                            return [
                                                4,
                                                this.appUpgrade(newAppAddress, void 0)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getVolume",
                        value: function getVolume() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                _this.scap.sound.getSoundStatus(function(soundStatus) {
                                    return resolve(soundStatus.level);
                                }, function(error) {
                                    return reject(new Error("Error during getVolume: " + error.errorText));
                                });
                            });
                        }
                    },
                    {
                        key: "setVolume",
                        value: function setVolume(volume) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("volumeSet", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during volumeSet: " + cbObject.errorText));
                                };
                                var options = {
                                    level: volume
                                };
                                _this.scap.sound.setVolumeLevel(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "batteryGetStatus",
                        value: function batteryGetStatus() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        (0, import_batteryHelper.getNoBatteryStatus)()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "factoryReset",
                        value: function factoryReset() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new import_basicErrors3.NotSupportedMethodError("factoryReset");
                                });
                            });
                        }
                    },
                    {
                        key: "setAutoRecovery",
                        value: function setAutoRecovery(configuration) {
                            return __async(this, null, function() {
                                var _this, _a2, timeWhenEnable, healthCheckIntervalMs;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            this.window.localStorage.setItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_KEY, configuration.enabled === true ? "1" : "0");
                                            return [
                                                4,
                                                runWatchDogTask(window, configuration)
                                            ];
                                        case 1:
                                            _state.sent();
                                            if (!(!configuration.enabled && configuration.autoEnableTimeoutMs)) return [
                                                3,
                                                3
                                            ];
                                            timeWhenEnable = (0, import_moment2["default"])().add(configuration.autoEnableTimeoutMs, "milliseconds").valueOf().toString();
                                            return [
                                                4,
                                                this.window.localStorage.setItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_TIME_DISABLE_KEY, timeWhenEnable)
                                            ];
                                        case 2:
                                            _state.sent();
                                            healthCheckIntervalMs = (_a2 = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY)) != null ? _a2 : "0";
                                            this.autoRecoveryDisableInterval = setTimeout(function() {
                                                return __async(_this, null, function() {
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                return [
                                                                    4,
                                                                    this.setAutoRecovery({
                                                                        enabled: true,
                                                                        healthcheckIntervalMs: parseInt(healthCheckIntervalMs)
                                                                    })
                                                                ];
                                                            case 1:
                                                                _state.sent();
                                                                return [
                                                                    2
                                                                ];
                                                        }
                                                    });
                                                });
                                            }, configuration.autoEnableTimeoutMs);
                                            return [
                                                2
                                            ];
                                        case 3:
                                            if (configuration.enabled && configuration.healthcheckIntervalMs) {
                                                this.window.localStorage.setItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY, configuration.healthcheckIntervalMs.toString());
                                            }
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                4,
                                                this.window.localStorage.removeItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_TIME_DISABLE_KEY)
                                            ];
                                        case 5:
                                            _state.sent();
                                            clearInterval(this.autoRecoveryDisableInterval);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getAutoRecovery",
                        value: function getAutoRecovery() {
                            return __async(this, null, function() {
                                var _a2, isEnabled, autoEnableTimeoutMs, healthCheckIntervalMs;
                                return _ts_generator(this, function(_state) {
                                    isEnabled = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_KEY) === "1" ? true : false;
                                    autoEnableTimeoutMs = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_AUTO_ENABLE_CONFIG_KEY);
                                    healthCheckIntervalMs = (_a2 = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY)) != null ? _a2 : "0";
                                    if (!isEnabled) {
                                        return [
                                            2,
                                            {
                                                enabled: false,
                                                autoEnableTimeoutMs: autoEnableTimeoutMs ? parseInt(autoEnableTimeoutMs) : 0
                                            }
                                        ];
                                    }
                                    return [
                                        2,
                                        {
                                            enabled: true,
                                            healthcheckIntervalMs: parseInt(healthCheckIntervalMs)
                                        }
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isHardwareAccelerationEnabled",
                        value: function isHardwareAccelerationEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "setHardwareAcceleration",
                        value: function setHardwareAcceleration(_enable) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Method not implemented.");
                                });
                            });
                        }
                    },
                    {
                        key: "onDeviceDeprovisioned",
                        value: function onDeviceDeprovisioned() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setUrlLauncherAddress",
                        value: function setUrlLauncherAddress(url, appType) {
                            var _this = this;
                            var secureConnection = url.indexOf("https://") === 0;
                            var options = {
                                serverIp: "0.0.0.0",
                                serverPort: 80,
                                secureConnection: secureConnection,
                                appLaunchMode: this.window.Configuration.AppMode.LOCAL,
                                fqdnMode: true,
                                fqdnAddr: url,
                                autoSet: "off"
                            };
                            if (typeof appType !== "undefined") {
                                options.appType = appType;
                            }
                            return new Promise(function(resolve, reject) {
                                return _this.scap.configuration.setServerProperty(function() {
                                    return resolve();
                                }, function(cbObject) {
                                    return reject(new Error("Error during setUrlLauncherAddress: " + cbObject.errorText));
                                }, options);
                            });
                        }
                    },
                    {
                        key: "getAppPath",
                        value: function getAppPath(version) {
                            var isDebug = this.settingsManager.isDebugEnabled();
                            var appName = isDebug ? "com.lg.app.signage.debug" : "com.lg.app.signage";
                            return "/app/webos/" + version + "/" + appName + ".ipk";
                        }
                    },
                    {
                        key: "timerIsTime",
                        value: function timerIsTime(timerOptions, timeMoment) {
                            if (!timerOptions) {
                                return false;
                            }
                            var currentWeekDay = Math.pow(2, timeMoment.isoWeekday() - 1);
                            var currentHour = timeMoment.hour();
                            var currentMinute = timeMoment.minute();
                            return currentHour === timerOptions.hour && currentMinute === timerOptions.minute && // weekdays in SCAP uses bitwise operators
                            // eslint-disable-next-line no-bitwise
                            (timerOptions.week & currentWeekDay) !== 0;
                        }
                    },
                    {
                        key: "timerSetOn",
                        value: function timerSetOn(timerOptions) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerSetOn", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerSetOn: " + cbObject.errorText));
                                };
                                _this.scap.power.addOnTimer(successCb, errorCb, timerOptions);
                            });
                        }
                    },
                    {
                        key: "timerSetOff",
                        value: function timerSetOff(timerOptions) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerSetOff", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerSetOff: " + cbObject.errorText));
                                };
                                _this.scap.power.addOffTimer(successCb, errorCb, timerOptions);
                            });
                        }
                    },
                    {
                        key: "timerDeleteOn",
                        value: function timerDeleteOn(options) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerDeleteOn", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerDeleteOn: " + cbObject.errorText));
                                };
                                _this.scap.power.deleteOnTimer(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "timerDeleteOff",
                        value: function timerDeleteOff(options) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerDeleteOff", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerDeleteOff: " + cbObject.errorText));
                                };
                                _this.scap.power.deleteOffTimer(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "timerGetOnList",
                        value: function timerGetOnList() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerGetOnList", cbObject);
                                    resolve(cbObject.timerList);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerGetOnList: " + cbObject.errorText));
                                };
                                _this.scap.power.getOnTimerList(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "timerGetOffList",
                        value: function timerGetOffList() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerGetOffList", cbObject);
                                    resolve(cbObject.timerList);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerGetOffList: " + cbObject.errorText));
                                };
                                _this.scap.power.getOffTimerList(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "getCurrentInputSource",
                        value: function getCurrentInputSource() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("getCurrentInputSource", cbObject);
                                    resolve(cbObject.currentInputSource);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during getCurrentInputSource: " + cbObject.errorText));
                                };
                                _this.scap.inputSource.getInputSourceStatus(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "removeProblematicFileReader",
                        value: function removeProblematicFileReader() {
                            delete this.window.FileReader;
                        }
                    },
                    {
                        key: "getCurrentOrientation",
                        value: function getCurrentOrientation() {
                            return __async(this, null, function() {
                                var realOrientation;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.settingsManager.getOrientation()
                                            ];
                                        case 1:
                                            realOrientation = _state.sent();
                                            return [
                                                2,
                                                realOrientation
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "firmwareGetType",
                        value: function firmwareGetType() {
                            return __async(this, null, function() {
                                var platformInfo;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                getPlatformInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            platformInfo = _state.sent();
                                            return [
                                                2,
                                                platformInfo.modelName.slice(2).split("-")[0]
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadFirmware",
                        value: function downloadFirmware(url) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("downloadFirmware", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during downloadFirmware: " + cbObject.errorText + ", " + url));
                                };
                                var options = {
                                    uri: url
                                };
                                _this.scap.storage.downloadFirmware(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "upgradeFirmware",
                        value: function upgradeFirmware() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("upgradeFirmware", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during upgradeFirmware: " + cbObject.errorText));
                                };
                                _this.scap.storage.upgradeFirmware(successCb, errorCb);
                            });
                        }
                    },
                    {
                        key: "timerGetSettings",
                        value: function timerGetSettings() {
                            var settings = this.window.localStorage.getItem(_SCAPv12ManagementDriver.TIMER_SETTINGS_KEY);
                            return settings ? JSON.parse(settings) : {};
                        }
                    },
                    {
                        key: "timerSetSettings",
                        value: function timerSetSettings(settings) {
                            this.window.localStorage.setItem(_SCAPv12ManagementDriver.TIMER_SETTINGS_KEY, JSON.stringify(settings));
                        }
                    },
                    {
                        key: "timerGetOnVolumes",
                        value: function timerGetOnVolumes() {
                            var timerOnVolume = this.window.localStorage.getItem(_SCAPv12ManagementDriver.TIMER_ON_VOLUME_KEY);
                            return timerOnVolume ? JSON.parse(timerOnVolume) : {};
                        }
                    },
                    {
                        key: "timerSetOnVolumes",
                        value: function timerSetOnVolumes(volumes) {
                            this.window.localStorage.setItem(_SCAPv12ManagementDriver.TIMER_ON_VOLUME_KEY, JSON.stringify(volumes));
                        }
                    },
                    {
                        key: "timerUpdateSettings",
                        value: function timerUpdateSettings() {
                            return __async(this, null, function() {
                                var timerSettings, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, type, timerSetting, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            timerSettings = this.timerGetSettings();
                                            return [
                                                4,
                                                this.timerReset()
                                            ];
                                        case 1:
                                            _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                11,
                                                12,
                                                13
                                            ]);
                                            _iterator = Object.keys(timerSettings)[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                10
                                            ];
                                            type = _step.value;
                                            timerSetting = timerSettings[type];
                                            if (!(timerSetting && timerSetting.on)) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.timerSetOn(timerSetting.on)
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                4,
                                                this.timerEnableOn(true)
                                            ];
                                        case 5:
                                            _state.sent();
                                            _state.label = 6;
                                        case 6:
                                            if (!(timerSetting && timerSetting.off)) return [
                                                3,
                                                9
                                            ];
                                            return [
                                                4,
                                                this.timerSetOff(timerSetting.off)
                                            ];
                                        case 7:
                                            _state.sent();
                                            return [
                                                4,
                                                this.timerEnableOff(true)
                                            ];
                                        case 8:
                                            _state.sent();
                                            _state.label = 9;
                                        case 9:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 10:
                                            return [
                                                3,
                                                13
                                            ];
                                        case 11:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                13
                                            ];
                                        case 12:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 13:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "timerUpdateVolumes",
                        value: function timerUpdateVolumes() {
                            return __async(this, null, function() {
                                var timerOnVolumes, timerSettings, nowMoment, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, type, timerSetting, timerOnVolume, isTimerTime, error, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            timerOnVolumes = this.timerGetOnVolumes();
                                            timerSettings = this.timerGetSettings();
                                            nowMoment = (0, import_dateTimeFactory.now)();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                8,
                                                9,
                                                10
                                            ]);
                                            _iterator = Object.keys(timerSettings)[Symbol.iterator]();
                                            _state.label = 2;
                                        case 2:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                7
                                            ];
                                            type = _step.value;
                                            timerSetting = timerSettings[type];
                                            timerOnVolume = timerOnVolumes[type];
                                            isTimerTime = this.timerIsTime(timerSetting.on, nowMoment);
                                            if (!(typeof timerOnVolume !== "undefined" && timerOnVolume !== null && isTimerTime)) return [
                                                3,
                                                6
                                            ];
                                            _state.label = 3;
                                        case 3:
                                            _state.trys.push([
                                                3,
                                                5,
                                                ,
                                                6
                                            ]);
                                            return [
                                                4,
                                                this.setVolume(timerOnVolume)
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                3,
                                                6
                                            ];
                                        case 5:
                                            error = _state.sent();
                                            console.error(error);
                                            return [
                                                3,
                                                6
                                            ];
                                        case 6:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                2
                                            ];
                                        case 7:
                                            return [
                                                3,
                                                10
                                            ];
                                        case 8:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                10
                                            ];
                                        case 9:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 10:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "timerReset",
                        value: function timerReset() {
                            return __async(this, null, function() {
                                var onList, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, timer, error, err, offList, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, timer1, error1, err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.timerGetOnList()
                                            ];
                                        case 1:
                                            onList = _state.sent();
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                9,
                                                10,
                                                11
                                            ]);
                                            _iterator = onList[Symbol.iterator]();
                                            _state.label = 3;
                                        case 3:
                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                3,
                                                8
                                            ];
                                            timer = _step.value;
                                            _state.label = 4;
                                        case 4:
                                            _state.trys.push([
                                                4,
                                                6,
                                                ,
                                                7
                                            ]);
                                            return [
                                                4,
                                                this.timerDeleteOn(timer)
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                3,
                                                7
                                            ];
                                        case 6:
                                            error = _state.sent();
                                            console.warn(error);
                                            return [
                                                3,
                                                7
                                            ];
                                        case 7:
                                            _iteratorNormalCompletion = true;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 8:
                                            return [
                                                3,
                                                11
                                            ];
                                        case 9:
                                            err = _state.sent();
                                            _didIteratorError = true;
                                            _iteratorError = err;
                                            return [
                                                3,
                                                11
                                            ];
                                        case 10:
                                            try {
                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                    _iterator["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError) {
                                                    throw _iteratorError;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 11:
                                            return [
                                                4,
                                                this.timerGetOffList()
                                            ];
                                        case 12:
                                            offList = _state.sent();
                                            _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                            _state.label = 13;
                                        case 13:
                                            _state.trys.push([
                                                13,
                                                20,
                                                21,
                                                22
                                            ]);
                                            _iterator1 = offList[Symbol.iterator]();
                                            _state.label = 14;
                                        case 14:
                                            if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
                                                3,
                                                19
                                            ];
                                            timer1 = _step1.value;
                                            _state.label = 15;
                                        case 15:
                                            _state.trys.push([
                                                15,
                                                17,
                                                ,
                                                18
                                            ]);
                                            return [
                                                4,
                                                this.timerDeleteOff(timer1)
                                            ];
                                        case 16:
                                            _state.sent();
                                            return [
                                                3,
                                                18
                                            ];
                                        case 17:
                                            error1 = _state.sent();
                                            console.warn(error1);
                                            return [
                                                3,
                                                18
                                            ];
                                        case 18:
                                            _iteratorNormalCompletion1 = true;
                                            return [
                                                3,
                                                14
                                            ];
                                        case 19:
                                            return [
                                                3,
                                                22
                                            ];
                                        case 20:
                                            err = _state.sent();
                                            _didIteratorError1 = true;
                                            _iteratorError1 = err;
                                            return [
                                                3,
                                                22
                                            ];
                                        case 21:
                                            try {
                                                if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                                    _iterator1["return"]();
                                                }
                                            } finally{
                                                if (_didIteratorError1) {
                                                    throw _iteratorError1;
                                                }
                                            }
                                            return [
                                                7
                                            ];
                                        case 22:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "timerEnableOn",
                        value: function timerEnableOn(enable) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerEnableOn", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerEnableOn: " + cbObject.errorText));
                                };
                                var options = {
                                    allOnTimer: enable
                                };
                                _this.scap.power.enableAllOnTimer(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "timerEnableOff",
                        value: function timerEnableOff(enable) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerEnableOff", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerEnableOff: " + cbObject.errorText));
                                };
                                var options = {
                                    allOffTimer: enable
                                };
                                _this.scap.power.enableAllOffTimer(successCb, errorCb, options);
                            });
                        }
                    },
                    {
                        key: "getWeekdaysByBitwise",
                        value: function getWeekdaysByBitwise(bitwise) {
                            var weekdays = [];
                            if (bitwise >= this.window.Power.TimerWeek.SUNDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].sun);
                                bitwise = bitwise - this.window.Power.TimerWeek.SUNDAY;
                            }
                            if (bitwise >= this.window.Power.TimerWeek.SATURDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].sat);
                                bitwise = bitwise - this.window.Power.TimerWeek.SATURDAY;
                            }
                            if (bitwise >= this.window.Power.TimerWeek.FRIDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].fri);
                                bitwise = bitwise - this.window.Power.TimerWeek.FRIDAY;
                            }
                            if (bitwise >= this.window.Power.TimerWeek.THURSDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].thu);
                                bitwise = bitwise - this.window.Power.TimerWeek.THURSDAY;
                            }
                            if (bitwise >= this.window.Power.TimerWeek.WEDNESDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].wed);
                                bitwise = bitwise - this.window.Power.TimerWeek.WEDNESDAY;
                            }
                            if (bitwise >= this.window.Power.TimerWeek.TUESDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].tue);
                                bitwise = bitwise - this.window.Power.TimerWeek.TUESDAY;
                            }
                            if (bitwise >= this.window.Power.TimerWeek.MONDAY) {
                                weekdays.unshift(import_TimerWeekday["default"].mon);
                                bitwise = bitwise - this.window.Power.TimerWeek.MONDAY;
                            }
                            return weekdays;
                        }
                    },
                    {
                        key: "listenTemperature",
                        value: function listenTemperature(onLatestTemperature) {
                            var _this = this;
                            var successCb = function(_cbObject) {
                                console.info("runSystemTemperatureMonitoring");
                            };
                            var errorCb = function(cbObject) {
                                console.warn(new Error("Error during runSystemTemperatureMonitoring: " + cbObject.errorText));
                            };
                            var eventHandler = function(event) {
                                if (event.type === _this.window.Signage.EventType.CURRENT_TEMPERATURE) {
                                    if (typeof event.data.temperature !== "undefined") {
                                        onLatestTemperature(event.data.temperature);
                                    }
                                }
                            };
                            this.scap.signage.registerSystemMonitor(successCb, errorCb, {
                                monitorConfiguration: {
                                    temperature: true
                                },
                                eventHandler: eventHandler
                            });
                        }
                    },
                    {
                        key: "initWatchDog",
                        value: function initWatchDog() {
                            var _a2;
                            var valueFromStorage = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_KEY);
                            var runWatchDog = valueFromStorage === "1" ? true : false;
                            if (runWatchDog) {
                                var healthCheckIntervalMs = (_a2 = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY)) != null ? _a2 : "0";
                                this.setAutoRecovery({
                                    enabled: true,
                                    healthcheckIntervalMs: parseInt(healthCheckIntervalMs)
                                });
                            }
                        }
                    },
                    {
                        key: "updateAutoRecoveryTimer",
                        value: function updateAutoRecoveryTimer() {
                            var _this = this;
                            var _a2;
                            var disablePeerRecoveryTimeout = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_TIME_DISABLE_KEY);
                            var healthCheckIntervalMs = (_a2 = this.window.localStorage.getItem(_SCAPv12ManagementDriver.AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY)) != null ? _a2 : "0";
                            if (disablePeerRecoveryTimeout) {
                                var remainingMs = Number(disablePeerRecoveryTimeout) - (0, import_moment2["default"])().valueOf();
                                if (remainingMs > 1e3) {
                                    this.autoRecoveryDisableInterval = setTimeout(function() {
                                        return __async(_this, null, function() {
                                            return _ts_generator(this, function(_state) {
                                                switch(_state.label){
                                                    case 0:
                                                        return [
                                                            4,
                                                            this.setAutoRecovery({
                                                                enabled: true,
                                                                healthcheckIntervalMs: parseInt(healthCheckIntervalMs)
                                                            })
                                                        ];
                                                    case 1:
                                                        _state.sent();
                                                        clearInterval(this.autoRecoveryDisableInterval);
                                                        return [
                                                            2
                                                        ];
                                                }
                                            });
                                        });
                                    }, remainingMs);
                                    return;
                                }
                                this.setAutoRecovery({
                                    enabled: true,
                                    healthcheckIntervalMs: parseInt(healthCheckIntervalMs)
                                });
                                clearInterval(this.autoRecoveryDisableInterval);
                            }
                        }
                    },
                    {
                        key: "getApplicationAddress",
                        value: function getApplicationAddress() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            return _this.scap.configuration.getServerProperty(function(cbObject) {
                                                console.info("getApplicationAddress", cbObject);
                                                resolve(cbObject.fqdnAddr);
                                            }, function(cbObject) {
                                                return reject(new Error("Error during getApplicationAddress: " + cbObject.errorText));
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    }
                ], [
                    {
                        key: "timeManagerSupports",
                        value: function timeManagerSupports(timeManager, capability) {
                            return __async(this, null, function() {
                                var _tmp;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            switch(capability){
                                                case import_ManagementCapability["default"].GET_TIMEZONE:
                                                    return [
                                                        3,
                                                        1
                                                    ];
                                                case import_ManagementCapability["default"].SET_TIMEZONE:
                                                    return [
                                                        3,
                                                        3
                                                    ];
                                                case import_ManagementCapability["default"].SET_TIME:
                                                    return [
                                                        3,
                                                        7
                                                    ];
                                                case import_ManagementCapability["default"].NTP_TIME:
                                                    return [
                                                        3,
                                                        9
                                                    ];
                                            }
                                            return [
                                                3,
                                                11
                                            ];
                                        case 1:
                                            return [
                                                4,
                                                timeManager.canGetZoneId()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                timeManager.canSetManual()
                                            ];
                                        case 4:
                                            _tmp = _state.sent();
                                            if (_tmp) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                timeManager.canSetAuto()
                                            ];
                                        case 5:
                                            _tmp = _state.sent();
                                            _state.label = 6;
                                        case 6:
                                            return [
                                                2,
                                                _tmp
                                            ];
                                        case 7:
                                            return [
                                                4,
                                                timeManager.canSetManual()
                                            ];
                                        case 8:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 9:
                                            return [
                                                4,
                                                timeManager.canSetAuto()
                                            ];
                                        case 10:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 11:
                                            return [
                                                2,
                                                null
                                            ];
                                        case 12:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv12ManagementDriver;
            }();
            __publicField(_SCAPv12ManagementDriver, "TIMER_SETTINGS_KEY", "timer-TIMER_SETTINGS_KEY");
            __publicField(_SCAPv12ManagementDriver, "TIMER_ON_VOLUME_KEY", "timer-TIMER_ON_VOLUME_KEY");
            __publicField(_SCAPv12ManagementDriver, "AUTO_RECOVERY_KEY", "auto-AUTO_RECOVERY_KEY");
            __publicField(_SCAPv12ManagementDriver, "AUTO_RECOVERY_TIME_DISABLE_KEY", "auto-AUTO_RECOVERY_TIME_DISABLE_KEY");
            __publicField(_SCAPv12ManagementDriver, "AUTO_RECOVERY_AUTO_ENABLE_CONFIG_KEY", "auto-AUTO_RECOVERY_AUTO_ENABLE_CONFIG_KEY");
            __publicField(_SCAPv12ManagementDriver, "AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY", "auto-AUTO_RECOVERY_HEALTH_CHECK_INTERVAL_KEY");
            __decorateClass([
                (0, import_lockedDecorator.locked)("timer", {
                    timeout: 3 * 60 * 1e3
                })
            ], _SCAPv12ManagementDriver.prototype, "setTimer", 1);
            SCAPv12ManagementDriver = _SCAPv12ManagementDriver;
        }
    });
    // src/Driver/TimeManager/SCAPv13TimeManager.ts
    var import_ZoneOffset2, import_wait4, import_moment_timezone, SCAPv13TimeManager;
    var init_SCAPv13TimeManager = __esm({
        "src/Driver/TimeManager/SCAPv13TimeManager.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ZoneOffset2 = __toESM(require_ZoneOffset());
            import_wait4 = __toESM(require_wait4());
            import_moment_timezone = __toESM(require_moment_timezone6());
            init_SCAPHelper();
            SCAPv13TimeManager = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv13TimeManager(scap, restartCallback) {
                    _class_call_check(this, SCAPv13TimeManager);
                    this.scap = scap;
                    this.restartCallback = restartCallback;
                }
                _create_class(SCAPv13TimeManager, [
                    {
                        key: "getEpochMillis",
                        value: function getEpochMillis() {
                            return __async(this, null, function() {
                                var _ref, year2, month, day2, hour2, minute2, sec;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getCurrentTimeAndNTP()
                                            ];
                                        case 1:
                                            _ref = _state.sent(), year2 = _ref.year, month = _ref.month, day2 = _ref.day, hour2 = _ref.hour, minute2 = _ref.minute, sec = _ref.sec;
                                            return [
                                                2,
                                                (0, import_moment_timezone["default"])({
                                                    year: year2,
                                                    month: month - 1,
                                                    date: day2,
                                                    hour: hour2,
                                                    minute: minute2,
                                                    second: sec
                                                }).valueOf()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getZoneOffset",
                        value: function getZoneOffset() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        import_ZoneOffset2["default"].fromPosix(/* @__PURE__ */ new Date().getTimezoneOffset())
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "canGetZoneId",
                        value: function canGetZoneId() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        true
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getZoneId",
                        value: function getZoneId() {
                            return __async(this, null, function() {
                                var _this, scapTimezone;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    return _this.scap.configuration.getTimeZone(function(cbObject) {
                                                        return resolve(cbObject.timeZone);
                                                    }, function(cbObject) {
                                                        return reject(_this.mapScapErrorToError(cbObject));
                                                    });
                                                })
                                            ];
                                        case 1:
                                            scapTimezone = _state.sent();
                                            return [
                                                2,
                                                convertScapToIsoTimezone(scapTimezone)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "canGetNtpServer",
                        value: function canGetNtpServer() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        false
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getNtpServer",
                        value: function getNtpServer() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Cannot get NTP server address");
                                });
                            });
                        }
                    },
                    {
                        key: "canSetManual",
                        value: function canSetManual() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        true
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setManual",
                        value: function setManual(epochMillis, zone) {
                            return __async(this, null, function() {
                                var zoneId, currentTime;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getZoneId()
                                            ];
                                        case 1:
                                            zoneId = _state.sent();
                                            if (!(zoneId !== zone)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.setNTPEnabled(true)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.setZoneId(zone)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            currentTime = (0, import_moment_timezone["default"])(epochMillis);
                                            return [
                                                4,
                                                this.setCurrentTimeAndOptionalNTP({
                                                    year: currentTime.year(),
                                                    month: currentTime.month() + 1,
                                                    day: currentTime.date(),
                                                    hour: currentTime.hour(),
                                                    minute: currentTime.minute(),
                                                    sec: currentTime.second(),
                                                    ntp: false
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2,
                                                this.restartCallback
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "canSetAuto",
                        value: function canSetAuto() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        true
                                    ];
                                });
                            });
                        }
                    },
                    {
                        /**
         * This version of SCAP offers only simple enabling NTP server without certain address setting. It will use pre-defined one.
         */ key: "setAuto",
                        value: function setAuto(_ntpServer, zone) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.setNTPEnabled(true)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.setZoneId(zone)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                this.restartCallback
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isAutoEnabled",
                        value: function isAutoEnabled() {
                            return __async(this, null, function() {
                                var ntp;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getCurrentTimeAndNTP()
                                            ];
                                        case 1:
                                            ntp = _state.sent().ntp;
                                            return [
                                                2,
                                                ntp
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setCurrentTimeAndOptionalNTP",
                        value: function setCurrentTimeAndOptionalNTP(options) {
                            var _this = this;
                            if (options.ntpServerAddress !== void 0) {
                                delete options.ntpServerAddress;
                            }
                            return new Promise(function(resolve, reject) {
                                _this.scap.configuration.setCurrentTime(function() {
                                    return resolve();
                                }, function(cbObject) {
                                    return reject(_this.mapScapErrorToError(cbObject));
                                }, options);
                            });
                        }
                    },
                    {
                        key: "setZoneId",
                        value: function setZoneId(zone) {
                            return __async(this, null, function() {
                                var _this, timeZone;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.findTimezoneInSupportedList(zone)
                                            ];
                                        case 1:
                                            timeZone = _state.sent();
                                            if (timeZone === null) {
                                                throw new Error("Timezone not found: ".concat(zone));
                                            }
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.scap.configuration.setTimeZone(resolve, function(cbObject) {
                                                        return reject(_this.mapScapErrorToError(cbObject));
                                                    }, {
                                                        timeZone: timeZone
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                (0, import_wait4["default"])(2e3)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "mapScapErrorToError",
                        value: function mapScapErrorToError(cbObject) {
                            return new Error("Error Code [" + (cbObject == null ? void 0 : cbObject.errorCode) + "]: " + (cbObject == null ? void 0 : cbObject.errorText));
                        }
                    },
                    {
                        /**
         * NTP server must be enabled before changing timezone otherwise device throws exception.
         * It seems NTP sync process is still active few seconds after disabling.
         * Similarly, it takes few seconds to enable it and wait until time is synchronized.
         */ key: "setNTPEnabled",
                        value: function setNTPEnabled(ntp) {
                            return __async(this, null, function() {
                                var originalTimeWithNTP, proposedTimeWithNTP;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getCurrentTimeAndNTP()
                                            ];
                                        case 1:
                                            originalTimeWithNTP = _state.sent();
                                            proposedTimeWithNTP = __spreadProps(__spreadValues({}, originalTimeWithNTP), {
                                                ntp: ntp
                                            });
                                            return [
                                                4,
                                                this.setCurrentTimeAndOptionalNTP(proposedTimeWithNTP)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                (0, import_wait4["default"])(2e3)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getCurrentTimeAndNTP",
                        value: function getCurrentTimeAndNTP() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                _this.scap.configuration.getCurrentTime(function(cbObject) {
                                    return resolve(cbObject);
                                }, function(cbObject) {
                                    return reject(_this.mapScapErrorToError(cbObject));
                                });
                            });
                        }
                    },
                    {
                        key: "getSupportedTimezoneList",
                        value: function getSupportedTimezoneList() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                _this.scap.configuration.getTimeZoneList(function(cbObject) {
                                    return resolve(cbObject.timeZone);
                                }, function(cbObject) {
                                    return reject(_this.mapScapErrorToError(cbObject));
                                });
                            });
                        }
                    },
                    {
                        key: "findTimezoneInSupportedList",
                        value: function findTimezoneInSupportedList(zoneId) {
                            return __async(this, null, function() {
                                var _a2, supportedTimezoneList, equalsToGivenTimezone;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getSupportedTimezoneList()
                                            ];
                                        case 1:
                                            supportedTimezoneList = _state.sent();
                                            equalsToGivenTimezone = function(param) {
                                                var continent = param.continent, city = param.city;
                                                return "".concat(continent, "/").concat(city) === zoneId;
                                            };
                                            return [
                                                2,
                                                (_a2 = supportedTimezoneList.find(equalsToGivenTimezone)) != null ? _a2 : null
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return SCAPv13TimeManager;
            }();
        }
    });
    // src/Driver/ManagementDriver/SCAPv13ManagementDriver.ts
    var SCAPv13ManagementDriver;
    var init_SCAPv13ManagementDriver = __esm({
        "src/Driver/ManagementDriver/SCAPv13ManagementDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv13TimeManager();
            init_SCAPv12ManagementDriver();
            SCAPv13ManagementDriver = /*#__PURE__*/ function(SCAPv12ManagementDriver1) {
                "use strict";
                _inherits(_SCAPv13ManagementDriver, SCAPv12ManagementDriver1);
                var _super = _create_super(_SCAPv13ManagementDriver);
                function _SCAPv13ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl) {
                    _class_call_check(this, _SCAPv13ManagementDriver);
                    var _this;
                    _this = _super.call(this, window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                    __publicField(_assert_this_initialized(_this), "timeManager");
                    _this.timeManager = new SCAPv13TimeManager(scap, function() {
                        return _this.appRestart();
                    });
                    return _this;
                }
                _create_class(_SCAPv13ManagementDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv13";
                        }
                    },
                    {
                        key: "managementSupports",
                        value: function managementSupports(capability) {
                            return __async(this, null, function() {
                                var timeManagerSupports;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                SCAPv12ManagementDriver.timeManagerSupports(this.timeManager, capability)
                                            ];
                                        case 1:
                                            timeManagerSupports = _state.sent();
                                            if (timeManagerSupports !== null) {
                                                return [
                                                    2,
                                                    timeManagerSupports
                                                ];
                                            }
                                            return [
                                                2,
                                                __superGet(_SCAPv13ManagementDriver.prototype, this, "managementSupports").call(this, capability)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "initialize",
                        value: function initialize() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                __superGet(_SCAPv13ManagementDriver.prototype, this, "initialize").call(this)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "appRestart",
                        value: function appRestart() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.window.location.reload()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "appUpgrade",
                        value: function appUpgrade(baseUrl, version) {
                            return __async(this, null, function() {
                                var _this, appPath, nextUrl, options;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            if (!(typeof version !== "undefined")) return [
                                                3,
                                                2
                                            ];
                                            appPath = this.getAppPath(version);
                                            nextUrl = baseUrl + appPath;
                                            return [
                                                4,
                                                this.setUrlLauncherAddress(nextUrl, "ipk")
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 2:
                                            return [
                                                4,
                                                this.setUrlLauncherAddress(baseUrl, "ipk")
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            options = {
                                                to: this.window.Storage.AppMode.LOCAL,
                                                recovery: true,
                                                type: "ipk"
                                            };
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.scap.storage.upgradeApplication(function(cbObject) {
                                                        console.info("appUpgrade", cbObject);
                                                        resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during appUpgrade: " + cbObject.errorText));
                                                    }, options);
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2,
                                                function() {
                                                    return _this.systemReboot();
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv13ManagementDriver;
            }(SCAPv12ManagementDriver);
        }
    });
    // src/ManagementService/managementServiceUrl.ts
    var MANAGEMENT_SERVICE_URL;
    var init_managementServiceUrl = __esm({
        "src/ManagementService/managementServiceUrl.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            MANAGEMENT_SERVICE_URL = "luna://com.lg.app.signage.signagemanagement.service";
        }
    });
    // src/NativeCommands/WebosNativeCommands.ts
    var _WebosNativeCommands, WebosNativeCommands;
    var init_WebosNativeCommands = __esm({
        "src/NativeCommands/WebosNativeCommands.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_managementServiceUrl();
            _WebosNativeCommands = /*#__PURE__*/ function() {
                "use strict";
                function _WebosNativeCommands(webosService) {
                    _class_call_check(this, _WebosNativeCommands);
                    this.webosService = webosService;
                }
                _create_class(_WebosNativeCommands, [
                    {
                        key: "sendOne",
                        value: function sendOne(ipAddress, command, data) {
                            return __async(this, null, function() {
                                var _this, resolvedIp, response;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            resolvedIp = ipAddress === "localhost" ? "127.0.0.1" : ipAddress;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    var timeout = setTimeout(function() {
                                                        reject(new Error("sendCommand timed out after ".concat(_WebosNativeCommands.SEND_COMMAND_TIMEOUT_MS, "ms for command ").concat(JSON.stringify(command))));
                                                    }, _WebosNativeCommands.SEND_COMMAND_TIMEOUT_MS);
                                                    _this.webosService.request(MANAGEMENT_SERVICE_URL, {
                                                        method: "sendCommand",
                                                        parameters: {
                                                            ip: resolvedIp,
                                                            command: command,
                                                            setId: 1,
                                                            data: data
                                                        },
                                                        onComplete: function(returnValue) {
                                                            clearTimeout(timeout);
                                                            if ("errorCode" in returnValue) {
                                                                resolve({
                                                                    type: "NACK",
                                                                    commandType: 0,
                                                                    result: returnValue
                                                                });
                                                            } else {
                                                                resolve({
                                                                    type: "ACK",
                                                                    commandType: 1,
                                                                    result: returnValue
                                                                });
                                                            }
                                                        },
                                                        onFailure: function(error) {
                                                            clearTimeout(timeout);
                                                            reject(error);
                                                        }
                                                    });
                                                })
                                            ];
                                        case 1:
                                            response = _state.sent();
                                            return [
                                                2,
                                                response
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return _WebosNativeCommands;
            }();
            __publicField(_WebosNativeCommands, "SEND_COMMAND_TIMEOUT_MS", 3e4);
            WebosNativeCommands = _WebosNativeCommands;
        }
    });
    // node_modules/debug/src/common.js
    var require_common6 = __commonJS({
        "node_modules/debug/src/common.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            function setup(env) {
                createDebug.debug = createDebug;
                createDebug["default"] = createDebug;
                createDebug.coerce = coerce;
                createDebug.disable = disable;
                createDebug.enable = enable;
                createDebug.enabled = enabled;
                createDebug.humanize = require_ms();
                Object.keys(env).forEach(function(key) {
                    createDebug[key] = env[key];
                });
                createDebug.instances = [];
                createDebug.names = [];
                createDebug.skips = [];
                createDebug.formatters = {};
                function selectColor(namespace) {
                    var hash = 0;
                    for(var i = 0; i < namespace.length; i++){
                        hash = (hash << 5) - hash + namespace.charCodeAt(i);
                        hash |= 0;
                    }
                    return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
                }
                createDebug.selectColor = selectColor;
                function createDebug(namespace) {
                    var prevTime;
                    function debug4() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        if (!debug4.enabled) {
                            return;
                        }
                        var self2 = debug4;
                        var curr = Number(/* @__PURE__ */ new Date());
                        var ms = curr - (prevTime || curr);
                        self2.diff = ms;
                        self2.prev = prevTime;
                        self2.curr = curr;
                        prevTime = curr;
                        args[0] = createDebug.coerce(args[0]);
                        if (typeof args[0] !== "string") {
                            args.unshift("%O");
                        }
                        var index = 0;
                        args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
                            if (match === "%%") {
                                return match;
                            }
                            index++;
                            var formatter = createDebug.formatters[format];
                            if (typeof formatter === "function") {
                                var val = args[index];
                                match = formatter.call(self2, val);
                                args.splice(index, 1);
                                index--;
                            }
                            return match;
                        });
                        createDebug.formatArgs.call(self2, args);
                        var logFn = self2.log || createDebug.log;
                        logFn.apply(self2, args);
                    }
                    debug4.namespace = namespace;
                    debug4.enabled = createDebug.enabled(namespace);
                    debug4.useColors = createDebug.useColors();
                    debug4.color = selectColor(namespace);
                    debug4.destroy = destroy;
                    debug4.extend = extend;
                    if (typeof createDebug.init === "function") {
                        createDebug.init(debug4);
                    }
                    createDebug.instances.push(debug4);
                    return debug4;
                }
                function destroy() {
                    var index = createDebug.instances.indexOf(this);
                    if (index !== -1) {
                        createDebug.instances.splice(index, 1);
                        return true;
                    }
                    return false;
                }
                function extend(namespace, delimiter) {
                    var newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
                    newDebug.log = this.log;
                    return newDebug;
                }
                function enable(namespaces) {
                    createDebug.save(namespaces);
                    createDebug.names = [];
                    createDebug.skips = [];
                    var i;
                    var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
                    var len = split.length;
                    for(i = 0; i < len; i++){
                        if (!split[i]) {
                            continue;
                        }
                        namespaces = split[i].replace(/\*/g, ".*?");
                        if (namespaces[0] === "-") {
                            createDebug.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
                        } else {
                            createDebug.names.push(new RegExp("^" + namespaces + "$"));
                        }
                    }
                    for(i = 0; i < createDebug.instances.length; i++){
                        var instance = createDebug.instances[i];
                        instance.enabled = createDebug.enabled(instance.namespace);
                    }
                }
                function disable() {
                    var namespaces = _to_consumable_array(createDebug.names.map(toNamespace)).concat(_to_consumable_array(createDebug.skips.map(toNamespace).map(function(namespace) {
                        return "-" + namespace;
                    }))).join(",");
                    createDebug.enable("");
                    return namespaces;
                }
                function enabled(name) {
                    if (name[name.length - 1] === "*") {
                        return true;
                    }
                    var i;
                    var len;
                    for(i = 0, len = createDebug.skips.length; i < len; i++){
                        if (createDebug.skips[i].test(name)) {
                            return false;
                        }
                    }
                    for(i = 0, len = createDebug.names.length; i < len; i++){
                        if (createDebug.names[i].test(name)) {
                            return true;
                        }
                    }
                    return false;
                }
                function toNamespace(regexp) {
                    return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
                }
                function coerce(val) {
                    if (val instanceof Error) {
                        return val.stack || val.message;
                    }
                    return val;
                }
                createDebug.enable(createDebug.load());
                return createDebug;
            }
            module.exports = setup;
        }
    });
    // node_modules/debug/src/browser.js
    var require_browser23 = __commonJS({
        "node_modules/debug/src/browser.js": function(exports, module) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            exports.log = log;
            exports.formatArgs = formatArgs;
            exports.save = save;
            exports.load = load;
            exports.useColors = useColors;
            exports.storage = localstorage();
            exports.colors = [
                "#0000CC",
                "#0000FF",
                "#0033CC",
                "#0033FF",
                "#0066CC",
                "#0066FF",
                "#0099CC",
                "#0099FF",
                "#00CC00",
                "#00CC33",
                "#00CC66",
                "#00CC99",
                "#00CCCC",
                "#00CCFF",
                "#3300CC",
                "#3300FF",
                "#3333CC",
                "#3333FF",
                "#3366CC",
                "#3366FF",
                "#3399CC",
                "#3399FF",
                "#33CC00",
                "#33CC33",
                "#33CC66",
                "#33CC99",
                "#33CCCC",
                "#33CCFF",
                "#6600CC",
                "#6600FF",
                "#6633CC",
                "#6633FF",
                "#66CC00",
                "#66CC33",
                "#9900CC",
                "#9900FF",
                "#9933CC",
                "#9933FF",
                "#99CC00",
                "#99CC33",
                "#CC0000",
                "#CC0033",
                "#CC0066",
                "#CC0099",
                "#CC00CC",
                "#CC00FF",
                "#CC3300",
                "#CC3333",
                "#CC3366",
                "#CC3399",
                "#CC33CC",
                "#CC33FF",
                "#CC6600",
                "#CC6633",
                "#CC9900",
                "#CC9933",
                "#CCCC00",
                "#CCCC33",
                "#FF0000",
                "#FF0033",
                "#FF0066",
                "#FF0099",
                "#FF00CC",
                "#FF00FF",
                "#FF3300",
                "#FF3333",
                "#FF3366",
                "#FF3399",
                "#FF33CC",
                "#FF33FF",
                "#FF6600",
                "#FF6633",
                "#FF9900",
                "#FF9933",
                "#FFCC00",
                "#FFCC33"
            ];
            function useColors() {
                if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
                    return true;
                }
                if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
                    return false;
                }
                return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
                typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
                // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
                typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
                typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
            }
            function formatArgs(args) {
                args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
                if (!this.useColors) {
                    return;
                }
                var c = "color: " + this.color;
                args.splice(1, 0, c, "color: inherit");
                var index = 0;
                var lastC = 0;
                args[0].replace(/%[a-zA-Z%]/g, function(match) {
                    if (match === "%%") {
                        return;
                    }
                    index++;
                    if (match === "%c") {
                        lastC = index;
                    }
                });
                args.splice(lastC, 0, c);
            }
            function log() {
                for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                    args[_key] = arguments[_key];
                }
                var _console;
                return (typeof console === "undefined" ? "undefined" : _type_of(console)) === "object" && console.log && (_console = console).log.apply(_console, _to_consumable_array(args));
            }
            function save(namespaces) {
                try {
                    if (namespaces) {
                        exports.storage.setItem("debug", namespaces);
                    } else {
                        exports.storage.removeItem("debug");
                    }
                } catch (error) {}
            }
            function load() {
                var r;
                try {
                    r = exports.storage.getItem("debug");
                } catch (error) {}
                if (!r && typeof process !== "undefined" && "env" in process) {
                    r = process.env.DEBUG;
                }
                return r;
            }
            function localstorage() {
                try {
                    return localStorage;
                } catch (error) {}
            }
            module.exports = require_common6()(exports);
            var formatters = module.exports.formatters;
            formatters.j = function(v) {
                try {
                    return JSON.stringify(v);
                } catch (error) {
                    return "[UnexpectedJSONParseError]: " + error.message;
                }
            };
        }
    });
    var import_debug, debug2, WebosNativeMdc;
    var init_WebosNativeMdc = __esm({
        "src/NativeCommands/WebosNativeMdc.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_managementServiceUrl();
            import_debug = __toESM(require_browser23());
            debug2 = (0, import_debug["default"])("@signageos/display-webos:NativeCommands:WebosNativeMdc");
            WebosNativeMdc = /*#__PURE__*/ function() {
                "use strict";
                function WebosNativeMdc(webosService) {
                    _class_call_check(this, WebosNativeMdc);
                    this.webosService = webosService;
                }
                _create_class(WebosNativeMdc, [
                    {
                        key: "sendOne",
                        value: function sendOne(ipAddress, command, data) {
                            return __async(this, null, function() {
                                var _this, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    debug2("[MDC] sendOne request", JSON.stringify({
                                                        ipAddress: ipAddress,
                                                        command: command,
                                                        data: data
                                                    }));
                                                    _this.webosService.request(MANAGEMENT_SERVICE_URL, {
                                                        method: "sendMDC",
                                                        parameters: {
                                                            ip: ipAddress,
                                                            command: command,
                                                            monitorId: 1,
                                                            data: data
                                                        },
                                                        onComplete: function(response) {
                                                            var _a2;
                                                            debug2("[MDC] sendOne Luna response", JSON.stringify(response));
                                                            if ("errorCode" in response) {
                                                                debug2("[MDC] sendOne error response from service");
                                                                resolve({
                                                                    type: "NACK",
                                                                    commandType: command,
                                                                    result: String((_a2 = response.errorText) != null ? _a2 : "")
                                                                });
                                                                return;
                                                            }
                                                            var mdcResult = extractMdcResponse(response);
                                                            if (mdcResult) {
                                                                debug2("[MDC] sendOne resolved", JSON.stringify(mdcResult));
                                                                resolve(mdcResult);
                                                            } else {
                                                                console.error("[MDC] sendOne: mdcResponse missing from Luna response");
                                                                resolve({
                                                                    type: "NACK",
                                                                    commandType: command,
                                                                    result: "Missing mdcResponse in Luna return value"
                                                                });
                                                            }
                                                        },
                                                        onFailure: function(error) {
                                                            console.error("[MDC] sendOne Luna failure", error);
                                                            reject(error);
                                                        }
                                                    });
                                                })
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            console.error("[MDC] sendOne error", error);
                                            return [
                                                2,
                                                {
                                                    type: "NACK",
                                                    commandType: command,
                                                    result: error instanceof Error ? error.message : String(error)
                                                }
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "sendOneRaw",
                        value: function sendOneRaw(ipAddress, data) {
                            return __async(this, null, function() {
                                var _this, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    debug2("[MDC] sendOneRaw request", JSON.stringify({
                                                        ipAddress: ipAddress,
                                                        data: data
                                                    }));
                                                    _this.webosService.request(MANAGEMENT_SERVICE_URL, {
                                                        method: "sendMDCRaw",
                                                        parameters: {
                                                            ip: ipAddress,
                                                            data: data
                                                        },
                                                        onComplete: function(response) {
                                                            var _a2;
                                                            debug2("[MDC] sendOneRaw Luna response", JSON.stringify(response));
                                                            if ("errorCode" in response) {
                                                                debug2("[MDC] sendOneRaw error response from service");
                                                                resolve({
                                                                    type: "NACK",
                                                                    commandType: 0,
                                                                    result: String((_a2 = response.errorText) != null ? _a2 : "")
                                                                });
                                                                return;
                                                            }
                                                            var mdcResult = extractMdcResponse(response);
                                                            if (mdcResult) {
                                                                debug2("[MDC] sendOneRaw resolved", JSON.stringify(mdcResult));
                                                                resolve(mdcResult);
                                                            } else {
                                                                console.error("[MDC] sendOneRaw: mdcResponse missing from Luna response");
                                                                resolve({
                                                                    type: "NACK",
                                                                    commandType: 0,
                                                                    result: "Missing mdcResponse in Luna return value"
                                                                });
                                                            }
                                                        },
                                                        onFailure: function(error) {
                                                            console.error("[MDC] sendOneRaw Luna failure", error);
                                                            reject(error);
                                                        }
                                                    });
                                                })
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            console.error("[MDC] sendOneRaw error", error);
                                            return [
                                                2,
                                                {
                                                    type: "NACK",
                                                    commandType: 0,
                                                    result: error instanceof Error ? error.message : String(error)
                                                }
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return WebosNativeMdc;
            }();
        }
    });
    // node_modules/@signageos/front-display/es6/Input/ProprietaryInput.js
    var require_ProprietaryInput = __commonJS({
        "node_modules/@signageos/front-display/es6/Input/ProprietaryInput.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.ProprietaryInput = void 0;
            var debug_1 = __importDefault(require_browser2());
            var debug4 = (0, debug_1["default"])("@signageos/front-display:Input:ProprietaryInput");
            var ProprietaryInput2 = /*#__PURE__*/ function() {
                function ProprietaryInput2(window2) {
                    _class_call_check(this, ProprietaryInput2);
                    this.window = window2;
                }
                _create_class(ProprietaryInput2, [
                    {
                        key: "dispatchEvent",
                        value: function dispatchEvent(event) {
                            return __awaiter(this, void 0, void 0, function() {
                                var view, element, effective;
                                return _ts_generator(this, function(_state) {
                                    debug4("dispatchEvent", {
                                        event: event
                                    });
                                    if (isMouseEventPayload(event)) {
                                        view = this.window;
                                        element = this.window.document.elementFromPoint(event.x, event.y);
                                        while(isHTMLIframeElement(element) && element.contentWindow){
                                            event = Object.assign(Object.assign({}, event), {
                                                x: event.x - element.offsetLeft,
                                                y: event.y - element.offsetTop
                                            });
                                            view = element.contentWindow;
                                            element = element.contentWindow.document.elementFromPoint(event.x, event.y);
                                        }
                                        effective = element === null || element === void 0 ? void 0 : element.dispatchEvent(new MouseEvent(event.type, {
                                            view: view,
                                            bubbles: true,
                                            cancelable: true,
                                            clientX: event.x,
                                            clientY: event.y
                                        }));
                                        debug4("dispatchEvent", {
                                            event: event,
                                            effective: effective
                                        });
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return ProprietaryInput2;
            }();
            exports.ProprietaryInput = ProprietaryInput2;
            function isHTMLIframeElement(element) {
                return (element === null || element === void 0 ? void 0 : element.tagName) === "IFRAME";
            }
            function isMouseEventPayload(event) {
                return "type" in event && typeof event.type === "string" && "x" in event && typeof event.x === "number" && "y" in event && typeof event.y === "number";
            }
        }
    });
    // node_modules/@signageos/common-types/dist/Device/RemoteDesktop/messages.js
    var require_messages2 = __commonJS({
        "node_modules/@signageos/common-types/dist/Device/RemoteDesktop/messages.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.KeyEventTypes = exports.ButtonEventTypes = exports.MouseEventTypes = exports.FromBrowserMessages = exports.FromDeviceMessages = exports.Message = void 0;
            var Message;
            (function(Message2) {
                Message2["ScreenshotRecorded"] = "ScreenshotRecorded";
                Message2["MouseEvent"] = "MouseEvent";
                Message2["KeyEvent"] = "KeyEvent";
                Message2["ButtonEvent"] = "ButtonEvent";
                Message2["BrowserConnected"] = "BrowserConnected";
                Message2["BrowserDisconnected"] = "BrowserDisconnected";
                Message2["DeviceConnected"] = "DeviceConnected";
                Message2["DeviceDisconnected"] = "DeviceDisconnected";
            })(Message || (exports.Message = Message = {}));
            exports.FromDeviceMessages = [
                Message.ScreenshotRecorded
            ];
            exports.FromBrowserMessages = [
                Message.MouseEvent,
                Message.KeyEvent,
                Message.ButtonEvent
            ];
            exports.MouseEventTypes = [
                "mousedown",
                "mouseup",
                "click",
                "dblclick",
                "mousemove",
                "cancel"
            ];
            exports.ButtonEventTypes = [
                "up",
                "down",
                "left",
                "right",
                "back",
                "home",
                "recentapps",
                "accept"
            ];
            exports.KeyEventTypes = [
                "down",
                "up"
            ];
        }
    });
    // src/Input/WebosInput.ts
    var import_ProprietaryInput, import_messages, WebosInput;
    var init_WebosInput = __esm({
        "src/Input/WebosInput.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ProprietaryInput = __toESM(require_ProprietaryInput());
            import_messages = __toESM(require_messages2());
            WebosInput = /*#__PURE__*/ function() {
                "use strict";
                function WebosInput(nativeCommands, window2) {
                    _class_call_check(this, WebosInput);
                    this.nativeCommands = nativeCommands;
                    this.window = window2;
                    __publicField(this, "defaultInput");
                    this.defaultInput = new import_ProprietaryInput.ProprietaryInput(this.window);
                }
                _create_class(WebosInput, [
                    {
                        key: "dispatchEvent",
                        value: function dispatchEvent(event) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.isButtonEventPayload(event)) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.handleButtons(event)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 2:
                                            if (!this.isMouseEventPayload(event)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.defaultInput.dispatchEvent(event)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isButtonEventPayload",
                        value: function isButtonEventPayload(event) {
                            return import_messages.ButtonEventTypes.includes(event.type);
                        }
                    },
                    {
                        key: "isMouseEventPayload",
                        value: function isMouseEventPayload(event) {
                            return import_messages.MouseEventTypes.includes(event.type);
                        }
                    },
                    {
                        key: "handleButtons",
                        value: function handleButtons(buttonEvent) {
                            return __async(this, null, function() {
                                var eventKeyCodeMap, keyCode;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            eventKeyCodeMap = {
                                                home: "43",
                                                back: "28",
                                                down: "41",
                                                up: "40",
                                                left: "07",
                                                right: "06",
                                                accept: "44",
                                                recentapps: "0b"
                                            };
                                            keyCode = eventKeyCodeMap[buttonEvent.type];
                                            if (!keyCode) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.nativeCommands.nmc.sendOne("127.0.0.1", [
                                                    "m",
                                                    "c"
                                                ], [
                                                    keyCode
                                                ])
                                            ];
                                        case 1:
                                            _state.sent();
                                            _state.label = 2;
                                        case 2:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return WebosInput;
            }();
        }
    });
    // src/Driver/ManagementDriver/SCAPv15ManagementDriver.ts
    var import_Orientation3, import_VideoOrientation2, import_ManagementCapability2, SCAPv15ManagementDriver;
    var init_SCAPv15ManagementDriver = __esm({
        "src/Driver/ManagementDriver/SCAPv15ManagementDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_Orientation3 = __toESM(require_Orientation());
            import_VideoOrientation2 = __toESM(require_VideoOrientation());
            import_ManagementCapability2 = __toESM(require_ManagementCapability());
            init_SCAPv13ManagementDriver();
            init_orientations();
            init_SCAPv12ManagementDriver();
            init_WebosNativeCommands();
            init_WebosNativeMdc();
            init_WebosInput();
            SCAPv15ManagementDriver = /*#__PURE__*/ function(SCAPv13ManagementDriver) {
                "use strict";
                _inherits(_SCAPv15ManagementDriver, SCAPv13ManagementDriver);
                var _super = _create_super(_SCAPv15ManagementDriver);
                function _SCAPv15ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl) {
                    _class_call_check(this, _SCAPv15ManagementDriver);
                    var _this;
                    _this = _super.call(this, window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                    _this.scap = scap;
                    _this.nativeCommands = {
                        mdc: new WebosNativeMdc(_this.window.webOS.service),
                        nmc: new WebosNativeCommands(_this.window.webOS.service)
                    };
                    _this.input = new WebosInput(_this.nativeCommands, _this.window);
                    return _this;
                }
                _create_class(_SCAPv15ManagementDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv15";
                        }
                    },
                    {
                        key: "managementSupports",
                        value: function managementSupports(capability) {
                            return __async(this, null, function() {
                                var timeManagerSupports;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                SCAPv12ManagementDriver.timeManagerSupports(this.timeManager, capability)
                                            ];
                                        case 1:
                                            timeManagerSupports = _state.sent();
                                            if (timeManagerSupports !== null) {
                                                return [
                                                    2,
                                                    timeManagerSupports
                                                ];
                                            }
                                            switch(capability){
                                                case import_ManagementCapability2["default"].PROXY:
                                                case import_ManagementCapability2["default"].REMOTE_DESKTOP:
                                                case import_ManagementCapability2["default"].NATIVE_COMMANDS_NMC:
                                                case import_ManagementCapability2["default"].NATIVE_COMMANDS_MDC:
                                                case import_ManagementCapability2["default"].SEND_UDP:
                                                    return [
                                                        2,
                                                        true
                                                    ];
                                                default:
                                                    return [
                                                        2,
                                                        __superGet(_SCAPv15ManagementDriver.prototype, this, "managementSupports").call(this, capability)
                                                    ];
                                            }
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setOrientation",
                        value: function setOrientation(_baseUrl, orientation, videoOrientation) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            validateOrientation(orientation);
                                            console.log("Setting orientation to", orientation, "with video orientation", videoOrientation);
                                            if (!(typeof videoOrientation === "undefined")) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.setNativeOrientation(orientation)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 2:
                                            return [
                                                4,
                                                this.setFakeOrientation(orientation, videoOrientation)
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                2,
                                                function() {
                                                    return _this.systemReboot();
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getCurrentOrientation",
                        value: function getCurrentOrientation() {
                            return __async(this, null, function() {
                                var contentOrientation, videoOrientation, nativePortrait;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.settingsManager.getOrientation()
                                            ];
                                        case 1:
                                            contentOrientation = _state.sent();
                                            return [
                                                4,
                                                this.settingsManager.getVideoOrientation()
                                            ];
                                        case 2:
                                            videoOrientation = _state.sent();
                                            if (!videoOrientation) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                2,
                                                this.getFakeContentOrientation(contentOrientation, videoOrientation)
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                this.getNativePortraitModeAsync()
                                            ];
                                        case 4:
                                            nativePortrait = _state.sent().nativePortrait;
                                            return [
                                                2,
                                                nativePortraitToOrientation(nativePortrait)
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "appRestart",
                        value: function appRestart() {
                            return __async(this, null, function() {
                                var successCb, errorCb;
                                return _ts_generator(this, function(_state) {
                                    successCb = function(cbObject) {
                                        console.info("appRestart", cbObject);
                                    };
                                    errorCb = function(cbObject) {
                                        console.error(new Error("Error during appRestart: " + cbObject.errorText));
                                    };
                                    this.scap.configuration.restartApplication(successCb, errorCb);
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "startup",
                        value: function startup() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                __superGet(_SCAPv15ManagementDriver.prototype, this, "startup").call(this)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.setScreenPMMode()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setNativePortraitModeAsync",
                        value: function setNativePortraitModeAsync(options) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.custom.Configuration.setNativePortraitMode(function() {
                                                return resolve();
                                            }, function(cbObject) {
                                                return reject(new Error("Error during setNativePortraitMode: " + cbObject.errorText));
                                            }, options);
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getNativePortraitModeAsync",
                        value: function getNativePortraitModeAsync() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.custom.Configuration.getNativePortraitMode(function(cbObject) {
                                                return resolve(cbObject);
                                            }, function(cbObject) {
                                                return reject(new Error("Error during getNativePortraitMode: " + cbObject.errorText));
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setMirrorModeAsync",
                        value: function setMirrorModeAsync(options) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.signage.setMirrorMode(function() {
                                                return resolve();
                                            }, function(cbObject) {
                                                return reject(new Error("Error during setMirrorMode: " + cbObject.errorText));
                                            }, options);
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setScreenPMMode",
                        value: function setScreenPMMode() {
                            return __async(this, null, function() {
                                var _this, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    try {
                                                        _this.scap.power.setPMMode(function() {
                                                            return resolve();
                                                        }, function(cbObject) {
                                                            return reject(new Error("Error during setScreenPMMode signage: " + cbObject.errorText));
                                                        }, {
                                                            mode: window.Power.PMMode.NetworkReady
                                                        });
                                                    } catch (error) {
                                                        reject(error);
                                                    }
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            console.error("setScreenPMMode failed", error);
                                            return [
                                                3,
                                                4
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setNativeOrientation",
                        value: function setNativeOrientation(orientation) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.configureNativeRotationInSystem(orientation)
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.settingsManager.setOrientation(import_Orientation3["default"].LANDSCAPE);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setFakeOrientation",
                        value: function setFakeOrientation(orientation, videoOrientation) {
                            return __async(this, null, function() {
                                var fakeContentOrientation;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.configureNativeRotationInSystem(import_Orientation3["default"].LANDSCAPE)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.configureVideoRotationInSystem(videoOrientation)
                                            ];
                                        case 2:
                                            _state.sent();
                                            fakeContentOrientation = this.getFakeContentOrientation(orientation, videoOrientation);
                                            this.settingsManager.setOrientation(fakeContentOrientation, videoOrientation);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "configureNativeRotationInSystem",
                        value: function configureNativeRotationInSystem(orientation) {
                            var nativePortrait = orientationToNativePortrait(orientation);
                            return this.setNativePortraitModeAsync({
                                nativePortrait: nativePortrait
                            });
                        }
                    },
                    {
                        key: "configureVideoRotationInSystem",
                        value: function configureVideoRotationInSystem(orientation) {
                            var mirrorModeSetting;
                            switch(orientation){
                                case import_VideoOrientation2["default"].LANDSCAPE:
                                    mirrorModeSetting = "off";
                                    break;
                                case import_VideoOrientation2["default"].LANDSCAPE_FLIPPED:
                                    mirrorModeSetting = "on";
                                    break;
                                default:
                                    throw new Error("Invalid video orientation");
                            }
                            return this.setMirrorModeAsync({
                                mode: mirrorModeSetting
                            });
                        }
                    },
                    {
                        key: "getFakeContentOrientation",
                        value: function getFakeContentOrientation(orientation, videoOrientation) {
                            if (videoOrientation === import_VideoOrientation2["default"].LANDSCAPE_FLIPPED) {
                                return flippedOrientation(orientation);
                            } else {
                                return orientation;
                            }
                        }
                    }
                ]);
                return _SCAPv15ManagementDriver;
            }(SCAPv13ManagementDriver);
        }
    });
    // src/Driver/TimeManager/SCAPv16TimeManager.ts
    var SCAPv16TimeManager;
    var init_SCAPv16TimeManager = __esm({
        "src/Driver/TimeManager/SCAPv16TimeManager.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv13TimeManager();
            SCAPv16TimeManager = /*#__PURE__*/ function(SCAPv13TimeManager) {
                "use strict";
                _inherits(SCAPv16TimeManager, SCAPv13TimeManager);
                var _super = _create_super(SCAPv16TimeManager);
                function SCAPv16TimeManager() {
                    _class_call_check(this, SCAPv16TimeManager);
                    return _super.apply(this, arguments);
                }
                _create_class(SCAPv16TimeManager, [
                    {
                        key: "canGetNtpServer",
                        value: function canGetNtpServer() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        true
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getNtpServer",
                        value: function getNtpServer() {
                            return __async(this, null, function() {
                                var ntpServerAddress;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getCurrentTimeAndNTPServer()
                                            ];
                                        case 1:
                                            ntpServerAddress = _state.sent().ntpServerAddress;
                                            return [
                                                2,
                                                ntpServerAddress
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setAuto",
                        value: function setAuto(ntpServer, zone) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.setNTPServer(ntpServer)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.setZoneId(zone)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                this.restartCallback
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setCurrentTimeAndOptionalNTP",
                        value: function setCurrentTimeAndOptionalNTP(options) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                _this.scap.configuration.setCurrentTime(function() {
                                    return resolve();
                                }, function(cbObject) {
                                    return reject(_this.mapScapErrorToError(cbObject));
                                }, options);
                            });
                        }
                    },
                    {
                        key: "setNTPServer",
                        value: function setNTPServer(ntpServerAddress) {
                            return __async(this, null, function() {
                                var originalTimeWithNTP;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getCurrentTimeAndNTPServer()
                                            ];
                                        case 1:
                                            originalTimeWithNTP = _state.sent();
                                            return [
                                                4,
                                                this.setCurrentTimeAndOptionalNTP(__spreadProps(__spreadValues({}, originalTimeWithNTP), {
                                                    ntp: true,
                                                    ntpServerAddress: ntpServerAddress
                                                }))
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getCurrentTimeAndNTPServer",
                        value: function getCurrentTimeAndNTPServer() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.scap.configuration.getCurrentTime(function(cbObject) {
                                                return resolve(cbObject);
                                            }, function(cbObject) {
                                                return reject(_this.mapScapErrorToError(cbObject));
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return SCAPv16TimeManager;
            }(SCAPv13TimeManager);
        }
    });
    // node_modules/jose/dist/browser/runtime/webcrypto.js
    var webcrypto_default, isCryptoKey;
    var init_webcrypto = __esm({
        "node_modules/jose/dist/browser/runtime/webcrypto.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            webcrypto_default = crypto;
            isCryptoKey = function(key) {
                return key instanceof CryptoKey;
            };
        }
    });
    // node_modules/jose/dist/browser/runtime/digest.js
    var digest, digest_default;
    var init_digest = __esm({
        "node_modules/jose/dist/browser/runtime/digest.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            digest = function(algorithm, data) {
                return __async(void 0, null, function() {
                    var subtleDigest, _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                subtleDigest = "SHA-".concat(algorithm.slice(-3));
                                _ = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.digest(subtleDigest, data)
                                ];
                            case 1:
                                return [
                                    2,
                                    new (_.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                        }
                    });
                });
            };
            digest_default = digest;
        }
    });
    var encoder, decoder, MAX_INT32;
    var init_buffer_utils = __esm({
        "node_modules/jose/dist/browser/lib/buffer_utils.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_digest();
            encoder = new TextEncoder();
            decoder = new TextDecoder();
            MAX_INT32 = __pow(2, 32);
        }
    });
    // node_modules/jose/dist/browser/runtime/base64url.js
    var encodeBase64, encode, decodeBase64, decode;
    var init_base64url = __esm({
        "node_modules/jose/dist/browser/runtime/base64url.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_buffer_utils();
            encodeBase64 = function(input) {
                var unencoded = input;
                if (typeof unencoded === "string") {
                    unencoded = encoder.encode(unencoded);
                }
                var CHUNK_SIZE = 32768;
                var arr = [];
                for(var i = 0; i < unencoded.length; i += CHUNK_SIZE){
                    arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));
                }
                return btoa(arr.join(""));
            };
            encode = function(input) {
                return encodeBase64(input).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
            };
            decodeBase64 = function(encoded) {
                var binary = atob(encoded);
                var bytes = new Uint8Array(binary.length);
                for(var i = 0; i < binary.length; i++){
                    bytes[i] = binary.charCodeAt(i);
                }
                return bytes;
            };
            decode = function(input) {
                var encoded = input;
                if (encoded instanceof Uint8Array) {
                    encoded = decoder.decode(encoded);
                }
                encoded = encoded.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
                try {
                    return decodeBase64(encoded);
                } catch (e) {
                    throw new TypeError("The input to be decoded is not correctly encoded.");
                }
            };
        }
    });
    // node_modules/jose/dist/browser/util/errors.js
    var errors_exports = {};
    __export(errors_exports, {
        JOSEAlgNotAllowed: function() {
            return JOSEAlgNotAllowed;
        },
        JOSEError: function() {
            return JOSEError;
        },
        JOSENotSupported: function() {
            return JOSENotSupported;
        },
        JWEDecryptionFailed: function() {
            return JWEDecryptionFailed;
        },
        JWEInvalid: function() {
            return JWEInvalid;
        },
        JWKInvalid: function() {
            return JWKInvalid;
        },
        JWKSInvalid: function() {
            return JWKSInvalid;
        },
        JWKSMultipleMatchingKeys: function() {
            return JWKSMultipleMatchingKeys;
        },
        JWKSNoMatchingKey: function() {
            return JWKSNoMatchingKey;
        },
        JWKSTimeout: function() {
            return JWKSTimeout;
        },
        JWSInvalid: function() {
            return JWSInvalid;
        },
        JWSSignatureVerificationFailed: function() {
            return JWSSignatureVerificationFailed;
        },
        JWTClaimValidationFailed: function() {
            return JWTClaimValidationFailed;
        },
        JWTExpired: function() {
            return JWTExpired;
        },
        JWTInvalid: function() {
            return JWTInvalid;
        }
    });
    var JOSEError, JWTClaimValidationFailed, JWTExpired, JOSEAlgNotAllowed, JOSENotSupported, JWEDecryptionFailed, JWEInvalid, JWSInvalid, JWTInvalid, JWKInvalid, JWKSInvalid, JWKSNoMatchingKey, JWKSMultipleMatchingKeys, JWKSTimeout, JWSSignatureVerificationFailed;
    var init_errors = __esm({
        "node_modules/jose/dist/browser/util/errors.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            JOSEError = /*#__PURE__*/ function(Error1) {
                "use strict";
                _inherits(JOSEError, Error1);
                var _super = _create_super(JOSEError);
                function JOSEError(message2, options) {
                    _class_call_check(this, JOSEError);
                    var _this;
                    var _a2;
                    _this = _super.call(this, message2, options);
                    _this.code = "ERR_JOSE_GENERIC";
                    _this.name = _this.constructor.name;
                    (_a2 = Error.captureStackTrace) == null ? void 0 : _a2.call(Error, _assert_this_initialized(_this), _this.constructor);
                    return _this;
                }
                return JOSEError;
            }(_wrap_native_super(Error));
            JOSEError.code = "ERR_JOSE_GENERIC";
            JWTClaimValidationFailed = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWTClaimValidationFailed, JOSEError);
                var _super = _create_super(JWTClaimValidationFailed);
                function JWTClaimValidationFailed(message2, payload) {
                    var claim = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "unspecified", reason = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "unspecified";
                    _class_call_check(this, JWTClaimValidationFailed);
                    var _this;
                    _this = _super.call(this, message2, {
                        cause: {
                            claim: claim,
                            reason: reason,
                            payload: payload
                        }
                    });
                    _this.code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
                    _this.claim = claim;
                    _this.reason = reason;
                    _this.payload = payload;
                    return _this;
                }
                return JWTClaimValidationFailed;
            }(JOSEError);
            JWTClaimValidationFailed.code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
            JWTExpired = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWTExpired, JOSEError);
                var _super = _create_super(JWTExpired);
                function JWTExpired(message2, payload) {
                    var claim = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "unspecified", reason = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "unspecified";
                    _class_call_check(this, JWTExpired);
                    var _this;
                    _this = _super.call(this, message2, {
                        cause: {
                            claim: claim,
                            reason: reason,
                            payload: payload
                        }
                    });
                    _this.code = "ERR_JWT_EXPIRED";
                    _this.claim = claim;
                    _this.reason = reason;
                    _this.payload = payload;
                    return _this;
                }
                return JWTExpired;
            }(JOSEError);
            JWTExpired.code = "ERR_JWT_EXPIRED";
            JOSEAlgNotAllowed = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JOSEAlgNotAllowed, JOSEError);
                var _super = _create_super(JOSEAlgNotAllowed);
                function JOSEAlgNotAllowed() {
                    _class_call_check(this, JOSEAlgNotAllowed);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JOSE_ALG_NOT_ALLOWED";
                    return _this;
                }
                return JOSEAlgNotAllowed;
            }(JOSEError);
            JOSEAlgNotAllowed.code = "ERR_JOSE_ALG_NOT_ALLOWED";
            JOSENotSupported = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JOSENotSupported, JOSEError);
                var _super = _create_super(JOSENotSupported);
                function JOSENotSupported() {
                    _class_call_check(this, JOSENotSupported);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JOSE_NOT_SUPPORTED";
                    return _this;
                }
                return JOSENotSupported;
            }(JOSEError);
            JOSENotSupported.code = "ERR_JOSE_NOT_SUPPORTED";
            JWEDecryptionFailed = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWEDecryptionFailed, JOSEError);
                var _super = _create_super(JWEDecryptionFailed);
                function JWEDecryptionFailed() {
                    var message2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "decryption operation failed", options = arguments.length > 1 ? arguments[1] : void 0;
                    _class_call_check(this, JWEDecryptionFailed);
                    var _this;
                    _this = _super.call(this, message2, options);
                    _this.code = "ERR_JWE_DECRYPTION_FAILED";
                    return _this;
                }
                return JWEDecryptionFailed;
            }(JOSEError);
            JWEDecryptionFailed.code = "ERR_JWE_DECRYPTION_FAILED";
            JWEInvalid = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWEInvalid, JOSEError);
                var _super = _create_super(JWEInvalid);
                function JWEInvalid() {
                    _class_call_check(this, JWEInvalid);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JWE_INVALID";
                    return _this;
                }
                return JWEInvalid;
            }(JOSEError);
            JWEInvalid.code = "ERR_JWE_INVALID";
            JWSInvalid = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWSInvalid, JOSEError);
                var _super = _create_super(JWSInvalid);
                function JWSInvalid() {
                    _class_call_check(this, JWSInvalid);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JWS_INVALID";
                    return _this;
                }
                return JWSInvalid;
            }(JOSEError);
            JWSInvalid.code = "ERR_JWS_INVALID";
            JWTInvalid = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWTInvalid, JOSEError);
                var _super = _create_super(JWTInvalid);
                function JWTInvalid() {
                    _class_call_check(this, JWTInvalid);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JWT_INVALID";
                    return _this;
                }
                return JWTInvalid;
            }(JOSEError);
            JWTInvalid.code = "ERR_JWT_INVALID";
            JWKInvalid = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWKInvalid, JOSEError);
                var _super = _create_super(JWKInvalid);
                function JWKInvalid() {
                    _class_call_check(this, JWKInvalid);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JWK_INVALID";
                    return _this;
                }
                return JWKInvalid;
            }(JOSEError);
            JWKInvalid.code = "ERR_JWK_INVALID";
            JWKSInvalid = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWKSInvalid, JOSEError);
                var _super = _create_super(JWKSInvalid);
                function JWKSInvalid() {
                    _class_call_check(this, JWKSInvalid);
                    var _this;
                    _this = _super.call.apply(_super, [
                        this
                    ].concat(Array.prototype.slice.call(arguments)));
                    _this.code = "ERR_JWKS_INVALID";
                    return _this;
                }
                return JWKSInvalid;
            }(JOSEError);
            JWKSInvalid.code = "ERR_JWKS_INVALID";
            JWKSNoMatchingKey = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWKSNoMatchingKey, JOSEError);
                var _super = _create_super(JWKSNoMatchingKey);
                function JWKSNoMatchingKey() {
                    var message2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "no applicable key found in the JSON Web Key Set", options = arguments.length > 1 ? arguments[1] : void 0;
                    _class_call_check(this, JWKSNoMatchingKey);
                    var _this;
                    _this = _super.call(this, message2, options);
                    _this.code = "ERR_JWKS_NO_MATCHING_KEY";
                    return _this;
                }
                return JWKSNoMatchingKey;
            }(JOSEError);
            JWKSNoMatchingKey.code = "ERR_JWKS_NO_MATCHING_KEY";
            JWKSMultipleMatchingKeys = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWKSMultipleMatchingKeys, JOSEError);
                var _super = _create_super(JWKSMultipleMatchingKeys);
                function JWKSMultipleMatchingKeys() {
                    var message2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "multiple matching keys found in the JSON Web Key Set", options = arguments.length > 1 ? arguments[1] : void 0;
                    _class_call_check(this, JWKSMultipleMatchingKeys);
                    var _this;
                    _this = _super.call(this, message2, options);
                    _this.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
                    return _this;
                }
                return JWKSMultipleMatchingKeys;
            }(JOSEError);
            JWKSMultipleMatchingKeys.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
            JWKSTimeout = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWKSTimeout, JOSEError);
                var _super = _create_super(JWKSTimeout);
                function JWKSTimeout() {
                    var message2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "request timed out", options = arguments.length > 1 ? arguments[1] : void 0;
                    _class_call_check(this, JWKSTimeout);
                    var _this;
                    _this = _super.call(this, message2, options);
                    _this.code = "ERR_JWKS_TIMEOUT";
                    return _this;
                }
                return JWKSTimeout;
            }(JOSEError);
            JWKSTimeout.code = "ERR_JWKS_TIMEOUT";
            JWSSignatureVerificationFailed = /*#__PURE__*/ function(JOSEError) {
                "use strict";
                _inherits(JWSSignatureVerificationFailed, JOSEError);
                var _super = _create_super(JWSSignatureVerificationFailed);
                function JWSSignatureVerificationFailed() {
                    var message2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "signature verification failed", options = arguments.length > 1 ? arguments[1] : void 0;
                    _class_call_check(this, JWSSignatureVerificationFailed);
                    var _this;
                    _this = _super.call(this, message2, options);
                    _this.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
                    return _this;
                }
                return JWSSignatureVerificationFailed;
            }(JOSEError);
            JWSSignatureVerificationFailed.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
        }
    });
    // node_modules/jose/dist/browser/runtime/random.js
    var random_default;
    var init_random = __esm({
        "node_modules/jose/dist/browser/runtime/random.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            random_default = webcrypto_default.getRandomValues.bind(webcrypto_default);
        }
    });
    var iv_default;
    var init_iv = __esm({
        "node_modules/jose/dist/browser/lib/iv.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            init_random();
            iv_default = function(alg) {
                return random_default(new Uint8Array(bitLength(alg) >> 3));
            };
        }
    });
    // node_modules/jose/dist/browser/lib/check_iv_length.js
    var checkIvLength, check_iv_length_default;
    var init_check_iv_length = __esm({
        "node_modules/jose/dist/browser/lib/check_iv_length.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            init_iv();
            checkIvLength = function(enc, iv) {
                if (iv.length << 3 !== bitLength(enc)) {
                    throw new JWEInvalid("Invalid Initialization Vector length");
                }
            };
            check_iv_length_default = checkIvLength;
        }
    });
    // node_modules/jose/dist/browser/runtime/check_cek_length.js
    var checkCekLength, check_cek_length_default;
    var init_check_cek_length = __esm({
        "node_modules/jose/dist/browser/runtime/check_cek_length.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            checkCekLength = function(cek, expected) {
                var actual = cek.byteLength << 3;
                if (actual !== expected) {
                    throw new JWEInvalid("Invalid Content Encryption Key length. Expected ".concat(expected, " bits, got ").concat(actual, " bits"));
                }
            };
            check_cek_length_default = checkCekLength;
        }
    });
    // node_modules/jose/dist/browser/runtime/timing_safe_equal.js
    var timingSafeEqual, timing_safe_equal_default;
    var init_timing_safe_equal = __esm({
        "node_modules/jose/dist/browser/runtime/timing_safe_equal.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            timingSafeEqual = function(a, b) {
                if (!(a instanceof Uint8Array)) {
                    throw new TypeError("First argument must be a buffer");
                }
                if (!(b instanceof Uint8Array)) {
                    throw new TypeError("Second argument must be a buffer");
                }
                if (a.length !== b.length) {
                    throw new TypeError("Input buffers must have the same length");
                }
                var len = a.length;
                var out = 0;
                var i = -1;
                while(++i < len){
                    out |= a[i] ^ b[i];
                }
                return out === 0;
            };
            timing_safe_equal_default = timingSafeEqual;
        }
    });
    var init_crypto_key = __esm({
        "node_modules/jose/dist/browser/lib/crypto_key.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    var invalid_key_input_default;
    var init_invalid_key_input = __esm({
        "node_modules/jose/dist/browser/lib/invalid_key_input.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            invalid_key_input_default = function(actual) {
                for(var _len = arguments.length, types2 = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
                    types2[_key - 1] = arguments[_key];
                }
                return message.apply(void 0, [
                    "Key must be ",
                    actual
                ].concat(_to_consumable_array(types2)));
            };
        }
    });
    // node_modules/jose/dist/browser/runtime/is_key_like.js
    var is_key_like_default, types;
    var init_is_key_like = __esm({
        "node_modules/jose/dist/browser/runtime/is_key_like.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            is_key_like_default = function(key) {
                if (isCryptoKey(key)) {
                    return true;
                }
                return (key == null ? void 0 : key[Symbol.toStringTag]) === "KeyObject";
            };
            types = [
                "CryptoKey"
            ];
        }
    });
    var decrypt, decrypt_default;
    var init_decrypt = __esm({
        "node_modules/jose/dist/browser/runtime/decrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_buffer_utils();
            init_check_iv_length();
            init_check_cek_length();
            init_timing_safe_equal();
            init_errors();
            init_webcrypto();
            init_crypto_key();
            init_invalid_key_input();
            init_is_key_like();
            decrypt = function(enc, cek, ciphertext, iv, tag2, aad) {
                return __async(void 0, null, function() {
                    return _ts_generator(this, function(_state) {
                        if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
                            throw new TypeError(invalid_key_input_default.apply(void 0, [
                                cek
                            ].concat(_to_consumable_array(types), [
                                "Uint8Array"
                            ])));
                        }
                        if (!iv) {
                            throw new JWEInvalid("JWE Initialization Vector missing");
                        }
                        if (!tag2) {
                            throw new JWEInvalid("JWE Authentication Tag missing");
                        }
                        check_iv_length_default(enc, iv);
                        switch(enc){
                            case "A128CBC-HS256":
                            case "A192CBC-HS384":
                            case "A256CBC-HS512":
                                if (cek instanceof Uint8Array) check_cek_length_default(cek, parseInt(enc.slice(-3), 10));
                                return [
                                    2,
                                    cbcDecrypt(enc, cek, ciphertext, iv, tag2, aad)
                                ];
                            case "A128GCM":
                            case "A192GCM":
                            case "A256GCM":
                                if (cek instanceof Uint8Array) check_cek_length_default(cek, parseInt(enc.slice(1, 4), 10));
                                return [
                                    2,
                                    gcmDecrypt(enc, cek, ciphertext, iv, tag2, aad)
                                ];
                            default:
                                throw new JOSENotSupported("Unsupported JWE Content Encryption Algorithm");
                        }
                        return [
                            2
                        ];
                    });
                });
            };
            decrypt_default = decrypt;
        }
    });
    // node_modules/jose/dist/browser/lib/is_disjoint.js
    var isDisjoint, is_disjoint_default;
    var init_is_disjoint = __esm({
        "node_modules/jose/dist/browser/lib/is_disjoint.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            isDisjoint = function() {
                for(var _len = arguments.length, headers = new Array(_len), _key = 0; _key < _len; _key++){
                    headers[_key] = arguments[_key];
                }
                var sources = headers.filter(Boolean);
                if (sources.length === 0 || sources.length === 1) {
                    return true;
                }
                var acc;
                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                try {
                    for(var _iterator = sources[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                        var header = _step.value;
                        var parameters2 = Object.keys(header);
                        if (!acc || acc.size === 0) {
                            acc = new Set(parameters2);
                            continue;
                        }
                        var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                        try {
                            for(var _iterator1 = parameters2[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                var parameter = _step1.value;
                                if (acc.has(parameter)) {
                                    return false;
                                }
                                acc.add(parameter);
                            }
                        } catch (err) {
                            _didIteratorError1 = true;
                            _iteratorError1 = err;
                        } finally{
                            try {
                                if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                    _iterator1["return"]();
                                }
                            } finally{
                                if (_didIteratorError1) {
                                    throw _iteratorError1;
                                }
                            }
                        }
                    }
                } catch (err) {
                    _didIteratorError = true;
                    _iteratorError = err;
                } finally{
                    try {
                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                            _iterator["return"]();
                        }
                    } finally{
                        if (_didIteratorError) {
                            throw _iteratorError;
                        }
                    }
                }
                return true;
            };
            is_disjoint_default = isDisjoint;
        }
    });
    var init_is_object = __esm({
        "node_modules/jose/dist/browser/lib/is_object.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // node_modules/jose/dist/browser/runtime/bogus.js
    var bogusWebCrypto, bogus_default;
    var init_bogus = __esm({
        "node_modules/jose/dist/browser/runtime/bogus.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            bogusWebCrypto = [
                {
                    hash: "SHA-256",
                    name: "HMAC"
                },
                true,
                [
                    "sign"
                ]
            ];
            bogus_default = bogusWebCrypto;
        }
    });
    var wrap, unwrap;
    var init_aeskw = __esm({
        "node_modules/jose/dist/browser/runtime/aeskw.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_bogus();
            init_webcrypto();
            init_crypto_key();
            init_invalid_key_input();
            init_is_key_like();
            wrap = function(alg, key, cek) {
                return __async(void 0, null, function() {
                    var _webcrypto_default_subtle, cryptoKey, cryptoKeyCek, _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getCryptoKey(key, alg, "wrapKey")
                                ];
                            case 1:
                                cryptoKey = _state.sent();
                                checkKeySize(cryptoKey, alg);
                                return [
                                    4,
                                    (_webcrypto_default_subtle = webcrypto_default.subtle).importKey.apply(_webcrypto_default_subtle, [
                                        "raw",
                                        cek
                                    ].concat(_to_consumable_array(bogus_default)))
                                ];
                            case 2:
                                cryptoKeyCek = _state.sent();
                                _ = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.wrapKey("raw", cryptoKeyCek, cryptoKey, "AES-KW")
                                ];
                            case 3:
                                return [
                                    2,
                                    new (_.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                        }
                    });
                });
            };
            unwrap = function(alg, key, encryptedKey) {
                return __async(void 0, null, function() {
                    var _webcrypto_default_subtle, cryptoKey, cryptoKeyCek, _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getCryptoKey(key, alg, "unwrapKey")
                                ];
                            case 1:
                                cryptoKey = _state.sent();
                                checkKeySize(cryptoKey, alg);
                                return [
                                    4,
                                    (_webcrypto_default_subtle = webcrypto_default.subtle).unwrapKey.apply(_webcrypto_default_subtle, [
                                        "raw",
                                        encryptedKey,
                                        cryptoKey,
                                        "AES-KW"
                                    ].concat(_to_consumable_array(bogus_default)))
                                ];
                            case 2:
                                cryptoKeyCek = _state.sent();
                                _ = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.exportKey("raw", cryptoKeyCek)
                                ];
                            case 3:
                                return [
                                    2,
                                    new (_.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                        }
                    });
                });
            };
        }
    });
    var init_ecdhes = __esm({
        "node_modules/jose/dist/browser/runtime/ecdhes.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_buffer_utils();
            init_webcrypto();
            init_crypto_key();
            init_invalid_key_input();
            init_is_key_like();
        }
    });
    var init_check_p2s = __esm({
        "node_modules/jose/dist/browser/lib/check_p2s.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
        }
    });
    var encrypt, decrypt2;
    var init_pbes2kw = __esm({
        "node_modules/jose/dist/browser/runtime/pbes2kw.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_random();
            init_buffer_utils();
            init_base64url();
            init_aeskw();
            init_check_p2s();
            init_webcrypto();
            init_crypto_key();
            init_invalid_key_input();
            init_is_key_like();
            encrypt = function(_0, _1, _2) {
                for(var _len = arguments.length, _3 = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
                    _3[_key - 3] = arguments[_key];
                }
                return __async(void 0, [
                    _0,
                    _1,
                    _2
                ].concat(_to_consumable_array(_3)), function(alg, key, cek) {
                    var p2c, p2s2, derived, encryptedKey;
                    var _arguments = arguments;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                p2c = _arguments.length > 3 && _arguments[3] !== void 0 ? _arguments[3] : 2048, p2s2 = _arguments.length > 4 && _arguments[4] !== void 0 ? _arguments[4] : random_default(new Uint8Array(16));
                                return [
                                    4,
                                    deriveKey2(p2s2, alg, p2c, key)
                                ];
                            case 1:
                                derived = _state.sent();
                                return [
                                    4,
                                    wrap(alg.slice(-6), derived, cek)
                                ];
                            case 2:
                                encryptedKey = _state.sent();
                                return [
                                    2,
                                    {
                                        encryptedKey: encryptedKey,
                                        p2c: p2c,
                                        p2s: encode(p2s2)
                                    }
                                ];
                        }
                    });
                });
            };
            decrypt2 = function(alg, key, encryptedKey, p2c, p2s2) {
                return __async(void 0, null, function() {
                    var derived;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    deriveKey2(p2s2, alg, p2c, key)
                                ];
                            case 1:
                                derived = _state.sent();
                                return [
                                    2,
                                    unwrap(alg.slice(-6), derived, encryptedKey)
                                ];
                        }
                    });
                });
            };
        }
    });
    var init_subtle_rsaes = __esm({
        "node_modules/jose/dist/browser/runtime/subtle_rsaes.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
        }
    });
    // node_modules/jose/dist/browser/runtime/check_key_length.js
    var check_key_length_default;
    var init_check_key_length = __esm({
        "node_modules/jose/dist/browser/runtime/check_key_length.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            check_key_length_default = function(alg, key) {
                if (alg.startsWith("RS") || alg.startsWith("PS")) {
                    var modulusLength = key.algorithm.modulusLength;
                    if (typeof modulusLength !== "number" || modulusLength < 2048) {
                        throw new TypeError("".concat(alg, " requires key modulusLength to be 2048 bits or larger"));
                    }
                }
            };
        }
    });
    // node_modules/jose/dist/browser/runtime/rsaes.js
    var encrypt2, decrypt3;
    var init_rsaes = __esm({
        "node_modules/jose/dist/browser/runtime/rsaes.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_subtle_rsaes();
            init_bogus();
            init_webcrypto();
            init_crypto_key();
            init_check_key_length();
            init_invalid_key_input();
            init_is_key_like();
            encrypt2 = function(alg, key, cek) {
                return __async(void 0, null, function() {
                    var _, _webcrypto_default_subtle, cryptoKeyCek, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!isCryptoKey(key)) {
                                    throw new TypeError(invalid_key_input_default.apply(void 0, [
                                        key
                                    ].concat(_to_consumable_array(types))));
                                }
                                checkEncCryptoKey(key, alg, "encrypt", "wrapKey");
                                check_key_length_default(alg, key);
                                if (!key.usages.includes("encrypt")) return [
                                    3,
                                    2
                                ];
                                _ = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.encrypt(subtleRsaEs(alg), key, cek)
                                ];
                            case 1:
                                return [
                                    2,
                                    new (_.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                            case 2:
                                if (!key.usages.includes("wrapKey")) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    (_webcrypto_default_subtle = webcrypto_default.subtle).importKey.apply(_webcrypto_default_subtle, [
                                        "raw",
                                        cek
                                    ].concat(_to_consumable_array(bogus_default)))
                                ];
                            case 3:
                                cryptoKeyCek = _state.sent();
                                _1 = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.wrapKey("raw", cryptoKeyCek, key, subtleRsaEs(alg))
                                ];
                            case 4:
                                return [
                                    2,
                                    new (_1.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                            case 5:
                                throw new TypeError('RSA-OAEP key "usages" must include "encrypt" or "wrapKey" for this operation');
                        }
                    });
                });
            };
            decrypt3 = function(alg, key, encryptedKey) {
                return __async(void 0, null, function() {
                    var _, _webcrypto_default_subtle, cryptoKeyCek, _1;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!isCryptoKey(key)) {
                                    throw new TypeError(invalid_key_input_default.apply(void 0, [
                                        key
                                    ].concat(_to_consumable_array(types))));
                                }
                                checkEncCryptoKey(key, alg, "decrypt", "unwrapKey");
                                check_key_length_default(alg, key);
                                if (!key.usages.includes("decrypt")) return [
                                    3,
                                    2
                                ];
                                _ = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.decrypt(subtleRsaEs(alg), key, encryptedKey)
                                ];
                            case 1:
                                return [
                                    2,
                                    new (_.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                            case 2:
                                if (!key.usages.includes("unwrapKey")) return [
                                    3,
                                    5
                                ];
                                return [
                                    4,
                                    (_webcrypto_default_subtle = webcrypto_default.subtle).unwrapKey.apply(_webcrypto_default_subtle, [
                                        "raw",
                                        encryptedKey,
                                        key,
                                        subtleRsaEs(alg)
                                    ].concat(_to_consumable_array(bogus_default)))
                                ];
                            case 3:
                                cryptoKeyCek = _state.sent();
                                _1 = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.exportKey("raw", cryptoKeyCek)
                                ];
                            case 4:
                                return [
                                    2,
                                    new (_1.apply(Uint8Array, [
                                        void 0,
                                        _state.sent()
                                    ]))
                                ];
                            case 5:
                                throw new TypeError('RSA-OAEP key "usages" must include "decrypt" or "unwrapKey" for this operation');
                        }
                    });
                });
            };
        }
    });
    var init_is_jwk = __esm({
        "node_modules/jose/dist/browser/lib/is_jwk.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_is_object();
        }
    });
    var parse, jwk_to_key_default;
    var init_jwk_to_key = __esm({
        "node_modules/jose/dist/browser/runtime/jwk_to_key.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            init_errors();
            parse = function(jwk) {
                return __async(void 0, null, function() {
                    var _webcrypto_default_subtle, _a2, _b2, _subtleMapping, algorithm, keyUsages, rest, keyData;
                    return _ts_generator(this, function(_state) {
                        if (!jwk.alg) {
                            throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
                        }
                        _subtleMapping = subtleMapping(jwk), algorithm = _subtleMapping.algorithm, keyUsages = _subtleMapping.keyUsages;
                        rest = [
                            algorithm,
                            (_a2 = jwk.ext) != null ? _a2 : false,
                            (_b2 = jwk.key_ops) != null ? _b2 : keyUsages
                        ];
                        keyData = __spreadValues({}, jwk);
                        delete keyData.alg;
                        delete keyData.use;
                        return [
                            2,
                            (_webcrypto_default_subtle = webcrypto_default.subtle).importKey.apply(_webcrypto_default_subtle, [
                                "jwk",
                                keyData
                            ].concat(_to_consumable_array(rest)))
                        ];
                    });
                });
            };
            jwk_to_key_default = parse;
        }
    });
    // node_modules/jose/dist/browser/runtime/normalize_key.js
    var exportKeyValue, privCache, pubCache, isKeyObject, importAndCache, normalizePublicKey, normalizePrivateKey, normalize_key_default;
    var init_normalize_key = __esm({
        "node_modules/jose/dist/browser/runtime/normalize_key.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_is_jwk();
            init_base64url();
            init_jwk_to_key();
            exportKeyValue = function(k) {
                return decode(k);
            };
            isKeyObject = function(key) {
                return (key == null ? void 0 : key[Symbol.toStringTag]) === "KeyObject";
            };
            importAndCache = function(cache, key, jwk, alg) {
                var freeze = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
                return __async(void 0, null, function() {
                    var cached, cryptoKey;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                cached = cache.get(key);
                                if (cached == null ? void 0 : cached[alg]) {
                                    return [
                                        2,
                                        cached[alg]
                                    ];
                                }
                                return [
                                    4,
                                    jwk_to_key_default(__spreadProps(__spreadValues({}, jwk), {
                                        alg: alg
                                    }))
                                ];
                            case 1:
                                cryptoKey = _state.sent();
                                if (freeze) Object.freeze(key);
                                if (!cached) {
                                    cache.set(key, _define_property({}, alg, cryptoKey));
                                } else {
                                    cached[alg] = cryptoKey;
                                }
                                return [
                                    2,
                                    cryptoKey
                                ];
                        }
                    });
                });
            };
            normalizePublicKey = function(key, alg) {
                if (isKeyObject(key)) {
                    var jwk = key["export"]({
                        format: "jwk"
                    });
                    delete jwk.d;
                    delete jwk.dp;
                    delete jwk.dq;
                    delete jwk.p;
                    delete jwk.q;
                    delete jwk.qi;
                    if (jwk.k) {
                        return exportKeyValue(jwk.k);
                    }
                    pubCache || (pubCache = /* @__PURE__ */ new WeakMap());
                    return importAndCache(pubCache, key, jwk, alg);
                }
                if (isJWK(key)) {
                    if (key.k) return decode(key.k);
                    pubCache || (pubCache = /* @__PURE__ */ new WeakMap());
                    var cryptoKey = importAndCache(pubCache, key, key, alg, true);
                    return cryptoKey;
                }
                return key;
            };
            normalizePrivateKey = function(key, alg) {
                if (isKeyObject(key)) {
                    var jwk = key["export"]({
                        format: "jwk"
                    });
                    if (jwk.k) {
                        return exportKeyValue(jwk.k);
                    }
                    privCache || (privCache = /* @__PURE__ */ new WeakMap());
                    return importAndCache(privCache, key, jwk, alg);
                }
                if (isJWK(key)) {
                    if (key.k) return decode(key.k);
                    privCache || (privCache = /* @__PURE__ */ new WeakMap());
                    var cryptoKey = importAndCache(privCache, key, key, alg, true);
                    return cryptoKey;
                }
                return key;
            };
            normalize_key_default = {
                normalizePublicKey: normalizePublicKey,
                normalizePrivateKey: normalizePrivateKey
            };
        }
    });
    var cek_default;
    var init_cek = __esm({
        "node_modules/jose/dist/browser/lib/cek.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            init_random();
            cek_default = function(alg) {
                return random_default(new Uint8Array(bitLength2(alg) >> 3));
            };
        }
    });
    // node_modules/jose/dist/browser/lib/format_pem.js
    var format_pem_default;
    var init_format_pem = __esm({
        "node_modules/jose/dist/browser/lib/format_pem.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            format_pem_default = function(b64, descriptor) {
                var newlined = (b64.match(/.{1,64}/g) || []).join("\n");
                return "-----BEGIN ".concat(descriptor, "-----\n").concat(newlined, "\n-----END ").concat(descriptor, "-----");
            };
        }
    });
    var genericExport, toSPKI, toPKCS8, findOid, getNamedCurve2, genericImport, fromPKCS8, fromSPKI, fromX509;
    var init_asn1 = __esm({
        "node_modules/jose/dist/browser/runtime/asn1.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            init_invalid_key_input();
            init_base64url();
            init_format_pem();
            init_errors();
            init_is_key_like();
            genericExport = function(keyType, keyFormat, key) {
                return __async(void 0, null, function() {
                    var _;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!isCryptoKey(key)) {
                                    throw new TypeError(invalid_key_input_default.apply(void 0, [
                                        key
                                    ].concat(_to_consumable_array(types))));
                                }
                                if (!key.extractable) {
                                    throw new TypeError("CryptoKey is not extractable");
                                }
                                if (key.type !== keyType) {
                                    throw new TypeError("key is not a ".concat(keyType, " key"));
                                }
                                _ = Uint8Array.bind;
                                return [
                                    4,
                                    webcrypto_default.subtle.exportKey(keyFormat, key)
                                ];
                            case 1:
                                return [
                                    2,
                                    format_pem_default.apply(void 0, [
                                        encodeBase64.apply(void 0, [
                                            new (_.apply(Uint8Array, [
                                                void 0,
                                                _state.sent()
                                            ]))
                                        ]),
                                        "".concat(keyType.toUpperCase(), " KEY")
                                    ])
                                ];
                        }
                    });
                });
            };
            toSPKI = function(key) {
                return genericExport("public", "spki", key);
            };
            toPKCS8 = function(key) {
                return genericExport("private", "pkcs8", key);
            };
            findOid = function(keyData, oid) {
                var from = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
                if (from === 0) {
                    oid.unshift(oid.length);
                    oid.unshift(6);
                }
                var i = keyData.indexOf(oid[0], from);
                if (i === -1) return false;
                var sub = keyData.subarray(i, i + oid.length);
                if (sub.length !== oid.length) return false;
                return sub.every(function(value, index) {
                    return value === oid[index];
                }) || findOid(keyData, oid, i + 1);
            };
            getNamedCurve2 = function(keyData) {
                switch(true){
                    case findOid(keyData, [
                        42,
                        134,
                        72,
                        206,
                        61,
                        3,
                        1,
                        7
                    ]):
                        return "P-256";
                    case findOid(keyData, [
                        43,
                        129,
                        4,
                        0,
                        34
                    ]):
                        return "P-384";
                    case findOid(keyData, [
                        43,
                        129,
                        4,
                        0,
                        35
                    ]):
                        return "P-521";
                    case findOid(keyData, [
                        43,
                        101,
                        110
                    ]):
                        return "X25519";
                    case findOid(keyData, [
                        43,
                        101,
                        111
                    ]):
                        return "X448";
                    case findOid(keyData, [
                        43,
                        101,
                        112
                    ]):
                        return "Ed25519";
                    case findOid(keyData, [
                        43,
                        101,
                        113
                    ]):
                        return "Ed448";
                    default:
                        throw new JOSENotSupported("Invalid or unsupported EC Key Curve or OKP Key Sub Type");
                }
            };
            genericImport = function(replace, keyFormat, pem, alg, options) {
                return __async(void 0, null, function() {
                    var _a2, algorithm, keyUsages, keyData, isPublic, namedCurve;
                    return _ts_generator(this, function(_state) {
                        keyData = new Uint8Array(atob(pem.replace(replace, "")).split("").map(function(c) {
                            return c.charCodeAt(0);
                        }));
                        isPublic = keyFormat === "spki";
                        switch(alg){
                            case "PS256":
                            case "PS384":
                            case "PS512":
                                algorithm = {
                                    name: "RSA-PSS",
                                    hash: "SHA-".concat(alg.slice(-3))
                                };
                                keyUsages = isPublic ? [
                                    "verify"
                                ] : [
                                    "sign"
                                ];
                                break;
                            case "RS256":
                            case "RS384":
                            case "RS512":
                                algorithm = {
                                    name: "RSASSA-PKCS1-v1_5",
                                    hash: "SHA-".concat(alg.slice(-3))
                                };
                                keyUsages = isPublic ? [
                                    "verify"
                                ] : [
                                    "sign"
                                ];
                                break;
                            case "RSA-OAEP":
                            case "RSA-OAEP-256":
                            case "RSA-OAEP-384":
                            case "RSA-OAEP-512":
                                algorithm = {
                                    name: "RSA-OAEP",
                                    hash: "SHA-".concat(parseInt(alg.slice(-3), 10) || 1)
                                };
                                keyUsages = isPublic ? [
                                    "encrypt",
                                    "wrapKey"
                                ] : [
                                    "decrypt",
                                    "unwrapKey"
                                ];
                                break;
                            case "ES256":
                                algorithm = {
                                    name: "ECDSA",
                                    namedCurve: "P-256"
                                };
                                keyUsages = isPublic ? [
                                    "verify"
                                ] : [
                                    "sign"
                                ];
                                break;
                            case "ES384":
                                algorithm = {
                                    name: "ECDSA",
                                    namedCurve: "P-384"
                                };
                                keyUsages = isPublic ? [
                                    "verify"
                                ] : [
                                    "sign"
                                ];
                                break;
                            case "ES512":
                                algorithm = {
                                    name: "ECDSA",
                                    namedCurve: "P-521"
                                };
                                keyUsages = isPublic ? [
                                    "verify"
                                ] : [
                                    "sign"
                                ];
                                break;
                            case "ECDH-ES":
                            case "ECDH-ES+A128KW":
                            case "ECDH-ES+A192KW":
                            case "ECDH-ES+A256KW":
                                {
                                    namedCurve = getNamedCurve2(keyData);
                                    algorithm = namedCurve.startsWith("P-") ? {
                                        name: "ECDH",
                                        namedCurve: namedCurve
                                    } : {
                                        name: namedCurve
                                    };
                                    keyUsages = isPublic ? [] : [
                                        "deriveBits"
                                    ];
                                    break;
                                }
                            case "EdDSA":
                                algorithm = {
                                    name: getNamedCurve2(keyData)
                                };
                                keyUsages = isPublic ? [
                                    "verify"
                                ] : [
                                    "sign"
                                ];
                                break;
                            default:
                                throw new JOSENotSupported('Invalid or unsupported "alg" (Algorithm) value');
                        }
                        return [
                            2,
                            webcrypto_default.subtle.importKey(keyFormat, keyData, algorithm, (_a2 = options == null ? void 0 : options.extractable) != null ? _a2 : false, keyUsages)
                        ];
                    });
                });
            };
            fromPKCS8 = function(pem, alg, options) {
                return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, "pkcs8", pem, alg, options);
            };
            fromSPKI = function(pem, alg, options) {
                return genericImport(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g, "spki", pem, alg, options);
            };
            fromX509 = function(pem, alg, options) {
                var spki;
                try {
                    spki = getSPKI(pem);
                } catch (cause) {
                    throw new TypeError("Failed to parse the X.509 certificate", {
                        cause: cause
                    });
                }
                return fromSPKI(spki, alg, options);
            };
        }
    });
    var init_import = __esm({
        "node_modules/jose/dist/browser/key/import.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            init_asn1();
            init_jwk_to_key();
            init_errors();
            init_is_object();
        }
    });
    var tag, jwkMatchesOp, symmetricTypeCheck, asymmetricTypeCheck, check_key_type_default, checkKeyTypeWithJwk;
    var init_check_key_type = __esm({
        "node_modules/jose/dist/browser/lib/check_key_type.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_invalid_key_input();
            init_is_key_like();
            init_is_jwk();
            tag = function(key) {
                return key == null ? void 0 : key[Symbol.toStringTag];
            };
            jwkMatchesOp = function(alg, key, usage) {
                var _a2, _b2;
                if (key.use !== void 0 && key.use !== "sig") {
                    throw new TypeError("Invalid key for this operation, when present its use must be sig");
                }
                if (key.key_ops !== void 0 && ((_b2 = (_a2 = key.key_ops).includes) == null ? void 0 : _b2.call(_a2, usage)) !== true) {
                    throw new TypeError("Invalid key for this operation, when present its key_ops must include ".concat(usage));
                }
                if (key.alg !== void 0 && key.alg !== alg) {
                    throw new TypeError("Invalid key for this operation, when present its alg must be ".concat(alg));
                }
                return true;
            };
            symmetricTypeCheck = function(alg, key, usage, allowJwk) {
                if (key instanceof Uint8Array) return;
                if (allowJwk && isJWK(key)) {
                    if (isSecretJWK(key) && jwkMatchesOp(alg, key, usage)) return;
                    throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present');
                }
                if (!is_key_like_default(key)) {
                    throw new TypeError(withAlg.apply(void 0, [
                        alg,
                        key
                    ].concat(_to_consumable_array(types), [
                        "Uint8Array",
                        allowJwk ? "JSON Web Key" : null
                    ])));
                }
                if (key.type !== "secret") {
                    throw new TypeError("".concat(tag(key), ' instances for symmetric algorithms must be of type "secret"'));
                }
            };
            asymmetricTypeCheck = function(alg, key, usage, allowJwk) {
                if (allowJwk && isJWK(key)) {
                    switch(usage){
                        case "sign":
                            if (isPrivateJWK(key) && jwkMatchesOp(alg, key, usage)) return;
                            throw new TypeError("JSON Web Key for this operation be a private JWK");
                        case "verify":
                            if (isPublicJWK(key) && jwkMatchesOp(alg, key, usage)) return;
                            throw new TypeError("JSON Web Key for this operation be a public JWK");
                    }
                }
                if (!is_key_like_default(key)) {
                    throw new TypeError(withAlg.apply(void 0, [
                        alg,
                        key
                    ].concat(_to_consumable_array(types), [
                        allowJwk ? "JSON Web Key" : null
                    ])));
                }
                if (key.type === "secret") {
                    throw new TypeError("".concat(tag(key), ' instances for asymmetric algorithms must not be of type "secret"'));
                }
                if (usage === "sign" && key.type === "public") {
                    throw new TypeError("".concat(tag(key), ' instances for asymmetric algorithm signing must be of type "private"'));
                }
                if (usage === "decrypt" && key.type === "public") {
                    throw new TypeError("".concat(tag(key), ' instances for asymmetric algorithm decryption must be of type "private"'));
                }
                if (key.algorithm && usage === "verify" && key.type === "private") {
                    throw new TypeError("".concat(tag(key), ' instances for asymmetric algorithm verifying must be of type "public"'));
                }
                if (key.algorithm && usage === "encrypt" && key.type === "private") {
                    throw new TypeError("".concat(tag(key), ' instances for asymmetric algorithm encryption must be of type "public"'));
                }
            };
            check_key_type_default = checkKeyType.bind(void 0, false);
            checkKeyTypeWithJwk = checkKeyType.bind(void 0, true);
        }
    });
    var encrypt3, encrypt_default;
    var init_encrypt = __esm({
        "node_modules/jose/dist/browser/runtime/encrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_buffer_utils();
            init_check_iv_length();
            init_check_cek_length();
            init_webcrypto();
            init_crypto_key();
            init_invalid_key_input();
            init_iv();
            init_errors();
            init_is_key_like();
            encrypt3 = function(enc, plaintext, cek, iv, aad) {
                return __async(void 0, null, function() {
                    return _ts_generator(this, function(_state) {
                        if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
                            throw new TypeError(invalid_key_input_default.apply(void 0, [
                                cek
                            ].concat(_to_consumable_array(types), [
                                "Uint8Array"
                            ])));
                        }
                        if (iv) {
                            check_iv_length_default(enc, iv);
                        } else {
                            iv = iv_default(enc);
                        }
                        switch(enc){
                            case "A128CBC-HS256":
                            case "A192CBC-HS384":
                            case "A256CBC-HS512":
                                if (cek instanceof Uint8Array) {
                                    check_cek_length_default(cek, parseInt(enc.slice(-3), 10));
                                }
                                return [
                                    2,
                                    cbcEncrypt(enc, plaintext, cek, iv, aad)
                                ];
                            case "A128GCM":
                            case "A192GCM":
                            case "A256GCM":
                                if (cek instanceof Uint8Array) {
                                    check_cek_length_default(cek, parseInt(enc.slice(1, 4), 10));
                                }
                                return [
                                    2,
                                    gcmEncrypt(enc, plaintext, cek, iv, aad)
                                ];
                            default:
                                throw new JOSENotSupported("Unsupported JWE Content Encryption Algorithm");
                        }
                        return [
                            2
                        ];
                    });
                });
            };
            encrypt_default = encrypt3;
        }
    });
    var init_aesgcmkw = __esm({
        "node_modules/jose/dist/browser/lib/aesgcmkw.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_encrypt();
            init_decrypt();
            init_base64url();
        }
    });
    var decrypt_key_management_default;
    var init_decrypt_key_management = __esm({
        "node_modules/jose/dist/browser/lib/decrypt_key_management.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_aeskw();
            init_ecdhes();
            init_pbes2kw();
            init_rsaes();
            init_base64url();
            init_normalize_key();
            init_errors();
            init_cek();
            init_import();
            init_check_key_type();
            init_is_object();
            init_aesgcmkw();
            decrypt_key_management_default = decryptKeyManagement;
        }
    });
    var validate_crit_default;
    var init_validate_crit = __esm({
        "node_modules/jose/dist/browser/lib/validate_crit.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            validate_crit_default = validateCrit;
        }
    });
    // node_modules/jose/dist/browser/lib/validate_algorithms.js
    var validateAlgorithms, validate_algorithms_default;
    var init_validate_algorithms = __esm({
        "node_modules/jose/dist/browser/lib/validate_algorithms.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            validateAlgorithms = function(option, algorithms) {
                if (algorithms !== void 0 && (!Array.isArray(algorithms) || algorithms.some(function(s) {
                    return typeof s !== "string";
                }))) {
                    throw new TypeError('"'.concat(option, '" option must be an array of strings'));
                }
                if (!algorithms) {
                    return void 0;
                }
                return new Set(algorithms);
            };
            validate_algorithms_default = validateAlgorithms;
        }
    });
    var init_decrypt2 = __esm({
        "node_modules/jose/dist/browser/jwe/flattened/decrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            init_decrypt();
            init_errors();
            init_is_disjoint();
            init_is_object();
            init_decrypt_key_management();
            init_buffer_utils();
            init_cek();
            init_validate_crit();
            init_validate_algorithms();
        }
    });
    var init_decrypt3 = __esm({
        "node_modules/jose/dist/browser/jwe/compact/decrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_decrypt2();
            init_errors();
            init_buffer_utils();
        }
    });
    var init_decrypt4 = __esm({
        "node_modules/jose/dist/browser/jwe/general/decrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_decrypt2();
            init_errors();
            init_is_object();
        }
    });
    // node_modules/jose/dist/browser/lib/private_symbols.js
    var unprotected;
    var init_private_symbols = __esm({
        "node_modules/jose/dist/browser/lib/private_symbols.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            unprotected = Symbol();
        }
    });
    // node_modules/jose/dist/browser/runtime/key_to_jwk.js
    var keyToJWK, key_to_jwk_default;
    var init_key_to_jwk = __esm({
        "node_modules/jose/dist/browser/runtime/key_to_jwk.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            init_invalid_key_input();
            init_base64url();
            init_is_key_like();
            keyToJWK = function(key) {
                return __async(void 0, null, function() {
                    var _a2, ext, key_ops, alg, use, jwk;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (key instanceof Uint8Array) {
                                    return [
                                        2,
                                        {
                                            kty: "oct",
                                            k: encode(key)
                                        }
                                    ];
                                }
                                if (!isCryptoKey(key)) {
                                    throw new TypeError(invalid_key_input_default.apply(void 0, [
                                        key
                                    ].concat(_to_consumable_array(types), [
                                        "Uint8Array"
                                    ])));
                                }
                                if (!key.extractable) {
                                    throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");
                                }
                                return [
                                    4,
                                    webcrypto_default.subtle.exportKey("jwk", key)
                                ];
                            case 1:
                                _a2 = _state.sent(), ext = _a2.ext, key_ops = _a2.key_ops, alg = _a2.alg, use = _a2.use, jwk = __objRest(_a2, [
                                    "ext",
                                    "key_ops",
                                    "alg",
                                    "use"
                                ]);
                                return [
                                    2,
                                    jwk
                                ];
                        }
                    });
                });
            };
            key_to_jwk_default = keyToJWK;
        }
    });
    var init_export = __esm({
        "node_modules/jose/dist/browser/key/export.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_asn1();
            init_asn1();
            init_key_to_jwk();
        }
    });
    var encrypt_key_management_default;
    var init_encrypt_key_management = __esm({
        "node_modules/jose/dist/browser/lib/encrypt_key_management.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_aeskw();
            init_ecdhes();
            init_pbes2kw();
            init_rsaes();
            init_base64url();
            init_normalize_key();
            init_cek();
            init_errors();
            init_export();
            init_check_key_type();
            init_aesgcmkw();
            encrypt_key_management_default = encryptKeyManagement;
        }
    });
    // node_modules/jose/dist/browser/jwe/flattened/encrypt.js
    var FlattenedEncrypt;
    var init_encrypt2 = __esm({
        "node_modules/jose/dist/browser/jwe/flattened/encrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            init_private_symbols();
            init_encrypt();
            init_encrypt_key_management();
            init_errors();
            init_is_disjoint();
            init_buffer_utils();
            init_validate_crit();
            FlattenedEncrypt = /*#__PURE__*/ function() {
                "use strict";
                function FlattenedEncrypt(plaintext) {
                    _class_call_check(this, FlattenedEncrypt);
                    if (!(plaintext instanceof Uint8Array)) {
                        throw new TypeError("plaintext must be an instance of Uint8Array");
                    }
                    this._plaintext = plaintext;
                }
                _create_class(FlattenedEncrypt, [
                    {
                        key: "setKeyManagementParameters",
                        value: function setKeyManagementParameters(parameters2) {
                            if (this._keyManagementParameters) {
                                throw new TypeError("setKeyManagementParameters can only be called once");
                            }
                            this._keyManagementParameters = parameters2;
                            return this;
                        }
                    },
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            if (this._protectedHeader) {
                                throw new TypeError("setProtectedHeader can only be called once");
                            }
                            this._protectedHeader = protectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setSharedUnprotectedHeader",
                        value: function setSharedUnprotectedHeader(sharedUnprotectedHeader) {
                            if (this._sharedUnprotectedHeader) {
                                throw new TypeError("setSharedUnprotectedHeader can only be called once");
                            }
                            this._sharedUnprotectedHeader = sharedUnprotectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setUnprotectedHeader",
                        value: function setUnprotectedHeader(unprotectedHeader) {
                            if (this._unprotectedHeader) {
                                throw new TypeError("setUnprotectedHeader can only be called once");
                            }
                            this._unprotectedHeader = unprotectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setAdditionalAuthenticatedData",
                        value: function setAdditionalAuthenticatedData(aad) {
                            this._aad = aad;
                            return this;
                        }
                    },
                    {
                        key: "setContentEncryptionKey",
                        value: function setContentEncryptionKey(cek) {
                            if (this._cek) {
                                throw new TypeError("setContentEncryptionKey can only be called once");
                            }
                            this._cek = cek;
                            return this;
                        }
                    },
                    {
                        key: "setInitializationVector",
                        value: function setInitializationVector(iv) {
                            if (this._iv) {
                                throw new TypeError("setInitializationVector can only be called once");
                            }
                            this._iv = iv;
                            return this;
                        }
                    },
                    {
                        key: "encrypt",
                        value: function encrypt(key, options) {
                            return __async(this, null, function() {
                                var joseHeader, alg, enc, encryptedKey, cek, parameters2, ref, additionalData, protectedHeader, aadMember, _ref, ciphertext, tag2, iv, jwe;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {
                                                throw new JWEInvalid("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
                                            }
                                            if (!is_disjoint_default(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {
                                                throw new JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
                                            }
                                            joseHeader = __spreadValues(__spreadValues(__spreadValues({}, this._protectedHeader), this._unprotectedHeader), this._sharedUnprotectedHeader);
                                            validate_crit_default(JWEInvalid, /* @__PURE__ */ new Map(), options == null ? void 0 : options.crit, this._protectedHeader, joseHeader);
                                            if (joseHeader.zip !== void 0) {
                                                throw new JOSENotSupported('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');
                                            }
                                            alg = joseHeader.alg, enc = joseHeader.enc;
                                            if (typeof alg !== "string" || !alg) {
                                                throw new JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
                                            }
                                            if (typeof enc !== "string" || !enc) {
                                                throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
                                            }
                                            if (this._cek && (alg === "dir" || alg === "ECDH-ES")) {
                                                throw new TypeError('setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header '.concat(alg));
                                            }
                                            return [
                                                4,
                                                encrypt_key_management_default(alg, enc, key, this._cek, this._keyManagementParameters)
                                            ];
                                        case 1:
                                            ref = _state.sent(), cek = ref.cek, encryptedKey = ref.encryptedKey, parameters2 = ref.parameters, ref;
                                            if (parameters2) {
                                                if (options && unprotected in options) {
                                                    if (!this._unprotectedHeader) {
                                                        this.setUnprotectedHeader(parameters2);
                                                    } else {
                                                        this._unprotectedHeader = __spreadValues(__spreadValues({}, this._unprotectedHeader), parameters2);
                                                    }
                                                } else if (!this._protectedHeader) {
                                                    this.setProtectedHeader(parameters2);
                                                } else {
                                                    this._protectedHeader = __spreadValues(__spreadValues({}, this._protectedHeader), parameters2);
                                                }
                                            }
                                            if (this._protectedHeader) {
                                                protectedHeader = encoder.encode(encode(JSON.stringify(this._protectedHeader)));
                                            } else {
                                                protectedHeader = encoder.encode("");
                                            }
                                            if (this._aad) {
                                                aadMember = encode(this._aad);
                                                additionalData = concat(protectedHeader, encoder.encode("."), encoder.encode(aadMember));
                                            } else {
                                                additionalData = protectedHeader;
                                            }
                                            return [
                                                4,
                                                encrypt_default(enc, this._plaintext, cek, this._iv, additionalData)
                                            ];
                                        case 2:
                                            _ref = _state.sent(), ciphertext = _ref.ciphertext, tag2 = _ref.tag, iv = _ref.iv;
                                            jwe = {
                                                ciphertext: encode(ciphertext)
                                            };
                                            if (iv) {
                                                jwe.iv = encode(iv);
                                            }
                                            if (tag2) {
                                                jwe.tag = encode(tag2);
                                            }
                                            if (encryptedKey) {
                                                jwe.encrypted_key = encode(encryptedKey);
                                            }
                                            if (aadMember) {
                                                jwe.aad = aadMember;
                                            }
                                            if (this._protectedHeader) {
                                                jwe["protected"] = decoder.decode(protectedHeader);
                                            }
                                            if (this._sharedUnprotectedHeader) {
                                                jwe.unprotected = this._sharedUnprotectedHeader;
                                            }
                                            if (this._unprotectedHeader) {
                                                jwe.header = this._unprotectedHeader;
                                            }
                                            return [
                                                2,
                                                jwe
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return FlattenedEncrypt;
            }();
        }
    });
    // node_modules/jose/dist/browser/jwe/general/encrypt.js
    var IndividualRecipient, GeneralEncrypt;
    var init_encrypt3 = __esm({
        "node_modules/jose/dist/browser/jwe/general/encrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_encrypt2();
            init_private_symbols();
            init_errors();
            init_cek();
            init_is_disjoint();
            init_encrypt_key_management();
            init_base64url();
            init_validate_crit();
            IndividualRecipient = /*#__PURE__*/ function() {
                "use strict";
                function IndividualRecipient(enc, key, options) {
                    _class_call_check(this, IndividualRecipient);
                    this.parent = enc;
                    this.key = key;
                    this.options = options;
                }
                _create_class(IndividualRecipient, [
                    {
                        key: "setUnprotectedHeader",
                        value: function setUnprotectedHeader(unprotectedHeader) {
                            if (this.unprotectedHeader) {
                                throw new TypeError("setUnprotectedHeader can only be called once");
                            }
                            this.unprotectedHeader = unprotectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "addRecipient",
                        value: function addRecipient() {
                            for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                args[_key] = arguments[_key];
                            }
                            var _this_parent;
                            return (_this_parent = this.parent).addRecipient.apply(_this_parent, _to_consumable_array(args));
                        }
                    },
                    {
                        key: "encrypt",
                        value: function encrypt() {
                            for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                args[_key] = arguments[_key];
                            }
                            var _this_parent;
                            return (_this_parent = this.parent).encrypt.apply(_this_parent, _to_consumable_array(args));
                        }
                    },
                    {
                        key: "done",
                        value: function done() {
                            return this.parent;
                        }
                    }
                ]);
                return IndividualRecipient;
            }();
            GeneralEncrypt = /*#__PURE__*/ function() {
                "use strict";
                function GeneralEncrypt(plaintext) {
                    _class_call_check(this, GeneralEncrypt);
                    this._recipients = [];
                    this._plaintext = plaintext;
                }
                _create_class(GeneralEncrypt, [
                    {
                        key: "addRecipient",
                        value: function addRecipient(key, options) {
                            var recipient = new IndividualRecipient(this, key, {
                                crit: options == null ? void 0 : options.crit
                            });
                            this._recipients.push(recipient);
                            return recipient;
                        }
                    },
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            if (this._protectedHeader) {
                                throw new TypeError("setProtectedHeader can only be called once");
                            }
                            this._protectedHeader = protectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setSharedUnprotectedHeader",
                        value: function setSharedUnprotectedHeader(sharedUnprotectedHeader) {
                            if (this._unprotectedHeader) {
                                throw new TypeError("setSharedUnprotectedHeader can only be called once");
                            }
                            this._unprotectedHeader = sharedUnprotectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setAdditionalAuthenticatedData",
                        value: function setAdditionalAuthenticatedData(aad) {
                            this._aad = aad;
                            return this;
                        }
                    },
                    {
                        key: "encrypt",
                        value: function encrypt() {
                            return __async(this, null, function() {
                                var _a2, _b2, _c, _this__recipients, recipient, flattened, jwe2, enc, i, recipient1, joseHeader, alg, cek, jwe, i1, recipient2, target, joseHeader1, p2c, flattened1, _ref, encryptedKey, parameters2;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this._recipients.length) {
                                                throw new JWEInvalid("at least one recipient must be added");
                                            }
                                            if (!(this._recipients.length === 1)) return [
                                                3,
                                                2
                                            ];
                                            _this__recipients = _sliced_to_array(this._recipients, 1), recipient = _this__recipients[0];
                                            return [
                                                4,
                                                new FlattenedEncrypt(this._plaintext).setAdditionalAuthenticatedData(this._aad).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(recipient.unprotectedHeader).encrypt(recipient.key, __spreadValues({}, recipient.options))
                                            ];
                                        case 1:
                                            flattened = _state.sent();
                                            jwe2 = {
                                                ciphertext: flattened.ciphertext,
                                                iv: flattened.iv,
                                                recipients: [
                                                    {}
                                                ],
                                                tag: flattened.tag
                                            };
                                            if (flattened.aad) jwe2.aad = flattened.aad;
                                            if (flattened["protected"]) jwe2["protected"] = flattened["protected"];
                                            if (flattened.unprotected) jwe2.unprotected = flattened.unprotected;
                                            if (flattened.encrypted_key) jwe2.recipients[0].encrypted_key = flattened.encrypted_key;
                                            if (flattened.header) jwe2.recipients[0].header = flattened.header;
                                            return [
                                                2,
                                                jwe2
                                            ];
                                        case 2:
                                            for(i = 0; i < this._recipients.length; i++){
                                                recipient1 = this._recipients[i];
                                                if (!is_disjoint_default(this._protectedHeader, this._unprotectedHeader, recipient1.unprotectedHeader)) {
                                                    throw new JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
                                                }
                                                joseHeader = __spreadValues(__spreadValues(__spreadValues({}, this._protectedHeader), this._unprotectedHeader), recipient1.unprotectedHeader);
                                                alg = joseHeader.alg;
                                                if (typeof alg !== "string" || !alg) {
                                                    throw new JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
                                                }
                                                if (alg === "dir" || alg === "ECDH-ES") {
                                                    throw new JWEInvalid('"dir" and "ECDH-ES" alg may only be used with a single recipient');
                                                }
                                                if (typeof joseHeader.enc !== "string" || !joseHeader.enc) {
                                                    throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
                                                }
                                                if (!enc) {
                                                    enc = joseHeader.enc;
                                                } else if (enc !== joseHeader.enc) {
                                                    throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients');
                                                }
                                                validate_crit_default(JWEInvalid, /* @__PURE__ */ new Map(), recipient1.options.crit, this._protectedHeader, joseHeader);
                                                if (joseHeader.zip !== void 0) {
                                                    throw new JOSENotSupported('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');
                                                }
                                            }
                                            cek = cek_default(enc);
                                            jwe = {
                                                ciphertext: "",
                                                iv: "",
                                                recipients: [],
                                                tag: ""
                                            };
                                            i1 = 0;
                                            _state.label = 3;
                                        case 3:
                                            if (!(i1 < this._recipients.length)) return [
                                                3,
                                                8
                                            ];
                                            recipient2 = this._recipients[i1];
                                            target = {};
                                            jwe.recipients.push(target);
                                            joseHeader1 = __spreadValues(__spreadValues(__spreadValues({}, this._protectedHeader), this._unprotectedHeader), recipient2.unprotectedHeader);
                                            p2c = joseHeader1.alg.startsWith("PBES2") ? 2048 + i1 : void 0;
                                            if (!(i1 === 0)) return [
                                                3,
                                                5
                                            ];
                                            return [
                                                4,
                                                new FlattenedEncrypt(this._plaintext).setAdditionalAuthenticatedData(this._aad).setContentEncryptionKey(cek).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(recipient2.unprotectedHeader).setKeyManagementParameters({
                                                    p2c: p2c
                                                }).encrypt(recipient2.key, __spreadProps(__spreadValues({}, recipient2.options), _define_property({}, unprotected, true)))
                                            ];
                                        case 4:
                                            flattened1 = _state.sent();
                                            jwe.ciphertext = flattened1.ciphertext;
                                            jwe.iv = flattened1.iv;
                                            jwe.tag = flattened1.tag;
                                            if (flattened1.aad) jwe.aad = flattened1.aad;
                                            if (flattened1["protected"]) jwe["protected"] = flattened1["protected"];
                                            if (flattened1.unprotected) jwe.unprotected = flattened1.unprotected;
                                            target.encrypted_key = flattened1.encrypted_key;
                                            if (flattened1.header) target.header = flattened1.header;
                                            return [
                                                3,
                                                7
                                            ];
                                        case 5:
                                            return [
                                                4,
                                                encrypt_key_management_default(((_a2 = recipient2.unprotectedHeader) == null ? void 0 : _a2.alg) || ((_b2 = this._protectedHeader) == null ? void 0 : _b2.alg) || ((_c = this._unprotectedHeader) == null ? void 0 : _c.alg), enc, recipient2.key, cek, {
                                                    p2c: p2c
                                                })
                                            ];
                                        case 6:
                                            _ref = _state.sent(), encryptedKey = _ref.encryptedKey, parameters2 = _ref.parameters;
                                            target.encrypted_key = encode(encryptedKey);
                                            if (recipient2.unprotectedHeader || parameters2) target.header = __spreadValues(__spreadValues({}, recipient2.unprotectedHeader), parameters2);
                                            _state.label = 7;
                                        case 7:
                                            i1++;
                                            return [
                                                3,
                                                3
                                            ];
                                        case 8:
                                            return [
                                                2,
                                                jwe
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return GeneralEncrypt;
            }();
        }
    });
    var init_subtle_dsa = __esm({
        "node_modules/jose/dist/browser/runtime/subtle_dsa.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
        }
    });
    var init_get_sign_verify_key = __esm({
        "node_modules/jose/dist/browser/runtime/get_sign_verify_key.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            init_crypto_key();
            init_invalid_key_input();
            init_is_key_like();
            init_normalize_key();
        }
    });
    // node_modules/jose/dist/browser/runtime/verify.js
    var verify, verify_default;
    var init_verify = __esm({
        "node_modules/jose/dist/browser/runtime/verify.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_subtle_dsa();
            init_webcrypto();
            init_check_key_length();
            init_get_sign_verify_key();
            verify = function(alg, key, signature, data) {
                return __async(void 0, null, function() {
                    var cryptoKey, algorithm, e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getCryptoKey3(alg, key, "verify")
                                ];
                            case 1:
                                cryptoKey = _state.sent();
                                check_key_length_default(alg, cryptoKey);
                                algorithm = subtleDsa(alg, cryptoKey.algorithm);
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    4,
                                    ,
                                    5
                                ]);
                                return [
                                    4,
                                    webcrypto_default.subtle.verify(algorithm, cryptoKey, signature, data)
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                e = _state.sent();
                                return [
                                    2,
                                    false
                                ];
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            verify_default = verify;
        }
    });
    var init_verify2 = __esm({
        "node_modules/jose/dist/browser/jws/flattened/verify.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            init_verify();
            init_errors();
            init_buffer_utils();
            init_is_disjoint();
            init_is_object();
            init_check_key_type();
            init_validate_crit();
            init_validate_algorithms();
            init_is_jwk();
            init_import();
        }
    });
    var init_verify3 = __esm({
        "node_modules/jose/dist/browser/jws/compact/verify.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_verify2();
            init_errors();
            init_buffer_utils();
        }
    });
    var init_verify4 = __esm({
        "node_modules/jose/dist/browser/jws/general/verify.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_verify2();
            init_errors();
            init_is_object();
        }
    });
    // node_modules/jose/dist/browser/lib/epoch.js
    var epoch_default;
    var init_epoch = __esm({
        "node_modules/jose/dist/browser/lib/epoch.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            epoch_default = function(date) {
                return Math.floor(date.getTime() / 1e3);
            };
        }
    });
    // node_modules/jose/dist/browser/lib/secs.js
    var minute, hour, day, week, year, REGEX, secs_default;
    var init_secs = __esm({
        "node_modules/jose/dist/browser/lib/secs.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            minute = 60;
            hour = minute * 60;
            day = hour * 24;
            week = day * 7;
            year = day * 365.25;
            REGEX = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;
            secs_default = function(str) {
                var matched = REGEX.exec(str);
                if (!matched || matched[4] && matched[1]) {
                    throw new TypeError("Invalid time period format");
                }
                var value = parseFloat(matched[2]);
                var unit = matched[3].toLowerCase();
                var numericDate;
                switch(unit){
                    case "sec":
                    case "secs":
                    case "second":
                    case "seconds":
                    case "s":
                        numericDate = Math.round(value);
                        break;
                    case "minute":
                    case "minutes":
                    case "min":
                    case "mins":
                    case "m":
                        numericDate = Math.round(value * minute);
                        break;
                    case "hour":
                    case "hours":
                    case "hr":
                    case "hrs":
                    case "h":
                        numericDate = Math.round(value * hour);
                        break;
                    case "day":
                    case "days":
                    case "d":
                        numericDate = Math.round(value * day);
                        break;
                    case "week":
                    case "weeks":
                    case "w":
                        numericDate = Math.round(value * week);
                        break;
                    default:
                        numericDate = Math.round(value * year);
                        break;
                }
                if (matched[1] === "-" || matched[4] === "ago") {
                    return -numericDate;
                }
                return numericDate;
            };
        }
    });
    // node_modules/jose/dist/browser/lib/jwt_claims_set.js
    var normalizeTyp, checkAudiencePresence, jwt_claims_set_default;
    var init_jwt_claims_set = __esm({
        "node_modules/jose/dist/browser/lib/jwt_claims_set.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            init_buffer_utils();
            init_epoch();
            init_secs();
            init_is_object();
            normalizeTyp = function(value) {
                return value.toLowerCase().replace(/^application\//, "");
            };
            checkAudiencePresence = function(audPayload, audOption) {
                if (typeof audPayload === "string") {
                    return audOption.includes(audPayload);
                }
                if (Array.isArray(audPayload)) {
                    return audOption.some(Set.prototype.has.bind(new Set(audPayload)));
                }
                return false;
            };
            jwt_claims_set_default = function(protectedHeader, encodedPayload) {
                var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
                var payload;
                try {
                    payload = JSON.parse(decoder.decode(encodedPayload));
                } catch (e) {}
                if (!isObject(payload)) {
                    throw new JWTInvalid("JWT Claims Set must be a top-level JSON object");
                }
                var typ = options.typ;
                if (typ && (typeof protectedHeader.typ !== "string" || normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {
                    throw new JWTClaimValidationFailed('unexpected "typ" JWT header value', payload, "typ", "check_failed");
                }
                var _options_requiredClaims = options.requiredClaims, requiredClaims = _options_requiredClaims === void 0 ? [] : _options_requiredClaims, issuer = options.issuer, subject = options.subject, audience = options.audience, maxTokenAge = options.maxTokenAge;
                var presenceCheck = _to_consumable_array(requiredClaims);
                if (maxTokenAge !== void 0) presenceCheck.push("iat");
                if (audience !== void 0) presenceCheck.push("aud");
                if (subject !== void 0) presenceCheck.push("sub");
                if (issuer !== void 0) presenceCheck.push("iss");
                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                try {
                    for(var _iterator = new Set(presenceCheck.reverse())[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                        var claim = _step.value;
                        if (!(claim in payload)) {
                            throw new JWTClaimValidationFailed('missing required "'.concat(claim, '" claim'), payload, claim, "missing");
                        }
                    }
                } catch (err) {
                    _didIteratorError = true;
                    _iteratorError = err;
                } finally{
                    try {
                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                            _iterator["return"]();
                        }
                    } finally{
                        if (_didIteratorError) {
                            throw _iteratorError;
                        }
                    }
                }
                if (issuer && !(Array.isArray(issuer) ? issuer : [
                    issuer
                ]).includes(payload.iss)) {
                    throw new JWTClaimValidationFailed('unexpected "iss" claim value', payload, "iss", "check_failed");
                }
                if (subject && payload.sub !== subject) {
                    throw new JWTClaimValidationFailed('unexpected "sub" claim value', payload, "sub", "check_failed");
                }
                if (audience && !checkAudiencePresence(payload.aud, typeof audience === "string" ? [
                    audience
                ] : audience)) {
                    throw new JWTClaimValidationFailed('unexpected "aud" claim value', payload, "aud", "check_failed");
                }
                var tolerance;
                switch(_type_of(options.clockTolerance)){
                    case "string":
                        tolerance = secs_default(options.clockTolerance);
                        break;
                    case "number":
                        tolerance = options.clockTolerance;
                        break;
                    case "undefined":
                        tolerance = 0;
                        break;
                    default:
                        throw new TypeError("Invalid clockTolerance option type");
                }
                var currentDate = options.currentDate;
                var now2 = epoch_default(currentDate || /* @__PURE__ */ new Date());
                if ((payload.iat !== void 0 || maxTokenAge) && typeof payload.iat !== "number") {
                    throw new JWTClaimValidationFailed('"iat" claim must be a number', payload, "iat", "invalid");
                }
                if (payload.nbf !== void 0) {
                    if (typeof payload.nbf !== "number") {
                        throw new JWTClaimValidationFailed('"nbf" claim must be a number', payload, "nbf", "invalid");
                    }
                    if (payload.nbf > now2 + tolerance) {
                        throw new JWTClaimValidationFailed('"nbf" claim timestamp check failed', payload, "nbf", "check_failed");
                    }
                }
                if (payload.exp !== void 0) {
                    if (typeof payload.exp !== "number") {
                        throw new JWTClaimValidationFailed('"exp" claim must be a number', payload, "exp", "invalid");
                    }
                    if (payload.exp <= now2 - tolerance) {
                        throw new JWTExpired('"exp" claim timestamp check failed', payload, "exp", "check_failed");
                    }
                }
                if (maxTokenAge) {
                    var age = now2 - payload.iat;
                    var max = typeof maxTokenAge === "number" ? maxTokenAge : secs_default(maxTokenAge);
                    if (age - tolerance > max) {
                        throw new JWTExpired('"iat" claim timestamp check failed (too far in the past)', payload, "iat", "check_failed");
                    }
                    if (age < 0 - tolerance) {
                        throw new JWTClaimValidationFailed('"iat" claim timestamp check failed (it should be in the past)', payload, "iat", "check_failed");
                    }
                }
                return payload;
            };
        }
    });
    var init_verify5 = __esm({
        "node_modules/jose/dist/browser/jwt/verify.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_verify3();
            init_jwt_claims_set();
            init_errors();
        }
    });
    var init_decrypt5 = __esm({
        "node_modules/jose/dist/browser/jwt/decrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_decrypt3();
            init_jwt_claims_set();
            init_errors();
        }
    });
    // node_modules/jose/dist/browser/jwe/compact/encrypt.js
    var CompactEncrypt;
    var init_encrypt4 = __esm({
        "node_modules/jose/dist/browser/jwe/compact/encrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_encrypt2();
            CompactEncrypt = /*#__PURE__*/ function() {
                "use strict";
                function CompactEncrypt(plaintext) {
                    _class_call_check(this, CompactEncrypt);
                    this._flattened = new FlattenedEncrypt(plaintext);
                }
                _create_class(CompactEncrypt, [
                    {
                        key: "setContentEncryptionKey",
                        value: function setContentEncryptionKey(cek) {
                            this._flattened.setContentEncryptionKey(cek);
                            return this;
                        }
                    },
                    {
                        key: "setInitializationVector",
                        value: function setInitializationVector(iv) {
                            this._flattened.setInitializationVector(iv);
                            return this;
                        }
                    },
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            this._flattened.setProtectedHeader(protectedHeader);
                            return this;
                        }
                    },
                    {
                        key: "setKeyManagementParameters",
                        value: function setKeyManagementParameters(parameters2) {
                            this._flattened.setKeyManagementParameters(parameters2);
                            return this;
                        }
                    },
                    {
                        key: "encrypt",
                        value: function encrypt(key, options) {
                            return __async(this, null, function() {
                                var jwe;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this._flattened.encrypt(key, options)
                                            ];
                                        case 1:
                                            jwe = _state.sent();
                                            return [
                                                2,
                                                [
                                                    jwe["protected"],
                                                    jwe.encrypted_key,
                                                    jwe.iv,
                                                    jwe.ciphertext,
                                                    jwe.tag
                                                ].join(".")
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return CompactEncrypt;
            }();
        }
    });
    // node_modules/jose/dist/browser/runtime/sign.js
    var sign, sign_default;
    var init_sign = __esm({
        "node_modules/jose/dist/browser/runtime/sign.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_subtle_dsa();
            init_webcrypto();
            init_check_key_length();
            init_get_sign_verify_key();
            sign = function(alg, key, data) {
                return __async(void 0, null, function() {
                    var cryptoKey, signature;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    getCryptoKey3(alg, key, "sign")
                                ];
                            case 1:
                                cryptoKey = _state.sent();
                                check_key_length_default(alg, cryptoKey);
                                return [
                                    4,
                                    webcrypto_default.subtle.sign(subtleDsa(alg, cryptoKey.algorithm), cryptoKey, data)
                                ];
                            case 2:
                                signature = _state.sent();
                                return [
                                    2,
                                    new Uint8Array(signature)
                                ];
                        }
                    });
                });
            };
            sign_default = sign;
        }
    });
    // node_modules/jose/dist/browser/jws/flattened/sign.js
    var FlattenedSign;
    var init_sign2 = __esm({
        "node_modules/jose/dist/browser/jws/flattened/sign.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            init_sign();
            init_is_disjoint();
            init_errors();
            init_buffer_utils();
            init_check_key_type();
            init_validate_crit();
            FlattenedSign = /*#__PURE__*/ function() {
                "use strict";
                function FlattenedSign(payload) {
                    _class_call_check(this, FlattenedSign);
                    if (!(payload instanceof Uint8Array)) {
                        throw new TypeError("payload must be an instance of Uint8Array");
                    }
                    this._payload = payload;
                }
                _create_class(FlattenedSign, [
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            if (this._protectedHeader) {
                                throw new TypeError("setProtectedHeader can only be called once");
                            }
                            this._protectedHeader = protectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setUnprotectedHeader",
                        value: function setUnprotectedHeader(unprotectedHeader) {
                            if (this._unprotectedHeader) {
                                throw new TypeError("setUnprotectedHeader can only be called once");
                            }
                            this._unprotectedHeader = unprotectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "sign",
                        value: function sign(key, options) {
                            return __async(this, null, function() {
                                var joseHeader, extensions, b64, alg, payload, protectedHeader, data, signature, jws;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this._protectedHeader && !this._unprotectedHeader) {
                                                throw new JWSInvalid("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
                                            }
                                            if (!is_disjoint_default(this._protectedHeader, this._unprotectedHeader)) {
                                                throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
                                            }
                                            joseHeader = __spreadValues(__spreadValues({}, this._protectedHeader), this._unprotectedHeader);
                                            extensions = validate_crit_default(JWSInvalid, /* @__PURE__ */ new Map([
                                                [
                                                    "b64",
                                                    true
                                                ]
                                            ]), options == null ? void 0 : options.crit, this._protectedHeader, joseHeader);
                                            b64 = true;
                                            if (extensions.has("b64")) {
                                                b64 = this._protectedHeader.b64;
                                                if (typeof b64 !== "boolean") {
                                                    throw new JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
                                                }
                                            }
                                            alg = joseHeader.alg;
                                            if (typeof alg !== "string" || !alg) {
                                                throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
                                            }
                                            checkKeyTypeWithJwk(alg, key, "sign");
                                            payload = this._payload;
                                            if (b64) {
                                                payload = encoder.encode(encode(payload));
                                            }
                                            if (this._protectedHeader) {
                                                protectedHeader = encoder.encode(encode(JSON.stringify(this._protectedHeader)));
                                            } else {
                                                protectedHeader = encoder.encode("");
                                            }
                                            data = concat(protectedHeader, encoder.encode("."), payload);
                                            return [
                                                4,
                                                sign_default(alg, key, data)
                                            ];
                                        case 1:
                                            signature = _state.sent();
                                            jws = {
                                                signature: encode(signature),
                                                payload: ""
                                            };
                                            if (b64) {
                                                jws.payload = decoder.decode(payload);
                                            }
                                            if (this._unprotectedHeader) {
                                                jws.header = this._unprotectedHeader;
                                            }
                                            if (this._protectedHeader) {
                                                jws["protected"] = decoder.decode(protectedHeader);
                                            }
                                            return [
                                                2,
                                                jws
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return FlattenedSign;
            }();
        }
    });
    // node_modules/jose/dist/browser/jws/compact/sign.js
    var CompactSign;
    var init_sign3 = __esm({
        "node_modules/jose/dist/browser/jws/compact/sign.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_sign2();
            CompactSign = /*#__PURE__*/ function() {
                "use strict";
                function CompactSign(payload) {
                    _class_call_check(this, CompactSign);
                    this._flattened = new FlattenedSign(payload);
                }
                _create_class(CompactSign, [
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            this._flattened.setProtectedHeader(protectedHeader);
                            return this;
                        }
                    },
                    {
                        key: "sign",
                        value: function sign(key, options) {
                            return __async(this, null, function() {
                                var jws;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this._flattened.sign(key, options)
                                            ];
                                        case 1:
                                            jws = _state.sent();
                                            if (jws.payload === void 0) {
                                                throw new TypeError("use the flattened module for creating JWS with b64: false");
                                            }
                                            return [
                                                2,
                                                "".concat(jws["protected"], ".").concat(jws.payload, ".").concat(jws.signature)
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return CompactSign;
            }();
        }
    });
    // node_modules/jose/dist/browser/jws/general/sign.js
    var IndividualSignature, GeneralSign;
    var init_sign4 = __esm({
        "node_modules/jose/dist/browser/jws/general/sign.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_sign2();
            init_errors();
            IndividualSignature = /*#__PURE__*/ function() {
                "use strict";
                function IndividualSignature(sig, key, options) {
                    _class_call_check(this, IndividualSignature);
                    this.parent = sig;
                    this.key = key;
                    this.options = options;
                }
                _create_class(IndividualSignature, [
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            if (this.protectedHeader) {
                                throw new TypeError("setProtectedHeader can only be called once");
                            }
                            this.protectedHeader = protectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setUnprotectedHeader",
                        value: function setUnprotectedHeader(unprotectedHeader) {
                            if (this.unprotectedHeader) {
                                throw new TypeError("setUnprotectedHeader can only be called once");
                            }
                            this.unprotectedHeader = unprotectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "addSignature",
                        value: function addSignature() {
                            for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                args[_key] = arguments[_key];
                            }
                            var _this_parent;
                            return (_this_parent = this.parent).addSignature.apply(_this_parent, _to_consumable_array(args));
                        }
                    },
                    {
                        key: "sign",
                        value: function sign() {
                            for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                                args[_key] = arguments[_key];
                            }
                            var _this_parent;
                            return (_this_parent = this.parent).sign.apply(_this_parent, _to_consumable_array(args));
                        }
                    },
                    {
                        key: "done",
                        value: function done() {
                            return this.parent;
                        }
                    }
                ]);
                return IndividualSignature;
            }();
            GeneralSign = /*#__PURE__*/ function() {
                "use strict";
                function GeneralSign(payload) {
                    _class_call_check(this, GeneralSign);
                    this._signatures = [];
                    this._payload = payload;
                }
                _create_class(GeneralSign, [
                    {
                        key: "addSignature",
                        value: function addSignature(key, options) {
                            var signature = new IndividualSignature(this, key, options);
                            this._signatures.push(signature);
                            return signature;
                        }
                    },
                    {
                        key: "sign",
                        value: function sign() {
                            return __async(this, null, function() {
                                var jws, i, signature, flattened, _a2, payload, rest;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this._signatures.length) {
                                                throw new JWSInvalid("at least one signature must be added");
                                            }
                                            jws = {
                                                signatures: [],
                                                payload: ""
                                            };
                                            i = 0;
                                            _state.label = 1;
                                        case 1:
                                            if (!(i < this._signatures.length)) return [
                                                3,
                                                4
                                            ];
                                            signature = this._signatures[i];
                                            flattened = new FlattenedSign(this._payload);
                                            flattened.setProtectedHeader(signature.protectedHeader);
                                            flattened.setUnprotectedHeader(signature.unprotectedHeader);
                                            return [
                                                4,
                                                flattened.sign(signature.key, signature.options)
                                            ];
                                        case 2:
                                            _a2 = _state.sent(), payload = _a2.payload, rest = __objRest(_a2, [
                                                "payload"
                                            ]);
                                            if (i === 0) {
                                                jws.payload = payload;
                                            } else if (jws.payload !== payload) {
                                                throw new JWSInvalid("inconsistent use of JWS Unencoded Payload (RFC7797)");
                                            }
                                            jws.signatures.push(rest);
                                            _state.label = 3;
                                        case 3:
                                            i++;
                                            return [
                                                3,
                                                1
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                jws
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return GeneralSign;
            }();
        }
    });
    var ProduceJWT;
    var init_produce = __esm({
        "node_modules/jose/dist/browser/jwt/produce.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_epoch();
            init_is_object();
            init_secs();
            ProduceJWT = /*#__PURE__*/ function() {
                "use strict";
                function ProduceJWT() {
                    var payload = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
                    _class_call_check(this, ProduceJWT);
                    if (!isObject(payload)) {
                        throw new TypeError("JWT Claims Set MUST be an object");
                    }
                    this._payload = payload;
                }
                _create_class(ProduceJWT, [
                    {
                        key: "setIssuer",
                        value: function setIssuer(issuer) {
                            this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                iss: issuer
                            });
                            return this;
                        }
                    },
                    {
                        key: "setSubject",
                        value: function setSubject(subject) {
                            this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                sub: subject
                            });
                            return this;
                        }
                    },
                    {
                        key: "setAudience",
                        value: function setAudience(audience) {
                            this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                aud: audience
                            });
                            return this;
                        }
                    },
                    {
                        key: "setJti",
                        value: function setJti(jwtId) {
                            this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                jti: jwtId
                            });
                            return this;
                        }
                    },
                    {
                        key: "setNotBefore",
                        value: function setNotBefore(input) {
                            if (typeof input === "number") {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    nbf: validateInput("setNotBefore", input)
                                });
                            } else if (input instanceof Date) {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    nbf: validateInput("setNotBefore", epoch_default(input))
                                });
                            } else {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    nbf: epoch_default(/* @__PURE__ */ new Date()) + secs_default(input)
                                });
                            }
                            return this;
                        }
                    },
                    {
                        key: "setExpirationTime",
                        value: function setExpirationTime(input) {
                            if (typeof input === "number") {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    exp: validateInput("setExpirationTime", input)
                                });
                            } else if (input instanceof Date) {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    exp: validateInput("setExpirationTime", epoch_default(input))
                                });
                            } else {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    exp: epoch_default(/* @__PURE__ */ new Date()) + secs_default(input)
                                });
                            }
                            return this;
                        }
                    },
                    {
                        key: "setIssuedAt",
                        value: function setIssuedAt(input) {
                            if (typeof input === "undefined") {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    iat: epoch_default(/* @__PURE__ */ new Date())
                                });
                            } else if (input instanceof Date) {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    iat: validateInput("setIssuedAt", epoch_default(input))
                                });
                            } else if (typeof input === "string") {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    iat: validateInput("setIssuedAt", epoch_default(/* @__PURE__ */ new Date()) + secs_default(input))
                                });
                            } else {
                                this._payload = __spreadProps(__spreadValues({}, this._payload), {
                                    iat: validateInput("setIssuedAt", input)
                                });
                            }
                            return this;
                        }
                    }
                ]);
                return ProduceJWT;
            }();
        }
    });
    // node_modules/jose/dist/browser/jwt/sign.js
    var SignJWT;
    var init_sign5 = __esm({
        "node_modules/jose/dist/browser/jwt/sign.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_sign3();
            init_errors();
            init_buffer_utils();
            init_produce();
            SignJWT = /*#__PURE__*/ function(ProduceJWT) {
                "use strict";
                _inherits(SignJWT, ProduceJWT);
                var _super = _create_super(SignJWT);
                function SignJWT() {
                    _class_call_check(this, SignJWT);
                    return _super.apply(this, arguments);
                }
                _create_class(SignJWT, [
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            this._protectedHeader = protectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "sign",
                        value: function sign(key, options) {
                            return __async(this, null, function() {
                                var _a2, sig;
                                return _ts_generator(this, function(_state) {
                                    sig = new CompactSign(encoder.encode(JSON.stringify(this._payload)));
                                    sig.setProtectedHeader(this._protectedHeader);
                                    if (Array.isArray((_a2 = this._protectedHeader) == null ? void 0 : _a2.crit) && this._protectedHeader.crit.includes("b64") && this._protectedHeader.b64 === false) {
                                        throw new JWTInvalid("JWTs MUST NOT use unencoded payload");
                                    }
                                    return [
                                        2,
                                        sig.sign(key, options)
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return SignJWT;
            }(ProduceJWT);
        }
    });
    // node_modules/jose/dist/browser/jwt/encrypt.js
    var EncryptJWT;
    var init_encrypt5 = __esm({
        "node_modules/jose/dist/browser/jwt/encrypt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_encrypt4();
            init_buffer_utils();
            init_produce();
            EncryptJWT = /*#__PURE__*/ function(ProduceJWT) {
                "use strict";
                _inherits(EncryptJWT, ProduceJWT);
                var _super = _create_super(EncryptJWT);
                function EncryptJWT() {
                    _class_call_check(this, EncryptJWT);
                    return _super.apply(this, arguments);
                }
                _create_class(EncryptJWT, [
                    {
                        key: "setProtectedHeader",
                        value: function setProtectedHeader(protectedHeader) {
                            if (this._protectedHeader) {
                                throw new TypeError("setProtectedHeader can only be called once");
                            }
                            this._protectedHeader = protectedHeader;
                            return this;
                        }
                    },
                    {
                        key: "setKeyManagementParameters",
                        value: function setKeyManagementParameters(parameters2) {
                            if (this._keyManagementParameters) {
                                throw new TypeError("setKeyManagementParameters can only be called once");
                            }
                            this._keyManagementParameters = parameters2;
                            return this;
                        }
                    },
                    {
                        key: "setContentEncryptionKey",
                        value: function setContentEncryptionKey(cek) {
                            if (this._cek) {
                                throw new TypeError("setContentEncryptionKey can only be called once");
                            }
                            this._cek = cek;
                            return this;
                        }
                    },
                    {
                        key: "setInitializationVector",
                        value: function setInitializationVector(iv) {
                            if (this._iv) {
                                throw new TypeError("setInitializationVector can only be called once");
                            }
                            this._iv = iv;
                            return this;
                        }
                    },
                    {
                        key: "replicateIssuerAsHeader",
                        value: function replicateIssuerAsHeader() {
                            this._replicateIssuerAsHeader = true;
                            return this;
                        }
                    },
                    {
                        key: "replicateSubjectAsHeader",
                        value: function replicateSubjectAsHeader() {
                            this._replicateSubjectAsHeader = true;
                            return this;
                        }
                    },
                    {
                        key: "replicateAudienceAsHeader",
                        value: function replicateAudienceAsHeader() {
                            this._replicateAudienceAsHeader = true;
                            return this;
                        }
                    },
                    {
                        key: "encrypt",
                        value: function encrypt(key, options) {
                            return __async(this, null, function() {
                                var enc;
                                return _ts_generator(this, function(_state) {
                                    enc = new CompactEncrypt(encoder.encode(JSON.stringify(this._payload)));
                                    if (this._replicateIssuerAsHeader) {
                                        this._protectedHeader = __spreadProps(__spreadValues({}, this._protectedHeader), {
                                            iss: this._payload.iss
                                        });
                                    }
                                    if (this._replicateSubjectAsHeader) {
                                        this._protectedHeader = __spreadProps(__spreadValues({}, this._protectedHeader), {
                                            sub: this._payload.sub
                                        });
                                    }
                                    if (this._replicateAudienceAsHeader) {
                                        this._protectedHeader = __spreadProps(__spreadValues({}, this._protectedHeader), {
                                            aud: this._payload.aud
                                        });
                                    }
                                    enc.setProtectedHeader(this._protectedHeader);
                                    if (this._iv) {
                                        enc.setInitializationVector(this._iv);
                                    }
                                    if (this._cek) {
                                        enc.setContentEncryptionKey(this._cek);
                                    }
                                    if (this._keyManagementParameters) {
                                        enc.setKeyManagementParameters(this._keyManagementParameters);
                                    }
                                    return [
                                        2,
                                        enc.encrypt(key, options)
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return EncryptJWT;
            }(ProduceJWT);
        }
    });
    var check;
    var init_thumbprint = __esm({
        "node_modules/jose/dist/browser/jwk/thumbprint.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_digest();
            init_base64url();
            init_errors();
            init_buffer_utils();
            init_is_object();
            check = function(value, description) {
                if (typeof value !== "string" || !value) {
                    throw new JWKInvalid("".concat(description, " missing or invalid"));
                }
            };
        }
    });
    var init_embedded = __esm({
        "node_modules/jose/dist/browser/jwk/embedded.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_import();
            init_is_object();
            init_errors();
        }
    });
    var LocalJWKSet;
    var init_local = __esm({
        "node_modules/jose/dist/browser/jwks/local.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_import();
            init_errors();
            init_is_object();
            LocalJWKSet = /*#__PURE__*/ function() {
                "use strict";
                function LocalJWKSet(jwks) {
                    _class_call_check(this, LocalJWKSet);
                    this._cached = /* @__PURE__ */ new WeakMap();
                    if (!isJWKSLike(jwks)) {
                        throw new JWKSInvalid("JSON Web Key Set malformed");
                    }
                    this._jwks = clone(jwks);
                }
                _create_class(LocalJWKSet, [
                    {
                        key: "getKey",
                        value: function getKey(protectedHeader, token) {
                            return __async(this, null, function() {
                                var __spreadValues1, alg, kid, kty, candidates, jwk, length, error, _cached;
                                return _ts_generator(this, function(_state) {
                                    __spreadValues1 = __spreadValues(__spreadValues({}, protectedHeader), token == null ? void 0 : token.header), alg = __spreadValues1.alg, kid = __spreadValues1.kid;
                                    kty = getKtyFromAlg(alg);
                                    candidates = this._jwks.keys.filter(function(jwk2) {
                                        var candidate = kty === jwk2.kty;
                                        if (candidate && typeof kid === "string") {
                                            candidate = kid === jwk2.kid;
                                        }
                                        if (candidate && typeof jwk2.alg === "string") {
                                            candidate = alg === jwk2.alg;
                                        }
                                        if (candidate && typeof jwk2.use === "string") {
                                            candidate = jwk2.use === "sig";
                                        }
                                        if (candidate && Array.isArray(jwk2.key_ops)) {
                                            candidate = jwk2.key_ops.includes("verify");
                                        }
                                        if (candidate && alg === "EdDSA") {
                                            candidate = jwk2.crv === "Ed25519" || jwk2.crv === "Ed448";
                                        }
                                        if (candidate) {
                                            switch(alg){
                                                case "ES256":
                                                    candidate = jwk2.crv === "P-256";
                                                    break;
                                                case "ES256K":
                                                    candidate = jwk2.crv === "secp256k1";
                                                    break;
                                                case "ES384":
                                                    candidate = jwk2.crv === "P-384";
                                                    break;
                                                case "ES512":
                                                    candidate = jwk2.crv === "P-521";
                                                    break;
                                            }
                                        }
                                        return candidate;
                                    });
                                    jwk = candidates[0], length = candidates.length;
                                    if (length === 0) {
                                        throw new JWKSNoMatchingKey();
                                    }
                                    if (length !== 1) {
                                        error = new JWKSMultipleMatchingKeys();
                                        _cached = this._cached;
                                        error[Symbol.asyncIterator] = function() {
                                            return __asyncGenerator(this, null, function() {
                                                var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, jwk2, e, err;
                                                return _ts_generator(this, function(_state) {
                                                    switch(_state.label){
                                                        case 0:
                                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                            _state.label = 1;
                                                        case 1:
                                                            _state.trys.push([
                                                                1,
                                                                9,
                                                                10,
                                                                11
                                                            ]);
                                                            _iterator = candidates[Symbol.iterator]();
                                                            _state.label = 2;
                                                        case 2:
                                                            if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                                3,
                                                                8
                                                            ];
                                                            jwk2 = _step.value;
                                                            _state.label = 3;
                                                        case 3:
                                                            _state.trys.push([
                                                                3,
                                                                6,
                                                                ,
                                                                7
                                                            ]);
                                                            return [
                                                                4,
                                                                new __await(importWithAlgCache(_cached, jwk2, alg))
                                                            ];
                                                        case 4:
                                                            return [
                                                                4,
                                                                _state.sent()
                                                            ];
                                                        case 5:
                                                            _state.sent();
                                                            return [
                                                                3,
                                                                7
                                                            ];
                                                        case 6:
                                                            e = _state.sent();
                                                            return [
                                                                3,
                                                                7
                                                            ];
                                                        case 7:
                                                            _iteratorNormalCompletion = true;
                                                            return [
                                                                3,
                                                                2
                                                            ];
                                                        case 8:
                                                            return [
                                                                3,
                                                                11
                                                            ];
                                                        case 9:
                                                            err = _state.sent();
                                                            _didIteratorError = true;
                                                            _iteratorError = err;
                                                            return [
                                                                3,
                                                                11
                                                            ];
                                                        case 10:
                                                            try {
                                                                if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                    _iterator["return"]();
                                                                }
                                                            } finally{
                                                                if (_didIteratorError) {
                                                                    throw _iteratorError;
                                                                }
                                                            }
                                                            return [
                                                                7
                                                            ];
                                                        case 11:
                                                            return [
                                                                2
                                                            ];
                                                    }
                                                });
                                            });
                                        };
                                        throw error;
                                    }
                                    return [
                                        2,
                                        importWithAlgCache(this._cached, jwk, alg)
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return LocalJWKSet;
            }();
        }
    });
    // node_modules/jose/dist/browser/runtime/fetch_jwks.js
    var fetchJwks, fetch_jwks_default;
    var init_fetch_jwks = __esm({
        "node_modules/jose/dist/browser/runtime/fetch_jwks.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_errors();
            fetchJwks = function(url, timeout, options) {
                return __async(void 0, null, function() {
                    var controller, id, timedOut, response, e;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                timedOut = false;
                                if (typeof AbortController === "function") {
                                    controller = new AbortController();
                                    id = setTimeout(function() {
                                        timedOut = true;
                                        controller.abort();
                                    }, timeout);
                                }
                                return [
                                    4,
                                    fetch(url.href, {
                                        signal: controller ? controller.signal : void 0,
                                        redirect: "manual",
                                        headers: options.headers
                                    })["catch"](function(err) {
                                        if (timedOut) throw new JWKSTimeout();
                                        throw err;
                                    })
                                ];
                            case 1:
                                response = _state.sent();
                                if (id !== void 0) clearTimeout(id);
                                if (response.status !== 200) {
                                    throw new JOSEError("Expected 200 OK from the JSON Web Key Set HTTP response");
                                }
                                _state.label = 2;
                            case 2:
                                _state.trys.push([
                                    2,
                                    4,
                                    ,
                                    5
                                ]);
                                return [
                                    4,
                                    response.json()
                                ];
                            case 3:
                                return [
                                    2,
                                    _state.sent()
                                ];
                            case 4:
                                e = _state.sent();
                                throw new JOSEError("Failed to parse the JSON Web Key Set HTTP response as JSON");
                            case 5:
                                return [
                                    2
                                ];
                        }
                    });
                });
            };
            fetch_jwks_default = fetchJwks;
        }
    });
    var USER_AGENT, _a, _b, jwksCache, RemoteJWKSet, experimental_jwksCache;
    var init_remote = __esm({
        "node_modules/jose/dist/browser/jwks/remote.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_fetch_jwks();
            init_errors();
            init_local();
            init_is_object();
            if (typeof navigator === "undefined" || !((_b = (_a = navigator.userAgent) == null ? void 0 : _a.startsWith) == null ? void 0 : _b.call(_a, "Mozilla/5.0 "))) {
                var NAME = "jose";
                var VERSION = "v5.9.6";
                USER_AGENT = "".concat(NAME, "/").concat(VERSION);
            }
            jwksCache = Symbol();
            RemoteJWKSet = /*#__PURE__*/ function() {
                "use strict";
                function RemoteJWKSet(url, options) {
                    _class_call_check(this, RemoteJWKSet);
                    if (!(url instanceof URL)) {
                        throw new TypeError("url must be an instance of URL");
                    }
                    this._url = new URL(url.href);
                    this._options = {
                        agent: options == null ? void 0 : options.agent,
                        headers: options == null ? void 0 : options.headers
                    };
                    this._timeoutDuration = typeof (options == null ? void 0 : options.timeoutDuration) === "number" ? options == null ? void 0 : options.timeoutDuration : 5e3;
                    this._cooldownDuration = typeof (options == null ? void 0 : options.cooldownDuration) === "number" ? options == null ? void 0 : options.cooldownDuration : 3e4;
                    this._cacheMaxAge = typeof (options == null ? void 0 : options.cacheMaxAge) === "number" ? options == null ? void 0 : options.cacheMaxAge : 6e5;
                    if ((options == null ? void 0 : options[jwksCache]) !== void 0) {
                        this._cache = options == null ? void 0 : options[jwksCache];
                        if (isFreshJwksCache(options == null ? void 0 : options[jwksCache], this._cacheMaxAge)) {
                            this._jwksTimestamp = this._cache.uat;
                            this._local = createLocalJWKSet(this._cache.jwks);
                        }
                    }
                }
                _create_class(RemoteJWKSet, [
                    {
                        key: "coolingDown",
                        value: function coolingDown() {
                            return typeof this._jwksTimestamp === "number" ? Date.now() < this._jwksTimestamp + this._cooldownDuration : false;
                        }
                    },
                    {
                        key: "fresh",
                        value: function fresh() {
                            return typeof this._jwksTimestamp === "number" ? Date.now() < this._jwksTimestamp + this._cacheMaxAge : false;
                        }
                    },
                    {
                        key: "getKey",
                        value: function getKey(protectedHeader, token) {
                            return __async(this, null, function() {
                                var err;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!(!this._local || !this.fresh())) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.reload()
                                            ];
                                        case 1:
                                            _state.sent();
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                4,
                                                ,
                                                7
                                            ]);
                                            return [
                                                4,
                                                this._local(protectedHeader, token)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 4:
                                            err = _state.sent();
                                            if (!(err instanceof JWKSNoMatchingKey)) return [
                                                3,
                                                6
                                            ];
                                            if (!(this.coolingDown() === false)) return [
                                                3,
                                                6
                                            ];
                                            return [
                                                4,
                                                this.reload()
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2,
                                                this._local(protectedHeader, token)
                                            ];
                                        case 6:
                                            throw err;
                                        case 7:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "reload",
                        value: function reload() {
                            return __async(this, null, function() {
                                var _this, headers;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            if (this._pendingFetch && isCloudflareWorkers()) {
                                                this._pendingFetch = void 0;
                                            }
                                            headers = new Headers(this._options.headers);
                                            if (USER_AGENT && !headers.has("User-Agent")) {
                                                headers.set("User-Agent", USER_AGENT);
                                                this._options.headers = Object.fromEntries(headers.entries());
                                            }
                                            this._pendingFetch || (this._pendingFetch = fetch_jwks_default(this._url, this._timeoutDuration, this._options).then(function(json) {
                                                _this._local = createLocalJWKSet(json);
                                                if (_this._cache) {
                                                    _this._cache.uat = Date.now();
                                                    _this._cache.jwks = json;
                                                }
                                                _this._jwksTimestamp = Date.now();
                                                _this._pendingFetch = void 0;
                                            })["catch"](function(err) {
                                                _this._pendingFetch = void 0;
                                                throw err;
                                            }));
                                            return [
                                                4,
                                                this._pendingFetch
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return RemoteJWKSet;
            }();
            experimental_jwksCache = jwksCache;
        }
    });
    // node_modules/jose/dist/browser/jwt/unsecured.js
    var UnsecuredJWT;
    var init_unsecured = __esm({
        "node_modules/jose/dist/browser/jwt/unsecured.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            init_buffer_utils();
            init_errors();
            init_jwt_claims_set();
            init_produce();
            UnsecuredJWT = /*#__PURE__*/ function(ProduceJWT) {
                "use strict";
                _inherits(UnsecuredJWT, ProduceJWT);
                var _super = _create_super(UnsecuredJWT);
                function UnsecuredJWT() {
                    _class_call_check(this, UnsecuredJWT);
                    return _super.apply(this, arguments);
                }
                _create_class(UnsecuredJWT, [
                    {
                        key: "encode",
                        value: function encode1() {
                            var header = encode(JSON.stringify({
                                alg: "none"
                            }));
                            var payload = encode(JSON.stringify(this._payload));
                            return "".concat(header, ".").concat(payload, ".");
                        }
                    }
                ], [
                    {
                        key: "decode",
                        value: function decode1(jwt, options) {
                            if (typeof jwt !== "string") {
                                throw new JWTInvalid("Unsecured JWT must be a string");
                            }
                            var _jwt_split = jwt.split("."), encodedHeader = _jwt_split[0], encodedPayload = _jwt_split[1], signature = _jwt_split[2], length = _jwt_split.length;
                            if (length !== 3 || signature !== "") {
                                throw new JWTInvalid("Invalid Unsecured JWT");
                            }
                            var header;
                            try {
                                header = JSON.parse(decoder.decode(decode(encodedHeader)));
                                if (header.alg !== "none") throw new Error();
                            } catch (e) {
                                throw new JWTInvalid("Invalid Unsecured JWT");
                            }
                            var payload = jwt_claims_set_default(header, decode(encodedPayload), options);
                            return {
                                payload: payload,
                                header: header
                            };
                        }
                    }
                ]);
                return UnsecuredJWT;
            }(ProduceJWT);
        }
    });
    // node_modules/jose/dist/browser/util/base64url.js
    var base64url_exports2 = {};
    __export(base64url_exports2, {
        decode: function() {
            return decode2;
        },
        encode: function() {
            return encode2;
        }
    });
    var encode2, decode2;
    var init_base64url2 = __esm({
        "node_modules/jose/dist/browser/util/base64url.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url();
            encode2 = encode;
            decode2 = decode;
        }
    });
    var init_decode_protected_header = __esm({
        "node_modules/jose/dist/browser/util/decode_protected_header.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url2();
            init_buffer_utils();
            init_is_object();
        }
    });
    var init_decode_jwt = __esm({
        "node_modules/jose/dist/browser/util/decode_jwt.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_base64url2();
            init_buffer_utils();
            init_is_object();
            init_errors();
        }
    });
    var init_generate = __esm({
        "node_modules/jose/dist/browser/runtime/generate.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_webcrypto();
            init_errors();
            init_random();
        }
    });
    var init_generate_key_pair = __esm({
        "node_modules/jose/dist/browser/key/generate_key_pair.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_generate();
        }
    });
    var init_generate_secret = __esm({
        "node_modules/jose/dist/browser/key/generate_secret.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_generate();
        }
    });
    // node_modules/jose/dist/browser/runtime/runtime.js
    var runtime_default;
    var init_runtime = __esm({
        "node_modules/jose/dist/browser/runtime/runtime.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            runtime_default = "WebCryptoAPI";
        }
    });
    // node_modules/jose/dist/browser/util/runtime.js
    var runtime_default2;
    var init_runtime2 = __esm({
        "node_modules/jose/dist/browser/util/runtime.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_runtime();
            runtime_default2 = runtime_default;
        }
    });
    // node_modules/jose/dist/browser/index.js
    var browser_exports = {};
    __export(browser_exports, {
        CompactEncrypt: function() {
            return CompactEncrypt;
        },
        CompactSign: function() {
            return CompactSign;
        },
        EmbeddedJWK: function() {
            return EmbeddedJWK;
        },
        EncryptJWT: function() {
            return EncryptJWT;
        },
        FlattenedEncrypt: function() {
            return FlattenedEncrypt;
        },
        FlattenedSign: function() {
            return FlattenedSign;
        },
        GeneralEncrypt: function() {
            return GeneralEncrypt;
        },
        GeneralSign: function() {
            return GeneralSign;
        },
        SignJWT: function() {
            return SignJWT;
        },
        UnsecuredJWT: function() {
            return UnsecuredJWT;
        },
        base64url: function() {
            return base64url_exports2;
        },
        calculateJwkThumbprint: function() {
            return calculateJwkThumbprint;
        },
        calculateJwkThumbprintUri: function() {
            return calculateJwkThumbprintUri;
        },
        compactDecrypt: function() {
            return compactDecrypt;
        },
        compactVerify: function() {
            return compactVerify;
        },
        createLocalJWKSet: function() {
            return createLocalJWKSet;
        },
        createRemoteJWKSet: function() {
            return createRemoteJWKSet;
        },
        cryptoRuntime: function() {
            return runtime_default2;
        },
        decodeJwt: function() {
            return decodeJwt;
        },
        decodeProtectedHeader: function() {
            return decodeProtectedHeader;
        },
        errors: function() {
            return errors_exports;
        },
        experimental_jwksCache: function() {
            return experimental_jwksCache;
        },
        exportJWK: function() {
            return exportJWK;
        },
        exportPKCS8: function() {
            return exportPKCS8;
        },
        exportSPKI: function() {
            return exportSPKI;
        },
        flattenedDecrypt: function() {
            return flattenedDecrypt;
        },
        flattenedVerify: function() {
            return flattenedVerify;
        },
        generalDecrypt: function() {
            return generalDecrypt;
        },
        generalVerify: function() {
            return generalVerify;
        },
        generateKeyPair: function() {
            return generateKeyPair2;
        },
        generateSecret: function() {
            return generateSecret2;
        },
        importJWK: function() {
            return importJWK;
        },
        importPKCS8: function() {
            return importPKCS8;
        },
        importSPKI: function() {
            return importSPKI;
        },
        importX509: function() {
            return importX509;
        },
        jwksCache: function() {
            return jwksCache;
        },
        jwtDecrypt: function() {
            return jwtDecrypt;
        },
        jwtVerify: function() {
            return jwtVerify;
        }
    });
    var init_browser = __esm({
        "node_modules/jose/dist/browser/index.js": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_decrypt3();
            init_decrypt2();
            init_decrypt4();
            init_encrypt3();
            init_verify3();
            init_verify2();
            init_verify4();
            init_verify5();
            init_decrypt5();
            init_encrypt4();
            init_encrypt2();
            init_sign3();
            init_sign2();
            init_sign4();
            init_sign5();
            init_encrypt5();
            init_thumbprint();
            init_embedded();
            init_local();
            init_remote();
            init_unsecured();
            init_export();
            init_import();
            init_decode_protected_header();
            init_decode_jwt();
            init_errors();
            init_generate_key_pair();
            init_generate_secret();
            init_base64url2();
            init_runtime2();
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Secrets/SubtleCryptoSecretManager.js
    var require_SubtleCryptoSecretManager = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Secrets/SubtleCryptoSecretManager.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var jose = __importStar((init_browser(), __toCommonJS(browser_exports)));
            var buffer_1 = require_buffer();
            var KEY_ALGORITHM = "RSA-OAEP";
            var KEY_SIZE = 4096;
            var KEY_HASH = "SHA-256";
            var KEY_ALIAS = "SecretManager";
            var KEY_VALIDITY_MONTHS = 6;
            var JWE_ENC = "A256GCM";
            var SubtleCryptoSecretManager2 = /*#__PURE__*/ function() {
                function SubtleCryptoSecretManager2(subtleCrypto, storage) {
                    _class_call_check(this, SubtleCryptoSecretManager2);
                    this.subtleCrypto = subtleCrypto;
                    this.storage = storage;
                }
                _create_class(SubtleCryptoSecretManager2, [
                    {
                        key: "generateKeys",
                        value: function generateKeys() {
                            return __awaiter(this, void 0, void 0, function() {
                                var keyPair;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.subtleCrypto().generateKey({
                                                    name: KEY_ALGORITHM,
                                                    modulusLength: KEY_SIZE,
                                                    publicExponent: new Uint8Array([
                                                        1,
                                                        0,
                                                        1
                                                    ]),
                                                    hash: KEY_HASH
                                                }, true, [
                                                    "encrypt",
                                                    "decrypt"
                                                ])
                                            ];
                                        case 1:
                                            keyPair = _state.sent();
                                            return [
                                                4,
                                                this.saveKeyPair(keyPair)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "encryptUtf8ToJweCompact",
                        value: function encryptUtf8ToJweCompact(text) {
                            return __awaiter(this, void 0, void 0, function() {
                                var bytes;
                                return _ts_generator(this, function(_state) {
                                    bytes = buffer_1.Buffer.from(text, "utf8");
                                    return [
                                        2,
                                        this.encryptBytesToJweCompact(bytes)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "decryptJweCompactToUtf8",
                        value: function decryptJweCompactToUtf8(jweCompact) {
                            return __awaiter(this, void 0, void 0, function() {
                                var plaintext;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.decryptJweCompactToBytes(jweCompact)
                                            ];
                                        case 1:
                                            plaintext = _state.sent();
                                            return [
                                                2,
                                                buffer_1.Buffer.from(plaintext).toString("utf-8")
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "decryptJweCompactToBytes",
                        value: function decryptJweCompactToBytes(jweCompact) {
                            return __awaiter(this, void 0, void 0, function() {
                                var privateKey, plaintext;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requirePrivateKey()
                                            ];
                                        case 1:
                                            privateKey = _state.sent();
                                            return [
                                                4,
                                                jose.compactDecrypt(jweCompact, privateKey)
                                            ];
                                        case 2:
                                            plaintext = _state.sent().plaintext;
                                            return [
                                                2,
                                                plaintext
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "encryptBytesToJweCompact",
                        value: function encryptBytesToJweCompact(value) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _ref, publicKey, alg;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requirePublicKey()
                                            ];
                                        case 1:
                                            _ref = _sliced_to_array.apply(void 0, [
                                                _state.sent(),
                                                2
                                            ]), publicKey = _ref[0], alg = _ref[1];
                                            return [
                                                4,
                                                new jose.CompactEncrypt(value).setProtectedHeader({
                                                    alg: alg,
                                                    enc: JWE_ENC
                                                }).encrypt(publicKey)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "encryptUtf8ToJweGeneral",
                        value: function encryptUtf8ToJweGeneral(text) {
                            return __awaiter(this, void 0, void 0, function() {
                                var bytes;
                                return _ts_generator(this, function(_state) {
                                    bytes = buffer_1.Buffer.from(text, "utf8");
                                    return [
                                        2,
                                        this.encryptBytesToJweGeneral(bytes)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "decryptJweGeneralToUtf8",
                        value: function decryptJweGeneralToUtf8(jweGeneral) {
                            return __awaiter(this, void 0, void 0, function() {
                                var plaintext;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.decryptJweGeneralToBytes(jweGeneral)
                                            ];
                                        case 1:
                                            plaintext = _state.sent();
                                            return [
                                                2,
                                                buffer_1.Buffer.from(plaintext).toString("utf-8")
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "decryptJweGeneralToBytes",
                        value: function decryptJweGeneralToBytes(jweGeneral) {
                            return __awaiter(this, void 0, void 0, function() {
                                var privateKey, plaintext;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requirePrivateKey()
                                            ];
                                        case 1:
                                            privateKey = _state.sent();
                                            return [
                                                4,
                                                jose.generalDecrypt(jweGeneral, privateKey)
                                            ];
                                        case 2:
                                            plaintext = _state.sent().plaintext;
                                            return [
                                                2,
                                                plaintext
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "encryptBytesToJweGeneral",
                        value: function encryptBytesToJweGeneral(value) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _ref, publicKey, alg;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requirePublicKey()
                                            ];
                                        case 1:
                                            _ref = _sliced_to_array.apply(void 0, [
                                                _state.sent(),
                                                2
                                            ]), publicKey = _ref[0], alg = _ref[1];
                                            return [
                                                4,
                                                new jose.GeneralEncrypt(value).setProtectedHeader({
                                                    enc: JWE_ENC
                                                }).addRecipient(publicKey).setUnprotectedHeader({
                                                    alg: alg
                                                }).encrypt()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getPublicKey",
                        value: function getPublicKey() {
                            return __awaiter(this, void 0, void 0, function() {
                                var keyPair;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requireKeyPair()
                                            ];
                                        case 1:
                                            keyPair = _state.sent();
                                            return [
                                                2,
                                                {
                                                    algorithm: keyPair.algorithm,
                                                    publicKeySpki: keyPair.publicKeySpki,
                                                    keyValidity: keyPair.keyValidity
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "saveKeyPair",
                        value: function saveKeyPair(keyPair) {
                            return __awaiter(this, void 0, void 0, function() {
                                var algorithm, publicKeySpki, privateKeyPkcs8, actualDate, validUntil, keyData;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            algorithm = keyPair.publicKey.algorithm;
                                            if (!algorithm.name.startsWith("RSA-")) {
                                                throw new Error("Unsupported algorithm: ".concat(algorithm.name));
                                            }
                                            return [
                                                4,
                                                jose.exportSPKI(keyPair.publicKey)
                                            ];
                                        case 1:
                                            publicKeySpki = _state.sent();
                                            return [
                                                4,
                                                jose.exportPKCS8(keyPair.privateKey)
                                            ];
                                        case 2:
                                            privateKeyPkcs8 = _state.sent();
                                            actualDate = /* @__PURE__ */ new Date();
                                            validUntil = new Date(actualDate);
                                            validUntil.setMonth(actualDate.getMonth() + KEY_VALIDITY_MONTHS);
                                            keyData = {
                                                algorithm: algorithm,
                                                publicKeySpki: publicKeySpki,
                                                privateKeyPkcs8: privateKeyPkcs8,
                                                keyValidity: {
                                                    start: actualDate,
                                                    end: validUntil
                                                }
                                            };
                                            return [
                                                4,
                                                this.storage.saveKeyPair(KEY_ALIAS, keyData)
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "requirePrivateKey",
                        value: function requirePrivateKey() {
                            return __awaiter(this, void 0, void 0, function() {
                                var keyPair, alg;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requireKeyPair()
                                            ];
                                        case 1:
                                            keyPair = _state.sent();
                                            alg = buildJweAlg(keyPair.algorithm);
                                            return [
                                                4,
                                                jose.importPKCS8(keyPair.privateKeyPkcs8, alg)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "requirePublicKey",
                        value: function requirePublicKey() {
                            return __awaiter(this, void 0, void 0, function() {
                                var keyPair, alg;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.requireKeyPair()
                                            ];
                                        case 1:
                                            keyPair = _state.sent();
                                            alg = buildJweAlg(keyPair.algorithm);
                                            return [
                                                4,
                                                jose.importSPKI(keyPair.publicKeySpki, alg)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                [
                                                    _state.sent(),
                                                    alg
                                                ]
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "requireKeyPair",
                        value: function requireKeyPair() {
                            return __awaiter(this, void 0, void 0, function() {
                                var keyPair;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.storage.getKeyPair(KEY_ALIAS)
                                            ];
                                        case 1:
                                            keyPair = _state.sent();
                                            if (!keyPair) {
                                                throw new Error("Key not found.");
                                            }
                                            return [
                                                2,
                                                keyPair
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return SubtleCryptoSecretManager2;
            }();
            exports["default"] = SubtleCryptoSecretManager2;
            var buildJweAlg = function(algorithm) {
                switch(algorithm.name){
                    case "RSA-OAEP":
                        var hash = algorithm.hash.name;
                        switch(hash){
                            case "SHA-1":
                                return algorithm.name;
                            default:
                                return "".concat(algorithm.name, "-").concat(hash.slice(-3));
                        }
                    default:
                        throw new Error("Unsupported algorithm: ".concat(algorithm.name));
                }
            };
        }
    });
    // node_modules/@signageos/front-display/es6/Management/Secrets/DefaultBrowserSecretStorage.js
    var require_DefaultBrowserSecretStorage = __commonJS({
        "node_modules/@signageos/front-display/es6/Management/Secrets/DefaultBrowserSecretStorage.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var DefaultBrowserSecretStorage2 = /*#__PURE__*/ function() {
                function _DefaultBrowserSecretStorage(storage, getDeviceUid) {
                    _class_call_check(this, _DefaultBrowserSecretStorage);
                    this.storage = storage;
                    this.getDeviceUid = getDeviceUid;
                }
                _create_class(_DefaultBrowserSecretStorage, [
                    {
                        key: "saveKeyPair",
                        value: function saveKeyPair(name, keyPair) {
                            return __awaiter(this, void 0, void 0, function() {
                                var password, salt, key, _ref, encrypted, iv;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getDeviceUid()
                                            ];
                                        case 1:
                                            password = _state.sent();
                                            salt = crypto.getRandomValues(new Uint8Array(_DefaultBrowserSecretStorage.SALT_LENGTH));
                                            return [
                                                4,
                                                this.deriveKey(password, salt)
                                            ];
                                        case 2:
                                            key = _state.sent();
                                            return [
                                                4,
                                                this.encryptData(key, JSON.stringify(keyPair))
                                            ];
                                        case 3:
                                            _ref = _state.sent(), encrypted = _ref.encrypted, iv = _ref.iv;
                                            this.storage.setItem(name, JSON.stringify({
                                                encrypted: this.uint8ToBase64(this.base64ToUint8(encrypted)),
                                                iv: this.uint8ToBase64(this.base64ToUint8(iv)),
                                                salt: this.uint8ToBase64(salt)
                                            }));
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getKeyPair",
                        value: function getKeyPair(name) {
                            return __awaiter(this, void 0, void 0, function() {
                                var stringified, _JSON_parse, encrypted, iv, salt, password, saltArray, key, decrypted, e;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            stringified = this.storage.getItem(name);
                                            if (!stringified) {
                                                return [
                                                    2,
                                                    null
                                                ];
                                            }
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                5,
                                                ,
                                                6
                                            ]);
                                            _JSON_parse = JSON.parse(stringified), encrypted = _JSON_parse.encrypted, iv = _JSON_parse.iv, salt = _JSON_parse.salt;
                                            return [
                                                4,
                                                this.getDeviceUid()
                                            ];
                                        case 2:
                                            password = _state.sent();
                                            saltArray = this.base64ToUint8(salt);
                                            return [
                                                4,
                                                this.deriveKey(password, saltArray)
                                            ];
                                        case 3:
                                            key = _state.sent();
                                            return [
                                                4,
                                                this.decryptData(key, encrypted, iv)
                                            ];
                                        case 4:
                                            decrypted = _state.sent();
                                            return [
                                                2,
                                                JSON.parse(decrypted)
                                            ];
                                        case 5:
                                            e = _state.sent();
                                            console.error("Failed to decrypt key pair:", e);
                                            return [
                                                2,
                                                null
                                            ];
                                        case 6:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deriveKey",
                        value: function deriveKey(password, salt) {
                            return __awaiter(this, void 0, void 0, function() {
                                var baseKey;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                crypto.subtle.importKey("raw", new TextEncoder().encode(password), {
                                                    name: _DefaultBrowserSecretStorage.KEY_ALGORITHM
                                                }, false, [
                                                    "deriveKey"
                                                ])
                                            ];
                                        case 1:
                                            baseKey = _state.sent();
                                            return [
                                                2,
                                                crypto.subtle.deriveKey({
                                                    name: _DefaultBrowserSecretStorage.KEY_ALGORITHM,
                                                    salt: salt,
                                                    iterations: _DefaultBrowserSecretStorage.KEY_ITERATIONS,
                                                    hash: _DefaultBrowserSecretStorage.KEY_HASH
                                                }, baseKey, {
                                                    name: _DefaultBrowserSecretStorage.AES_ALGORITHM,
                                                    length: _DefaultBrowserSecretStorage.KEY_LENGTH
                                                }, false, [
                                                    "encrypt",
                                                    "decrypt"
                                                ])
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "encryptData",
                        value: function encryptData(key, data) {
                            return __awaiter(this, void 0, void 0, function() {
                                var iv, encrypted;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            iv = crypto.getRandomValues(new Uint8Array(_DefaultBrowserSecretStorage.AES_IV_LENGTH));
                                            return [
                                                4,
                                                crypto.subtle.encrypt({
                                                    name: _DefaultBrowserSecretStorage.AES_ALGORITHM,
                                                    iv: iv
                                                }, key, new TextEncoder().encode(data))
                                            ];
                                        case 1:
                                            encrypted = _state.sent();
                                            return [
                                                2,
                                                {
                                                    encrypted: this.uint8ToBase64(new Uint8Array(encrypted)),
                                                    iv: this.uint8ToBase64(iv)
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "decryptData",
                        value: function decryptData(key, encrypted, ivBase64) {
                            return __awaiter(this, void 0, void 0, function() {
                                var encryptedBuffer, iv, decrypted;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            encryptedBuffer = this.base64ToUint8(encrypted).buffer;
                                            iv = this.base64ToUint8(ivBase64);
                                            return [
                                                4,
                                                crypto.subtle.decrypt({
                                                    name: _DefaultBrowserSecretStorage.AES_ALGORITHM,
                                                    iv: iv
                                                }, key, encryptedBuffer)
                                            ];
                                        case 1:
                                            decrypted = _state.sent();
                                            return [
                                                2,
                                                new TextDecoder().decode(decrypted)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "uint8ToBase64",
                        value: function uint8ToBase64(arr) {
                            if (typeof import_buffer.Buffer !== "undefined") {
                                return import_buffer.Buffer.from(arr).toString("base64");
                            }
                            var binary = "";
                            for(var i = 0; i < arr.length; i++){
                                binary += String.fromCharCode(arr[i]);
                            }
                            return btoa(binary);
                        }
                    },
                    {
                        key: "base64ToUint8",
                        value: function base64ToUint8(base64) {
                            if (typeof import_buffer.Buffer !== "undefined") {
                                return new Uint8Array(import_buffer.Buffer.from(base64, "base64"));
                            }
                            var binary = atob(base64);
                            var arr = new Uint8Array(binary.length);
                            for(var i = 0; i < binary.length; i++){
                                arr[i] = binary.charCodeAt(i);
                            }
                            return arr;
                        }
                    }
                ]);
                return _DefaultBrowserSecretStorage;
            }();
            DefaultBrowserSecretStorage2.KEY_ALGORITHM = "PBKDF2";
            DefaultBrowserSecretStorage2.KEY_HASH = "SHA-256";
            DefaultBrowserSecretStorage2.KEY_LENGTH = 256;
            DefaultBrowserSecretStorage2.KEY_ITERATIONS = 1e5;
            DefaultBrowserSecretStorage2.AES_ALGORITHM = "AES-GCM";
            DefaultBrowserSecretStorage2.AES_IV_LENGTH = 12;
            DefaultBrowserSecretStorage2.SALT_LENGTH = 16;
            exports["default"] = DefaultBrowserSecretStorage2;
        }
    });
    // src/Driver/ManagementDriver/SCAPv16ManagementDriver.ts
    var import_ManagementCapability3, import_SubtleCryptoSecretManager, import_DefaultBrowserSecretStorage, SCAPv16ManagementDriver;
    var init_SCAPv16ManagementDriver = __esm({
        "src/Driver/ManagementDriver/SCAPv16ManagementDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ManagementCapability3 = __toESM(require_ManagementCapability());
            init_SCAPv16TimeManager();
            init_SCAPv15ManagementDriver();
            import_SubtleCryptoSecretManager = __toESM(require_SubtleCryptoSecretManager());
            import_DefaultBrowserSecretStorage = __toESM(require_DefaultBrowserSecretStorage());
            SCAPv16ManagementDriver = /*#__PURE__*/ function(SCAPv15ManagementDriver) {
                "use strict";
                _inherits(_SCAPv16ManagementDriver, SCAPv15ManagementDriver);
                var _super = _create_super(_SCAPv16ManagementDriver);
                function _SCAPv16ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl) {
                    _class_call_check(this, _SCAPv16ManagementDriver);
                    var _this;
                    _this = _super.call(this, window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                    _this.scap = scap;
                    __publicField(_assert_this_initialized(_this), "timeManager");
                    _this.timeManager = new SCAPv16TimeManager(scap, function() {
                        return _this.appRestart();
                    });
                    var secretStorage = new import_DefaultBrowserSecretStorage["default"](_this.window.localStorage, function() {
                        return _this.getDeviceUid();
                    });
                    _this.secretManager = new import_SubtleCryptoSecretManager["default"](function() {
                        return _this.window.crypto.subtle;
                    }, secretStorage);
                    return _this;
                }
                _create_class(_SCAPv16ManagementDriver, [
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv16";
                        }
                    },
                    {
                        key: "managementSupports",
                        value: function managementSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    if (capability === import_ManagementCapability3["default"].SECRETS) {
                                        return [
                                            2,
                                            true
                                        ];
                                    }
                                    return [
                                        2,
                                        __superGet(_SCAPv16ManagementDriver.prototype, this, "managementSupports").call(this, capability)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "timerSetOn",
                        value: function timerSetOn(timerOptions) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerSetOn", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerSetOn: " + cbObject.errorText));
                                };
                                _this.scap.time.reserveOnOffTimer(successCb, errorCb, {
                                    type: "ONTIMER",
                                    hour: timerOptions.hour,
                                    minute: timerOptions.minute,
                                    week: timerOptions.week
                                });
                            });
                        }
                    },
                    {
                        key: "timerSetOff",
                        value: function timerSetOff(timerOptions) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerSetOff", cbObject);
                                    resolve();
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerSetOff: " + cbObject.errorText));
                                };
                                _this.scap.time.reserveOnOffTimer(successCb, errorCb, __spreadProps(__spreadValues({}, timerOptions), {
                                    type: "OFFTIMER"
                                }));
                            });
                        }
                    },
                    {
                        key: "timerDeleteOn",
                        value: function timerDeleteOn(options) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                return __async(_this, null, function() {
                                    var successCb, errorCb, timerList, timerToDelete;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                successCb = function(cbObject) {
                                                    console.info("timerDeleteOn", cbObject);
                                                    resolve();
                                                };
                                                errorCb = function(cbObject) {
                                                    reject(new Error("Error during timerDeleteOn: " + cbObject.errorText));
                                                };
                                                return [
                                                    4,
                                                    this.timerGetOnOffList()
                                                ];
                                            case 1:
                                                timerList = _state.sent();
                                                timerToDelete = timerList.find(function(timer) {
                                                    return timer.type === "ONTIMER" && timer.hour === options.hour && timer.minute === options.minute && timer.week === options.week;
                                                });
                                                if (timerToDelete) {
                                                    this.scap.time.cancelOnOffTimer(successCb, errorCb, {
                                                        id: parseInt(timerToDelete.id)
                                                    });
                                                } else {
                                                    reject(new Error("Could not find timer."));
                                                }
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                        }
                    },
                    {
                        key: "timerDeleteOff",
                        value: function timerDeleteOff(options) {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                return __async(_this, null, function() {
                                    var successCb, errorCb, timerList, timerToDelete;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                successCb = function(cbObject) {
                                                    console.info("timerDeleteOff", cbObject);
                                                    resolve();
                                                };
                                                errorCb = function(cbObject) {
                                                    reject(new Error("Error during timerDeleteOff: " + cbObject.errorText));
                                                };
                                                return [
                                                    4,
                                                    this.timerGetOnOffList()
                                                ];
                                            case 1:
                                                timerList = _state.sent();
                                                timerToDelete = timerList.find(function(timer) {
                                                    return timer.type === "OFFTIMER" && timer.hour === options.hour && timer.minute === options.minute && timer.week === options.week;
                                                });
                                                if (timerToDelete) {
                                                    this.scap.time.cancelOnOffTimer(successCb, errorCb, {
                                                        id: parseInt(timerToDelete.id)
                                                    });
                                                } else {
                                                    reject(new Error("Could not find timer."));
                                                }
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                        }
                    },
                    {
                        key: "timerGetOnList",
                        value: function timerGetOnList() {
                            var _this = this;
                            return new Promise(function(resolve) {
                                return __async(_this, null, function() {
                                    var currentInputSource, timerList;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.getCurrentInputSource()
                                                ];
                                            case 1:
                                                currentInputSource = _state.sent();
                                                return [
                                                    4,
                                                    this.timerGetOnOffList()
                                                ];
                                            case 2:
                                                timerList = _state.sent();
                                                resolve(timerList.filter(function(timer) {
                                                    return timer.type === "ONTIMER";
                                                }).map(function(timer) {
                                                    return {
                                                        inputSource: currentInputSource,
                                                        hour: timer.hour,
                                                        minute: timer.minute,
                                                        week: timer.week
                                                    };
                                                }));
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                        }
                    },
                    {
                        key: "timerGetOffList",
                        value: function timerGetOffList() {
                            var _this = this;
                            return new Promise(function(resolve) {
                                return __async(_this, null, function() {
                                    var currentInputSource, timerList;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.getCurrentInputSource()
                                                ];
                                            case 1:
                                                currentInputSource = _state.sent();
                                                return [
                                                    4,
                                                    this.timerGetOnOffList()
                                                ];
                                            case 2:
                                                timerList = _state.sent();
                                                resolve(timerList.filter(function(timer) {
                                                    return timer.type === "OFFTIMER";
                                                }).map(function(timer) {
                                                    return {
                                                        inputSource: currentInputSource,
                                                        hour: timer.hour,
                                                        minute: timer.minute,
                                                        week: timer.week
                                                    };
                                                }));
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                        }
                    },
                    {
                        key: "timerGetOnOffList",
                        value: function timerGetOnOffList() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                var successCb = function(cbObject) {
                                    console.info("timerGetOnList", cbObject);
                                    resolve(cbObject.timerList);
                                };
                                var errorCb = function(cbObject) {
                                    reject(new Error("Error during timerGetOnList: " + cbObject.errorText));
                                };
                                _this.scap.time.getAllOnOffTimers(successCb, errorCb);
                            });
                        }
                    }
                ]);
                return _SCAPv16ManagementDriver;
            }(SCAPv15ManagementDriver);
        }
    });
    // src/Driver/Network/IDCAPWifi.ts
    var IdcapNetworkWithSCAP;
    var init_IDCAPWifi = __esm({
        "src/Driver/Network/IDCAPWifi.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            IdcapNetworkWithSCAP = /*#__PURE__*/ function() {
                "use strict";
                function IdcapNetworkWithSCAP(scapWifi, idcap) {
                    _class_call_check(this, IdcapNetworkWithSCAP);
                    this.scapWifi = scapWifi;
                    this.idcap = idcap;
                }
                _create_class(IdcapNetworkWithSCAP, [
                    {
                        key: "isClientEnabled",
                        value: function isClientEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.isClientEnabled()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "enableClient",
                        value: function enableClient() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.enableClient()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isAPEnabled",
                        value: function isAPEnabled() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.isAPEnabled()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "enableAP",
                        value: function enableAP(ssid, passphrase) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.enableAP(ssid, passphrase)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "disable",
                        value: function disable() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.disable()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "connect",
                        value: function connect(ssid, password, options) {
                            return __async(this, null, function() {
                                var parameters2;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            parameters2 = {
                                                ssid: ssid
                                            };
                                            if (password !== void 0) {
                                                parameters2.password = password;
                                            }
                                            if ((options == null ? void 0 : options.hidden) !== void 0) {
                                                parameters2.hidden = options.hidden;
                                            }
                                            if (options == null ? void 0 : options.eap) {
                                                parameters2.eap = {
                                                    method: options.eap.method,
                                                    identity: options.eap.identity,
                                                    passphrase: options.eap.identityPassword
                                                };
                                                if (options.eap.phase2Auth !== void 0) {
                                                    parameters2.eap.phase2Auth = options.eap.phase2Auth;
                                                }
                                                if (options.eap.useCACert !== void 0) {
                                                    parameters2.eap.useCACert = options.eap.useCACert;
                                                }
                                                if (options.eap.anonymousIdentity !== void 0) {
                                                    parameters2.eap.anonymousIdentity = options.eap.anonymousIdentity;
                                                }
                                            }
                                            return [
                                                4,
                                                this.scan()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.idcap.request("idcap://network/wifi/connect", parameters2)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "disconnect",
                        value: function disconnect() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.disconnect()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getConnectedTo",
                        value: function getConnectedTo() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.getConnectedTo()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getCountry",
                        value: function getCountry() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.getCountry()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setCountry",
                        value: function setCountry(countryCode) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.setCountry(countryCode)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "scan",
                        value: function scan() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapWifi.scan()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "on",
                        value: function on(event, listener) {
                            return this.scapWifi.on(event, listener);
                        }
                    },
                    {
                        key: "once",
                        value: function once(event, listener) {
                            return this.scapWifi.once(event, listener);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(event, listener) {
                            return this.scapWifi.removeListener(event, listener);
                        }
                    },
                    {
                        key: "removeAllListeners",
                        value: function removeAllListeners(event) {
                            return this.scapWifi.removeAllListeners(event);
                        }
                    }
                ]);
                return IdcapNetworkWithSCAP;
            }();
        }
    });
    // src/Driver/Network/IDCAPNetwork.ts
    var EAP_DIR, DATA_DIR, IDCAPNetwork;
    var init_IDCAPNetwork = __esm({
        "src/Driver/Network/IDCAPNetwork.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            EAP_DIR = "eap";
            DATA_DIR = "data";
            IDCAPNetwork = /*#__PURE__*/ function() {
                "use strict";
                function IDCAPNetwork(scapNetwork, idcap, fileSystem) {
                    _class_call_check(this, IDCAPNetwork);
                    this.scapNetwork = scapNetwork;
                    this.idcap = idcap;
                    this.fileSystem = fileSystem;
                }
                _create_class(IDCAPNetwork, [
                    {
                        key: "listInterfaces",
                        value: function listInterfaces() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapNetwork.listInterfaces()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setManual",
                        value: function setManual(ifaceName, options) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapNetwork.setManual(ifaceName, options)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setDHCP",
                        value: function setDHCP(ifaceName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapNetwork.setDHCP(ifaceName)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "disableInterface",
                        value: function disableInterface(ifaceName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.scapNetwork.disableInterface(ifaceName)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "sendUdp",
                        value: function sendUdp(ip, port, data) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    if (!this.scapNetwork.sendUdp) {
                                        throw new Error("sendUdp is not supported on this platform");
                                    }
                                    return [
                                        2,
                                        this.scapNetwork.sendUdp(ip, port, data)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "importCertificate",
                        value: function importCertificate(details) {
                            return __async(this, null, function() {
                                var _, storageUnit, caPath, error, storageUnit1, caPath1, clientCertPath, clientKeyPath, error1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _ = details.type;
                                            switch(_){
                                                case "PEAP":
                                                    return [
                                                        3,
                                                        1
                                                    ];
                                                case "TTLS":
                                                    return [
                                                        3,
                                                        1
                                                    ];
                                                case "TLS":
                                                    return [
                                                        3,
                                                        12
                                                    ];
                                            }
                                            return [
                                                3,
                                                25
                                            ];
                                        case 1:
                                            if (!details.caCertificate) {
                                                throw new Error("CA certificate is required for EAP type: ".concat(details.type));
                                            }
                                            return [
                                                4,
                                                this.getInternalStorageUnit()
                                            ];
                                        case 2:
                                            storageUnit = _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            _state.trys.push([
                                                3,
                                                7,
                                                9,
                                                11
                                            ]);
                                            return [
                                                4,
                                                this.saveCertificate(storageUnit, "ca-cert.pem", details.caCertificate)
                                            ];
                                        case 4:
                                            caPath = _state.sent();
                                            return [
                                                4,
                                                this.idcap.request("idcap://network/eap/certificate/set", {
                                                    CACertificate: caPath,
                                                    ClientCertificate: "",
                                                    // Not needed for PEAP and TTLS
                                                    ClientPrivateKey: ""
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                4,
                                                this.idcap.request("idcap://utility/toastmsg/create", {
                                                    msg: "CA certificate for ".concat(details.type, " imported successfully.")
                                                })
                                            ];
                                        case 6:
                                            _state.sent();
                                            return [
                                                3,
                                                11
                                            ];
                                        case 7:
                                            error = _state.sent();
                                            console.error("Failed to import CA certificate for ".concat(details.type, ":"), error);
                                            return [
                                                4,
                                                this.idcap.request("idcap://utility/toastmsg/create", {
                                                    msg: "Failed to import CA certificate for ".concat(details.type, ".")
                                                })
                                            ];
                                        case 8:
                                            _state.sent();
                                            return [
                                                3,
                                                11
                                            ];
                                        case 9:
                                            return [
                                                4,
                                                this.deleteCertificate(storageUnit, "ca-cert.pem")
                                            ];
                                        case 10:
                                            _state.sent();
                                            return [
                                                7
                                            ];
                                        case 11:
                                            return [
                                                3,
                                                26
                                            ];
                                        case 12:
                                            if (!details.clientCertificate || !details.clientKey || !details.caCertificate) {
                                                throw new Error("Client certificate, client key, and CA certificate are required for EAP type: ".concat(details.type));
                                            }
                                            return [
                                                4,
                                                this.getInternalStorageUnit()
                                            ];
                                        case 13:
                                            storageUnit1 = _state.sent();
                                            _state.label = 14;
                                        case 14:
                                            _state.trys.push([
                                                14,
                                                20,
                                                22,
                                                24
                                            ]);
                                            return [
                                                4,
                                                this.saveCertificate(storageUnit1, "ca-cert.pem", details.caCertificate)
                                            ];
                                        case 15:
                                            caPath1 = _state.sent();
                                            return [
                                                4,
                                                this.saveCertificate(storageUnit1, "client-cert.pem", details.clientCertificate)
                                            ];
                                        case 16:
                                            clientCertPath = _state.sent();
                                            return [
                                                4,
                                                this.saveCertificate(storageUnit1, "client-key.pem", details.clientKey)
                                            ];
                                        case 17:
                                            clientKeyPath = _state.sent();
                                            return [
                                                4,
                                                this.idcap.request("idcap://network/eap/certificate/set", {
                                                    CACertificate: caPath1,
                                                    ClientCertificate: clientCertPath,
                                                    ClientPrivateKey: clientKeyPath
                                                })
                                            ];
                                        case 18:
                                            _state.sent();
                                            return [
                                                4,
                                                this.idcap.request("idcap://utility/toastmsg/create", {
                                                    msg: "Certificates for ".concat(details.type, " imported successfully.")
                                                })
                                            ];
                                        case 19:
                                            _state.sent();
                                            return [
                                                3,
                                                24
                                            ];
                                        case 20:
                                            error1 = _state.sent();
                                            console.error("Failed to import certificates for ".concat(details.type, ":"), error1);
                                            return [
                                                4,
                                                this.idcap.request("idcap://utility/toastmsg/create", {
                                                    msg: "Failed to import certificates for ".concat(details.type, ".")
                                                })
                                            ];
                                        case 21:
                                            _state.sent();
                                            return [
                                                3,
                                                24
                                            ];
                                        case 22:
                                            return [
                                                4,
                                                Promise.all([
                                                    this.deleteCertificate(storageUnit1, "ca-cert.pem"),
                                                    this.deleteCertificate(storageUnit1, "client-cert.pem"),
                                                    this.deleteCertificate(storageUnit1, "client-key.pem")
                                                ])
                                            ];
                                        case 23:
                                            _state.sent();
                                            return [
                                                7
                                            ];
                                        case 24:
                                            return [
                                                3,
                                                26
                                            ];
                                        case 25:
                                            throw new Error("Unsupported EAP type: ".concat(details.type));
                                        case 26:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getInternalStorageUnit",
                        value: function getInternalStorageUnit() {
                            return __async(this, null, function() {
                                var storageUnits, internalUnit;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.listStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            internalUnit = storageUnits.find(function(unit) {
                                                return !unit.removable;
                                            });
                                            if (!internalUnit) {
                                                throw new Error("Internal storage unit not found");
                                            }
                                            return [
                                                2,
                                                internalUnit
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "ensureEapDir",
                        value: function ensureEapDir(storageUnit) {
                            return __async(this, null, function() {
                                var dirPath;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            dirPath = {
                                                storageUnit: storageUnit,
                                                filePath: EAP_DIR
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(dirPath)
                                            ];
                                        case 1:
                                            if (!!_state.sent()) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.createDirectory(dirPath)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "saveCertificate",
                        value: function saveCertificate(storageUnit, filename, content) {
                            return __async(this, null, function() {
                                var normalizedContent;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.ensureEapDir(storageUnit)
                                            ];
                                        case 1:
                                            _state.sent();
                                            normalizedContent = content.replace(/\\n/g, "\n");
                                            return [
                                                4,
                                                this.fileSystem.writeFile({
                                                    storageUnit: storageUnit,
                                                    filePath: "".concat(EAP_DIR, "/").concat(filename)
                                                }, normalizedContent)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2,
                                                "file://".concat(storageUnit.type, "/").concat(DATA_DIR, "/").concat(EAP_DIR, "/").concat(filename)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteCertificate",
                        value: function deleteCertificate(storageUnit, filename) {
                            return __async(this, null, function() {
                                var filePath, e;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                4,
                                                ,
                                                5
                                            ]);
                                            filePath = {
                                                storageUnit: storageUnit,
                                                filePath: "".concat(EAP_DIR, "/").concat(filename)
                                            };
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 1:
                                            if (!_state.sent()) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.fileSystem.deleteFile(filePath, false)
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            e = _state.sent();
                                            console.error("Failed to delete certificate file ".concat(filename, ":"), e);
                                            return [
                                                3,
                                                5
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return IDCAPNetwork;
            }();
        }
    });
    // src/Driver/ManagementDriver/SCAPv18ManagementDriver.ts
    var import_ManagementCapability4, SCAPv18ManagementDriver;
    var init_SCAPv18ManagementDriver = __esm({
        "src/Driver/ManagementDriver/SCAPv18ManagementDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ManagementCapability4 = __toESM(require_ManagementCapability());
            init_SCAPv16ManagementDriver();
            init_SCAPv12ManagementDriver();
            init_IDCAPWifi();
            init_IDCAPNetwork();
            SCAPv18ManagementDriver = /*#__PURE__*/ function(SCAPv16ManagementDriver) {
                "use strict";
                _inherits(_SCAPv18ManagementDriver, SCAPv16ManagementDriver);
                var _super = _create_super(_SCAPv18ManagementDriver);
                function _SCAPv18ManagementDriver(window2, version, basicDriver, cacheDriver, scap, idcap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl) {
                    _class_call_check(this, _SCAPv18ManagementDriver);
                    var _this;
                    _this = _super.call(this, window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                    _this.scap = scap;
                    _this.idcap = idcap;
                    __publicField(_assert_this_initialized(_this), "platformSpecificAPIs");
                    _this.platformSpecificAPIs = __spreadProps(__spreadValues({}, getDefaultWebosAPIs(window2)), {
                        idcap: _this.window.idcap
                    });
                    _this.wifi = new IdcapNetworkWithSCAP(_this.wifi, _this.idcap);
                    _this.network = new IDCAPNetwork(_this.network, _this.idcap, _this.fileSystem);
                    return _this;
                }
                _create_class(_SCAPv18ManagementDriver, [
                    {
                        key: "screenResize",
                        value: function screenResize(baseUrl, orientation, resolution, currentVersion, videoOrientation) {
                            return __async(this, null, function() {
                                var _this, supportResizing, supportedResolutions, isSupported;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.supportScreenResize()
                                            ];
                                        case 1:
                                            supportResizing = _state.sent();
                                            if (!!supportResizing) return [
                                                3,
                                                3
                                            ];
                                            console.warn("Screen resizing is not supported on this device.");
                                            return [
                                                4,
                                                __superGet(_SCAPv18ManagementDriver.prototype, this, "screenResize").call(this, baseUrl, orientation, resolution, currentVersion, videoOrientation)
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 3:
                                            return [
                                                4,
                                                this.setOrientation(baseUrl, orientation, videoOrientation)
                                            ];
                                        case 4:
                                            _state.sent();
                                            supportedResolutions = [
                                                {
                                                    width: 1920,
                                                    height: 1080
                                                },
                                                {
                                                    width: 3840,
                                                    height: 2160
                                                }
                                            ];
                                            isSupported = supportedResolutions.some(function(supported) {
                                                return supported.width === resolution.width && supported.height === resolution.height;
                                            });
                                            if (!isSupported) {
                                                throw new Error("Unsupported resolution ".concat(resolution.width, "x").concat(resolution.height, ". Only 1920x1080, and 3840x2160 are supported."));
                                            }
                                            return [
                                                4,
                                                this.idcap.request("idcap://configuration/property/set", {
                                                    key: "display_resolution",
                                                    value: "".concat(resolution.width, "x").concat(resolution.height)
                                                })
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2,
                                                function() {
                                                    return _this.systemReboot();
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getSupportedResolutions",
                        value: function getSupportedResolutions() {
                            return __async(this, null, function() {
                                var supportedResolutions;
                                return _ts_generator(this, function(_state) {
                                    supportedResolutions = [
                                        {
                                            width: 1920,
                                            height: 1080
                                        },
                                        {
                                            width: 3840,
                                            height: 2160
                                        }
                                    ];
                                    return [
                                        2,
                                        supportedResolutions
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getResolution",
                        value: function getResolution() {
                            return __async(this, null, function() {
                                var supportResolution, value, _value_split, widthStr, heightStr, width, height;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.supportScreenResize()
                                            ];
                                        case 1:
                                            supportResolution = _state.sent();
                                            if (!supportResolution) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                this.idcap.request("idcap://configuration/property/get", {
                                                    key: "display_resolution"
                                                })
                                            ];
                                        case 2:
                                            value = _state.sent().value;
                                            _value_split = _sliced_to_array(value.split("x"), 2), widthStr = _value_split[0], heightStr = _value_split[1];
                                            width = parseInt(widthStr, 10);
                                            height = parseInt(heightStr, 10);
                                            return [
                                                2,
                                                {
                                                    width: width,
                                                    height: height
                                                }
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                {
                                                    width: 1920,
                                                    height: 1080
                                                }
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDriverName",
                        value: function getDriverName() {
                            return "SCAPv18";
                        }
                    },
                    {
                        key: "managementSupports",
                        value: function managementSupports(capability) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(capability){
                                        case import_ManagementCapability4["default"].WIFI_ENTERPRISE:
                                            return [
                                                2,
                                                true
                                            ];
                                        case import_ManagementCapability4["default"].ORIENTATION_LANDSCAPE_FLIPPED:
                                            return [
                                                2,
                                                false
                                            ];
                                        default:
                                            return [
                                                2,
                                                __superGet(_SCAPv18ManagementDriver.prototype, this, "managementSupports").call(this, capability)
                                            ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setUrlLauncherAddress",
                        value: function setUrlLauncherAddress(url, appType) {
                            var secureConnection = url.indexOf("https://") === 0;
                            var options = {
                                serverIp: "0.0.0.0",
                                serverPort: 80,
                                secureConnection: secureConnection,
                                appLaunchMode: this.window.Configuration.AppMode.LOCAL,
                                fqdnMode: true,
                                fqdnAddr: url,
                                autoSet: "off"
                            };
                            if (typeof appType !== "undefined") {
                                options.appType = appType;
                            }
                            var serverSettings = __spreadProps(__spreadValues({}, options), {
                                fqdnMode: options.fqdnMode === true ? "on" : "off",
                                secureConnection: options.secureConnection === true ? "on" : "off"
                            });
                            return this.setProperty(serverSettings);
                        }
                    },
                    {
                        key: "setNativePortraitModeAsync",
                        value: function setNativePortraitModeAsync(options) {
                            return __async(this, null, function() {
                                var nativeRawPortrait, nativePortrait, _ref, prevRawOrientation, prevSafeOrientation, error, error1;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            nativeRawPortrait = options.nativePortrait;
                                            nativePortrait = nativeRawPortrait;
                                            if (!(nativePortrait === "180")) return [
                                                3,
                                                8
                                            ];
                                            return [
                                                4,
                                                this.getNativePortraitModeAsync()
                                            ];
                                        case 1:
                                            _ref = _state.sent(), prevRawOrientation = _ref.nativePortrait;
                                            prevSafeOrientation = prevRawOrientation === "180" ? "off" : prevRawOrientation;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                5,
                                                ,
                                                7
                                            ]);
                                            return [
                                                4,
                                                this.setScreenRotation("off")
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                4,
                                                this.setMirrorMode("on")
                                            ];
                                        case 4:
                                            _state.sent();
                                            return [
                                                3,
                                                7
                                            ];
                                        case 5:
                                            error = _state.sent();
                                            return [
                                                4,
                                                this.setScreenRotation(prevSafeOrientation)
                                            ];
                                        case 6:
                                            _state.sent();
                                            throw new Error("Unsupported orientation 180 degrees.");
                                        case 7:
                                            return [
                                                3,
                                                13
                                            ];
                                        case 8:
                                            _state.trys.push([
                                                8,
                                                10,
                                                ,
                                                11
                                            ]);
                                            return [
                                                4,
                                                this.setMirrorMode("off")
                                            ];
                                        case 9:
                                            _state.sent();
                                            return [
                                                3,
                                                11
                                            ];
                                        case 10:
                                            error1 = _state.sent();
                                            return [
                                                3,
                                                11
                                            ];
                                        case 11:
                                            return [
                                                4,
                                                this.setScreenRotation(nativePortrait)
                                            ];
                                        case 12:
                                            _state.sent();
                                            _state.label = 13;
                                        case 13:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getNativePortraitModeAsync",
                        value: function getNativePortraitModeAsync() {
                            return __async(this, null, function() {
                                var screenRotation, mirrorMode, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getScreenRotation()
                                            ];
                                        case 1:
                                            screenRotation = _state.sent();
                                            mirrorMode = null;
                                            _state.label = 2;
                                        case 2:
                                            _state.trys.push([
                                                2,
                                                4,
                                                ,
                                                5
                                            ]);
                                            return [
                                                4,
                                                this.getMirrorMode()
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            error = _state.sent();
                                            return [
                                                3,
                                                5
                                            ];
                                        case 5:
                                            if (screenRotation === "off" && mirrorMode === "1") {
                                                return [
                                                    2,
                                                    {
                                                        nativePortrait: "180"
                                                    }
                                                ];
                                            } else {
                                                return [
                                                    2,
                                                    {
                                                        nativePortrait: screenRotation
                                                    }
                                                ];
                                            }
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setMirrorModeAsync",
                        value: function setMirrorModeAsync(options) {
                            return __async(this, null, function() {
                                var mode, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            mode = options.mode;
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                this.setMirrorMode(mode)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            error = _state.sent();
                                            if (mode === "on") {
                                                throw error;
                                            } else {
                                                console.warn("Tried to set mirror mode ".concat(mode, " but failed and continuing like mirror mode is off."), error);
                                            }
                                            return [
                                                3,
                                                4
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setMirrorMode",
                        value: function setMirrorMode(enabled) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.idcap.request("idcap://configuration/property/set", {
                                                    key: "mirror_mode",
                                                    value: enabled === "on" ? "1" : "0"
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getMirrorMode",
                        value: function getMirrorMode() {
                            return __async(this, null, function() {
                                var value;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.idcap.request("idcap://configuration/property/get", {
                                                    key: "mirror_mode"
                                                })
                                            ];
                                        case 1:
                                            value = _state.sent().value;
                                            return [
                                                2,
                                                value
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setScreenRotation",
                        value: function setScreenRotation(rotation) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.idcap.request("idcap://configuration/property/set", {
                                                    key: "screen_rotation",
                                                    value: rotation
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getScreenRotation",
                        value: function getScreenRotation() {
                            return __async(this, null, function() {
                                var value;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.idcap.request("idcap://configuration/property/get", {
                                                    key: "screen_rotation"
                                                })
                                            ];
                                        case 1:
                                            value = _state.sent().value;
                                            return [
                                                2,
                                                value
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "setProperty",
                        value: function setProperty(options) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.idcap.request("idcap://signage/server/set", options)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "supportScreenResize",
                        value: function supportScreenResize() {
                            return __async(this, null, function() {
                                var model, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            return [
                                                4,
                                                this.systemInfo.getModel()
                                            ];
                                        case 1:
                                            model = _state.sent();
                                            if (model.includes("UP5Q")) {
                                                return [
                                                    2,
                                                    true
                                                ];
                                            }
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            console.error("Error getting model:", error);
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                false
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return _SCAPv18ManagementDriver;
            }(SCAPv16ManagementDriver);
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Cache/Cache.js
    var require_Cache = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Cache/Cache.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.WIFI_MAC_ADDRESS_KEY = exports.ETHERNET_MAC_ADDRESS_KEY = exports.FIRMWARE_VERSION_KEY = exports.DEVICE_UID_KEY = void 0;
            exports.DEVICE_UID_KEY = "local-cache-DEVICE_UID_KEY";
            exports.FIRMWARE_VERSION_KEY = "local-cache-FIRMWARE_VERSION_KEY";
            exports.ETHERNET_MAC_ADDRESS_KEY = "local-cache-ETHERNET_MAC_ADDRESS_KEY";
            exports.WIFI_MAC_ADDRESS_KEY = "local-cache-WIFI_MAC_ADDRESS_KEY";
        }
    });
    // src/Driver/SCAPv12BasicDriver.ts
    var import_Cache, SCAPv12BasicDriver;
    var init_SCAPv12BasicDriver = __esm({
        "src/Driver/SCAPv12BasicDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_Cache = __toESM(require_Cache());
            init_SCAPHelper();
            SCAPv12BasicDriver = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv12BasicDriver(window2, scap) {
                    _class_call_check(this, SCAPv12BasicDriver);
                    this.window = window2;
                    this.scap = scap;
                }
                _create_class(SCAPv12BasicDriver, [
                    {
                        key: "start",
                        value: function start() {
                            console.info("Started SCAP driver");
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {}
                    },
                    {
                        key: "getApplicationType",
                        value: function getApplicationType() {
                            return "webos";
                        }
                    },
                    {
                        key: "getConfigurationBaseUrl",
                        value: function getConfigurationBaseUrl() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        null
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getDeviceUid",
                        value: function getDeviceUid() {
                            return __async(this, null, function() {
                                var fromCache, platformInfo, deviceUid;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            fromCache = this.window.localStorage.getItem(import_Cache.DEVICE_UID_KEY);
                                            if (fromCache !== null) {
                                                return [
                                                    2,
                                                    fromCache
                                                ];
                                            }
                                            return [
                                                4,
                                                getPlatformInfo(this.scap.deviceInfo)
                                            ];
                                        case 1:
                                            platformInfo = _state.sent();
                                            deviceUid = platformInfo.serialNumber;
                                            this.window.localStorage.setItem(import_Cache.DEVICE_UID_KEY, deviceUid);
                                            return [
                                                2,
                                                deviceUid
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getSessionId",
                        value: function getSessionId(sessionIdKey) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.window.localStorage.getItem(sessionIdKey)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "setSessionId",
                        value: function setSessionId(sessionIdKey, sessionId) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    this.window.localStorage.setItem(sessionIdKey, sessionId);
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.window.navigator.onLine
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return SCAPv12BasicDriver;
            }();
        }
    });
    // src/Driver/SCAPv12CacheDriver.ts
    var SCAPv12CacheDriver;
    var init_SCAPv12CacheDriver = __esm({
        "src/Driver/SCAPv12CacheDriver.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            SCAPv12CacheDriver = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv12CacheDriver(cache) {
                    _class_call_check(this, SCAPv12CacheDriver);
                    this.cache = cache;
                }
                _create_class(SCAPv12CacheDriver, [
                    {
                        key: "cacheGetUids",
                        value: function cacheGetUids() {
                            return this.cache.fetchAllUids();
                        }
                    },
                    {
                        key: "cacheGetAll",
                        value: function cacheGetAll() {
                            return this.cache.fetchAll();
                        }
                    },
                    {
                        key: "cacheGet",
                        value: function cacheGet(uid) {
                            return this.cache.fetchOne(uid);
                        }
                    },
                    {
                        key: "cacheDelete",
                        value: function cacheDelete(uid) {
                            return this.cache.deleteOne(uid);
                        }
                    },
                    {
                        key: "cacheSave",
                        value: function cacheSave(uid, content) {
                            return this.cache.saveOne(uid, content);
                        }
                    },
                    {
                        key: "cacheGetStorageInfo",
                        value: function cacheGetStorageInfo() {
                            return this.cache.getStorageInfo();
                        }
                    }
                ]);
                return SCAPv12CacheDriver;
            }();
        }
    });
    // src/Driver/SCAPv12StreamPlayer.ts
    var import_StreamProtocol2, import_events3, SCAPv12StreamPlayer;
    var init_SCAPv12StreamPlayer = __esm({
        "src/Driver/SCAPv12StreamPlayer.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_StreamProtocol2 = __toESM(require_StreamProtocol());
            import_events3 = __toESM(require_events());
            init_WebosVideo();
            SCAPv12StreamPlayer = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv12StreamPlayer(videoPlayer) {
                    _class_call_check(this, SCAPv12StreamPlayer);
                    this.videoPlayer = videoPlayer;
                }
                _create_class(SCAPv12StreamPlayer, [
                    {
                        // Not needed on this platform in this moment, maybe will be implemented in the future
                        key: "prepare",
                        value: function prepare() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play(uri, x, y, width, height, options) {
                            return __async(this, null, function() {
                                var INTERNAL_PORT_PREFIX, protocol;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            INTERNAL_PORT_PREFIX = "internal://";
                                            if (!uri.startsWith(INTERNAL_PORT_PREFIX)) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.playInternalPort(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 2:
                                            if (options.protocol === void 0) {
                                                throw new Error("Missing stream protocol type");
                                            }
                                            protocol = import_StreamProtocol2["default"][options.protocol];
                                            if (typeof protocol === "undefined") {
                                                throw new Error("Protocol type not specified");
                                            }
                                            return [
                                                4,
                                                this.playStream(uri, x, y, width, height, protocol)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop(uri, x, y, width, height) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.videoPlayer.stop(uri, x, y, width, height)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clearAll",
                        value: function clearAll() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.videoPlayer.clearAll()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        // Not needed on this platform in this moment, maybe will be implemented in the future
                        key: "getTracks",
                        value: function getTracks(_videoId) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        // Not needed on this platform in this moment, maybe will be implemented in the future
                        key: "selectTrack",
                        value: function selectTrack(_videoId, _trackType, _groupId, _trackIndex) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        // Not needed on this platform in this moment, maybe will be implemented in the future
                        key: "resetTrack",
                        value: function resetTrack(_videoId, _trackType, _groupId) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        // Not needed on this platform in this moment, maybe will be implemented in the future
                        key: "pause",
                        value: function pause(_uri, _x, _y, _width, _height) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        // Not needed on this platform in this moment, maybe will be implemented in the future
                        key: "resume",
                        value: function resume(_uri, _x, _y, _width, _height) {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "isProtocolSupported",
                        value: function isProtocolSupported(protocol) {
                            var supportedProtocolTypes = [
                                import_StreamProtocol2["default"].HTTP,
                                import_StreamProtocol2["default"].HLS
                            ];
                            return supportedProtocolTypes.indexOf(protocol) >= 0;
                        }
                    },
                    {
                        key: "playStream",
                        value: function playStream(uri, x, y, width, height, protocol) {
                            return __async(this, null, function() {
                                var video;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.isProtocolSupported(protocol)) {
                                                throw new Error("Unsupported protocol type: " + import_StreamProtocol2["default"][protocol]);
                                            }
                                            if (!(protocol === import_StreamProtocol2["default"].HTTP)) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.videoPlayer.prepare(uri, x, y, width, height, {
                                                    type: 0 /* VIDEO */ 
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 2:
                                            return [
                                                4,
                                                this.videoPlayer.prepare(uri, x, y, width, height, {
                                                    type: 1 /* STREAM */ ,
                                                    streamProtocol: protocol
                                                })
                                            ];
                                        case 3:
                                            _state.sent();
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                4,
                                                this.videoPlayer.play(uri, x, y, width, height)
                                            ];
                                        case 5:
                                            video = _state.sent();
                                            return [
                                                2,
                                                this.convertVideoEventEmitterToStreamEventEmitter(video, protocol)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "playInternalPort",
                        value: function playInternalPort(uri, x, y, width, height) {
                            return __async(this, null, function() {
                                var video;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.videoPlayer.prepare(uri, x, y, width, height, {
                                                    type: 2 /* INTERNAL_PORT */ 
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                4,
                                                this.videoPlayer.play(uri, x, y, width, height)
                                            ];
                                        case 2:
                                            video = _state.sent();
                                            return [
                                                2,
                                                this.convertVideoEventEmitterToStreamEventEmitter(video)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "convertVideoEventEmitterToStreamEventEmitter",
                        value: function convertVideoEventEmitterToStreamEventEmitter(video, protocol) {
                            var streamEventEmitter = new import_events3.EventEmitter();
                            var videoEventToStreamEvent = function(videoEvent) {
                                return {
                                    uri: videoEvent.srcArguments.uri,
                                    x: videoEvent.srcArguments.x,
                                    y: videoEvent.srcArguments.y,
                                    width: videoEvent.srcArguments.width,
                                    height: videoEvent.srcArguments.height,
                                    protocol: protocol
                                };
                            };
                            video.on("stopped", function(videoEvent) {
                                streamEventEmitter.emit("closed", __spreadValues({
                                    type: "closed"
                                }, videoEventToStreamEvent(videoEvent)));
                            });
                            video.on("error", function(videoEvent) {
                                streamEventEmitter.emit("error", __spreadProps(__spreadValues({
                                    type: "error"
                                }, videoEventToStreamEvent(videoEvent)), {
                                    errorMessage: "Stream error"
                                }));
                            });
                            video.on("playing", function(videoEvent) {
                                streamEventEmitter.emit("connected", __spreadValues({
                                    type: "connected"
                                }, videoEventToStreamEvent(videoEvent)));
                            });
                            video.on("ended", function(videoEvent) {
                                streamEventEmitter.emit("disconnected", __spreadValues({
                                    type: "disconnected"
                                }, videoEventToStreamEvent(videoEvent)));
                            });
                            return streamEventEmitter;
                        }
                    }
                ]);
                return SCAPv12StreamPlayer;
            }();
        }
    });
    // src/Driver/SCAPv13StreamPlayer.ts
    var import_StreamProtocol3, SCAPv13StreamPlayer, SCAPv13StreamPlayer_default;
    var init_SCAPv13StreamPlayer = __esm({
        "src/Driver/SCAPv13StreamPlayer.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_StreamProtocol3 = __toESM(require_StreamProtocol());
            init_SCAPv12StreamPlayer();
            SCAPv13StreamPlayer = /*#__PURE__*/ function(SCAPv12StreamPlayer) {
                "use strict";
                _inherits(SCAPv13StreamPlayer, SCAPv12StreamPlayer);
                var _super = _create_super(SCAPv13StreamPlayer);
                function SCAPv13StreamPlayer() {
                    _class_call_check(this, SCAPv13StreamPlayer);
                    return _super.apply(this, arguments);
                }
                _create_class(SCAPv13StreamPlayer, [
                    {
                        key: "isProtocolSupported",
                        value: function isProtocolSupported(protocol) {
                            var supportedProtocolTypes = [
                                import_StreamProtocol3["default"].HTTP,
                                import_StreamProtocol3["default"].HLS,
                                import_StreamProtocol3["default"].UDP
                            ];
                            return supportedProtocolTypes.indexOf(protocol) >= 0;
                        }
                    }
                ]);
                return SCAPv13StreamPlayer;
            }(SCAPv12StreamPlayer);
            SCAPv13StreamPlayer_default = SCAPv13StreamPlayer;
        }
    });
    // src/Driver/SCAPv14Plugins.ts
    var SCAPv14Plugins;
    var init_SCAPv14Plugins = __esm({
        "src/Driver/SCAPv14Plugins.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            SCAPv14Plugins = function SCAPv14Plugins(window2) {
                "use strict";
                _class_call_check(this, SCAPv14Plugins);
                __publicField(this, "configuration");
                __publicField(this, "deviceInfo");
                __publicField(this, "power");
                __publicField(this, "sound");
                __publicField(this, "storage");
                __publicField(this, "video");
                __publicField(this, "signage");
                __publicField(this, "inputSource");
                this.configuration = new window2.Configuration();
                this.deviceInfo = new window2.DeviceInfo();
                this.power = new window2.Power();
                this.sound = new window2.Sound();
                this.storage = new window2.Storage();
                this.video = new window2.Video();
                this.signage = new window2.Signage();
                this.inputSource = new window2.InputSource();
            };
        }
    });
    // src/Driver/SCAPv15Plugins.ts
    var SCAPv15Plugins;
    var init_SCAPv15Plugins = __esm({
        "src/Driver/SCAPv15Plugins.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv14Plugins();
            SCAPv15Plugins = /*#__PURE__*/ function(SCAPv14Plugins) {
                "use strict";
                _inherits(SCAPv15Plugins, SCAPv14Plugins);
                var _super = _create_super(SCAPv15Plugins);
                function SCAPv15Plugins(window2) {
                    _class_call_check(this, SCAPv15Plugins);
                    var _this;
                    _this = _super.call(this, window2);
                    __publicField(_assert_this_initialized(_this), "custom");
                    _this.custom = new window2.Custom();
                    return _this;
                }
                return SCAPv15Plugins;
            }(SCAPv14Plugins);
        }
    });
    // src/Driver/SCAPv15StreamPlayer.ts
    var import_StreamProtocol4, SCAPv15StreamPlayer, SCAPv15StreamPlayer_default;
    var init_SCAPv15StreamPlayer = __esm({
        "src/Driver/SCAPv15StreamPlayer.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_StreamProtocol4 = __toESM(require_StreamProtocol());
            init_SCAPv13StreamPlayer();
            SCAPv15StreamPlayer = /*#__PURE__*/ function(SCAPv13StreamPlayer_default) {
                "use strict";
                _inherits(SCAPv15StreamPlayer, SCAPv13StreamPlayer_default);
                var _super = _create_super(SCAPv15StreamPlayer);
                function SCAPv15StreamPlayer() {
                    _class_call_check(this, SCAPv15StreamPlayer);
                    return _super.apply(this, arguments);
                }
                _create_class(SCAPv15StreamPlayer, [
                    {
                        key: "isProtocolSupported",
                        value: function isProtocolSupported(protocol) {
                            var supportedProtocolTypes = [
                                import_StreamProtocol4["default"].HTTP,
                                import_StreamProtocol4["default"].HLS,
                                import_StreamProtocol4["default"].UDP,
                                import_StreamProtocol4["default"].RTP,
                                import_StreamProtocol4["default"].RTSP
                            ];
                            return supportedProtocolTypes.indexOf(protocol) >= 0;
                        }
                    }
                ]);
                return SCAPv15StreamPlayer;
            }(SCAPv13StreamPlayer_default);
            SCAPv15StreamPlayer_default = SCAPv15StreamPlayer;
        }
    });
    // src/Driver/SCAPv16Plugins.ts
    var SCAPv16Plugins;
    var init_SCAPv16Plugins = __esm({
        "src/Driver/SCAPv16Plugins.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv15Plugins();
            SCAPv16Plugins = /*#__PURE__*/ function(SCAPv15Plugins) {
                "use strict";
                _inherits(SCAPv16Plugins, SCAPv15Plugins);
                var _super = _create_super(SCAPv16Plugins);
                function SCAPv16Plugins(window2) {
                    _class_call_check(this, SCAPv16Plugins);
                    var _this;
                    _this = _super.call(this, window2);
                    __publicField(_assert_this_initialized(_this), "time");
                    _this.time = new window2.Time();
                    return _this;
                }
                return SCAPv16Plugins;
            }(SCAPv15Plugins);
        }
    });
    // node_modules/@signageos/front-display/es6/Cache/methodCache.js
    var require_methodCache = __commonJS({
        "node_modules/@signageos/front-display/es6/Cache/methodCache.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.cacheInvalidating = exports.cachedOperation = exports.clearCache = void 0;
            var lodash_1 = __importDefault(require_lodash());
            var cache = {};
            function clearCache(invalidateCacheKeyPrefix) {
                for(var methodName in cache){
                    var cacheKeys = Object.keys(cache[methodName]);
                    var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                    try {
                        for(var _iterator = cacheKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                            var cacheKey = _step.value;
                            if (cacheKey.startsWith(invalidateCacheKeyPrefix)) {
                                delete cache[methodName][cacheKey];
                            }
                        }
                    } catch (err) {
                        _didIteratorError = true;
                        _iteratorError = err;
                    } finally{
                        try {
                            if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                _iterator["return"]();
                            }
                        } finally{
                            if (_didIteratorError) {
                                throw _iteratorError;
                            }
                        }
                    }
                }
            }
            exports.clearCache = clearCache;
            function cachedOperation(keyCallback) {
                return function(_target, propertyKey, descriptor) {
                    cache[propertyKey] = cache[propertyKey] || {};
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return __awaiter(this, void 0, void 0, function() {
                            var cacheKey, returnValuePromise, result17;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        cacheKey = keyCallback.apply(void 0, [
                                            this
                                        ].concat(_to_consumable_array(args)));
                                        if (cacheKey in cache[propertyKey]) {
                                            return [
                                                2,
                                                cache[propertyKey][cacheKey]
                                            ];
                                        }
                                        returnValuePromise = originalMethod.apply(this, args);
                                        if (!(returnValuePromise instanceof Promise)) {
                                            throw new Error("cachedOperation methods must return Promise instance. But ".concat(JSON.stringify(returnValuePromise), " given."));
                                        }
                                        return [
                                            4,
                                            returnValuePromise
                                        ];
                                    case 1:
                                        result17 = _state.sent();
                                        cache[propertyKey][cacheKey] = result17;
                                        return [
                                            2,
                                            result17
                                        ];
                                }
                            });
                        });
                    };
                };
            }
            exports.cachedOperation = cachedOperation;
            function cacheInvalidating(keysCallback) {
                var invalidateByKeyStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
                return function(_target, _propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return __awaiter(this, void 0, void 0, function() {
                            var invalidateCacheKeys, returnValuePromise, result17, methodName, cacheKeys, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, invalidateCacheKey;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        invalidateCacheKeys = keysCallback.apply(void 0, [
                                            this
                                        ].concat(_to_consumable_array(args)));
                                        returnValuePromise = originalMethod.apply(this, args);
                                        if (!(returnValuePromise instanceof Promise)) {
                                            throw new Error("cacheInvalidating methods must return Promise instance. But ".concat(JSON.stringify(returnValuePromise), " given."));
                                        }
                                        return [
                                            4,
                                            returnValuePromise
                                        ];
                                    case 1:
                                        result17 = _state.sent();
                                        for(var methodName in cache){
                                            if (invalidateByKeyStart) {
                                                cacheKeys = Object.keys(cache[methodName]);
                                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                try {
                                                    _loop = function() {
                                                        var cacheKey = _step.value;
                                                        if (lodash_1["default"].some(invalidateCacheKeys, function(invalidateCacheKey) {
                                                            return cacheKey.startsWith(invalidateCacheKey);
                                                        })) {
                                                            delete cache[methodName][cacheKey];
                                                        }
                                                    };
                                                    for(_iterator = cacheKeys[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
                                                } catch (err) {
                                                    _didIteratorError = true;
                                                    _iteratorError = err;
                                                } finally{
                                                    try {
                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                            _iterator["return"]();
                                                        }
                                                    } finally{
                                                        if (_didIteratorError) {
                                                            throw _iteratorError;
                                                        }
                                                    }
                                                }
                                            } else {
                                                _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
                                                try {
                                                    for(_iterator1 = invalidateCacheKeys[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
                                                        invalidateCacheKey = _step1.value;
                                                        delete cache[methodName][invalidateCacheKey];
                                                    }
                                                } catch (err) {
                                                    _didIteratorError1 = true;
                                                    _iteratorError1 = err;
                                                } finally{
                                                    try {
                                                        if (!_iteratorNormalCompletion1 && _iterator1["return"] != null) {
                                                            _iterator1["return"]();
                                                        }
                                                    } finally{
                                                        if (_didIteratorError1) {
                                                            throw _iteratorError1;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        return [
                                            2,
                                            result17
                                        ];
                                }
                            });
                        });
                    };
                };
            }
            exports.cacheInvalidating = cacheInvalidating;
        }
    });
    // node_modules/@signageos/front-display/es6/FileSystem/CachedFileSystem.js
    var require_CachedFileSystem = __commonJS({
        "node_modules/@signageos/front-display/es6/FileSystem/CachedFileSystem.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var path_1 = require_path_browserify();
            var methodCache_1 = require_methodCache();
            var HashAlgorithm_1 = __importDefault(require_HashAlgorithm());
            var FILE_SYSTEM_CACHE_KEY = "CachedFileSystem";
            var CachedFileSystem2 = /*#__PURE__*/ function() {
                function CachedFileSystem2(fileSystem, identification) {
                    var _this = this;
                    _class_call_check(this, CachedFileSystem2);
                    this.fileSystem = fileSystem;
                    this.identification = identification;
                    this.fileSystem.onStorageUnitsChanged(function() {
                        (0, methodCache_1.clearCache)("".concat(FILE_SYSTEM_CACHE_KEY, ".").concat(_this.identification, "."));
                    });
                }
                _create_class(CachedFileSystem2, [
                    {
                        key: "initialize",
                        value: function initialize() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getCacheKey",
                        value: function getCacheKey(filePath, method) {
                            if (filePath === null) {
                                return "".concat(FILE_SYSTEM_CACHE_KEY, ".").concat(this.identification, ".").concat(method);
                            } else {
                                return "".concat(FILE_SYSTEM_CACHE_KEY, ".").concat(this.identification, ".").concat(method, ".").concat(filePath.storageUnit.type, "/").concat(filePath.filePath);
                            }
                        }
                    },
                    {
                        key: "getParentDirectory",
                        value: function getParentDirectory(filePath) {
                            var parentFilePath = path_1.posix.dirname(filePath.filePath);
                            return {
                                storageUnit: filePath.storageUnit,
                                filePath: parentFilePath === "." ? "" : parentFilePath
                            };
                        }
                    },
                    {
                        key: "writeFile",
                        value: function writeFile(filePath, contents) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.writeFile(filePath, contents)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "appendFile",
                        value: function appendFile(filePath, contents) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.appendFile(filePath, contents)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "readFile",
                        value: function readFile(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.readFile(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "copyFile",
                        value: function copyFile(sourceFilePath, destinationFilePath, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.copyFile(sourceFilePath, destinationFilePath, options)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "listFiles",
                        value: function listFiles(directoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.listFiles(directoryPath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFile",
                        value: function getFile(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getFile(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "exists",
                        value: function exists(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadFile",
                        value: function downloadFile(destinationFilePath, sourceUri, headers) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.downloadFile(destinationFilePath, sourceUri, headers)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "uploadFile",
                        value: function uploadFile(filePath, uri, formKey, headers) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.uploadFile(filePath, uri, formKey, headers)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteFile",
                        value: function deleteFile(filePath, recursive) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.deleteFile(filePath, recursive)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "moveFile",
                        value: function moveFile(sourceFilePath, destinationFilePath, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.moveFile(sourceFilePath, destinationFilePath, options)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "link",
                        value: function link(sourceFilePath, destinationFilePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.link(sourceFilePath, destinationFilePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFileChecksum",
                        value: function getFileChecksum(filePath, hashType) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getFileChecksum(filePath, hashType)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "extractFile",
                        value: function extractFile(archiveFilePath, destinationDirectoryPath, method) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.extractFile(archiveFilePath, destinationDirectoryPath, method)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "createArchive",
                        value: function createArchive(archiveFilePath, archiveEntries) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.createArchive(archiveFilePath, archiveEntries)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "createDirectory",
                        value: function createDirectory(directoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.createDirectory(directoryPath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isDirectory",
                        value: function isDirectory(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.isDirectory(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "listStorageUnits",
                        value: function listStorageUnits() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.listStorageUnits()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getArchiveInfo",
                        value: function getArchiveInfo(archiveFilePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getArchiveInfo(archiveFilePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "onStorageUnitsChanged",
                        value: function onStorageUnitsChanged(listener) {
                            return this.fileSystem.onStorageUnitsChanged(listener);
                        }
                    },
                    {
                        key: "wipeout",
                        value: function wipeout() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.fileSystem.wipeout()
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return CachedFileSystem2;
            }();
            exports["default"] = CachedFileSystem2;
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, filePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(filePath), "listFiles"),
                        self2.getCacheKey(filePath, "readFile"),
                        self2.getCacheKey(filePath, "getFile"),
                        self2.getCacheKey(filePath, "exists"),
                        self2.getCacheKey(filePath, "getFileChecksum"),
                        self2.getCacheKey(filePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "writeFile", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, filePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(filePath), "listFiles"),
                        self2.getCacheKey(filePath, "readFile"),
                        self2.getCacheKey(filePath, "getFile"),
                        self2.getCacheKey(filePath, "exists"),
                        self2.getCacheKey(filePath, "getFileChecksum"),
                        self2.getCacheKey(filePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "appendFile", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, filePath) {
                    return self2.getCacheKey(filePath, "readFile");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "readFile", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, _sourceFilePath, destinationFilePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(destinationFilePath), "listFiles"),
                        self2.getCacheKey(destinationFilePath, "readFile"),
                        self2.getCacheKey(destinationFilePath, "getFile"),
                        self2.getCacheKey(destinationFilePath, "exists"),
                        self2.getCacheKey(destinationFilePath, "getFileChecksum"),
                        self2.getCacheKey(destinationFilePath, "isDirectory"),
                        self2.getCacheKey(destinationFilePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Object,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "copyFile", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, directoryPath) {
                    return self2.getCacheKey(directoryPath, "listFiles");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "listFiles", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, filePath) {
                    return self2.getCacheKey(filePath, "getFile");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "getFile", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, filePath) {
                    return self2.getCacheKey(filePath, "exists");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "exists", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, destinationFilePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(destinationFilePath), "listFiles"),
                        self2.getCacheKey(destinationFilePath, "readFile"),
                        self2.getCacheKey(destinationFilePath, "getFile"),
                        self2.getCacheKey(destinationFilePath, "exists"),
                        self2.getCacheKey(destinationFilePath, "getFileChecksum"),
                        self2.getCacheKey(destinationFilePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    String,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "downloadFile", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, filePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(filePath), "listFiles"),
                        self2.getCacheKey(filePath, "readFile"),
                        self2.getCacheKey(filePath, "getFile"),
                        self2.getCacheKey(filePath, "exists"),
                        self2.getCacheKey(filePath, "getFileChecksum"),
                        self2.getCacheKey(filePath, "isDirectory"),
                        self2.getCacheKey(filePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Boolean
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "deleteFile", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, sourceFilePath, destinationFilePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(destinationFilePath), "listFiles"),
                        self2.getCacheKey(destinationFilePath, "readFile"),
                        self2.getCacheKey(destinationFilePath, "getFile"),
                        self2.getCacheKey(destinationFilePath, "exists"),
                        self2.getCacheKey(destinationFilePath, "getFileChecksum"),
                        self2.getCacheKey(destinationFilePath, "isDirectory"),
                        self2.getCacheKey(destinationFilePath, "getArchiveInfo"),
                        self2.getCacheKey(self2.getParentDirectory(sourceFilePath), "listFiles"),
                        self2.getCacheKey(sourceFilePath, "readFile"),
                        self2.getCacheKey(sourceFilePath, "getFile"),
                        self2.getCacheKey(sourceFilePath, "exists"),
                        self2.getCacheKey(sourceFilePath, "getFileChecksum"),
                        self2.getCacheKey(sourceFilePath, "isDirectory"),
                        self2.getCacheKey(sourceFilePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Object,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "moveFile", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, _sourceFilePath, destinationFilePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(destinationFilePath), "listFiles"),
                        self2.getCacheKey(destinationFilePath, "readFile"),
                        self2.getCacheKey(destinationFilePath, "getFile"),
                        self2.getCacheKey(destinationFilePath, "exists"),
                        self2.getCacheKey(destinationFilePath, "getFileChecksum"),
                        self2.getCacheKey(destinationFilePath, "getArchiveInfo"),
                        self2.getCacheKey(destinationFilePath, "isDirectory"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "link", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, filePath, hashType) {
                    var baseKey = self2.getCacheKey(filePath, "getFileChecksum");
                    return "".concat(baseKey, ":").concat(hashType);
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "getFileChecksum", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, _archiveFilePath, destinationDirectoryPath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(destinationDirectoryPath), "listFiles"),
                        self2.getCacheKey(destinationDirectoryPath, "readFile"),
                        self2.getCacheKey(destinationDirectoryPath, "getFile"),
                        self2.getCacheKey(destinationDirectoryPath, "exists"),
                        self2.getCacheKey(destinationDirectoryPath, "getFileChecksum"),
                        self2.getCacheKey(destinationDirectoryPath, "getArchiveInfo"),
                        self2.getCacheKey(destinationDirectoryPath, "isDirectory"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Object,
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "extractFile", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, archiveFilePath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(archiveFilePath), "listFiles"),
                        self2.getCacheKey(archiveFilePath, "readFile"),
                        self2.getCacheKey(archiveFilePath, "getFile"),
                        self2.getCacheKey(archiveFilePath, "exists"),
                        self2.getCacheKey(archiveFilePath, "getFileChecksum"),
                        self2.getCacheKey(archiveFilePath, "getArchiveInfo"),
                        self2.getCacheKey(null, "listStorageUnits")
                    ];
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Array
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "createArchive", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2, directoryPath) {
                    return [
                        self2.getCacheKey(self2.getParentDirectory(directoryPath), "listFiles"),
                        self2.getCacheKey(directoryPath, "readFile"),
                        self2.getCacheKey(directoryPath, "getFile"),
                        self2.getCacheKey(directoryPath, "exists"),
                        self2.getCacheKey(directoryPath, "getFileChecksum"),
                        self2.getCacheKey(directoryPath, "getArchiveInfo"),
                        self2.getCacheKey(directoryPath, "isDirectory")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "createDirectory", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, filePath) {
                    return self2.getCacheKey(filePath, "isDirectory");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "isDirectory", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2) {
                    return self2.getCacheKey(null, "listStorageUnits");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "listStorageUnits", null);
            __decorate([
                (0, methodCache_1.cachedOperation)(function(self2, archiveFilePath) {
                    return self2.getCacheKey(archiveFilePath, "getArchiveInfo");
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "getArchiveInfo", null);
            __decorate([
                (0, methodCache_1.cacheInvalidating)(function(self2) {
                    return [
                        self2.getCacheKey(null, "listFiles"),
                        self2.getCacheKey(null, "readFile"),
                        self2.getCacheKey(null, "getFile"),
                        self2.getCacheKey(null, "exists"),
                        self2.getCacheKey(null, "getFileChecksum"),
                        self2.getCacheKey(null, "isDirectory"),
                        self2.getCacheKey(null, "listStorageUnits"),
                        self2.getCacheKey(null, "getArchiveInfo")
                    ];
                }, true),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], CachedFileSystem2.prototype, "wipeout", null);
        }
    });
    // node_modules/@signageos/front-display/es6/FileSystem/fileSystemHelper.js
    var require_fileSystemHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/FileSystem/fileSystemHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.validateFreeSpace = exports.calculateReservedSpace = exports.RESERVED_SPACE_PERCENTAGE = exports.trimSlashesAndDots = void 0;
            var path_1 = require_path_browserify();
            var surroundingSlash = new RegExp("^/|/$", "g");
            function trimSlashesAndDots(filePath) {
                filePath = path_1.posix.normalize(filePath);
                filePath = filePath.replace(surroundingSlash, "");
                if (filePath === ".") {
                    return "";
                }
                return filePath;
            }
            exports.trimSlashesAndDots = trimSlashesAndDots;
            var IGNORED_FOLDERS = [
                ".offline-actions",
                ".logs"
            ];
            exports.RESERVED_SPACE_PERCENTAGE = 10;
            function calculateReservedSpace(capacity, reservedPercentage) {
                return Math.ceil(capacity * reservedPercentage / 100);
            }
            exports.calculateReservedSpace = calculateReservedSpace;
            function validateFreeSpace(storageUnit, filePath, fileSizeBytes) {
                return __awaiter(this, void 0, void 0, function() {
                    var remainingSpace;
                    return _ts_generator(this, function(_state) {
                        if (typeof fileSizeBytes !== "number") {
                            return [
                                2,
                                true
                            ];
                        }
                        if (IGNORED_FOLDERS.some(function(folder) {
                            return filePath === folder || filePath.startsWith(folder + "/");
                        })) {
                            return [
                                2,
                                true
                            ];
                        }
                        remainingSpace = storageUnit.usableSpace - fileSizeBytes;
                        return [
                            2,
                            remainingSpace >= 0
                        ];
                    });
                });
            }
            exports.validateFreeSpace = validateFreeSpace;
        }
    });
    // node_modules/@signageos/front-display/es6/FileSystem/httpHeadFetchers.js
    var require_httpHeadFetchers = __commonJS({
        "node_modules/@signageos/front-display/es6/FileSystem/httpHeadFetchers.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createWindowHttpHeadFetcher = void 0;
            function createWindowHttpHeadFetcher(window2) {
                var _this = this;
                return function(uri, headers) {
                    return __awaiter(_this, void 0, void 0, function() {
                        var response, responseHeaders;
                        return _ts_generator(this, function(_state) {
                            switch(_state.label){
                                case 0:
                                    return [
                                        4,
                                        window2.fetch(uri, {
                                            headers: headers,
                                            method: "HEAD"
                                        })
                                    ];
                                case 1:
                                    response = _state.sent();
                                    responseHeaders = {};
                                    response.headers.forEach(function(value, key) {
                                        responseHeaders[key.toLowerCase()] = value;
                                    });
                                    return [
                                        2,
                                        {
                                            ok: response.ok,
                                            headers: responseHeaders
                                        }
                                    ];
                            }
                        });
                    });
                };
            }
            exports.createWindowHttpHeadFetcher = createWindowHttpHeadFetcher;
        }
    });
    // node_modules/@signageos/front-display/es6/FileSystem/FileSystemWithReservedSpace.js
    var require_FileSystemWithReservedSpace = __commonJS({
        "node_modules/@signageos/front-display/es6/FileSystem/FileSystemWithReservedSpace.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createFileSystemWithReservedSpaceWithWindowHttpHeadFetcher = exports.FileSystemWithReservedSpace = void 0;
            var fileSystemHelper_1 = require_fileSystemHelper();
            var httpHeadFetchers_1 = require_httpHeadFetchers();
            var FileSystemWithReservedSpace = /*#__PURE__*/ function() {
                function FileSystemWithReservedSpace(fileSystem, httpHeadFetcher, reservedPercentage) {
                    _class_call_check(this, FileSystemWithReservedSpace);
                    this.fileSystem = fileSystem;
                    this.httpHeadFetcher = httpHeadFetcher;
                    this.reservedPercentage = reservedPercentage;
                }
                _create_class(FileSystemWithReservedSpace, [
                    {
                        key: "writeFile",
                        value: function writeFile(filePath, contents) {
                            return __awaiter(this, void 0, void 0, function() {
                                var requestedFileSystem;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getStorageUnitByType(filePath.storageUnit.type)
                                            ];
                                        case 1:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, filePath.filePath, import_buffer.Buffer.byteLength(contents, "utf-8"))
                                            ];
                                        case 2:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            return [
                                                4,
                                                this.fileSystem.writeFile(filePath, contents)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "listStorageUnits",
                        value: function listStorageUnits() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, storageUnits;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.fileSystem.listStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            return [
                                                2,
                                                storageUnits.map(function(storageUnit) {
                                                    var reservedSpace = (0, fileSystemHelper_1.calculateReservedSpace)(storageUnit.capacity, _this.reservedPercentage);
                                                    storageUnit.usableSpace = Math.max(0, storageUnit.usableSpace - reservedSpace);
                                                    return storageUnit;
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "onStorageUnitsChanged",
                        value: function onStorageUnitsChanged(listener) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.fileSystem.onStorageUnitsChanged(listener)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "listFiles",
                        value: function listFiles(directoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.listFiles(directoryPath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFile",
                        value: function getFile(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getFile(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "readFile",
                        value: function readFile(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.readFile(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "appendFile",
                        value: function appendFile(filePath, contents) {
                            return __awaiter(this, void 0, void 0, function() {
                                var requestedFileSystem;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getStorageUnitByType(filePath.storageUnit.type)
                                            ];
                                        case 1:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, filePath.filePath, import_buffer.Buffer.byteLength(contents, "utf-8"))
                                            ];
                                        case 2:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            return [
                                                4,
                                                this.fileSystem.appendFile(filePath, contents)
                                            ];
                                        case 3:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "exists",
                        value: function exists(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.exists(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "downloadFile",
                        value: function downloadFile(filePath, sourceUri, headers) {
                            return __awaiter(this, void 0, void 0, function() {
                                var contentLength, response, error, requestedFileSystem;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                2,
                                                ,
                                                3
                                            ]);
                                            return [
                                                4,
                                                this.httpHeadFetcher(sourceUri, headers)
                                            ];
                                        case 1:
                                            response = _state.sent();
                                            contentLength = response.headers["content-length"];
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            error = _state.sent();
                                            console.warn("Failed to process HEAD request on downloaded file ".concat(sourceUri));
                                            return [
                                                3,
                                                3
                                            ];
                                        case 3:
                                            if (contentLength === void 0) {
                                                console.warn("No Content-Length header during downloadFile ".concat(sourceUri, ". In that case, we can not determine the full functionality of checking free space."));
                                                contentLength = 0;
                                            }
                                            return [
                                                4,
                                                this.getStorageUnitByType(filePath.storageUnit.type)
                                            ];
                                        case 4:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, filePath.filePath, Number(contentLength))
                                            ];
                                        case 5:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            return [
                                                4,
                                                this.fileSystem.downloadFile(filePath, sourceUri, headers)
                                            ];
                                        case 6:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "uploadFile",
                        value: function uploadFile(filePath, uri, formKey, headers) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.uploadFile(filePath, uri, formKey, headers)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "deleteFile",
                        value: function deleteFile(filePath, recursive) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.deleteFile(filePath, recursive)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "copyFile",
                        value: function copyFile(sourceFilePath, destinationFilePath, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var file, requestedFileSystem;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getFile(sourceFilePath)
                                            ];
                                        case 1:
                                            file = _state.sent();
                                            if (!(file !== null)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.getStorageUnitByType(destinationFilePath.storageUnit.type)
                                            ];
                                        case 2:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, destinationFilePath.filePath, file === null || file === void 0 ? void 0 : file.sizeBytes)
                                            ];
                                        case 3:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                4,
                                                this.fileSystem.copyFile(sourceFilePath, destinationFilePath, options)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "moveFile",
                        value: function moveFile(sourceFilePath, destinationFilePath, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var file, requestedFileSystem;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getFile(sourceFilePath)
                                            ];
                                        case 1:
                                            file = _state.sent();
                                            if (!(file !== null && sourceFilePath.storageUnit.type !== destinationFilePath.storageUnit.type)) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                this.getStorageUnitByType(destinationFilePath.storageUnit.type)
                                            ];
                                        case 2:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, destinationFilePath.filePath, file.sizeBytes)
                                            ];
                                        case 3:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                4,
                                                this.fileSystem.moveFile(sourceFilePath, destinationFilePath, options)
                                            ];
                                        case 5:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "link",
                        value: function link(sourceFilePath, destinationFilePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.link(sourceFilePath, destinationFilePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getFileChecksum",
                        value: function getFileChecksum(filePath, hashType) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getFileChecksum(filePath, hashType)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "extractFile",
                        value: function extractFile(archiveFilePath, destinationDirectoryPath, method) {
                            return __awaiter(this, void 0, void 0, function() {
                                var uncompressedSize, requestedFileSystem;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getArchiveInfo(archiveFilePath)
                                            ];
                                        case 1:
                                            uncompressedSize = _state.sent().uncompressedSize;
                                            return [
                                                4,
                                                this.getStorageUnitByType(destinationDirectoryPath.storageUnit.type)
                                            ];
                                        case 2:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, destinationDirectoryPath.filePath, uncompressedSize)
                                            ];
                                        case 3:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            return [
                                                4,
                                                this.fileSystem.extractFile(archiveFilePath, destinationDirectoryPath, method)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "createArchive",
                        value: function createArchive(archiveFilePath, archiveEntries) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, requestedFileSystem, expectedArchiveSize;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.getStorageUnitByType(archiveFilePath.storageUnit.type)
                                            ];
                                        case 1:
                                            requestedFileSystem = _state.sent();
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    return __awaiter(_this, void 0, void 0, function() {
                                                        var _a2, finalArchiveSize, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, file, err, error;
                                                        return _ts_generator(this, function(_state) {
                                                            switch(_state.label){
                                                                case 0:
                                                                    _state.trys.push([
                                                                        0,
                                                                        9,
                                                                        ,
                                                                        10
                                                                    ]);
                                                                    finalArchiveSize = 0;
                                                                    _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                                    _state.label = 1;
                                                                case 1:
                                                                    _state.trys.push([
                                                                        1,
                                                                        6,
                                                                        7,
                                                                        8
                                                                    ]);
                                                                    _iterator = archiveEntries[Symbol.iterator]();
                                                                    _state.label = 2;
                                                                case 2:
                                                                    if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                                        3,
                                                                        5
                                                                    ];
                                                                    entry = _step.value;
                                                                    return [
                                                                        4,
                                                                        this.fileSystem.getFile(entry)
                                                                    ];
                                                                case 3:
                                                                    file = _state.sent();
                                                                    if (file !== null) {
                                                                        finalArchiveSize += (_a2 = file.sizeBytes) !== null && _a2 !== void 0 ? _a2 : 0;
                                                                    }
                                                                    _state.label = 4;
                                                                case 4:
                                                                    _iteratorNormalCompletion = true;
                                                                    return [
                                                                        3,
                                                                        2
                                                                    ];
                                                                case 5:
                                                                    return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                case 6:
                                                                    err = _state.sent();
                                                                    _didIteratorError = true;
                                                                    _iteratorError = err;
                                                                    return [
                                                                        3,
                                                                        8
                                                                    ];
                                                                case 7:
                                                                    try {
                                                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                                            _iterator["return"]();
                                                                        }
                                                                    } finally{
                                                                        if (_didIteratorError) {
                                                                            throw _iteratorError;
                                                                        }
                                                                    }
                                                                    return [
                                                                        7
                                                                    ];
                                                                case 8:
                                                                    resolve(finalArchiveSize);
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 9:
                                                                    error = _state.sent();
                                                                    reject(error);
                                                                    return [
                                                                        3,
                                                                        10
                                                                    ];
                                                                case 10:
                                                                    return [
                                                                        2
                                                                    ];
                                                            }
                                                        });
                                                    });
                                                })
                                            ];
                                        case 2:
                                            expectedArchiveSize = _state.sent();
                                            return [
                                                4,
                                                (0, fileSystemHelper_1.validateFreeSpace)(requestedFileSystem, archiveFilePath.filePath, expectedArchiveSize)
                                            ];
                                        case 3:
                                            if (!_state.sent()) {
                                                throw new Error("Not enough free space.");
                                            }
                                            return [
                                                4,
                                                this.fileSystem.createArchive(archiveFilePath, archiveEntries)
                                            ];
                                        case 4:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "createDirectory",
                        value: function createDirectory(directoryPath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.createDirectory(directoryPath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isDirectory",
                        value: function isDirectory(filePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.isDirectory(filePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getArchiveInfo",
                        value: function getArchiveInfo(archiveFilePath) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.getArchiveInfo(archiveFilePath)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "wipeout",
                        value: function wipeout() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.fileSystem.wipeout()
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        /** @deprecated Test only. */ key: "getExtendedFileSystem",
                        value: function getExtendedFileSystem() {
                            return this.fileSystem;
                        }
                    },
                    {
                        key: "getStorageUnitByType",
                        value: function getStorageUnitByType(type) {
                            return __awaiter(this, void 0, void 0, function() {
                                var storageUnits, foundStorageUnit;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.listStorageUnits()
                                            ];
                                        case 1:
                                            storageUnits = _state.sent();
                                            foundStorageUnit = storageUnits.find(function(storageUnit) {
                                                return storageUnit.type === type;
                                            });
                                            if (foundStorageUnit === void 0) {
                                                throw new Error("StorageUnit for type ".concat(type, " not found"));
                                            }
                                            return [
                                                2,
                                                foundStorageUnit
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return FileSystemWithReservedSpace;
            }();
            exports.FileSystemWithReservedSpace = FileSystemWithReservedSpace;
            function createFileSystemWithReservedSpaceWithWindowHttpHeadFetcher2(fileSystem, window2, reservedPercentage) {
                var httpHeadFetcher = (0, httpHeadFetchers_1.createWindowHttpHeadFetcher)(window2);
                return new FileSystemWithReservedSpace(fileSystem, httpHeadFetcher, reservedPercentage);
            }
            exports.createFileSystemWithReservedSpaceWithWindowHttpHeadFetcher = createFileSystemWithReservedSpaceWithWindowHttpHeadFetcher2;
        }
    });
    // src/Video/WebosVideoStat.ts
    var import_ProprietaryVideoPlayer, WebosVideoStat, StatVideo;
    var init_WebosVideoStat = __esm({
        "src/Video/WebosVideoStat.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ProprietaryVideoPlayer = __toESM(require_ProprietaryVideoPlayer());
            WebosVideoStat = /*#__PURE__*/ function() {
                "use strict";
                function WebosVideoStat() {
                    _class_call_check(this, WebosVideoStat);
                    __publicField(this, "player", new import_ProprietaryVideoPlayer["default"]([
                        new StatVideo()
                    ]));
                }
                _create_class(WebosVideoStat, [
                    {
                        key: "getDuration",
                        value: function getDuration(uri) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.player.getDuration(uri, 0, 0, 1, 1)
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return WebosVideoStat;
            }();
            StatVideo = /*#__PURE__*/ function() {
                "use strict";
                function StatVideo() {
                    _class_call_check(this, StatVideo);
                    __publicField(this, "element");
                }
                _create_class(StatVideo, [
                    {
                        key: "prepare",
                        value: function prepare() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "play",
                        value: function play() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "pause",
                        value: function pause() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "resume",
                        value: function resume() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "stop",
                        value: function stop() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "addEventListener",
                        value: function addEventListener() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "removeAllEventListeners",
                        value: function removeAllEventListeners() {
                            throw new Error("Method not implemented.");
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration() {
                            return this.element.duration * 1e3;
                        }
                    }
                ]);
                return StatVideo;
            }();
        }
    });
    // src/Driver/FileSystem/SCAPv15FileSystem.ts
    var SCAPv15FileSystem;
    var init_SCAPv15FileSystem = __esm({
        "src/Driver/FileSystem/SCAPv15FileSystem.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv12FileSystem();
            SCAPv15FileSystem = /*#__PURE__*/ function(SCAPv12FileSystem) {
                "use strict";
                _inherits(SCAPv15FileSystem, SCAPv12FileSystem);
                var _super = _create_super(SCAPv15FileSystem);
                function SCAPv15FileSystem(window2, getStoragePlugin, _getCustom, video) {
                    var supportsArchiveInfo = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
                    _class_call_check(this, SCAPv15FileSystem);
                    return _super.call(this, window2.location, getStoragePlugin, video, window2, supportsArchiveInfo);
                }
                return SCAPv15FileSystem;
            }(SCAPv12FileSystem);
        }
    });
    // src/Driver/getFileSystemFactory.ts
    var import_CachedFileSystem, import_FileSystemWithReservedSpace, import_fileSystemHelper, createSCAPv15RealFileSystem, createSCAPv12RealFileSystem, createFileSystem;
    var init_getFileSystemFactory = __esm({
        "src/Driver/getFileSystemFactory.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_CachedFileSystem = __toESM(require_CachedFileSystem());
            import_FileSystemWithReservedSpace = __toESM(require_FileSystemWithReservedSpace());
            import_fileSystemHelper = __toESM(require_fileSystemHelper());
            init_WebosVideoStat();
            init_SCAPv12FileSystem();
            init_SCAPv15FileSystem();
            createSCAPv15RealFileSystem = function(window2, scap, supportsArchiveInfo) {
                return __async(void 0, null, function() {
                    var fs;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fs = new SCAPv15FileSystem(window2, function() {
                                    return scap.storage;
                                }, function() {
                                    return scap.custom;
                                }, new WebosVideoStat(), supportsArchiveInfo);
                                return [
                                    4,
                                    fs.initialize()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    createFileSystem(window2, fs)
                                ];
                        }
                    });
                });
            };
            createSCAPv12RealFileSystem = function(window2, scap) {
                return __async(void 0, null, function() {
                    var fs;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                fs = new SCAPv12FileSystem(window2.location, function() {
                                    return scap.storage;
                                }, new WebosVideoStat(), window2, false);
                                return [
                                    4,
                                    fs.initialize()
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    2,
                                    createFileSystem(window2, fs)
                                ];
                        }
                    });
                });
            };
            createFileSystem = function(window2, realFileSystem) {
                var internalFileSystem = (0, import_FileSystemWithReservedSpace.createFileSystemWithReservedSpaceWithWindowHttpHeadFetcher)(realFileSystem, window2, import_fileSystemHelper.RESERVED_SPACE_PERCENTAGE);
                return new import_CachedFileSystem["default"](internalFileSystem, "webos");
            };
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/cssRotationHelper.js
    var require_cssRotationHelper = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/cssRotationHelper.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.convertClientCoordinatesToSystem = void 0;
            function convertClientCoordinatesToSystem(window2, angle, x, y, width, height) {
                switch(angle){
                    case 0:
                        return {
                            x: x,
                            y: y,
                            width: width,
                            height: height
                        };
                    case 90:
                        return {
                            x: window2.innerWidth - (y + height),
                            y: x,
                            width: height,
                            height: width
                        };
                    case 180:
                        return {
                            x: window2.innerWidth - (x + width),
                            y: window2.innerHeight - (y + height),
                            width: width,
                            height: height
                        };
                    case 270:
                        return {
                            x: y,
                            y: window2.innerHeight - (x + width),
                            width: height,
                            height: width
                        };
                    default:
                        throw new Error("unsupported angle");
                }
            }
            exports.convertClientCoordinatesToSystem = convertClientCoordinatesToSystem;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/CSSRotationVideoPlayerAdapter.js
    var require_CSSRotationVideoPlayerAdapter = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/CSSRotationVideoPlayerAdapter.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var cssRotationHelper_1 = require_cssRotationHelper();
            var CSSRotationVideoPlayerAdapter = /*#__PURE__*/ function() {
                function CSSRotationVideoPlayerAdapter(window2, videoPlayer, getAngle) {
                    _class_call_check(this, CSSRotationVideoPlayerAdapter);
                    this.window = window2;
                    this.videoPlayer = videoPlayer;
                    this.getAngle = getAngle;
                }
                _create_class(CSSRotationVideoPlayerAdapter, [
                    {
                        key: "getMaxVideoCount",
                        value: function getMaxVideoCount() {
                            return this.videoPlayer.getMaxVideoCount();
                        }
                    },
                    {
                        key: "prepare",
                        value: function prepare(uri, x, y, width, height, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.videoPlayer.prepare(uri, coords.x, coords.y, coords.width, coords.height, options)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords, video;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.videoPlayer.play(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            video = _state.sent();
                                            return [
                                                2,
                                                this.convertEventEmitterWithConvertedCoordinatesBackToOriginalCoordinates(video, x, y, width, height)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.videoPlayer.stop(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.videoPlayer.pause(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resume",
                        value: function resume(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.videoPlayer.resume(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clearAll",
                        value: function clearAll() {
                            return this.videoPlayer.clearAll();
                        }
                    },
                    {
                        key: "getDuration",
                        value: function getDuration(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                2,
                                                this.videoPlayer.getDuration(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "convertEventEmitterWithConvertedCoordinatesBackToOriginalCoordinates",
                        value: function convertEventEmitterWithConvertedCoordinatesBackToOriginalCoordinates(videoEmitter, originalX, originalY, originalWidth, originalHeight) {
                            var convertedVideoEmitter = new events_1.EventEmitter();
                            var convertEvent = function(event) {
                                return Object.assign(Object.assign({}, event), {
                                    srcArguments: {
                                        uri: event.srcArguments.uri,
                                        x: originalX,
                                        y: originalY,
                                        width: originalWidth,
                                        height: originalHeight
                                    }
                                });
                            };
                            videoEmitter.on("playing", function(event) {
                                return convertedVideoEmitter.emit("playing", convertEvent(event));
                            });
                            videoEmitter.on("ended", function(event) {
                                return convertedVideoEmitter.emit("ended", convertEvent(event));
                            });
                            videoEmitter.on("error", function(event) {
                                return convertedVideoEmitter.emit("error", convertEvent(event));
                            });
                            videoEmitter.on("stopped", function(event) {
                                return convertedVideoEmitter.emit("stopped", convertEvent(event));
                            });
                            convertedVideoEmitter.on("error", function() {});
                            return convertedVideoEmitter;
                        }
                    }
                ]);
                return CSSRotationVideoPlayerAdapter;
            }();
            exports["default"] = CSSRotationVideoPlayerAdapter;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/CSSRotationStreamPlayerAdapter.js
    var require_CSSRotationStreamPlayerAdapter = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/CSSRotationStreamPlayerAdapter.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var cssRotationHelper_1 = require_cssRotationHelper();
            var CSSRotationStreamPlayerAdapter = /*#__PURE__*/ function() {
                function CSSRotationStreamPlayerAdapter(window2, streamPlayer, getAngle) {
                    _class_call_check(this, CSSRotationStreamPlayerAdapter);
                    this.window = window2;
                    this.streamPlayer = streamPlayer;
                    this.getAngle = getAngle;
                }
                _create_class(CSSRotationStreamPlayerAdapter, [
                    {
                        key: "prepare",
                        value: function prepare(uri, x, y, width, height, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.prepare(uri, coords.x, coords.y, coords.width, coords.height, options)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "play",
                        value: function play(uri, x, y, width, height, options) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords, stream;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.play(uri, coords.x, coords.y, coords.width, coords.height, options)
                                            ];
                                        case 2:
                                            stream = _state.sent();
                                            return [
                                                2,
                                                this.convertEventEmitterWithConvertedCoordinatesBackToOriginalCoordinates(stream, x, y, width, height)
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "stop",
                        value: function stop(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.stop(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "pause",
                        value: function pause(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.pause(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "resume",
                        value: function resume(uri, x, y, width, height) {
                            return __awaiter(this, void 0, void 0, function() {
                                var angle, coords;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getAngle()
                                            ];
                                        case 1:
                                            angle = _state.sent();
                                            coords = (0, cssRotationHelper_1.convertClientCoordinatesToSystem)(this.window, angle, x, y, width, height);
                                            return [
                                                4,
                                                this.streamPlayer.resume(uri, coords.x, coords.y, coords.width, coords.height)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "clearAll",
                        value: function clearAll() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.streamPlayer.clearAll()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getTracks",
                        value: function getTracks(videoId) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.streamPlayer.getTracks(videoId)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "selectTrack",
                        value: function selectTrack(videoId, trackType, groupId, trackIndex) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.streamPlayer.selectTrack(videoId, trackType, groupId, trackIndex)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "resetTrack",
                        value: function resetTrack(videoId, trackType, groupId) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        this.streamPlayer.resetTrack(videoId, trackType, groupId)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "convertEventEmitterWithConvertedCoordinatesBackToOriginalCoordinates",
                        value: function convertEventEmitterWithConvertedCoordinatesBackToOriginalCoordinates(streamEmitter, originalX, originalY, originalWidth, originalHeight) {
                            var convertedStreamEmitter = new events_1.EventEmitter();
                            var convertEvent = function(event) {
                                return Object.assign(Object.assign({}, event), {
                                    uri: event.uri,
                                    x: originalX,
                                    y: originalY,
                                    width: originalWidth,
                                    height: originalHeight,
                                    options: event.options
                                });
                            };
                            streamEmitter.on("error", function(event) {
                                return convertedStreamEmitter.emit("error", convertEvent(event));
                            });
                            streamEmitter.on("connected", function(event) {
                                return convertedStreamEmitter.emit("connected", convertEvent(event));
                            });
                            streamEmitter.on("disconnected", function(event) {
                                return convertedStreamEmitter.emit("disconnected", convertEvent(event));
                            });
                            streamEmitter.on("closed", function(event) {
                                return convertedStreamEmitter.emit("closed", convertEvent(event));
                            });
                            streamEmitter.on("tracks_changed", function(event) {
                                return convertedStreamEmitter.emit("tracks_changed", convertEvent(event));
                            });
                            convertedStreamEmitter.on("error", function() {});
                            return convertedStreamEmitter;
                        }
                    }
                ]);
                return CSSRotationStreamPlayerAdapter;
            }();
            exports["default"] = CSSRotationStreamPlayerAdapter;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/ScreenRotationManager.js
    var require_ScreenRotationManager = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/ScreenRotationManager.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var CSSRotationVideoPlayerAdapter_1 = __importDefault(require_CSSRotationVideoPlayerAdapter());
            var CSSRotationStreamPlayerAdapter_1 = __importDefault(require_CSSRotationStreamPlayerAdapter());
            var ScreenRotationManager2 = /*#__PURE__*/ function() {
                function ScreenRotationManager2(window2, propsProvider, elements, getOrientation) {
                    _class_call_check(this, ScreenRotationManager2);
                    this.window = window2;
                    this.propsProvider = propsProvider;
                    this.elements = elements;
                    this.getOrientation = getOrientation;
                }
                _create_class(ScreenRotationManager2, [
                    {
                        key: "applyOrientation",
                        value: function applyOrientation() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.applyOrientationToElements(this.elements)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "adaptVideoPlayer",
                        value: function adaptVideoPlayer(videoPlayer) {
                            var _this = this;
                            return new CSSRotationVideoPlayerAdapter_1["default"](this.window, videoPlayer, function() {
                                return __awaiter(_this, void 0, void 0, function() {
                                    var orientation, rotationProps;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.getOrientation()
                                                ];
                                            case 1:
                                                orientation = _state.sent();
                                                rotationProps = this.propsProvider.getProps(orientation);
                                                return [
                                                    2,
                                                    rotationProps.angle
                                                ];
                                        }
                                    });
                                });
                            });
                        }
                    },
                    {
                        key: "adaptStreamPlayer",
                        value: function adaptStreamPlayer(streamPlayer) {
                            var _this = this;
                            return new CSSRotationStreamPlayerAdapter_1["default"](this.window, streamPlayer, function() {
                                return __awaiter(_this, void 0, void 0, function() {
                                    var orientation, rotationProps;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.getOrientation()
                                                ];
                                            case 1:
                                                orientation = _state.sent();
                                                rotationProps = this.propsProvider.getProps(orientation);
                                                return [
                                                    2,
                                                    rotationProps.angle
                                                ];
                                        }
                                    });
                                });
                            });
                        }
                    },
                    {
                        key: "adaptHTMLElementProducer",
                        value: function adaptHTMLElementProducer(htmlElementProducer) {
                            var _this = this;
                            htmlElementProducer.onElementCreated(function(element) {
                                return __awaiter(_this, void 0, void 0, function() {
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                return [
                                                    4,
                                                    this.applyOrientationToElements([
                                                        element
                                                    ])
                                                ];
                                            case 1:
                                                _state.sent();
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                            return htmlElementProducer;
                        }
                    },
                    {
                        key: "applyOrientationToElements",
                        value: function applyOrientationToElements(elements) {
                            return __awaiter(this, void 0, void 0, function() {
                                var orientation, rotationProps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, element;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.getOrientation()
                                            ];
                                        case 1:
                                            orientation = _state.sent();
                                            rotationProps = this.propsProvider.getProps(orientation);
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            try {
                                                for(_iterator = elements[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                                    element = _step.value;
                                                    element.style.width = rotationProps.width;
                                                    element.style.height = rotationProps.height;
                                                    element.style.transform = element.style.webkitTransform = "rotate(".concat(rotationProps.angle, "deg) translateX(").concat(rotationProps.translateX, ") translateY(").concat(rotationProps.translateY, ") translateZ(0)");
                                                    element.style.transformOrigin = element.style.webkitTransformOrigin = "top left";
                                                }
                                            } catch (err) {
                                                _didIteratorError = true;
                                                _iteratorError = err;
                                            } finally{
                                                try {
                                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                        _iterator["return"]();
                                                    }
                                                } finally{
                                                    if (_didIteratorError) {
                                                        throw _iteratorError;
                                                    }
                                                }
                                            }
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return ScreenRotationManager2;
            }();
            exports["default"] = ScreenRotationManager2;
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/ScreenRotationPixelPropsProvider.js
    var require_ScreenRotationPixelPropsProvider = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/ScreenRotationPixelPropsProvider.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Orientation_1 = __importDefault(require_Orientation());
            var ScreenRotationPixelPropsProvider2 = /*#__PURE__*/ function() {
                function ScreenRotationPixelPropsProvider2(rotateClockwise, resContainer) {
                    _class_call_check(this, ScreenRotationPixelPropsProvider2);
                    this.rotateClockwise = rotateClockwise;
                    this.resContainer = resContainer;
                }
                _create_class(ScreenRotationPixelPropsProvider2, [
                    {
                        key: "getProps",
                        value: function getProps(orientation) {
                            if (this.rotateClockwise) {
                                return this.getClockwiseProps(orientation);
                            } else {
                                return this.getCounterClockwiseProps(orientation);
                            }
                        }
                    },
                    {
                        key: "getClockwiseProps",
                        value: function getClockwiseProps(orientation) {
                            switch(orientation){
                                case Orientation_1["default"].PORTRAIT:
                                    return this.getCounterClockwiseProps(Orientation_1["default"].PORTRAIT_FLIPPED);
                                case Orientation_1["default"].PORTRAIT_FLIPPED:
                                    return this.getCounterClockwiseProps(Orientation_1["default"].PORTRAIT);
                                default:
                                    return this.getCounterClockwiseProps(orientation);
                            }
                        }
                    },
                    {
                        key: "getCounterClockwiseProps",
                        value: function getCounterClockwiseProps(orientation) {
                            var windowWidth = this.resContainer.innerWidth;
                            var windowHeight = this.resContainer.innerHeight;
                            var _obj;
                            var angles = (_obj = {}, _define_property(_obj, Orientation_1["default"].LANDSCAPE, {
                                angle: 0,
                                translateX: "0%",
                                translateY: "0%",
                                width: "".concat(windowWidth, "px"),
                                height: "".concat(windowHeight, "px")
                            }), _define_property(_obj, Orientation_1["default"].PORTRAIT_FLIPPED, {
                                angle: 90,
                                translateX: "0%",
                                translateY: "-".concat(windowWidth, "px"),
                                width: "".concat(windowHeight, "px"),
                                height: "".concat(windowWidth, "px")
                            }), _define_property(_obj, Orientation_1["default"].LANDSCAPE_FLIPPED, {
                                angle: 180,
                                translateX: "-".concat(windowWidth, "px"),
                                translateY: "-".concat(windowHeight, "px"),
                                width: "".concat(windowWidth, "px"),
                                height: "".concat(windowHeight, "px")
                            }), _define_property(_obj, Orientation_1["default"].PORTRAIT, {
                                angle: 270,
                                translateX: "-".concat(windowHeight, "px"),
                                translateY: "0%",
                                width: "".concat(windowHeight, "px"),
                                height: "".concat(windowWidth, "px")
                            }), _obj);
                            return angles[orientation];
                        }
                    }
                ]);
                return ScreenRotationPixelPropsProvider2;
            }();
            exports["default"] = ScreenRotationPixelPropsProvider2;
        }
    });
    // src/Screen/SCAPv13ScreenRotationManager.ts
    var import_Orientation4, import_VideoOrientation3, SCAPv13ScreenRotationManager;
    var init_SCAPv13ScreenRotationManager = __esm({
        "src/Screen/SCAPv13ScreenRotationManager.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_Orientation4 = __toESM(require_Orientation());
            import_VideoOrientation3 = __toESM(require_VideoOrientation());
            SCAPv13ScreenRotationManager = /*#__PURE__*/ function() {
                "use strict";
                function SCAPv13ScreenRotationManager(scap, settingsManager, screenRotationManager) {
                    _class_call_check(this, SCAPv13ScreenRotationManager);
                    this.scap = scap;
                    this.settingsManager = settingsManager;
                    this.screenRotationManager = screenRotationManager;
                }
                _create_class(SCAPv13ScreenRotationManager, [
                    {
                        key: "applyOrientation",
                        value: function applyOrientation() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.screenRotationManager.applyOrientation();
                                            return [
                                                4,
                                                this.applyVideoRotation()
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "adaptVideoPlayer",
                        value: function adaptVideoPlayer(videoPlayer) {
                            return this.screenRotationManager.adaptVideoPlayer(videoPlayer);
                        }
                    },
                    {
                        key: "adaptStreamPlayer",
                        value: function adaptStreamPlayer(streamPlayer) {
                            return this.screenRotationManager.adaptStreamPlayer(streamPlayer);
                        }
                    },
                    {
                        key: "adaptHTMLElementProducer",
                        value: function adaptHTMLElementProducer(htmlElementProducer) {
                            return this.adaptHTMLElementProducer(htmlElementProducer);
                        }
                    },
                    {
                        key: "applyVideoRotation",
                        value: function applyVideoRotation() {
                            return __async(this, null, function() {
                                var _this, orientation, videoOrientation, degree, options;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                this.settingsManager.getOrientation()
                                            ];
                                        case 1:
                                            orientation = _state.sent();
                                            videoOrientation = this.settingsManager.getVideoOrientation();
                                            if (videoOrientation === import_VideoOrientation3["default"].LANDSCAPE) {
                                                orientation = import_Orientation4["default"].LANDSCAPE;
                                            }
                                            switch(orientation){
                                                case import_Orientation4["default"].PORTRAIT:
                                                    degree = "270";
                                                    break;
                                                case import_Orientation4["default"].PORTRAIT_FLIPPED:
                                                    degree = "90";
                                                    break;
                                                default:
                                                    degree = "off";
                                            }
                                            options = {
                                                degree: degree,
                                                aspectRatio: "original"
                                            };
                                            return [
                                                2,
                                                new Promise(function(resolve, reject) {
                                                    return _this.scap.video.setContentRotation(function() {
                                                        return resolve();
                                                    }, function(cbObject) {
                                                        return reject(new Error("Error during videoPlay: " + cbObject.errorText));
                                                    }, options);
                                                })
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return SCAPv13ScreenRotationManager;
            }();
        }
    });
    // node_modules/@signageos/front-display/es6/NativeDevice/Screen/ScreenRotationViewportPropsProvider.js
    var require_ScreenRotationViewportPropsProvider = __commonJS({
        "node_modules/@signageos/front-display/es6/NativeDevice/Screen/ScreenRotationViewportPropsProvider.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var Orientation_1 = __importDefault(require_Orientation());
            var ScreenRotationViewportPropsProvider2 = /*#__PURE__*/ function() {
                function ScreenRotationViewportPropsProvider2(rotateClockwise) {
                    _class_call_check(this, ScreenRotationViewportPropsProvider2);
                    this.rotateClockwise = rotateClockwise;
                }
                _create_class(ScreenRotationViewportPropsProvider2, [
                    {
                        key: "getProps",
                        value: function getProps(orientation) {
                            if (this.rotateClockwise) {
                                return this.getClockwiseProps(orientation);
                            } else {
                                return this.getCounterClockwiseProps(orientation);
                            }
                        }
                    },
                    {
                        key: "getClockwiseProps",
                        value: function getClockwiseProps(orientation) {
                            switch(orientation){
                                case Orientation_1["default"].PORTRAIT:
                                    return this.getCounterClockwiseProps(Orientation_1["default"].PORTRAIT_FLIPPED);
                                case Orientation_1["default"].PORTRAIT_FLIPPED:
                                    return this.getCounterClockwiseProps(Orientation_1["default"].PORTRAIT);
                                default:
                                    return this.getCounterClockwiseProps(orientation);
                            }
                        }
                    },
                    {
                        key: "getCounterClockwiseProps",
                        value: function getCounterClockwiseProps(orientation) {
                            var _obj;
                            var angles = (_obj = {}, _define_property(_obj, Orientation_1["default"].LANDSCAPE, {
                                angle: 0,
                                translateX: "0%",
                                translateY: "0%",
                                width: "100vw",
                                height: "100vh"
                            }), _define_property(_obj, Orientation_1["default"].PORTRAIT_FLIPPED, {
                                angle: 90,
                                translateX: "0%",
                                translateY: "-100vw",
                                width: "100vh",
                                height: "100vw"
                            }), _define_property(_obj, Orientation_1["default"].LANDSCAPE_FLIPPED, {
                                angle: 180,
                                translateX: "-100vw",
                                translateY: "-100vh",
                                width: "100vw",
                                height: "100vh"
                            }), _define_property(_obj, Orientation_1["default"].PORTRAIT, {
                                angle: 270,
                                translateX: "-100vh",
                                translateY: "0%",
                                width: "100vh",
                                height: "100vw"
                            }), _obj);
                            return angles[orientation];
                        }
                    }
                ]);
                return ScreenRotationViewportPropsProvider2;
            }();
            exports["default"] = ScreenRotationViewportPropsProvider2;
        }
    });
    var import_ScreenRotationManager, import_ScreenRotationPixelPropsProvider, import_ScreenRotationViewportPropsProvider;
    var init_screenRotationManagerFactory = __esm({
        "src/Driver/screenRotationManagerFactory.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ScreenRotationManager = __toESM(require_ScreenRotationManager());
            import_ScreenRotationPixelPropsProvider = __toESM(require_ScreenRotationPixelPropsProvider());
            init_SCAPv13ScreenRotationManager();
            import_ScreenRotationViewportPropsProvider = __toESM(require_ScreenRotationViewportPropsProvider());
        }
    });
    var import_IframeBrowser, import_ProprietaryCache, import_ReconnectStreamPlayer, import_ProprietaryVideoPlayer2, createSCAP, createSCAPv12, createSCAPv13, createSCAPv15, createSCAPv16, createSCAPv17, createSCAPv18, createCacheDriver;
    var init_driverFactory = __esm({
        "src/Driver/driverFactory.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_IframeBrowser = __toESM(require_IframeBrowser());
            import_ProprietaryCache = __toESM(require_ProprietaryCache());
            import_ReconnectStreamPlayer = __toESM(require_ReconnectStreamPlayer());
            import_ProprietaryVideoPlayer2 = __toESM(require_ProprietaryVideoPlayer());
            init_IDCAP();
            init_WebosSettingsManager();
            init_WebosSCAPv12InternalPortVideo();
            init_WebosSCAPv16InternalPortVideo();
            init_WebosVideo();
            init_WebosVideoPlayer();
            init_SCAPv12FrontDriver();
            init_SCAPv15FrontDriver();
            init_SCAPv16FrontDriver();
            init_SCAPv17FrontDriver();
            init_SCAPv18FrontDriver();
            init_SCAPv12ManagementDriver();
            init_SCAPv13ManagementDriver();
            init_SCAPv15ManagementDriver();
            init_SCAPv16ManagementDriver();
            init_SCAPv18ManagementDriver();
            init_SCAPHelper();
            init_SCAPv12BasicDriver();
            init_SCAPv12CacheDriver();
            init_SCAPv12StreamPlayer();
            init_SCAPv13StreamPlayer();
            init_SCAPv14Plugins();
            init_SCAPv15Plugins();
            init_SCAPv15StreamPlayer();
            init_SCAPv16Plugins();
            init_getFileSystemFactory();
            init_screenRotationManagerFactory();
            createSCAP = function(window2, version, isCloudControl, scapVersion) {
                return __async(void 0, null, function() {
                    var v, _tmp, factory;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                if (!(scapVersion != null)) return [
                                    3,
                                    1
                                ];
                                _tmp = scapVersion;
                                return [
                                    3,
                                    3
                                ];
                            case 1:
                                return [
                                    4,
                                    getSCAPVersion()
                                ];
                            case 2:
                                _tmp = _state.sent();
                                _state.label = 3;
                            case 3:
                                v = _tmp;
                                return [
                                    4,
                                    ({
                                        12: createSCAPv12,
                                        13: createSCAPv13,
                                        15: createSCAPv15,
                                        16: createSCAPv16,
                                        17: createSCAPv17,
                                        18: createSCAPv18
                                    })[v](window2, version, isCloudControl)
                                ];
                            case 4:
                                factory = _state.sent();
                                return [
                                    2,
                                    {
                                        frontDriver: factory.frontDriver,
                                        managementDriver: factory.managementDriver
                                    }
                                ];
                        }
                    });
                });
            };
            createSCAPv12 = function(window2, version, isCloudControl) {
                return __async(void 0, null, function() {
                    var scap, settingsManager, cacheDriver, basicDriver, fileSystem;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                scap = new SCAPv14Plugins(window2);
                                settingsManager = new WebosSettingsManager(window2.localStorage);
                                cacheDriver = createCacheDriver(window2);
                                basicDriver = new SCAPv12BasicDriver(window2, scap);
                                return [
                                    4,
                                    createSCAPv12RealFileSystem(window2, scap)
                                ];
                            case 1:
                                fileSystem = _state.sent();
                                return [
                                    2,
                                    {
                                        frontDriver: function() {
                                            var foregroundVideoWrapper = createForegroundVideoWrapperElement(window2);
                                            var backgroundVideoWrapper = createBackgroundVideoWrapperElement(window2);
                                            var videos = createVideos(1, window2, foregroundVideoWrapper, backgroundVideoWrapper, getSCAPv12InternalPortVideoFactory(scap));
                                            var baseVideoPlayer = new import_ProprietaryVideoPlayer2["default"](videos);
                                            var video = new WebosVideoPlayer(baseVideoPlayer);
                                            var stream = new import_ReconnectStreamPlayer["default"](new SCAPv12StreamPlayer(baseVideoPlayer));
                                            var screenRotationManager = createSCAPv12RotationManager(window2, foregroundVideoWrapper, backgroundVideoWrapper, settingsManager);
                                            var browser = createBrowser(window2, screenRotationManager);
                                            return new SCAPv12FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                                        },
                                        managementDriver: function(forbiddenCapabilities) {
                                            return new SCAPv12ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                                        }
                                    }
                                ];
                        }
                    });
                });
            };
            createSCAPv13 = function(window2, version, isCloudControl) {
                return __async(void 0, null, function() {
                    var scap, cacheDriver, settingsManager, basicDriver, fileSystem;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                scap = new SCAPv14Plugins(window2);
                                cacheDriver = createCacheDriver(window2);
                                settingsManager = new WebosSettingsManager(window2.localStorage);
                                basicDriver = new SCAPv12BasicDriver(window2, scap);
                                return [
                                    4,
                                    createSCAPv12RealFileSystem(window2, scap)
                                ];
                            case 1:
                                fileSystem = _state.sent();
                                return [
                                    2,
                                    {
                                        frontDriver: function() {
                                            var foregroundVideoWrapper = createForegroundVideoWrapperElement(window2);
                                            var backgroundVideoWrapper = createBackgroundVideoWrapperElement(window2);
                                            var videos = createVideos(1, window2, foregroundVideoWrapper, backgroundVideoWrapper, getSCAPv12InternalPortVideoFactory(scap));
                                            var baseVideoPlayer = new import_ProprietaryVideoPlayer2["default"](videos);
                                            var video = new WebosVideoPlayer(baseVideoPlayer);
                                            var stream = new import_ReconnectStreamPlayer["default"](new SCAPv13StreamPlayer_default(baseVideoPlayer));
                                            var screenRotationManager = createSCAPv13RotationManager(window2, scap, foregroundVideoWrapper, backgroundVideoWrapper, settingsManager);
                                            var browser = createBrowser(window2, screenRotationManager);
                                            return new SCAPv12FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                                        },
                                        managementDriver: function(forbiddenCapabilities) {
                                            return new SCAPv13ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                                        }
                                    }
                                ];
                        }
                    });
                });
            };
            createSCAPv15 = function(window2, version, isCloudControl) {
                return __async(void 0, null, function() {
                    var scap, basicDriver, settingsManager, fileSystem, cacheDriver;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                scap = new SCAPv15Plugins(window2);
                                basicDriver = new SCAPv12BasicDriver(window2, scap);
                                settingsManager = new WebosSettingsManager(window2.localStorage);
                                return [
                                    4,
                                    createSCAPv15RealFileSystem(window2, scap, SCAPv15FrontDriver.supportsArchiveInfo)
                                ];
                            case 1:
                                fileSystem = _state.sent();
                                cacheDriver = createCacheDriver(window2);
                                return [
                                    2,
                                    {
                                        frontDriver: function() {
                                            var foregroundVideoWrapper = createForegroundVideoWrapperElement(window2);
                                            var backgroundVideoWrapper = createBackgroundVideoWrapperElement(window2);
                                            var videos = createVideos(2, window2, foregroundVideoWrapper, backgroundVideoWrapper, getSCAPv12InternalPortVideoFactory(scap));
                                            var baseVideoPlayer = new import_ProprietaryVideoPlayer2["default"](videos);
                                            var _createSCAPv15RotationManager = createSCAPv15RotationManager(window2, new WebosVideoPlayer(baseVideoPlayer), new import_ReconnectStreamPlayer["default"](new SCAPv15StreamPlayer_default(baseVideoPlayer)), settingsManager), screenRotationManager = _createSCAPv15RotationManager.screenRotationManager, video = _createSCAPv15RotationManager.video, stream = _createSCAPv15RotationManager.stream;
                                            var browser = createBrowser(window2, screenRotationManager);
                                            return new SCAPv15FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                                        },
                                        managementDriver: function(forbiddenCapabilities) {
                                            return new SCAPv15ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                                        }
                                    }
                                ];
                        }
                    });
                });
            };
            createSCAPv16 = function(window2, version, isCloudControl) {
                return __async(void 0, null, function() {
                    var scap, basicDriver, settingsManager, fileSystem, cacheDriver;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                scap = new SCAPv16Plugins(window2);
                                basicDriver = new SCAPv12BasicDriver(window2, scap);
                                settingsManager = new WebosSettingsManager(window2.localStorage);
                                return [
                                    4,
                                    createSCAPv15RealFileSystem(window2, scap, SCAPv16FrontDriver.supportsArchiveInfo)
                                ];
                            case 1:
                                fileSystem = _state.sent();
                                cacheDriver = createCacheDriver(window2);
                                return [
                                    2,
                                    {
                                        frontDriver: function() {
                                            var foregroundVideoWrapper = createForegroundVideoWrapperElement(window2);
                                            var backgroundVideoWrapper = createBackgroundVideoWrapperElement(window2);
                                            var videos = createVideos(2, window2, foregroundVideoWrapper, backgroundVideoWrapper, getSCAPv16InternalPortVideoFactory(scap));
                                            var baseVideoPlayer = new import_ProprietaryVideoPlayer2["default"](videos);
                                            var _createSCAPv15RotationManager = createSCAPv15RotationManager(window2, new WebosVideoPlayer(baseVideoPlayer), new import_ReconnectStreamPlayer["default"](new SCAPv15StreamPlayer_default(baseVideoPlayer)), settingsManager), screenRotationManager = _createSCAPv15RotationManager.screenRotationManager, video = _createSCAPv15RotationManager.video, stream = _createSCAPv15RotationManager.stream;
                                            var browser = createBrowser(window2, screenRotationManager);
                                            return new SCAPv16FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                                        },
                                        managementDriver: function(forbiddenCapabilities) {
                                            return new SCAPv16ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                                        }
                                    }
                                ];
                        }
                    });
                });
            };
            createSCAPv17 = function(window2, version, isCloudControl) {
                return __async(void 0, null, function() {
                    var scap, basicDriver, settingsManager, fileSystem, cacheDriver;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                scap = new SCAPv16Plugins(window2);
                                basicDriver = new SCAPv12BasicDriver(window2, scap);
                                settingsManager = new WebosSettingsManager(window2.localStorage);
                                return [
                                    4,
                                    createSCAPv15RealFileSystem(window2, scap, SCAPv17FrontDriver.supportsArchiveInfo)
                                ];
                            case 1:
                                fileSystem = _state.sent();
                                cacheDriver = createCacheDriver(window2);
                                return [
                                    2,
                                    {
                                        frontDriver: function() {
                                            var foregroundVideoWrapper = createForegroundVideoWrapperElement(window2);
                                            var backgroundVideoWrapper = createBackgroundVideoWrapperElement(window2);
                                            var videos = createVideos(2, window2, foregroundVideoWrapper, backgroundVideoWrapper, getSCAPv16InternalPortVideoFactory(scap));
                                            var baseVideoPlayer = new import_ProprietaryVideoPlayer2["default"](videos);
                                            var _createSCAPv15RotationManager = createSCAPv15RotationManager(window2, new WebosVideoPlayer(baseVideoPlayer, true), new import_ReconnectStreamPlayer["default"](new SCAPv15StreamPlayer_default(baseVideoPlayer)), settingsManager), screenRotationManager = _createSCAPv15RotationManager.screenRotationManager, video = _createSCAPv15RotationManager.video, stream = _createSCAPv15RotationManager.stream;
                                            var browser = createBrowser(window2, screenRotationManager);
                                            return new SCAPv17FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                                        },
                                        managementDriver: function(forbiddenCapabilities) {
                                            return new SCAPv16ManagementDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                                        }
                                    }
                                ];
                        }
                    });
                });
            };
            createSCAPv18 = function(window2, version, isCloudControl) {
                return __async(void 0, null, function() {
                    var scap, basicDriver, settingsManager, fileSystem, cacheDriver;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                scap = new SCAPv16Plugins(window2);
                                basicDriver = new SCAPv12BasicDriver(window2, scap);
                                settingsManager = new WebosSettingsManager(window2.localStorage);
                                return [
                                    4,
                                    createSCAPv15RealFileSystem(window2, scap, SCAPv18FrontDriver.supportsArchiveInfo)
                                ];
                            case 1:
                                fileSystem = _state.sent();
                                cacheDriver = createCacheDriver(window2);
                                return [
                                    2,
                                    {
                                        frontDriver: function() {
                                            var foregroundVideoWrapper = createForegroundVideoWrapperElement(window2);
                                            var backgroundVideoWrapper = createBackgroundVideoWrapperElement(window2);
                                            var videos = createVideos(4, window2, foregroundVideoWrapper, backgroundVideoWrapper, getSCAPv16InternalPortVideoFactory(scap));
                                            var baseVideoPlayer = new import_ProprietaryVideoPlayer2["default"](videos);
                                            var _createSCAPv15RotationManager = createSCAPv15RotationManager(window2, new WebosVideoPlayer(baseVideoPlayer, true), new import_ReconnectStreamPlayer["default"](new SCAPv15StreamPlayer_default(baseVideoPlayer)), settingsManager), screenRotationManager = _createSCAPv15RotationManager.screenRotationManager, video = _createSCAPv15RotationManager.video, stream = _createSCAPv15RotationManager.stream;
                                            var browser = createBrowser(window2, screenRotationManager);
                                            return new SCAPv18FrontDriver(window2, basicDriver, cacheDriver, version, scap, settingsManager, screenRotationManager, video, stream, browser, fileSystem);
                                        },
                                        managementDriver: function(forbiddenCapabilities) {
                                            var idcap = new IDCAP(window2);
                                            return new SCAPv18ManagementDriver(window2, version, basicDriver, cacheDriver, scap, idcap, settingsManager, fileSystem, forbiddenCapabilities, isCloudControl);
                                        }
                                    }
                                ];
                        }
                    });
                });
            };
            createCacheDriver = function(window2) {
                var DEFAULT_TOTAL_SIZE_BYTES = 5 * 1024 * 1024;
                var cache = new import_ProprietaryCache["default"](window2.localStorage, DEFAULT_TOTAL_SIZE_BYTES);
                return new SCAPv12CacheDriver(cache);
            };
        }
    });
    var initialConfig, INIT_SETUP_DONE_KEY;
    var init_initializeSetup = __esm({
        "src/InitSetup/initializeSetup.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPv16Plugins();
            initialConfig = {
                dpmMode: "off",
                pmMode: "networkReady",
                enableWakeOnLan: true,
                automaticStandbyMode: "off",
                tileInfo: false,
                failoverMode: "off",
                powerOnStatus: "power_on"
            };
            INIT_SETUP_DONE_KEY = "initializeSetupDone";
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/async-lock/lib/index.js
    var require_lib8 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/async-lock/lib/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var AsyncLock = function AsyncLock1(opts) {
                opts = opts || {};
                this.Promise = opts.Promise || Promise;
                this.queues = /* @__PURE__ */ Object.create(null);
                this.domainReentrant = opts.domainReentrant || false;
                if (this.domainReentrant) {
                    if (typeof process === "undefined" || typeof process.domain === "undefined") {
                        throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");
                    }
                    this.domains = /* @__PURE__ */ Object.create(null);
                }
                this.timeout = opts.timeout || AsyncLock.DEFAULT_TIMEOUT;
                this.maxOccupationTime = opts.maxOccupationTime || AsyncLock.DEFAULT_MAX_OCCUPATION_TIME;
                this.maxExecutionTime = opts.maxExecutionTime || AsyncLock.DEFAULT_MAX_EXECUTION_TIME;
                if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) {
                    this.maxPending = opts.maxPending;
                } else {
                    this.maxPending = AsyncLock.DEFAULT_MAX_PENDING;
                }
            };
            AsyncLock.DEFAULT_TIMEOUT = 0;
            AsyncLock.DEFAULT_MAX_OCCUPATION_TIME = 0;
            AsyncLock.DEFAULT_MAX_EXECUTION_TIME = 0;
            AsyncLock.DEFAULT_MAX_PENDING = 1e3;
            AsyncLock.prototype.acquire = function(key, fn, cb, opts) {
                if (Array.isArray(key)) {
                    return this._acquireBatch(key, fn, cb, opts);
                }
                if (typeof fn !== "function") {
                    throw new Error("You must pass a function to execute");
                }
                var deferredResolve = null;
                var deferredReject = null;
                var deferred2 = null;
                if (typeof cb !== "function") {
                    opts = cb;
                    cb = null;
                    deferred2 = new this.Promise(function(resolve, reject) {
                        deferredResolve = resolve;
                        deferredReject = reject;
                    });
                }
                opts = opts || {};
                var resolved = false;
                var timer = null;
                var occupationTimer = null;
                var executionTimer = null;
                var self2 = this;
                var done3 = function done3(locked3, err, ret) {
                    if (occupationTimer) {
                        clearTimeout(occupationTimer);
                        occupationTimer = null;
                    }
                    if (executionTimer) {
                        clearTimeout(executionTimer);
                        executionTimer = null;
                    }
                    if (locked3) {
                        if (!!self2.queues[key] && self2.queues[key].length === 0) {
                            delete self2.queues[key];
                        }
                        if (self2.domainReentrant) {
                            delete self2.domains[key];
                        }
                    }
                    if (!resolved) {
                        if (!deferred2) {
                            if (typeof cb === "function") {
                                cb(err, ret);
                            }
                        } else {
                            if (err) {
                                deferredReject(err);
                            } else {
                                deferredResolve(ret);
                            }
                        }
                        resolved = true;
                    }
                    if (locked3) {
                        if (!!self2.queues[key] && self2.queues[key].length > 0) {
                            self2.queues[key].shift()();
                        }
                    }
                };
                var exec2 = function exec2(locked3) {
                    if (resolved) {
                        return done3(locked3);
                    }
                    if (timer) {
                        clearTimeout(timer);
                        timer = null;
                    }
                    if (self2.domainReentrant && locked3) {
                        self2.domains[key] = process.domain;
                    }
                    var maxExecutionTime = opts.maxExecutionTime || self2.maxExecutionTime;
                    if (maxExecutionTime) {
                        executionTimer = setTimeout(function() {
                            if (!!self2.queues[key]) {
                                done3(locked3, new Error("Maximum execution time is exceeded " + key));
                            }
                        }, maxExecutionTime);
                    }
                    if (fn.length === 1) {
                        var called = false;
                        try {
                            fn(function(err, ret) {
                                if (!called) {
                                    called = true;
                                    done3(locked3, err, ret);
                                }
                            });
                        } catch (err) {
                            if (!called) {
                                called = true;
                                done3(locked3, err);
                            }
                        }
                    } else {
                        self2._promiseTry(function() {
                            return fn();
                        }).then(function(ret) {
                            done3(locked3, void 0, ret);
                        }, function(error) {
                            done3(locked3, error);
                        });
                    }
                };
                if (self2.domainReentrant && !!process.domain) {
                    exec2 = process.domain.bind(exec2);
                }
                if (!self2.queues[key]) {
                    self2.queues[key] = [];
                    exec2(true);
                } else if (self2.domainReentrant && !!process.domain && process.domain === self2.domains[key]) {
                    exec2(false);
                } else if (self2.queues[key].length >= self2.maxPending) {
                    done3(false, new Error("Too many pending tasks in queue " + key));
                } else {
                    var taskFn = function taskFn() {
                        exec2(true);
                    };
                    if (opts.skipQueue) {
                        self2.queues[key].unshift(taskFn);
                    } else {
                        self2.queues[key].push(taskFn);
                    }
                    var timeout = opts.timeout || self2.timeout;
                    if (timeout) {
                        timer = setTimeout(function() {
                            timer = null;
                            done3(false, new Error("async-lock timed out in queue " + key));
                        }, timeout);
                    }
                }
                var maxOccupationTime = opts.maxOccupationTime || self2.maxOccupationTime;
                if (maxOccupationTime) {
                    occupationTimer = setTimeout(function() {
                        if (!!self2.queues[key]) {
                            done3(false, new Error("Maximum occupation time is exceeded in queue " + key));
                        }
                    }, maxOccupationTime);
                }
                if (deferred2) {
                    return deferred2;
                }
            };
            AsyncLock.prototype._acquireBatch = function(keys, fn, cb, opts) {
                if (typeof cb !== "function") {
                    opts = cb;
                    cb = null;
                }
                var self2 = this;
                var getFn = function getFn(key, fn2) {
                    return function(cb2) {
                        self2.acquire(key, fn2, cb2, opts);
                    };
                };
                var fnx = keys.reduceRight(function(prev, key) {
                    return getFn(key, prev);
                }, fn);
                if (typeof cb === "function") {
                    fnx(cb);
                } else {
                    return new this.Promise(function(resolve, reject) {
                        if (fnx.length === 1) {
                            fnx(function(err, ret) {
                                if (err) {
                                    reject(err);
                                } else {
                                    resolve(ret);
                                }
                            });
                        } else {
                            resolve(fnx());
                        }
                    });
                }
            };
            AsyncLock.prototype.isBusy = function(key) {
                if (!key) {
                    return Object.keys(this.queues).length > 0;
                } else {
                    return !!this.queues[key];
                }
            };
            AsyncLock.prototype._promiseTry = function(fn) {
                try {
                    return this.Promise.resolve(fn());
                } catch (e) {
                    return this.Promise.reject(e);
                }
            };
            module.exports = AsyncLock;
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/async-lock/index.js
    var require_async_lock2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/node_modules/async-lock/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_lib8();
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Lock/lockedDecorator.js
    var require_lockedDecorator2 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Lock/lockedDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.locked = locked3;
            var async_lock_1 = __importDefault(require_async_lock2());
            var util = __importStar(require_util3());
            var globalAsyncLock = new async_lock_1["default"]();
            var asyncLocksMap = /* @__PURE__ */ new WeakMap();
            function acquireAsyncLock(options, instance) {
                if ((options === null || options === void 0 ? void 0 : options.scope) === void 0 || (options === null || options === void 0 ? void 0 : options.scope) === "global") {
                    return globalAsyncLock;
                } else if ((options === null || options === void 0 ? void 0 : options.scope) === "instance") {
                    if (asyncLocksMap.has(instance)) {
                        var lock = asyncLocksMap.get(instance);
                        lock.countRunning++;
                        return lock.asyncLock;
                    } else {
                        var asyncLock = new async_lock_1["default"]();
                        asyncLocksMap.set(instance, {
                            countRunning: 1,
                            asyncLock: asyncLock
                        });
                        return asyncLock;
                    }
                }
                throw new Error("Invalid option scope=".concat(options === null || options === void 0 ? void 0 : options.scope));
            }
            function releaseAsyncLock(options, instance) {
                if ((options === null || options === void 0 ? void 0 : options.scope) === "instance") {
                    var lock = asyncLocksMap.get(instance);
                    lock.countRunning--;
                    if (lock.countRunning === 0) {
                        asyncLocksMap["delete"](instance);
                    }
                }
            }
            function locked3(keyInitiator, options) {
                return function(_target, _propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return __awaiter(this, void 0, void 0, function() {
                            var _this, _keyInitiator, key, currentAsyncLock;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        _this = this;
                                        key = typeof keyInitiator === "function" ? (_keyInitiator = keyInitiator).call.apply(_keyInitiator, [
                                            this
                                        ].concat(_to_consumable_array(args))) : keyInitiator;
                                        currentAsyncLock = acquireAsyncLock(options, this);
                                        _state.label = 1;
                                    case 1:
                                        _state.trys.push([
                                            1,
                                            ,
                                            3,
                                            4
                                        ]);
                                        return [
                                            4,
                                            currentAsyncLock.acquire(key, function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    var returnValuePromise;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                returnValuePromise = originalMethod.apply(this, args);
                                                                if (!(returnValuePromise instanceof Promise)) {
                                                                    throw new Error("Synchronous methods must return Promise instance. But ".concat(util.inspect(returnValuePromise), " given."));
                                                                }
                                                                return [
                                                                    4,
                                                                    returnValuePromise
                                                                ];
                                                            case 1:
                                                                return [
                                                                    2,
                                                                    _state.sent()
                                                                ];
                                                        }
                                                    });
                                                });
                                            }, options)
                                        ];
                                    case 2:
                                        return [
                                            2,
                                            _state.sent()
                                        ];
                                    case 3:
                                        releaseAsyncLock(options, this);
                                        return [
                                            7
                                        ];
                                    case 4:
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    };
                };
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Synchronization/PolymorphicSynchronizer/PolymorphicSynchronizer.js
    var require_PolymorphicSynchronizer = __commonJS({
        "node_modules/@signageos/front-display/es6/Synchronization/PolymorphicSynchronizer/PolymorphicSynchronizer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.PolymorphicSynchronizer = void 0;
            var events_1 = require_events();
            var debug_1 = __importDefault(require_browser2());
            var debugDecorator_1 = require_debugDecorator();
            var lockedDecorator_1 = require_lockedDecorator2();
            var ISynchronizer_1 = require_ISynchronizer();
            var DEBUG_NAMESPACE3 = "@signageos/front-display:Synchronization:PolymorphicSynchronizer";
            var logDebug = (0, debug_1["default"])(DEBUG_NAMESPACE3);
            var PolymorphicSynchronizer = /*#__PURE__*/ function() {
                function PolymorphicSynchronizer(synchronizers) {
                    _class_call_check(this, PolymorphicSynchronizer);
                    this.synchronizers = synchronizers;
                    this.emitter = new events_1.EventEmitter();
                    this.currentType = null;
                    if (this.synchronizers.size === 0) {
                        throw new Error("No synchronizers provided");
                    }
                    this.onGroupStatus = this.onGroupStatus.bind(this);
                    this.onGroupLeft = this.onGroupLeft.bind(this);
                    this.onBroadcastedValue = this.onBroadcastedValue.bind(this);
                    this.onClosed = this.onClosed.bind(this);
                }
                _create_class(PolymorphicSynchronizer, [
                    {
                        /**
         * Selects the synchronizer implementation to use and makes it connect to the sync network
         * @param serverUri The URI of the sync server to connect to. If not specified, the default sync server will be used.
         *                  Only applicable to the socket synchronizer.
         * @param typeOrConfig The type of the synchronizer to use, or config when called via ISynchronizer interface.
         * @param config Optional configuration for the synchronizer. Only applicable to the socket synchronizer.
         */ key: "connect",
                        value: function connect(serverUri, typeOrConfig, config) {
                            return __awaiter(this, void 0, void 0, function() {
                                var type, synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (typeof typeOrConfig === "string") {
                                                type = typeOrConfig;
                                            } else if (typeOrConfig !== void 0) {
                                                config = typeOrConfig;
                                            }
                                            if (this.currentType) {
                                                throw new Error("Already using ".concat(type, " synchronizer"));
                                            }
                                            type = type !== null && type !== void 0 ? type : this.getDefaultSynchronizerType();
                                            synchronizer = this.getSynchronizerByType(type);
                                            return [
                                                4,
                                                synchronizer.connect(serverUri, config)
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.listenToSynchronizerEvents(synchronizer);
                                            this.currentType = type;
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "close",
                        value: function close() {
                            return __awaiter(this, void 0, void 0, function() {
                                var promises, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            promises = [];
                                            _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                            try {
                                                for(_iterator = this.synchronizers.values()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                                    synchronizer = _step.value;
                                                    promises.push(this.closeSynchronizerIfConnected(synchronizer));
                                                }
                                            } catch (err) {
                                                _didIteratorError = true;
                                                _iteratorError = err;
                                            } finally{
                                                try {
                                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                        _iterator["return"]();
                                                    }
                                                } finally{
                                                    if (_didIteratorError) {
                                                        throw _iteratorError;
                                                    }
                                                }
                                            }
                                            return [
                                                4,
                                                Promise.all(promises)
                                            ];
                                        case 1:
                                            _state.sent();
                                            this.currentType = null;
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    if (!this.currentType) {
                                        return [
                                            2,
                                            false
                                        ];
                                    }
                                    synchronizer = this.getSynchronizerByType(this.currentType);
                                    return [
                                        2,
                                        synchronizer.isConnected()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "joinGroup",
                        value: function joinGroup(args) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            synchronizer = this.getCurrentSynchronizer();
                                            return [
                                                4,
                                                synchronizer.joinGroup(args)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "leaveGroup",
                        value: function leaveGroup(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            synchronizer = this.getCurrentSynchronizer();
                                            return [
                                                4,
                                                synchronizer.leaveGroup(groupName)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDeviceIdentification",
                        value: function getDeviceIdentification(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            synchronizer = this.getCurrentSynchronizer();
                                            return [
                                                4,
                                                synchronizer.getDeviceIdentification(groupName)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "wait",
                        value: function wait(args) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    synchronizer = this.getCurrentSynchronizer();
                                    return [
                                        2,
                                        synchronizer.wait(args)
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "cancelWait",
                        value: function cancelWait(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            synchronizer = this.getCurrentSynchronizer();
                                            return [
                                                4,
                                                synchronizer.cancelWait(groupName)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "broadcastValue",
                        value: function broadcastValue(args) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            synchronizer = this.getCurrentSynchronizer();
                                            return [
                                                4,
                                                synchronizer.broadcastValue(args)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isMaster",
                        value: function isMaster(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var synchronizer;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            synchronizer = this.getCurrentSynchronizer();
                                            return [
                                                4,
                                                synchronizer.isMaster(groupName)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "addListener",
                        value: function addListener(event, listener) {
                            this.emitter.addListener(event, listener);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(event, listener) {
                            this.emitter.removeListener(event, listener);
                        }
                    },
                    {
                        key: "listenToSynchronizerEvents",
                        value: function listenToSynchronizerEvents(synchronizer) {
                            synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.GroupStatus, this.onGroupStatus);
                            synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.GroupLeft, this.onGroupLeft);
                            synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.BroadcastedValue, this.onBroadcastedValue);
                            synchronizer.addListener(ISynchronizer_1.SynchronizerEvent.Closed, this.onClosed);
                        }
                    },
                    {
                        key: "stopListeningToSynchronizerEvents",
                        value: function stopListeningToSynchronizerEvents(synchronizer) {
                            synchronizer.removeListener(ISynchronizer_1.SynchronizerEvent.GroupStatus, this.onGroupStatus);
                            synchronizer.removeListener(ISynchronizer_1.SynchronizerEvent.GroupLeft, this.onGroupLeft);
                            synchronizer.removeListener(ISynchronizer_1.SynchronizerEvent.BroadcastedValue, this.onBroadcastedValue);
                            synchronizer.removeListener(ISynchronizer_1.SynchronizerEvent.Closed, this.onClosed);
                        }
                    },
                    {
                        key: "onGroupStatus",
                        value: function onGroupStatus(deviceStatus) {
                            logDebug("got group status event", deviceStatus);
                            this.emitter.emit(ISynchronizer_1.SynchronizerEvent.GroupStatus, deviceStatus);
                        }
                    },
                    {
                        key: "onGroupLeft",
                        value: function onGroupLeft(groupName) {
                            logDebug("got group left event", groupName);
                            this.emitter.emit(ISynchronizer_1.SynchronizerEvent.GroupLeft, groupName);
                        }
                    },
                    {
                        key: "onBroadcastedValue",
                        value: function onBroadcastedValue(broadcastedValue) {
                            logDebug("got broadcasted value event", broadcastedValue);
                            this.emitter.emit(ISynchronizer_1.SynchronizerEvent.BroadcastedValue, broadcastedValue);
                        }
                    },
                    {
                        key: "onClosed",
                        value: function onClosed(error) {
                            return __awaiter(this, void 0, void 0, function() {
                                var e;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            logDebug("got closed event", error);
                                            this.emitter.emit(ISynchronizer_1.SynchronizerEvent.Closed, error);
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                3,
                                                ,
                                                4
                                            ]);
                                            return [
                                                4,
                                                this.close()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            e = _state.sent();
                                            console.error("Failed to close synchronizer", e);
                                            return [
                                                3,
                                                4
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDefaultSynchronizerType",
                        value: function getDefaultSynchronizerType() {
                            return this.synchronizers.keys().next().value;
                        }
                    },
                    {
                        key: "getSynchronizerByType",
                        value: function getSynchronizerByType(type) {
                            var synchronizer = this.synchronizers.get(type);
                            if (!synchronizer) {
                                throw new Error("Unknown synchronizer type: ".concat(type));
                            }
                            return synchronizer;
                        }
                    },
                    {
                        key: "getCurrentSynchronizer",
                        value: function getCurrentSynchronizer() {
                            if (!this.currentType) {
                                throw new Error("Not connected");
                            }
                            return this.getSynchronizerByType(this.currentType);
                        }
                    },
                    {
                        key: "closeSynchronizerIfConnected",
                        value: function closeSynchronizerIfConnected(synchronizer) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                ,
                                                4,
                                                5
                                            ]);
                                            return [
                                                4,
                                                synchronizer.isConnected()
                                            ];
                                        case 1:
                                            if (!_state.sent()) return [
                                                3,
                                                3
                                            ];
                                            return [
                                                4,
                                                synchronizer.close()
                                            ];
                                        case 2:
                                            _state.sent();
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            this.stopListeningToSynchronizerEvents(synchronizer);
                                            return [
                                                7
                                            ];
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    }
                ]);
                return PolymorphicSynchronizer;
            }();
            exports.PolymorphicSynchronizer = PolymorphicSynchronizer;
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                (0, lockedDecorator_1.locked)("sync", {
                    scope: "instance"
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object,
                    Object,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "connect", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                (0, lockedDecorator_1.locked)("sync", {
                    scope: "instance"
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "close", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "isConnected", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                (0, lockedDecorator_1.locked)("sync", {
                    scope: "instance"
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "joinGroup", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                (0, lockedDecorator_1.locked)("sync", {
                    scope: "instance"
                }),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "leaveGroup", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "wait", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "cancelWait", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "broadcastValue", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], PolymorphicSynchronizer.prototype, "isMaster", null);
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Hash/generator.js
    var require_generator4 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Hash/generator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.generateUniqueHash = generateUniqueHash;
            exports.generateSalt = generateSalt;
            var crypto_1 = require_crypto_browserify();
            function generateUniqueHash() {
                var length = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 50;
                var hash = (0, crypto_1.createHash)("sha256");
                hash.update("" + /* @__PURE__ */ new Date().valueOf() + Math.random());
                return hash.digest("hex").substring(0, length);
            }
            function generateSalt(length) {
                return (0, crypto_1.randomBytes)(length).toString("hex").substring(0, length);
            }
        }
    });
    // node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Debug/debugDecorator.js
    var require_debugDecorator3 = __commonJS({
        "node_modules/@signageos/front-display/node_modules/@signageos/lib/es6/Debug/debugDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createDebugMethod = void 0;
            exports.debug = debug4;
            exports.getDebugConfig = getDebugConfig;
            exports.setDebugConfig = setDebugConfig;
            var debug_1 = __importDefault(require_browser2());
            var generator_1 = require_generator4();
            var config = {
                serialize: false,
                logDuration: false
            };
            function getDurationLog(start) {
                if (config.logDuration) {
                    var duration = /* @__PURE__ */ new Date().getTime() - start.getTime();
                    return " (".concat(duration, "ms)");
                }
            }
            var createDebugMethod = function(localDebug) {
                return function(originalMethod, that, label, args) {
                    var invocationUid = (0, generator_1.generateUniqueHash)(10);
                    var start = /* @__PURE__ */ new Date();
                    localDebug.apply(void 0, [
                        "invoking ".concat(label, " <").concat(invocationUid, ">")
                    ].concat(_to_consumable_array(serializeArgsIfEnabled(args))));
                    try {
                        var returnValue = originalMethod.apply(that, args);
                        if (returnValue instanceof Promise) {
                            return returnValue.then(function(result17) {
                                localDebug("success ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), result17);
                                return result17;
                            })["catch"](function(error) {
                                localDebug("fail ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), error);
                                throw error;
                            });
                        } else {
                            localDebug("success ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), returnValue);
                            return returnValue;
                        }
                    } catch (error) {
                        localDebug("fail ".concat(label, " <").concat(invocationUid, ">").concat(getDurationLog(start)), error);
                        throw error;
                    }
                };
            };
            exports.createDebugMethod = createDebugMethod;
            function serializeArgsIfEnabled(args) {
                return args.map(function(arg) {
                    if ((typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object" && arg !== null && config.serialize) {
                        return JSON.stringify(arg);
                    } else {
                        return arg;
                    }
                });
            }
            function debug4(namespace) {
                var debugFactory = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : debug_1["default"];
                var debugMethod = (0, exports.createDebugMethod)(debugFactory(namespace));
                return function(_target, propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return debugMethod(originalMethod, this, "".concat(this.constructor.name, ":").concat(propertyKey), args);
                    };
                };
            }
            function getDebugConfig() {
                return config;
            }
            function setDebugConfig(newConfig) {
                config = Object.assign(Object.assign({}, config), newConfig);
            }
        }
    });
    // node_modules/@signageos/front-display/es6/Synchronization/SocketSynchronizer/SocketSynchronizer.js
    var require_SocketSynchronizer = __commonJS({
        "node_modules/@signageos/front-display/es6/Synchronization/SocketSynchronizer/SocketSynchronizer.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __decorate = exports && exports.__decorate || function(decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };
            var __metadata = exports && exports.__metadata || function(k, v) {
                if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            var events_1 = require_events();
            var lockedDecorator_1 = require_lockedDecorator2();
            var debugDecorator_1 = require_debugDecorator3();
            var ISynchronizer_1 = require_ISynchronizer();
            var debug_1 = __importDefault(require_browser2());
            var DEBUG_NAMESPACE3 = "@signageos/front-display:Front:Applet:Sync:SocketSynchronizer";
            var logDebug = (0, debug_1["default"])(DEBUG_NAMESPACE3);
            var logDebugSocket = (0, debug_1["default"])(DEBUG_NAMESPACE3 + ":Socket");
            var SocketSynchronizer = /*#__PURE__*/ function() {
                function SocketSynchronizer(getNativeDriver, createSocket, defaultServerUri) {
                    _class_call_check(this, SocketSynchronizer);
                    this.getNativeDriver = getNativeDriver;
                    this.createSocket = createSocket;
                    this.defaultServerUri = defaultServerUri;
                    this.connected = false;
                    this.groups = {};
                    this.emitter = new events_1.EventEmitter();
                }
                _create_class(SocketSynchronizer, [
                    {
                        key: "connect",
                        value: function connect(serverUri, typeOrConfig, config) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.socket) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.close()
                                            ];
                                        case 1:
                                            _state.sent();
                                            _state.label = 2;
                                        case 2:
                                            this.syncConfig = typeof typeOrConfig === "string" ? config : typeOrConfig;
                                            this.initSocket(serverUri || this.defaultServerUri);
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "close",
                        value: function close() {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    if (!this.socket) {
                                        throw new Error("Can't close when not connected");
                                    }
                                    this.socket.close();
                                    this.socket = void 0;
                                    this.connected = false;
                                    Object.keys(this.groups).forEach(function(groupName) {
                                        _this.emitter.emit(ISynchronizer_1.SynchronizerEvent.GroupLeft, groupName);
                                    });
                                    this.groups = {};
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "joinGroup",
                        value: function joinGroup(param) {
                            var groupName = param.groupName, deviceIdentification = param.deviceIdentification;
                            return __awaiter(this, void 0, void 0, function() {
                                var deviceId;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.socket) {
                                                throw new Error("Not connected. Call connect() first.");
                                            }
                                            deviceId = deviceIdentification !== void 0 ? deviceIdentification : Math.random().toString(32);
                                            if (!this.connected) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.joinGroupOnline(groupName, deviceId)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            this.joinGroupOffline(groupName, deviceId);
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "leaveGroup",
                        value: function leaveGroup(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.socket) {
                                                throw new Error("Not connected. Call connect() first.");
                                            }
                                            if (!this.groups[groupName]) {
                                                throw new Error("Group ".concat(groupName, " isn't joined"));
                                            }
                                            if (!this.connected) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.leaveGroupOnline(groupName)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                3,
                                                3
                                            ];
                                        case 2:
                                            this.leaveGroupOffline(groupName);
                                            _state.label = 3;
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDeviceIdentification",
                        value: function getDeviceIdentification(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    if (this.groups[groupName]) {
                                        return [
                                            2,
                                            this.groups[groupName].deviceIdentification
                                        ];
                                    } else {
                                        return [
                                            2,
                                            void 0
                                        ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    return [
                                        2,
                                        !!this.socket
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "wait",
                        value: function wait(param) {
                            var groupName = param.groupName, data = param.data, timeoutMs = param.timeoutMs;
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            if (!this.socket) {
                                                throw new Error("Not connected. Call connect() first.");
                                            }
                                            if (typeof timeoutMs !== "undefined" && timeoutMs <= 0) {
                                                throw new Error("Timeout must be greater than 0");
                                            }
                                            if (!this.connected) return [
                                                3,
                                                2
                                            ];
                                            return [
                                                4,
                                                this.callOnlineWait(groupName, data, timeoutMs)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                        case 2:
                                            return [
                                                2,
                                                this.callOfflineWait(groupName, data)
                                            ];
                                        case 3:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "cancelWait",
                        value: function cancelWait(_groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    throw new Error("Not implemented yet");
                                });
                            });
                        }
                    },
                    {
                        key: "broadcastValue",
                        value: function broadcastValue(param) {
                            var groupName = param.groupName, key = param.key, value = param.value;
                            return __awaiter(this, void 0, void 0, function() {
                                return _ts_generator(this, function(_state) {
                                    if (!this.socket) {
                                        throw new Error("Not connected. Call connect() first.");
                                    }
                                    if (!this.groups[groupName]) {
                                        throw new Error("Group " + groupName + " wasn't initialized");
                                    }
                                    this.socket.emit("request_set_value", {
                                        groupName: groupName,
                                        key: key,
                                        value: value
                                    });
                                    if (!this.connected) {
                                        this.emitValue(groupName, key, value);
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isMaster",
                        value: function isMaster(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var group;
                                return _ts_generator(this, function(_state) {
                                    group = this.groups[groupName];
                                    if (group && group.lastStatus) {
                                        return [
                                            2,
                                            group.lastStatus.isMaster
                                        ];
                                    } else {
                                        return [
                                            2,
                                            true
                                        ];
                                    }
                                    return [
                                        2
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "addListener",
                        value: function addListener(event, listener) {
                            this.emitter.addListener(event, listener);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(event, listener) {
                            this.emitter.removeListener(event, listener);
                        }
                    },
                    {
                        key: "initSocket",
                        value: function initSocket(serverUri) {
                            var _this = this;
                            this.socket = this.createSocket(serverUri);
                            this.debugSocket(this.socket, serverUri);
                            this.socket.on("connect", function() {
                                return __awaiter(_this, void 0, void 0, function() {
                                    var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, groupName, error, err;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                if (this.syncConfig) {
                                                    this.socket.emit("update_sync_config", this.syncConfig);
                                                }
                                                _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    8,
                                                    9,
                                                    10
                                                ]);
                                                _iterator = Object.keys(this.groups)[Symbol.iterator]();
                                                _state.label = 2;
                                            case 2:
                                                if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
                                                    3,
                                                    7
                                                ];
                                                groupName = _step.value;
                                                if (!(this.groups[groupName].isOnline === false)) return [
                                                    3,
                                                    6
                                                ];
                                                _state.label = 3;
                                            case 3:
                                                _state.trys.push([
                                                    3,
                                                    5,
                                                    ,
                                                    6
                                                ]);
                                                return [
                                                    4,
                                                    this.joinGroupOnline(groupName, this.groups[groupName].deviceIdentification)
                                                ];
                                            case 4:
                                                _state.sent();
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 5:
                                                error = _state.sent();
                                                console.error("flush offline initialized group to the server", groupName, error);
                                                return [
                                                    3,
                                                    6
                                                ];
                                            case 6:
                                                _iteratorNormalCompletion = true;
                                                return [
                                                    3,
                                                    2
                                                ];
                                            case 7:
                                                return [
                                                    3,
                                                    10
                                                ];
                                            case 8:
                                                err = _state.sent();
                                                _didIteratorError = true;
                                                _iteratorError = err;
                                                return [
                                                    3,
                                                    10
                                                ];
                                            case 9:
                                                try {
                                                    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                                        _iterator["return"]();
                                                    }
                                                } finally{
                                                    if (_didIteratorError) {
                                                        throw _iteratorError;
                                                    }
                                                }
                                                return [
                                                    7
                                                ];
                                            case 10:
                                                this.connected = true;
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            });
                            this.socket.on("disconnect", function() {
                                _this.connected = false;
                                var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
                                try {
                                    for(var _iterator = Object.keys(_this.groups)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                                        var groupName = _step.value;
                                        _this.groups[groupName].isOnline = false;
                                        _this.groups[groupName].lastStatus = void 0;
                                    }
                                } catch (err) {
                                    _didIteratorError = true;
                                    _iteratorError = err;
                                } finally{
                                    try {
                                        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                                            _iterator["return"]();
                                        }
                                    } finally{
                                        if (_didIteratorError) {
                                            throw _iteratorError;
                                        }
                                    }
                                }
                            });
                            this.socket.on("set_value", function(groupName, key, value) {
                                if (_this.groups[groupName]) {
                                    var broadcastedValue = {
                                        groupName: groupName,
                                        key: key,
                                        value: value
                                    };
                                    _this.emitter.emit(ISynchronizer_1.SynchronizerEvent.BroadcastedValue, broadcastedValue);
                                }
                            });
                            this.socket.on("device_status", function(connectedPeers, groupName) {
                                if (_this.groups[groupName]) {
                                    var master = _this.pickMaster(connectedPeers);
                                    var isMaster = master === _this.groups[groupName].deviceIdentification;
                                    var groupStatus = {
                                        groupName: groupName,
                                        connectedPeers: connectedPeers,
                                        isMaster: isMaster
                                    };
                                    _this.groups[groupName].lastStatus = groupStatus;
                                    _this.emitter.emit(ISynchronizer_1.SynchronizerEvent.GroupStatus, groupStatus);
                                }
                            });
                        }
                    },
                    {
                        key: "debugSocket",
                        value: function debugSocket(socket, serverUri) {
                            logDebugSocket("open socket", {
                                serverUri: serverUri
                            });
                            socket.on("connect", function() {
                                return logDebugSocket("connect");
                            });
                            socket.on("connect_error", function(error) {
                                return logDebugSocket("connect_error", error);
                            });
                            socket.on("connect_timeout", function() {
                                return logDebugSocket("connect_timeout");
                            });
                            socket.on("error", function(error) {
                                return logDebugSocket("error", error);
                            });
                            socket.on("disconnect", function() {
                                return logDebugSocket("disconnect");
                            });
                            socket.on("reconnect_attempt", function() {
                                return logDebugSocket("reconnect_attempt");
                            });
                            socket.on("reconnecting", function() {
                                return logDebugSocket("reconnecting");
                            });
                            socket.on("reconnect_error", function(error) {
                                return logDebugSocket("reconnect_error", error);
                            });
                            socket.on("reconnect_failed", function() {
                                return logDebugSocket("reconnect_failed");
                            });
                            socket.on("ping", function() {
                                return logDebugSocket("ping");
                            });
                            socket.on("pong", function() {
                                return logDebugSocket("pong");
                            });
                        }
                    },
                    {
                        key: "joinGroupOnline",
                        value: function joinGroupOnline(groupName, deviceIdentification) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this, nativeDriver, deviceUid;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            nativeDriver = this.getNativeDriver();
                                            return [
                                                4,
                                                nativeDriver.getDeviceUid()
                                            ];
                                        case 1:
                                            deviceUid = _state.sent();
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.socket.emit("join_group", {
                                                        deviceUid: deviceUid,
                                                        groupName: groupName,
                                                        deviceIdentification: deviceIdentification
                                                    }, function(error) {
                                                        if (error) {
                                                            reject(error);
                                                        } else {
                                                            resolve();
                                                        }
                                                    });
                                                })
                                            ];
                                        case 2:
                                            _state.sent();
                                            this.groups[groupName] = {
                                                isOnline: true,
                                                deviceIdentification: deviceIdentification
                                            };
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "joinGroupOffline",
                        value: function joinGroupOffline(groupName, deviceIdentification) {
                            this.groups[groupName] = {
                                isOnline: false,
                                deviceIdentification: deviceIdentification
                            };
                        }
                    },
                    {
                        key: "leaveGroupOnline",
                        value: function leaveGroupOnline(groupName) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.socket.emit("leave_group", {
                                                        groupName: groupName
                                                    }, function(error) {
                                                        if (error) {
                                                            reject(error);
                                                        } else {
                                                            resolve();
                                                        }
                                                    });
                                                })
                                            ];
                                        case 1:
                                            _state.sent();
                                            delete this.groups[groupName];
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "leaveGroupOffline",
                        value: function leaveGroupOffline(groupName) {
                            delete this.groups[groupName];
                        }
                    },
                    {
                        key: "callOnlineWait",
                        value: function callOnlineWait(groupName, data, timeout) {
                            return __awaiter(this, void 0, void 0, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    var syncConfirmedListener;
                                                    var disconnectListener;
                                                    var timeoutHandler;
                                                    syncConfirmedListener = function(confirmedGroupName, confirmData) {
                                                        if (confirmedGroupName === groupName) {
                                                            if (typeof timeoutHandler !== "undefined") {
                                                                clearTimeout(timeoutHandler);
                                                            }
                                                            _this.socket.off("disconnect", disconnectListener);
                                                            _this.socket.off("sync_confirmed", syncConfirmedListener);
                                                            resolve(confirmData);
                                                        }
                                                    };
                                                    disconnectListener = function() {
                                                        if (typeof timeoutHandler !== "undefined") {
                                                            clearTimeout(timeoutHandler);
                                                        }
                                                        _this.socket.off("disconnect", disconnectListener);
                                                        _this.socket.off("sync_confirmed", syncConfirmedListener);
                                                        try {
                                                            var confirmData = _this.callOfflineWait(groupName, data);
                                                            resolve(confirmData);
                                                        } catch (error) {
                                                            reject(error);
                                                        }
                                                    };
                                                    _this.socket.on("sync_confirmed", syncConfirmedListener);
                                                    _this.socket.on("disconnect", disconnectListener);
                                                    _this.socket.emit("sync_request", {
                                                        groupName: groupName,
                                                        data: data
                                                    }, function(error) {
                                                        if (error) {
                                                            _this.socket.off("disconnect", disconnectListener);
                                                            _this.socket.off("sync_confirmed", syncConfirmedListener);
                                                            reject(error);
                                                        }
                                                    });
                                                    if (typeof timeout !== "undefined") {
                                                        timeoutHandler = setTimeout(function() {
                                                            syncConfirmedListener(groupName, data);
                                                            _this.socket.emit("sync_request_cancel", {
                                                                groupName: groupName
                                                            });
                                                        }, timeout);
                                                    }
                                                })
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "callOfflineWait",
                        value: function callOfflineWait(groupName, data) {
                            if (typeof this.groups[groupName] === "undefined") {
                                throw new Error("Group " + groupName + "wasn't initialized");
                            } else {
                                logDebug("offline wait confirmed for group " + groupName);
                                return data;
                            }
                        }
                    },
                    {
                        key: "emitValue",
                        value: function emitValue(groupName, key, value) {
                            if (!this.groups[groupName]) {
                                throw new Error("Group " + groupName + "wasn't initialized");
                            }
                            this.emitter.emit(ISynchronizer_1.SynchronizerEvent.BroadcastedValue, {
                                groupName: groupName,
                                key: key,
                                value: value
                            });
                        }
                    },
                    {
                        /**
         * Picks a master from a list of peers in a deterministic way
         */ key: "pickMaster",
                        value: function pickMaster(peers) {
                            return _to_consumable_array(peers).sort()[0];
                        }
                    }
                ]);
                return SocketSynchronizer;
            }();
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String,
                    Object,
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "connect", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", []),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "close", null);
            __decorate([
                (0, lockedDecorator_1.locked)("group", {
                    scope: "instance"
                }),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "joinGroup", null);
            __decorate([
                (0, lockedDecorator_1.locked)("group", {
                    scope: "instance"
                }),
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "leaveGroup", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "wait", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    String
                ]),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "cancelWait", null);
            __decorate([
                (0, debugDecorator_1.debug)(DEBUG_NAMESPACE3),
                __metadata("design:type", Function),
                __metadata("design:paramtypes", [
                    Object
                ]),
                __metadata("design:returntype", Promise)
            ], SocketSynchronizer.prototype, "broadcastValue", null);
            exports["default"] = SocketSynchronizer;
        }
    });
    // node_modules/@signageos/front-display/es6/Synchronization/SocketSynchronizer/socketSynchronizerFactory.js
    var require_socketSynchronizerFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/Synchronization/SocketSynchronizer/socketSynchronizerFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSocketSynchronizer = void 0;
            var socket_io_client_1 = __importDefault(require_lib7());
            var SocketSynchronizer_1 = __importDefault(require_SocketSynchronizer());
            function createSocketSynchronizer(serverUri, getNativeDriver) {
                return new SocketSynchronizer_1["default"](getNativeDriver, function(ioServerUri) {
                    return (0, socket_io_client_1["default"])(ioServerUri);
                }, serverUri);
            }
            exports.createSocketSynchronizer = createSocketSynchronizer;
        }
    });
    // node_modules/@signageos/front-display/es6/Synchronization/PolymorphicSynchronizer/polymorphicSynchronizerFactory.js
    var require_polymorphicSynchronizerFactory = __commonJS({
        "node_modules/@signageos/front-display/es6/Synchronization/PolymorphicSynchronizer/polymorphicSynchronizerFactory.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.createSocketAndP2PSynchronizer = void 0;
            var IPolymorphicSynchronizer_1 = require_IPolymorphicSynchronizer();
            var PolymorphicSynchronizer_1 = require_PolymorphicSynchronizer();
            var socketSynchronizerFactory_1 = require_socketSynchronizerFactory();
            function createSocketAndP2PSynchronizer2(socketSynchronizerServerUrl, getNativeDriver, p2pSynchronizer) {
                var socketSynchronizer = (0, socketSynchronizerFactory_1.createSocketSynchronizer)(socketSynchronizerServerUrl, getNativeDriver);
                var synchronizerMap = /* @__PURE__ */ new Map();
                synchronizerMap.set(IPolymorphicSynchronizer_1.SynchronizerType.SyncServer, socketSynchronizer);
                synchronizerMap.set(IPolymorphicSynchronizer_1.SynchronizerType.P2PLocal, p2pSynchronizer);
                return new PolymorphicSynchronizer_1.PolymorphicSynchronizer(synchronizerMap);
            }
            exports.createSocketAndP2PSynchronizer = createSocketAndP2PSynchronizer2;
        }
    });
    // node_modules/@signageos/lib/node_modules/async-lock/lib/index.js
    var require_lib9 = __commonJS({
        "node_modules/@signageos/lib/node_modules/async-lock/lib/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var AsyncLock = function AsyncLock1(opts) {
                opts = opts || {};
                this.Promise = opts.Promise || Promise;
                this.queues = /* @__PURE__ */ Object.create(null);
                this.domainReentrant = opts.domainReentrant || false;
                if (this.domainReentrant) {
                    if (typeof process === "undefined" || typeof process.domain === "undefined") {
                        throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");
                    }
                    this.domains = /* @__PURE__ */ Object.create(null);
                }
                this.timeout = opts.timeout || AsyncLock.DEFAULT_TIMEOUT;
                this.maxOccupationTime = opts.maxOccupationTime || AsyncLock.DEFAULT_MAX_OCCUPATION_TIME;
                this.maxExecutionTime = opts.maxExecutionTime || AsyncLock.DEFAULT_MAX_EXECUTION_TIME;
                if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) {
                    this.maxPending = opts.maxPending;
                } else {
                    this.maxPending = AsyncLock.DEFAULT_MAX_PENDING;
                }
            };
            AsyncLock.DEFAULT_TIMEOUT = 0;
            AsyncLock.DEFAULT_MAX_OCCUPATION_TIME = 0;
            AsyncLock.DEFAULT_MAX_EXECUTION_TIME = 0;
            AsyncLock.DEFAULT_MAX_PENDING = 1e3;
            AsyncLock.prototype.acquire = function(key, fn, cb, opts) {
                if (Array.isArray(key)) {
                    return this._acquireBatch(key, fn, cb, opts);
                }
                if (typeof fn !== "function") {
                    throw new Error("You must pass a function to execute");
                }
                var deferredResolve = null;
                var deferredReject = null;
                var deferred2 = null;
                if (typeof cb !== "function") {
                    opts = cb;
                    cb = null;
                    deferred2 = new this.Promise(function(resolve, reject) {
                        deferredResolve = resolve;
                        deferredReject = reject;
                    });
                }
                opts = opts || {};
                var resolved = false;
                var timer = null;
                var occupationTimer = null;
                var executionTimer = null;
                var self2 = this;
                var done3 = function done3(locked3, err, ret) {
                    if (occupationTimer) {
                        clearTimeout(occupationTimer);
                        occupationTimer = null;
                    }
                    if (executionTimer) {
                        clearTimeout(executionTimer);
                        executionTimer = null;
                    }
                    if (locked3) {
                        if (!!self2.queues[key] && self2.queues[key].length === 0) {
                            delete self2.queues[key];
                        }
                        if (self2.domainReentrant) {
                            delete self2.domains[key];
                        }
                    }
                    if (!resolved) {
                        if (!deferred2) {
                            if (typeof cb === "function") {
                                cb(err, ret);
                            }
                        } else {
                            if (err) {
                                deferredReject(err);
                            } else {
                                deferredResolve(ret);
                            }
                        }
                        resolved = true;
                    }
                    if (locked3) {
                        if (!!self2.queues[key] && self2.queues[key].length > 0) {
                            self2.queues[key].shift()();
                        }
                    }
                };
                var exec2 = function exec2(locked3) {
                    if (resolved) {
                        return done3(locked3);
                    }
                    if (timer) {
                        clearTimeout(timer);
                        timer = null;
                    }
                    if (self2.domainReentrant && locked3) {
                        self2.domains[key] = process.domain;
                    }
                    var maxExecutionTime = opts.maxExecutionTime || self2.maxExecutionTime;
                    if (maxExecutionTime) {
                        executionTimer = setTimeout(function() {
                            if (!!self2.queues[key]) {
                                done3(locked3, new Error("Maximum execution time is exceeded " + key));
                            }
                        }, maxExecutionTime);
                    }
                    if (fn.length === 1) {
                        var called = false;
                        try {
                            fn(function(err, ret) {
                                if (!called) {
                                    called = true;
                                    done3(locked3, err, ret);
                                }
                            });
                        } catch (err) {
                            if (!called) {
                                called = true;
                                done3(locked3, err);
                            }
                        }
                    } else {
                        self2._promiseTry(function() {
                            return fn();
                        }).then(function(ret) {
                            done3(locked3, void 0, ret);
                        }, function(error) {
                            done3(locked3, error);
                        });
                    }
                };
                if (self2.domainReentrant && !!process.domain) {
                    exec2 = process.domain.bind(exec2);
                }
                if (!self2.queues[key]) {
                    self2.queues[key] = [];
                    exec2(true);
                } else if (self2.domainReentrant && !!process.domain && process.domain === self2.domains[key]) {
                    exec2(false);
                } else if (self2.queues[key].length >= self2.maxPending) {
                    done3(false, new Error("Too many pending tasks in queue " + key));
                } else {
                    var taskFn = function taskFn() {
                        exec2(true);
                    };
                    if (opts.skipQueue) {
                        self2.queues[key].unshift(taskFn);
                    } else {
                        self2.queues[key].push(taskFn);
                    }
                    var timeout = opts.timeout || self2.timeout;
                    if (timeout) {
                        timer = setTimeout(function() {
                            timer = null;
                            done3(false, new Error("async-lock timed out in queue " + key));
                        }, timeout);
                    }
                }
                var maxOccupationTime = opts.maxOccupationTime || self2.maxOccupationTime;
                if (maxOccupationTime) {
                    occupationTimer = setTimeout(function() {
                        if (!!self2.queues[key]) {
                            done3(false, new Error("Maximum occupation time is exceeded in queue " + key));
                        }
                    }, maxOccupationTime);
                }
                if (deferred2) {
                    return deferred2;
                }
            };
            AsyncLock.prototype._acquireBatch = function(keys, fn, cb, opts) {
                if (typeof cb !== "function") {
                    opts = cb;
                    cb = null;
                }
                var self2 = this;
                var getFn = function getFn(key, fn2) {
                    return function(cb2) {
                        self2.acquire(key, fn2, cb2, opts);
                    };
                };
                var fnx = keys.reduceRight(function(prev, key) {
                    return getFn(key, prev);
                }, fn);
                if (typeof cb === "function") {
                    fnx(cb);
                } else {
                    return new this.Promise(function(resolve, reject) {
                        if (fnx.length === 1) {
                            fnx(function(err, ret) {
                                if (err) {
                                    reject(err);
                                } else {
                                    resolve(ret);
                                }
                            });
                        } else {
                            resolve(fnx());
                        }
                    });
                }
            };
            AsyncLock.prototype.isBusy = function(key) {
                if (!key) {
                    return Object.keys(this.queues).length > 0;
                } else {
                    return !!this.queues[key];
                }
            };
            AsyncLock.prototype._promiseTry = function(fn) {
                try {
                    return this.Promise.resolve(fn());
                } catch (e) {
                    return this.Promise.reject(e);
                }
            };
            module.exports = AsyncLock;
        }
    });
    // node_modules/@signageos/lib/node_modules/async-lock/index.js
    var require_async_lock3 = __commonJS({
        "node_modules/@signageos/lib/node_modules/async-lock/index.js": function(exports, module) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            module.exports = require_lib9();
        }
    });
    // node_modules/@signageos/lib/es6/Lock/lockedDecorator.js
    var require_lockedDecorator3 = __commonJS({
        "node_modules/@signageos/lib/es6/Lock/lockedDecorator.js": function(exports) {
            "use strict";
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                    desc = {
                        enumerable: true,
                        get: function get() {
                            return m[k];
                        }
                    };
                }
                Object.defineProperty(o, k2, desc);
            } : function(o, m, k, k2) {
                if (k2 === void 0) k2 = k;
                o[k2] = m[k];
            });
            var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
                Object.defineProperty(o, "default", {
                    enumerable: true,
                    value: v
                });
            } : function(o, v) {
                o["default"] = v;
            });
            var __importStar = exports && exports.__importStar || function(mod) {
                if (mod && mod.__esModule) return mod;
                var result17 = {};
                if (mod != null) {
                    for(var k in mod)if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result17, mod, k);
                }
                __setModuleDefault(result17, mod);
                return result17;
            };
            var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
                function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                        resolve(value);
                    });
                }
                return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                        try {
                            step(generator.next(value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function rejected(value) {
                        try {
                            step(generator["throw"](value));
                        } catch (e) {
                            reject(e);
                        }
                    }
                    function step(result17) {
                        result17.done ? resolve(result17.value) : adopt(result17.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };
            var __importDefault = exports && exports.__importDefault || function(mod) {
                return mod && mod.__esModule ? mod : {
                    "default": mod
                };
            };
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
            exports.locked = locked3;
            var async_lock_1 = __importDefault(require_async_lock3());
            var util = __importStar(require_util3());
            var globalAsyncLock = new async_lock_1["default"]();
            var asyncLocksMap = /* @__PURE__ */ new WeakMap();
            function acquireAsyncLock(options, instance) {
                if ((options === null || options === void 0 ? void 0 : options.scope) === void 0 || (options === null || options === void 0 ? void 0 : options.scope) === "global") {
                    return globalAsyncLock;
                } else if ((options === null || options === void 0 ? void 0 : options.scope) === "instance") {
                    if (asyncLocksMap.has(instance)) {
                        var lock = asyncLocksMap.get(instance);
                        lock.countRunning++;
                        return lock.asyncLock;
                    } else {
                        var asyncLock = new async_lock_1["default"]();
                        asyncLocksMap.set(instance, {
                            countRunning: 1,
                            asyncLock: asyncLock
                        });
                        return asyncLock;
                    }
                }
                throw new Error("Invalid option scope=".concat(options === null || options === void 0 ? void 0 : options.scope));
            }
            function releaseAsyncLock(options, instance) {
                if ((options === null || options === void 0 ? void 0 : options.scope) === "instance") {
                    var lock = asyncLocksMap.get(instance);
                    lock.countRunning--;
                    if (lock.countRunning === 0) {
                        asyncLocksMap["delete"](instance);
                    }
                }
            }
            function locked3(keyInitiator, options) {
                return function(__target, _propertyKey, descriptor) {
                    var originalMethod = descriptor.value;
                    descriptor.value = function() {
                        for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
                            args[_key] = arguments[_key];
                        }
                        return __awaiter(this, void 0, void 0, function() {
                            var _this, _keyInitiator, key, currentAsyncLock;
                            return _ts_generator(this, function(_state) {
                                switch(_state.label){
                                    case 0:
                                        _this = this;
                                        key = typeof keyInitiator === "function" ? (_keyInitiator = keyInitiator).call.apply(_keyInitiator, [
                                            this
                                        ].concat(_to_consumable_array(args))) : keyInitiator;
                                        currentAsyncLock = acquireAsyncLock(options, this);
                                        _state.label = 1;
                                    case 1:
                                        _state.trys.push([
                                            1,
                                            ,
                                            3,
                                            4
                                        ]);
                                        return [
                                            4,
                                            currentAsyncLock.acquire(key, function() {
                                                return __awaiter(_this, void 0, void 0, function() {
                                                    var returnValuePromise;
                                                    return _ts_generator(this, function(_state) {
                                                        switch(_state.label){
                                                            case 0:
                                                                returnValuePromise = originalMethod.apply(this, args);
                                                                if (!(returnValuePromise instanceof Promise)) {
                                                                    throw new Error("Synchronous methods must return Promise instance. But ".concat(util.inspect(returnValuePromise), " given."));
                                                                }
                                                                return [
                                                                    4,
                                                                    returnValuePromise
                                                                ];
                                                            case 1:
                                                                return [
                                                                    2,
                                                                    _state.sent()
                                                                ];
                                                        }
                                                    });
                                                });
                                            }, options)
                                        ];
                                    case 2:
                                        return [
                                            2,
                                            _state.sent()
                                        ];
                                    case 3:
                                        releaseAsyncLock(options, this);
                                        return [
                                            7
                                        ];
                                    case 4:
                                        return [
                                            2
                                        ];
                                }
                            });
                        });
                    };
                };
            }
        }
    });
    var _SynchronizerServiceHelper, SynchronizerServiceHelper;
    var init_SynchroServiceHelper = __esm({
        "src/Synchronizer/SynchroServiceHelper.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_managementServiceUrl();
            _SynchronizerServiceHelper = /*#__PURE__*/ function() {
                "use strict";
                function _SynchronizerServiceHelper(window2) {
                    _class_call_check(this, _SynchronizerServiceHelper);
                    __publicField(this, "window");
                    this.window = window2;
                }
                _create_class(_SynchronizerServiceHelper, [
                    {
                        key: "initializedSynchronizer",
                        value: function initializedSynchronizer(deviceUid) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _this = this;
                                            return [
                                                4,
                                                new Promise(function(resolve, reject) {
                                                    _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                        method: "initSynchronizer",
                                                        parameters: {
                                                            deviceUid: deviceUid
                                                        },
                                                        onComplete: function(returnValue) {
                                                            if ("errorCode" in returnValue) {
                                                                rejectFromServiceError(reject, returnValue, "initSynchronizer");
                                                            } else {
                                                                resolve();
                                                            }
                                                        },
                                                        onFailure: function(error) {
                                                            return reject(error);
                                                        }
                                                    });
                                                })
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "connect",
                        value: function connect(serverUri) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "connectSynchronizer",
                                                parameters: {
                                                    serverUri: serverUri
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "connectSynchronizer");
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "close",
                        value: function close() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "closeSynchronizer",
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "closeSynchronizer");
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "synchronizerIsConnected",
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "synchronizerIsConnected");
                                                    } else {
                                                        resolve(returnValue.connected);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isMaster",
                        value: function isMaster(groupName) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "synchronizerIsMaster",
                                                parameters: {
                                                    groupName: groupName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "synchronizerIsMaster");
                                                    } else {
                                                        resolve(returnValue.isMaster);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "joinGroup",
                        value: function joinGroup(args) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "joinSynchronizerGroup",
                                                parameters: {
                                                    arguments: args
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "joinSynchronizerGroup");
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "leaveSynchronizerGroup",
                        value: function leaveSynchronizerGroup(groupName) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "leaveSynchronizerGroup",
                                                parameters: {
                                                    groupName: groupName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "leaveSynchronizerGroup");
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "wait",
                        value: function wait(args) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "synchronizerWait",
                                                parameters: {
                                                    arguments: args
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "synchronizerWait");
                                                    } else {
                                                        resolve(returnValue.wait);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "broadcastValue",
                        value: function broadcastValue(args) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "synchronizerBroadcastValue",
                                                parameters: {
                                                    arguments: args
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "synchronizerBroadcastValue");
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "cancelWait",
                        value: function cancelWait(groupName) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "synchronizerCancelWait",
                                                parameters: {
                                                    groupName: groupName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "synchronizerCancelWait");
                                                    } else {
                                                        resolve();
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "getSynchronizerDeviceIdentification",
                        value: function getSynchronizerDeviceIdentification(groupName) {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "synchronizerGetDeviceIdentification",
                                                parameters: {
                                                    groupName: groupName
                                                },
                                                onComplete: function(returnValue) {
                                                    if ("errorCode" in returnValue) {
                                                        rejectFromServiceError(reject, returnValue, "synchronizerGetDeviceIdentification");
                                                    } else {
                                                        resolve(returnValue.deviceIdentification);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    return reject(error);
                                                }
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "initService",
                        value: function initService() {
                            return __async(this, null, function() {
                                var _this;
                                return _ts_generator(this, function(_state) {
                                    _this = this;
                                    return [
                                        2,
                                        new Promise(function(resolve, reject) {
                                            var settled = false;
                                            _this.window.webOS.service.request(_SynchronizerServiceHelper.SERVICE_REQUEST_URL, {
                                                method: "logs",
                                                onComplete: function() {
                                                    if (!settled) {
                                                        settled = true;
                                                        resolve(true);
                                                    }
                                                },
                                                onFailure: function(error) {
                                                    if (!settled) {
                                                        settled = true;
                                                        reject(error instanceof Error ? error : new Error("initService failed"));
                                                    }
                                                },
                                                subscribe: true
                                            });
                                        })
                                    ];
                                });
                            });
                        }
                    }
                ]);
                return _SynchronizerServiceHelper;
            }();
            __publicField(_SynchronizerServiceHelper, "SERVICE_REQUEST_URL", MANAGEMENT_SERVICE_URL);
            SynchronizerServiceHelper = _SynchronizerServiceHelper;
        }
    });
    // src/Synchronizer/events.ts
    var init_events = __esm({
        "src/Synchronizer/events.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
        }
    });
    // src/Synchronizer/Synchronizer.ts
    var import_ISynchronizer, import_wait5, import_debugDecorator2, import_lockedDecorator2, import_events4, DEBUG_NAMESPACE2, WEBSOCKET_ADDRESS, WEBSOCKET_OPEN_TIMEOUT_MS, WEBSOCKET_RECONNECT_DELAYS_MS, Synchronizer;
    var init_Synchronizer = __esm({
        "src/Synchronizer/Synchronizer.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_ISynchronizer = __toESM(require_ISynchronizer());
            import_wait5 = __toESM(require_wait4());
            import_debugDecorator2 = __toESM(require_debugDecorator2());
            import_lockedDecorator2 = __toESM(require_lockedDecorator3());
            import_events4 = __toESM(require_events());
            init_SynchroServiceHelper();
            init_events();
            DEBUG_NAMESPACE2 = "@signageos/display-webos:Synchronization:WebOsSynchronizer";
            WEBSOCKET_ADDRESS = "ws://localhost:8082";
            WEBSOCKET_OPEN_TIMEOUT_MS = 1e4;
            WEBSOCKET_RECONNECT_DELAYS_MS = [
                1e3,
                2e3,
                4e3,
                8e3,
                16e3
            ];
            Synchronizer = /*#__PURE__*/ function() {
                "use strict";
                function Synchronizer(getNativeDriver) {
                    _class_call_check(this, Synchronizer);
                    this.getNativeDriver = getNativeDriver;
                    __publicField(this, "webSocket", null);
                    __publicField(this, "privateEmitter", new import_events4.EventEmitter());
                    __publicField(this, "synchronizerHelper", new SynchronizerServiceHelper(window));
                    __publicField(this, "isInitialized", false);
                    __publicField(this, "isClosing", false);
                    __publicField(this, "reconnectAttempt", 0);
                    __publicField(this, "pendingReconnect", null);
                }
                _create_class(Synchronizer, [
                    {
                        key: "connect",
                        value: function connect(_serverUri, _config) {
                            return __async(this, null, function() {
                                var nativeDriver, deviceUid, error;
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            _state.trys.push([
                                                0,
                                                4,
                                                ,
                                                5
                                            ]);
                                            this.isClosing = false;
                                            nativeDriver = this.getNativeDriver();
                                            return [
                                                4,
                                                nativeDriver.getDeviceUid()
                                            ];
                                        case 1:
                                            deviceUid = _state.sent();
                                            return [
                                                4,
                                                this.init(deviceUid)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.synchronizerHelper.connect()
                                            ];
                                        case 3:
                                            _state.sent();
                                            return [
                                                3,
                                                5
                                            ];
                                        case 4:
                                            error = _state.sent();
                                            console.error("Oh noes, sync connect failed", error);
                                            throw error;
                                        case 5:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "close",
                        value: function close() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            this.isClosing = true;
                                            this.cancelPendingReconnect();
                                            _state.label = 1;
                                        case 1:
                                            _state.trys.push([
                                                1,
                                                ,
                                                3,
                                                4
                                            ]);
                                            return [
                                                4,
                                                this.synchronizerHelper.close()
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                3,
                                                4
                                            ];
                                        case 3:
                                            this.closeWebSocket();
                                            this.reconnectAttempt = 0;
                                            this.privateEmitter.emit(import_ISynchronizer.SynchronizerEvent.Closed);
                                            return [
                                                7
                                            ];
                                        case 4:
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "isConnected",
                        value: function isConnected() {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    if (!this.isInitialized || !this.isWebSocketOpen()) {
                                        return [
                                            2,
                                            false
                                        ];
                                    }
                                    return [
                                        2,
                                        this.synchronizerHelper.isConnected()
                                    ];
                                });
                            });
                        }
                    },
                    {
                        key: "isMaster",
                        value: function isMaster(groupName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.isMaster(groupName)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "joinGroup",
                        value: function joinGroup(args) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.joinGroup(args)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "wait",
                        value: function wait(args) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.wait(args)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "broadcastValue",
                        value: function broadcastValue(args) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.broadcastValue(args)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "leaveGroup",
                        value: function leaveGroup(groupName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.leaveSynchronizerGroup(groupName)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "getDeviceIdentification",
                        value: function getDeviceIdentification(groupName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.getSynchronizerDeviceIdentification(groupName)
                                            ];
                                        case 1:
                                            return [
                                                2,
                                                _state.sent()
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "cancelWait",
                        value: function cancelWait(groupName) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.cancelWait(groupName)
                                            ];
                                        case 1:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "addListener",
                        value: function addListener(event, listener) {
                            this.privateEmitter.addListener(event, listener);
                        }
                    },
                    {
                        key: "removeListener",
                        value: function removeListener(event, listener) {
                            this.privateEmitter.removeListener(event, listener);
                        }
                    },
                    {
                        key: "init",
                        value: function init(deviceUid) {
                            return __async(this, null, function() {
                                return _ts_generator(this, function(_state) {
                                    switch(_state.label){
                                        case 0:
                                            return [
                                                4,
                                                this.synchronizerHelper.initService()
                                            ];
                                        case 1:
                                            _state.sent();
                                            if (!!this.isInitialized) return [
                                                3,
                                                4
                                            ];
                                            return [
                                                4,
                                                (0, import_wait5["default"])(5e3)
                                            ];
                                        case 2:
                                            _state.sent();
                                            return [
                                                4,
                                                this.synchronizerHelper.initializedSynchronizer(deviceUid)
                                            ];
                                        case 3:
                                            _state.sent();
                                            this.isInitialized = true;
                                            _state.label = 4;
                                        case 4:
                                            return [
                                                4,
                                                this.openWebSocket()
                                            ];
                                        case 5:
                                            _state.sent();
                                            return [
                                                2
                                            ];
                                    }
                                });
                            });
                        }
                    },
                    {
                        key: "openWebSocket",
                        value: function openWebSocket() {
                            var _this = this;
                            return new Promise(function(resolve, reject) {
                                if (_this.isWebSocketOpen()) {
                                    resolve();
                                    return;
                                }
                                _this.closeWebSocket();
                                var ws = new WebSocket(WEBSOCKET_ADDRESS);
                                _this.webSocket = ws;
                                var timeout = setTimeout(function() {
                                    ws.removeEventListener("open", onOpen);
                                    ws.removeEventListener("error", onError);
                                    try {
                                        ws.close();
                                    } catch (e) {}
                                    reject(new Error("WebSocket open timeout after ".concat(WEBSOCKET_OPEN_TIMEOUT_MS, "ms")));
                                }, WEBSOCKET_OPEN_TIMEOUT_MS);
                                var onOpen = function() {
                                    clearTimeout(timeout);
                                    ws.removeEventListener("error", onError);
                                    _this.reconnectAttempt = 0;
                                    _this.attachWebSocketListeners(ws);
                                    resolve();
                                };
                                var onError = function() {
                                    clearTimeout(timeout);
                                    ws.removeEventListener("open", onOpen);
                                    reject(new Error("WebSocket error during open handshake"));
                                };
                                ws.addEventListener("open", onOpen, {
                                    once: true
                                });
                                ws.addEventListener("error", onError, {
                                    once: true
                                });
                            });
                        }
                    },
                    {
                        key: "attachWebSocketListeners",
                        value: function attachWebSocketListeners(ws) {
                            var _this = this;
                            ws.addEventListener("message", function(event) {
                                return _this.handleMessage(event);
                            });
                            ws.addEventListener("close", function(event) {
                                return _this.handleWebSocketClose(ws, event);
                            });
                            ws.addEventListener("error", function() {
                                return _this.handleWebSocketError(ws);
                            });
                        }
                    },
                    {
                        key: "handleMessage",
                        value: function handleMessage(event) {
                            var data;
                            try {
                                data = JSON.parse(event.data);
                            } catch (error) {
                                console.error("Failed to parse sync message", error);
                                return;
                            }
                            switch(data.type){
                                case "groupStatus" /* GroupStatus */ :
                                    this.privateEmitter.emit(import_ISynchronizer.SynchronizerEvent.GroupStatus, {
                                        groupName: data.groupName,
                                        connectedPeers: data.connectedPeers
                                    });
                                    break;
                                case "groupLeft" /* GroupLeft */ :
                                    this.privateEmitter.emit(import_ISynchronizer.SynchronizerEvent.GroupLeft, data.groupName);
                                    break;
                                case "broadcastedValue" /* BroadcastedValue */ :
                                    this.privateEmitter.emit(import_ISynchronizer.SynchronizerEvent.BroadcastedValue, {
                                        groupName: data.groupName,
                                        key: data.key,
                                        value: data.value
                                    });
                                    break;
                                default:
                                    break;
                            }
                        }
                    },
                    {
                        key: "handleWebSocketClose",
                        value: function handleWebSocketClose(ws, event) {
                            if (this.webSocket !== ws) {
                                return;
                            }
                            this.webSocket = null;
                            if (this.isClosing) {
                                return;
                            }
                            this.scheduleReconnect(new Error("WebSocket closed (code=".concat(event.code, " reason=").concat(event.reason || "n/a", ")")));
                        }
                    },
                    {
                        key: "handleWebSocketError",
                        value: function handleWebSocketError(ws) {
                            if (this.webSocket !== ws) {
                                return;
                            }
                            console.error("Sync WebSocket error");
                        }
                    },
                    {
                        key: "scheduleReconnect",
                        value: function scheduleReconnect(reason) {
                            var _this = this;
                            if (this.isClosing) {
                                return;
                            }
                            if (this.reconnectAttempt >= WEBSOCKET_RECONNECT_DELAYS_MS.length) {
                                console.error("Sync WebSocket reconnect exhausted", reason);
                                this.privateEmitter.emit(import_ISynchronizer.SynchronizerEvent.Closed, reason);
                                this.reconnectAttempt = 0;
                                return;
                            }
                            var delay2 = WEBSOCKET_RECONNECT_DELAYS_MS[this.reconnectAttempt];
                            this.reconnectAttempt += 1;
                            this.cancelPendingReconnect();
                            this.pendingReconnect = setTimeout(function() {
                                return __async(_this, null, function() {
                                    var error;
                                    return _ts_generator(this, function(_state) {
                                        switch(_state.label){
                                            case 0:
                                                this.pendingReconnect = null;
                                                if (this.isClosing) {
                                                    return [
                                                        2
                                                    ];
                                                }
                                                _state.label = 1;
                                            case 1:
                                                _state.trys.push([
                                                    1,
                                                    3,
                                                    ,
                                                    4
                                                ]);
                                                return [
                                                    4,
                                                    this.openWebSocket()
                                                ];
                                            case 2:
                                                _state.sent();
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 3:
                                                error = _state.sent();
                                                this.scheduleReconnect(error instanceof Error ? error : new Error(String(error)));
                                                return [
                                                    3,
                                                    4
                                                ];
                                            case 4:
                                                return [
                                                    2
                                                ];
                                        }
                                    });
                                });
                            }, delay2);
                        }
                    },
                    {
                        key: "cancelPendingReconnect",
                        value: function cancelPendingReconnect() {
                            if (this.pendingReconnect !== null) {
                                clearTimeout(this.pendingReconnect);
                                this.pendingReconnect = null;
                            }
                        }
                    },
                    {
                        key: "closeWebSocket",
                        value: function closeWebSocket() {
                            if (this.webSocket) {
                                try {
                                    this.webSocket.close();
                                } catch (e) {}
                                this.webSocket = null;
                            }
                        }
                    },
                    {
                        key: "isWebSocketOpen",
                        value: function isWebSocketOpen() {
                            return this.webSocket !== null && this.webSocket.readyState === WebSocket.OPEN;
                        }
                    }
                ]);
                return Synchronizer;
            }();
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2),
                (0, import_lockedDecorator2.locked)("synchronizer", {
                    scope: "instance"
                })
            ], Synchronizer.prototype, "connect", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "close", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "isConnected", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "isMaster", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "joinGroup", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "wait", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "broadcastValue", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "leaveGroup", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "cancelWait", 1);
            __decorateClass([
                (0, import_debugDecorator2.debug)(DEBUG_NAMESPACE2)
            ], Synchronizer.prototype, "init", 1);
        }
    });
    var import_polymorphicSynchronizerFactory;
    var init_SynchronizerFactory = __esm({
        "src/Synchronizer/SynchronizerFactory.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            import_polymorphicSynchronizerFactory = __toESM(require_polymorphicSynchronizerFactory());
            init_Synchronizer();
        }
    });
    // src/options.ts
    var buildtimeParameters, getWindowValue, loadParameters, parameters, getParameters;
    var init_options = __esm({
        "src/options.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            buildtimeParameters = define_SOS_BUILDTIME_PARAMETERS_default;
            getWindowValue = function(key) {
                if (typeof window !== "undefined" && typeof window[key] !== "undefined") {
                    return window[key];
                }
            };
            loadParameters = function() {
                var p = typeof buildtimeParameters !== "undefined" ? buildtimeParameters : void 0;
                if (!p) {
                    return void 0;
                }
                if (getWindowValue("__SOS_BUNDLED_APPLET")) {
                    p.bundledApplet = getWindowValue("__SOS_BUNDLED_APPLET");
                }
                if (getWindowValue("__SOS_SUBSCRIPTION_TYPE")) {
                    p.subscriptionType = getWindowValue("__SOS_SUBSCRIPTION_TYPE");
                }
                if (getWindowValue("__SOS_AUTO_VERIFICATION")) {
                    p.autoVerification = getWindowValue("__SOS_AUTO_VERIFICATION");
                }
                return p;
            };
            parameters = null;
            getParameters = function() {
                if (!parameters) {
                    parameters = loadParameters();
                }
                return parameters;
            };
        }
    });
    var scap12LibNames, scap13LibNames, scap15LibNames, scap16LibNames, scap17LibNames, scap18LibNames;
    var init_scapLibs = __esm({
        "src/scapLibs.ts": function() {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            init_SCAPHelper();
            scap12LibNames = [
                "configuration",
                "deviceInfo",
                "inputSource",
                "power",
                "signage",
                "sound",
                "storage",
                "video"
            ];
            scap13LibNames = scap12LibNames;
            scap15LibNames = _to_consumable_array(scap13LibNames).concat([
                "security",
                "time",
                "utility"
            ]);
            scap16LibNames = scap15LibNames;
            scap17LibNames = _to_consumable_array(scap16LibNames).concat([
                "iot"
            ]);
            scap18LibNames = scap17LibNames;
        }
    });
    // src/bundle.ts
    var require_bundle = __commonJS({
        "src/bundle.ts": function(exports) {
            init_define_SOS_BUILDTIME_PARAMETERS();
            init_node();
            var import_IConfig = __toESM(require_IConfig());
            var import_front = __toESM(require_front2());
            var import_management = __toESM(require_management());
            var import_masterWebWorkerFactory = __toESM(require_masterWebWorkerFactory());
            var Raven = __toESM(require_singleton());
            init_driverFactory();
            init_initializeSetup();
            init_SynchronizerFactory();
            init_options();
            init_scapLibs();
            var parameters2 = getParameters();
            setInterval(function() {}, 5e3);
            (function() {
                return __async(exports, null, function() {
                    var _a2, factory, frontDriver, managementDriver, deviceUid, error, webWorkerFactory, autoVerification, subscriptionType, synchronizer, options;
                    return _ts_generator(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    loadScapLibs(window)
                                ];
                            case 1:
                                _state.sent();
                                return [
                                    4,
                                    createSCAP(window, parameters2.app.version, false)
                                ];
                            case 2:
                                factory = _state.sent();
                                frontDriver = factory.frontDriver();
                                managementDriver = factory.managementDriver([]);
                                console.log("Created ".concat(frontDriver.getDriverName(), " front driver."));
                                console.log("Created ".concat(managementDriver.getDriverName(), " management driver."));
                                return [
                                    4,
                                    frontDriver.initialize()
                                ];
                            case 3:
                                _state.sent();
                                return [
                                    4,
                                    managementDriver.initialize()
                                ];
                            case 4:
                                _state.sent();
                                return [
                                    4,
                                    initializeSetup(window)
                                ];
                            case 5:
                                _state.sent();
                                _state.label = 6;
                            case 6:
                                _state.trys.push([
                                    6,
                                    8,
                                    ,
                                    9
                                ]);
                                return [
                                    4,
                                    managementDriver.getDeviceUid()
                                ];
                            case 7:
                                deviceUid = _state.sent();
                                Raven.setUserContext({
                                    id: deviceUid
                                });
                                return [
                                    3,
                                    9
                                ];
                            case 8:
                                error = _state.sent();
                                console.error(error);
                                return [
                                    3,
                                    9
                                ];
                            case 9:
                                webWorkerFactory = (0, import_masterWebWorkerFactory.createSameThreadWebWorkerFactory)();
                                if (parameters2.bundledApplet !== null && !((_a2 = parameters2.autoVerification) == null ? void 0 : _a2.organizationUid)) {
                                    throw new Error("sOS Open requires organization uid to be set during build.");
                                }
                                autoVerification = parameters2.autoVerification ? {
                                    organizationUid: parameters2.autoVerification.organizationUid
                                } : void 0;
                                subscriptionType = getSubscriptionType();
                                synchronizer = createSynchronizer(parameters2.url.synchronizerServerUrl, function() {
                                    return frontDriver;
                                });
                                options = {
                                    global: window,
                                    configUrls: parameters2.url.configUrls,
                                    platformUri: parameters2.url.socketUri,
                                    staticBaseUrl: parameters2.url.staticBaseUrl,
                                    uploadBaseUrl: parameters2.url.uploadBaseUrl,
                                    extendedManagementUrl: null,
                                    checkInterval: parameters2.app.checkIntervalMs,
                                    publicKey: parameters2.httpAuthPublicKey,
                                    sessionIdKey: parameters2.frontDisplay.sessionIdKey,
                                    frontAppletPrefix: parameters2.frontApplet.prefix,
                                    frontDisplayVersion: parameters2.frontDisplay.version,
                                    weinreServerUrl: parameters2.url.weinreServerUrl,
                                    managementDriver: managementDriver,
                                    synchronizer: synchronizer,
                                    webWorkerFactory: webWorkerFactory,
                                    applicationVersion: parameters2.app.version,
                                    bundledApplet: parameters2.bundledApplet,
                                    autoVerification: autoVerification,
                                    fetch: window.fetch,
                                    subscriptionType: subscriptionType,
                                    excludedResponsibilities: [],
                                    bundledServlet: null
                                };
                                return [
                                    4,
                                    (0, import_front["default"])(__spreadProps(__spreadValues({}, options), {
                                        nativeDriver: frontDriver
                                    }))
                                ];
                            case 10:
                                _state.sent();
                                return [
                                    4,
                                    (0, import_management["default"])(__spreadProps(__spreadValues({}, options), {
                                        nativeDriver: managementDriver
                                    }))
                                ];
                            case 11:
                                _state.sent();
                                return [
                                    2
                                ];
                        }
                    });
                });
            })()["catch"](function(error) {
                return console.error(error);
            });
            function getSubscriptionType() {
                if (parameters2.subscriptionType && parameters2.subscriptionType in import_IConfig.SubscriptionType) {
                    return parameters2.subscriptionType;
                }
                return import_IConfig.SubscriptionType.open;
            }
        }
    });
    require_bundle();
})(); /*! Bundled license information:

ieee754/index.js:
  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)

lodash/lodash.js:
  (**
   * @license
   * Lodash <https://lodash.com/>
   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   *)

object-assign/index.js:
  (*
  object-assign
  (c) Sindre Sorhus
  @license MIT
  *)

react/cjs/react.production.min.js:
  (** @license React v16.8.6
   * react.production.min.js
   *
   * Copyright (c) Facebook, Inc. and its affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

scheduler/cjs/scheduler.production.min.js:
  (** @license React v0.13.6
   * scheduler.production.min.js
   *
   * Copyright (c) Facebook, Inc. and its affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

react-dom/cjs/react-dom.production.min.js:
  (** @license React v16.8.6
   * react-dom.production.min.js
   *
   * Copyright (c) Facebook, Inc. and its affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

classnames/index.js:
  (*!
    Copyright (c) 2016 Jed Watson.
    Licensed under the MIT License (MIT), see
    http://jedwatson.github.io/classnames
  *)

jsrsasign/lib/jsrsasign.js:
  (*! CryptoJS v3.1.2 core-fix.js
   * code.google.com/p/crypto-js
   * (c) 2009-2013 by Jeff Mott. All rights reserved.
   * code.google.com/p/crypto-js/wiki/License
   * THIS IS FIX of 'core.js' to fix Hmac issue.
   * https://code.google.com/p/crypto-js/issues/detail?id=84
   * https://crypto-js.googlecode.com/svn-history/r667/branches/3.x/src/core.js
   *)
  (*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/
   *)
  (*! (c) Tom Wu, Kenji Urushima | http://www-cs-students.stanford.edu/~tjw/jsbn/
   *)
  (*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib
   *)
  (*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval
   *)

punycode/punycode.js:
  (*! https://mths.be/punycode v1.4.1 by @mathias *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

safe-buffer/index.js:
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

json3/lib/json3.js:
  (*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org *)

wtf-8/wtf-8.js:
  (*! https://mths.be/wtf8 v1.0.0 by @mathias *)

moment/moment.js:
  (*! moment.js *)
  (*! version : 2.29.4 *)
  (*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *)
  (*! license : MIT *)
  (*! momentjs.com *)

moment-timezone/moment-timezone.js:
  (*! moment-timezone.js *)
  (*! version : 0.5.45 *)
  (*! Copyright (c) JS Foundation and other contributors *)
  (*! license : MIT *)
  (*! github.com/moment/moment-timezone *)

moment-timezone/moment-timezone.js:
  (*! moment-timezone.js *)
  (*! version : 0.5.33 *)
  (*! Copyright (c) JS Foundation and other contributors *)
  (*! license : MIT *)
  (*! github.com/moment/moment-timezone *)

moment-timezone/moment-timezone.js:
  (*! moment-timezone.js *)
  (*! version : 0.5.35 *)
  (*! Copyright (c) JS Foundation and other contributors *)
  (*! license : MIT *)
  (*! github.com/moment/moment-timezone *)

moment-timezone/moment-timezone.js:
  (*! moment-timezone.js *)
  (*! version : 0.5.45 *)
  (*! Copyright (c) JS Foundation and other contributors *)
  (*! license : MIT *)
  (*! github.com/moment/moment-timezone *)
*/  //# sourceMappingURL=bundle.js.map
